diff --git a/deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json b/deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json new file mode 100644 index 0000000..de0e303 --- /dev/null +++ b/deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json @@ -0,0 +1,78 @@ +{ + "schema": "guanghu.enterprise-gitea-retirement-forgejo-decoupling-receipt/v1", + "outcome": "PASS_WITH_RECOVERY_DISCLOSURE", + "completed_at": "2026-09-13T18:32:38+08:00", + "node": "GH-CVM-MAIN-PROD-01", + "node_dmi_uuid": "10ace744-13e1-472e-8dba-6bb823a073bf", + "decision_source_sha256": "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e", + "retired": { + "service": "Gitea 1.21.11", + "containers_removed": ["lighthouse-gitea", "lighthouse-gitea-db", "lighthouse-gitea-redis"], + "images_removed": ["gitea/gitea:1.21.11", "postgres:15-alpine", "redis:7-alpine"], + "data_path_removed": "/opt/guanghu/lighthouse-cn", + "public_ports_removed": [3000, 2222], + "active_nginx_references_remaining": 0 + }, + "migration_proof": { + "legacy_repositories": 2, + "legacy_collaboration_objects": {"issues":0,"pull_requests":0,"releases":0,"comments":0,"attachments":0}, + "hololake_world_main": "d1823008e1401d1875d863109b69f8ed145d4532", + "lighthouse_main": "fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f", + "both_legacy_commits_present_in_forgejo": true, + "legacy_and_current_git_fsck": "PASS" + }, + "recovery_disclosure": { + "trigger": "retirement exposed that the current Forgejo application still depended on the retired container database service name", + "impact": "Forgejo health returned HTTP 424 during the maintenance window", + "action": "stopped Forgejo, restored the verified 2026-08-08 Forgejo database dump into a dedicated PostgreSQL cluster, separated the database role and route, then adopted every repository present on current storage", + "baseline_restored_users": 7, + "baseline_restored_repositories": 2, + "re_adopted_repositories": 12, + "recovered_owner_user": "huaer", + "recovered_owner_organization": "guanghu-team", + "post_recovery_users": 9, + "post_recovery_organizations": 1, + "post_recovery_repositories": 14, + "unadopted_repositories": 0, + "temporary_admin_token_removed": true, + "remaining_human_action": "huaer owner account uses a forced-change recovery password and needs an administrator reset before interactive login" + }, + "current_forgejo": { + "container": "guanghu-forgejo-blue", + "image": "guanghu/forgejo:16.0.1-offline", + "restart_policy": "unless-stopped", + "database_service": "postgresql@14-forgejo.service", + "database_bind": "172.19.0.1:55432", + "database_role": "forgejo", + "database_data_bytes": 62003859, + "public_url": "https://guanghu.chat/code/", + "public_root_http": 200, + "public_health_http": 200, + "public_asset_http": 200, + "all_repository_fsck": "PASS", + "filesystem_database_repository_sets_equal": true, + "systemd_failed_units": 0 + }, + "rolling_backup": { + "primary_path": "/var/lib/guanghu-enterprise-code-channel/backups/CURRENT/forgejo-current.dump", + "backup_path": "/home/guanghu-ops/enterprise-archive/GH-CVM-MAIN-PROD-01/2026-09-13/gitea-retirement/forgejo-current.dump", + "backup_node": "QY-LH-MAIN-PROD-01", + "size_bytes": 481025, + "sha256": "4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c", + "timer": "guanghu-forgejo-backup.timer", + "retention": "single rolling current-state dump" + }, + "minimum_evidence_retention": { + "full_historical_payloads_purged_bytes": 1236163123, + "backup_directory_after": "492K", + "summary": "/home/guanghu-ops/enterprise-archive/GH-CVM-MAIN-PROD-01/2026-09-13/RETENTION-SUMMARY-20260913.json", + "full_gitea_archive_created": false + }, + "current_config_hashes": { + "forgejo_app_ini_sha256": "5f930ce11c827d06293d67692b088219ea0988e01cd8ed7e56d05e4021ddc9d2", + "nginx_guanghu_chat_sha256": "90d8b27d319a4ec6d5bb95f70a26f68b837413fcb2426a2b62caf6524c9eb1cd", + "nginx_default_forgejo_sha256": "b264f111b2a3c206ceb8702644f042f6d90d5c8d67076f6bd1aa0190ba0820e1", + "rolling_backup_script_sha256": "de687096b4c4361bfb5584b71090ee86b9672534f5c56a330011d8afaa4782d0" + }, + "secrets_in_receipt": false +} diff --git a/routing/enterprise-server-archive-cleanup-map.json b/routing/enterprise-server-archive-cleanup-map.json index 5682a49..c0ab831 100644 --- a/routing/enterprise-server-archive-cleanup-map.json +++ b/routing/enterprise-server-archive-cleanup-map.json @@ -1,16 +1,18 @@ { "schema": "guanghu.enterprise-server-archive-cleanup-map/v1", "map_id": "GH-ENTERPRISE-SERVER-ARCHIVE-CLEANUP-001", - "version": "2026-09-13.1", - "state": "PRIMARY_CLEANED_BACKUP_ARCHIVE_RESTORE_VERIFIED", - "primary": {"node_id":"GH-CVM-MAIN-PROD-01","boot_id":"dd900230-92e7-4cfa-8b99-3eec3c78be89","before_used_bytes":22305280000,"after_used_bytes":17148575744,"freed_bytes":5156704256,"source_receipt":"/var/lib/guanghu/receipts/GH-CVM-MAIN-PROD-01/enterprise-audit-cleanup-20260913/FINAL-RECEIPT.json","source_receipt_sha256":"bb311523d9ba6b0ae8b382f9bb54db2de8158cbe053e9b8cb2048b328c090f09"}, - "backup": {"node_id":"QY-LH-MAIN-PROD-01","region":"CN-SHANGHAI","host_identity":"QY-LH-MAIN-PROD-01","boot_id":"83d87912-6afb-420f-86c5-58bd1dbde14d","archive_root":"/home/guanghu-ops/enterprise-archive/GH-CVM-MAIN-PROD-01/2026-09-13","archive_bytes":1236163123,"receipt_sha256":"2f825548e7c46ec27d0fbfd8340f026cbcc9448daf447f3c7045012f5b3d6604","restore_verified":{"artifact_files":20944,"journal_files":39}}, + "version": "2026-09-13.2", + "state": "PRIMARY_CLEANED_GITEA_RETIRED_FORGEJO_DECOUPLED_MINIMUM_EVIDENCE_RETAINED", + "primary": {"node_id":"GH-CVM-MAIN-PROD-01","boot_id":"dd900230-92e7-4cfa-8b99-3eec3c78be89","before_used_bytes":22305280000,"after_used_bytes":16801497088,"freed_bytes":5503782912,"source_receipt":"/var/lib/guanghu/receipts/GH-CVM-MAIN-PROD-01/enterprise-audit-cleanup-20260913/FINAL-RECEIPT.json","source_receipt_sha256":"bb311523d9ba6b0ae8b382f9bb54db2de8158cbe053e9b8cb2048b328c090f09"}, + "backup": {"node_id":"QY-LH-MAIN-PROD-01","region":"CN-SHANGHAI","host_identity":"QY-LH-MAIN-PROD-01","boot_id":"83d87912-6afb-420f-86c5-58bd1dbde14d","archive_root":"/home/guanghu-ops/enterprise-archive/GH-CVM-MAIN-PROD-01/2026-09-13","retained_bytes":487458,"retention_summary":"RETENTION-SUMMARY-20260913.json","full_historical_payloads_purged_bytes":1236163123,"receipt_sha256":"2f825548e7c46ec27d0fbfd8340f026cbcc9448daf447f3c7045012f5b3d6604","prior_restore_verification":{"artifact_files":20944,"journal_files":39}}, "removed_after_archive": ["/root/ghdr-c96f43c","/home/ubuntu/guanghu-native-staging","/opt/fifth-domain-release.glOrXN","/var/tmp/hlcc-offline-20260726"], "retired_services": [{"unit":"pm2-root.service","port":3910},{"unit":"api-router.service","port":5001},{"unit":"revive-guard.service","port":8922}], "rebuildable_cleanup": ["JOURNAL_ABOVE_512M","NPM_CACHE","PIP_CACHE","APT_CACHE","DOCKER_BUILD_CACHE","UNATTACHED_DOCKER_VOLUME","DISABLED_SNAP_REVISIONS"], - "kept_current": ["DOCKER_GUANGHU_FORGEJO_BLUE","LEGACY_GITEA_STILL_NGINX_REFERENCED","GUANGHU_PORTAL","POSTGRESQL","ENTERPRISE_IDENTITY_AND_DEVICE_GATES","ENTERPRISE_AND_LIVING_LIGHTHOUSES","JD_WORLD_TUNNEL","PRIMARY_CODE_CHANNEL_DATA","ACTIVE_RESCUE_ARCHIVE"], - "current_code_channel": {"runtime":"docker:guanghu-forgejo-blue","restart_policy":"unless-stopped","legacy_systemd_candidate":"disabled_inactive"}, - "deferred": ["LEGACY_GITEA_REQUIRES_ASSET_AND_DEFAULT_VHOST_MIGRATION_BEFORE_RETIREMENT","ENTERPRISE_PERMISSION_HANDOVER_REQUIRES_SEPARATE_OPERATIONS_KEY_AND_TEAM_ACCEPTANCE"], + "kept_current": ["DOCKER_GUANGHU_FORGEJO_BLUE","FORGEJO_POSTGRESQL_14_CLUSTER","FORGEJO_SINGLE_ROLLING_DATABASE_BACKUP","GUANGHU_PORTAL","ENTERPRISE_IDENTITY_AND_DEVICE_GATES","ENTERPRISE_AND_LIVING_LIGHTHOUSES","JD_WORLD_TUNNEL","PRIMARY_CODE_CHANNEL_DATA","ACTIVE_RESCUE_ARCHIVE"], + "retired_code_stack": {"application":"Gitea 1.21.11","containers_removed":3,"images_removed":3,"data_path_removed":"/opt/guanghu/lighthouse-cn","public_ports_removed":[3000,2222],"repositories_verified_migrated":2,"legacy_collaboration_objects":0,"full_archive_created":false}, + "current_code_channel": {"runtime":"docker:guanghu-forgejo-blue","restart_policy":"unless-stopped","database":"postgresql@14-forgejo.service:172.19.0.1:55432","database_role":"forgejo","repository_count":14,"organization_count":1,"public_health":"HTTP_200","rolling_backup_sha256":"4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c"}, + "retention_policy": "RETIRED_NO_UNIQUE_VALUE_SUMMARY_AND_HASH_ONLY_CURRENT_DATA_SINGLE_ROLLING_BACKUP", + "deferred": ["ENTERPRISE_PERMISSION_HANDOVER_REQUIRES_SEPARATE_OPERATIONS_KEY_AND_TEAM_ACCEPTANCE","HUAER_RECOVERED_OWNER_ACCOUNT_REQUIRES_ADMIN_PASSWORD_RESET_BEFORE_INTERACTIVE_LOGIN"], "public_health": "EIGHT_ENDPOINTS_HTTP_200", - "source_tcs": "runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-SERVER-AUDIT-ARCHIVE-CLEANUP-20260913.tcs" + "source_tcs": "runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs" } diff --git a/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.gir.json b/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.gir.json new file mode 100644 index 0000000..e417f17 --- /dev/null +++ b/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.gir.json @@ -0,0 +1,88 @@ +{ + "compiled_from": { + "compiler_id": "TCS-COMPILER-STAGE1-0001", + "compiler_state": "TCS_COMPILER_GIR_EXECUTED", + "source_sha256": "f5df6f8cfd5bc29e5bee286b64330bda41009f006e3ed3767087ce2eb8ae663d" + }, + "declaration": { + "emergence": { + "value": "先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。" + }, + "event_time": { + "precision": "SERVER_SECOND", + "value": "2026-09-13T18:32:38+08:00" + }, + "evidence": { + "decision_source_sha256": "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e", + "forgejo_current_backup_sha256": "4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c", + "old_hololake_world_commit": "d1823008e1401d1875d863109b69f8ed145d4532", + "old_lighthouse_commit": "fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f", + "receipt": "deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json" + }, + "header": { + "canonical_uri": "runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs", + "compatibility": [ + "GH-CVM-MAIN-PROD-01", + "QY-LH-MAIN-PROD-01", + "TCS-0002∞" + ], + "language": "TCS/0.1", + "lifecycle": "CANDIDATE", + "name_en": "Enterprise Gitea Retirement and Forgejo Database Decoupling Completion", + "name_zh": "企业Gitea退役与Forgejo数据库解耦完成事件", + "profile": "HLDP-HUMAN-ENGINEERING/0.1", + "protocols": [ + "GLS-0200", + "GLS-0234", + "GLS-0241", + "GLS-0254" + ], + "schema": "tcs.event/v1", + "version": "1.0.0" + }, + "lock": { + "value": "retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200" + }, + "observation": { + "value": "旧Gitea含2个仓库且无issue、pull request、release、comment和attachment;两仓库main提交已在Forgejo同名仓库中存在,新旧git fsck均通过。退役时发现现行Forgejo仍依赖旧容器数据库名,健康度曾返回424;已从校验通过的2026-08-08备份恢复至独立PostgreSQL集群,重新登记12个磁盘仓库,当前14个仓库一致且公网端点为200。" + }, + "rejected": { + "values": [ + "继续保留Gitea容器和公网端口", + "仅因仓库同名就删除旧数据", + "把1.24GB旧构建与日志压缩包当作必须永久保留的历史", + "隐瞒数据库耦合导致的424维护事件", + "用新的Gitea命名继续伪装退役结构", + "让恢复用临时管理员令牌常驻" + ] + }, + "source": { + "source_id": "BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913", + "source_role": "DIRECT_HUMAN", + "source_sha256": "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e", + "source_uri": "source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention" + }, + "subject": { + "channel_id": "ICE-CH-ZC001", + "subject_id": "GH-CVM-MAIN-PROD-01", + "subject_kind": "SYSTEM", + "verification": "企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。" + }, + "trigger": { + "value": "冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。" + }, + "why": { + "value": "把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。" + } + }, + "executable": false, + "identity": { + "declaration_id": "TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913", + "declaration_kind": "EVENT", + "language_version": "0.1" + }, + "native_self_hosted": true, + "natural_language_is_typed_data": true, + "schema": "guanghu.declaration-gir/v1", + "unresolved_natural_language": false +} diff --git a/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.human.en-US.md b/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.human.en-US.md new file mode 100644 index 0000000..6edc511 --- /dev/null +++ b/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.human.en-US.md @@ -0,0 +1,122 @@ +# Enterprise Gitea Retirement and Forgejo Database Decoupling Completion · Human Engineering Language (English) + +> This is an English reading projection of validated native TCS/HLDP source. It is not a new canonical source and grants no execution authority. + +## What this is + +This is a **event** declaration with identifier `TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913` and version `1.0.0`. The projector validates it with the Stage-1 compiler before changing its reading order. + +## Who is here + +- **subject** `subject` + - **channel_id**:ICE-CH-ZC001 `subject.channel_id` + - **subject_id**:GH-CVM-MAIN-PROD-01 `subject.subject_id` + - **subject_kind**:SYSTEM `subject.subject_kind` + - **verification**:企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。 `subject.verification` + +## Why this started + +- **trigger** `trigger` + - **value**:冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。 `trigger.value` +- **why** `why` + - **value**:把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。 `why.value` +- **source** `source` + - **source identifier**:BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913 `source.source_id` + - **source role**:DIRECT_HUMAN `source.source_role` + - **source checksum**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `source.source_sha256` + - **source address**:source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention `source.source_uri` + +## What changed + +- **emergence** `emergence` + - **value**:先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。 `emergence.value` +- **lock** `lock` + - **value**:retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200 `lock.value` + +## How it will execute + +This is a non-executable declaration and has no action graph. + +## Boundaries and exception handling + +The native source does not provide this field; the projector does not guess. + +## How completion is proven + +The native source does not provide this field; the projector does not guess. + +## Where to continue next time + +The native source does not provide this field; the projector does not guess. + +## Source and verification + +- **Native declaration identifier**: `TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913` +- **Native declaration kind**: `EVENT` +- **TCS source SHA-256**: `f5df6f8cfd5bc29e5bee286b64330bda41009f006e3ed3767087ce2eb8ae663d` +- **Validation compiler**: `TCS-COMPILER-STAGE1-0001` +- **Projection protocol**: `GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001` + +## Complete native structure cross-reference + +All top-level structures and field paths are retained below so a reader can audit whether the projection omitted information. + +- **emergence** `emergence` + - **value**:先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。 `emergence.value` +- **event_time** `event_time` + - **precision**:SERVER_SECOND `event_time.precision` + - **value**:2026-09-13T18:32:38+08:00 `event_time.value` +- **evidence** `evidence` + - **decision_source_sha256**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `evidence.decision_source_sha256` + - **forgejo_current_backup_sha256**:4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c `evidence.forgejo_current_backup_sha256` + - **old_hololake_world_commit**:d1823008e1401d1875d863109b69f8ed145d4532 `evidence.old_hololake_world_commit` + - **old_lighthouse_commit**:fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f `evidence.old_lighthouse_commit` + - **receipt**:deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json `evidence.receipt` +- **header** `header` + - **canonical source path**:runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs `header.canonical_uri` + - **compatibility** `header.compatibility` + - GH-CVM-MAIN-PROD-01 + - QY-LH-MAIN-PROD-01 + - TCS-0002∞ + - **language**:TCS/0.1 `header.language` + - **lifecycle**:CANDIDATE `header.lifecycle` + - **English name**:Enterprise Gitea Retirement and Forgejo Database Decoupling Completion `header.name_en` + - **Chinese name**:企业Gitea退役与Forgejo数据库解耦完成事件 `header.name_zh` + - **profile**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile` + - **protocols** `header.protocols` + - GLS-0200 + - GLS-0234 + - GLS-0241 + - GLS-0254 + - **schema**:tcs.event/v1 `header.schema` + - **version**:1.0.0 `header.version` +- **lock** `lock` + - **value**:retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200 `lock.value` +- **observation** `observation` + - **value**:旧Gitea含2个仓库且无issue、pull request、release、comment和attachment;两仓库main提交已在Forgejo同名仓库中存在,新旧git fsck均通过。退役时发现现行Forgejo仍依赖旧容器数据库名,健康度曾返回424;已从校验通过的2026-08-08备份恢复至独立PostgreSQL集群,重新登记12个磁盘仓库,当前14个仓库一致且公网端点为200。 `observation.value` +- **rejected** `rejected` + - **values** `rejected.values` + - 继续保留Gitea容器和公网端口 + - 仅因仓库同名就删除旧数据 + - 把1.24GB旧构建与日志压缩包当作必须永久保留的历史 + - 隐瞒数据库耦合导致的424维护事件 + - 用新的Gitea命名继续伪装退役结构 + - 让恢复用临时管理员令牌常驻 +- **source** `source` + - **source identifier**:BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913 `source.source_id` + - **source role**:DIRECT_HUMAN `source.source_role` + - **source checksum**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `source.source_sha256` + - **source address**:source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention `source.source_uri` +- **subject** `subject` + - **channel_id**:ICE-CH-ZC001 `subject.channel_id` + - **subject_id**:GH-CVM-MAIN-PROD-01 `subject.subject_id` + - **subject_kind**:SYSTEM `subject.subject_kind` + - **verification**:企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。 `subject.verification` +- **trigger** `trigger` + - **value**:冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。 `trigger.value` +- **why** `why` + - **value**:把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。 `why.value` + +--- + +This page changes only the reading order; it does not change TCS/HLDP semantics. diff --git a/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.human.zh-CN.md b/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.human.zh-CN.md new file mode 100644 index 0000000..f515082 --- /dev/null +++ b/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.human.zh-CN.md @@ -0,0 +1,122 @@ +# 企业Gitea退役与Forgejo数据库解耦完成事件 · 简体中文人类工程语言版 + +> 这是 TCS/HLDP 原生源码的简体中文阅读投影,不是新的正本,也不授予执行权限。若本页与 `.tcs` 源码不一致,以经过校验的 `.tcs` 源码为准。 + +## 这是什么 + +这是一份 **事件** 声明,编号为 `TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913`,版本为 `1.0.0`。转换器已先用 Stage-1 编译器校验原生源码,再把机器枚举翻译成汉语;原始编号保留在括号和字段路径中。 + +## 谁在这里 + +- **执行主体** `subject` + - **channel_id**:ICE-CH-ZC001 `subject.channel_id` + - **subject_id**:GH-CVM-MAIN-PROD-01 `subject.subject_id` + - **subject_kind**:SYSTEM `subject.subject_kind` + - **verification**:企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。 `subject.verification` + +## 为什么开始 + +- **触发** `trigger` + - **value**:冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。 `trigger.value` +- **为什么** `why` + - **value**:把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。 `why.value` +- **来源** `source` + - **来源编号**:BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913 `source.source_id` + - **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role` + - **来源校验值**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `source.source_sha256` + - **来源地址**:source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention `source.source_uri` + +## 发生了什么变化 + +- **认知或状态变化** `emergence` + - **value**:先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。 `emergence.value` +- **锁定结论** `lock` + - **value**:retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200 `lock.value` + +## 准备怎样执行 + +这是非执行声明,没有动作图。 + +## 边界与异常处理 + +源程序没有提供这一项,转换器不猜。 + +## 怎样算完成 + +源程序没有提供这一项,转换器不猜。 + +## 下一次从哪里继续 + +源程序没有提供这一项,转换器不猜。 + +## 来源与校验 + +- **原生声明编号**:`TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913` +- **原生声明类型**:`EVENT` +- **TCS 源码 SHA-256**:`f5df6f8cfd5bc29e5bee286b64330bda41009f006e3ed3767087ce2eb8ae663d` +- **校验编译器**:`TCS-COMPILER-STAGE1-0001` +- **投影协议**:`GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001` + +## 原生结构逐项对照 + +下面保留源码的全部顶层结构和字段路径,供人类审计投影有没有漏掉信息。 + +- **认知或状态变化** `emergence` + - **value**:先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。 `emergence.value` +- **event_time** `event_time` + - **precision**:SERVER_SECOND `event_time.precision` + - **value**:2026-09-13T18:32:38+08:00 `event_time.value` +- **evidence** `evidence` + - **decision_source_sha256**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `evidence.decision_source_sha256` + - **forgejo_current_backup_sha256**:4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c `evidence.forgejo_current_backup_sha256` + - **old_hololake_world_commit**:d1823008e1401d1875d863109b69f8ed145d4532 `evidence.old_hololake_world_commit` + - **old_lighthouse_commit**:fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f `evidence.old_lighthouse_commit` + - **回执**:deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json `evidence.receipt` +- **语言头** `header` + - **正本路径**:runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs `header.canonical_uri` + - **compatibility** `header.compatibility` + - GH-CVM-MAIN-PROD-01 + - QY-LH-MAIN-PROD-01 + - TCS-0002∞ + - **语言**:TCS/0.1 `header.language` + - **生命周期**:候选版本,尚未成为正式正本(`CANDIDATE`) `header.lifecycle` + - **英文名**:Enterprise Gitea Retirement and Forgejo Database Decoupling Completion `header.name_en` + - **中文名**:企业Gitea退役与Forgejo数据库解耦完成事件 `header.name_zh` + - **协议配置**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile` + - **protocols** `header.protocols` + - GLS-0200 + - GLS-0234 + - GLS-0241 + - GLS-0254 + - **schema**:tcs.event/v1 `header.schema` + - **版本**:1.0.0 `header.version` +- **锁定结论** `lock` + - **value**:retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200 `lock.value` +- **observation** `observation` + - **value**:旧Gitea含2个仓库且无issue、pull request、release、comment和attachment;两仓库main提交已在Forgejo同名仓库中存在,新旧git fsck均通过。退役时发现现行Forgejo仍依赖旧容器数据库名,健康度曾返回424;已从校验通过的2026-08-08备份恢复至独立PostgreSQL集群,重新登记12个磁盘仓库,当前14个仓库一致且公网端点为200。 `observation.value` +- **已排除路径** `rejected` + - **values** `rejected.values` + - 继续保留Gitea容器和公网端口 + - 仅因仓库同名就删除旧数据 + - 把1.24GB旧构建与日志压缩包当作必须永久保留的历史 + - 隐瞒数据库耦合导致的424维护事件 + - 用新的Gitea命名继续伪装退役结构 + - 让恢复用临时管理员令牌常驻 +- **来源** `source` + - **来源编号**:BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913 `source.source_id` + - **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role` + - **来源校验值**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `source.source_sha256` + - **来源地址**:source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention `source.source_uri` +- **执行主体** `subject` + - **channel_id**:ICE-CH-ZC001 `subject.channel_id` + - **subject_id**:GH-CVM-MAIN-PROD-01 `subject.subject_id` + - **subject_kind**:SYSTEM `subject.subject_kind` + - **verification**:企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。 `subject.verification` +- **触发** `trigger` + - **value**:冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。 `trigger.value` +- **为什么** `why` + - **value**:把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。 `why.value` + +--- + +本页只改变阅读顺序,不改变 TCS/HLDP 语义。 diff --git a/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs b/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs new file mode 100644 index 0000000..4aadb77 --- /dev/null +++ b/runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs @@ -0,0 +1,15 @@ +TCS 0.1; + +EVENT TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913 { + header { schema = "tcs.event/v1"; name_zh = "企业Gitea退役与Forgejo数据库解耦完成事件"; name_en = "Enterprise Gitea Retirement and Forgejo Database Decoupling Completion"; version = "1.0.0"; language = "TCS/0.1"; profile = "HLDP-HUMAN-ENGINEERING/0.1"; protocols = ["GLS-0200", "GLS-0234", "GLS-0241", "GLS-0254"]; lifecycle = "CANDIDATE"; canonical_uri = "runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs"; compatibility = ["GH-CVM-MAIN-PROD-01", "QY-LH-MAIN-PROD-01", "TCS-0002∞"]; } + source { source_id = "BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913"; source_uri = "source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention"; source_sha256 = "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e"; source_role = "DIRECT_HUMAN"; } + subject { subject_id = "GH-CVM-MAIN-PROD-01"; subject_kind = "SYSTEM"; channel_id = "ICE-CH-ZC001"; verification = "企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。"; } + event_time { value = "2026-09-13T18:32:38+08:00"; precision = "SERVER_SECOND"; } + trigger { value = "冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。"; } + observation { value = "旧Gitea含2个仓库且无issue、pull request、release、comment和attachment;两仓库main提交已在Forgejo同名仓库中存在,新旧git fsck均通过。退役时发现现行Forgejo仍依赖旧容器数据库名,健康度曾返回424;已从校验通过的2026-08-08备份恢复至独立PostgreSQL集群,重新登记12个磁盘仓库,当前14个仓库一致且公网端点为200。"; } + emergence { value = "先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。"; } + lock { value = "retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200"; } + why { value = "把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。"; } + rejected { values = ["继续保留Gitea容器和公网端口", "仅因仓库同名就删除旧数据", "把1.24GB旧构建与日志压缩包当作必须永久保留的历史", "隐瞒数据库耦合导致的424维护事件", "用新的Gitea命名继续伪装退役结构", "让恢复用临时管理员令牌常驻"] ; } + evidence { decision_source_sha256 = "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e"; old_hololake_world_commit = "d1823008e1401d1875d863109b69f8ed145d4532"; old_lighthouse_commit = "fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f"; forgejo_current_backup_sha256 = "4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c"; receipt = "deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json"; } +}