|
24114
|
chore(reports): 内核退回 pin 立项的二十八份静态证据 回绑 @ 65b0b33, chore(reports): 内核退回 pin 立项的二十八份静态证据 回绑 @ 65b0b33,刷新快照锚点...
|
76
|
5
|
governance.yml
|
66
|
5
|
0
|
refs/heads/main
|
117a379da5e5d31ea07d5b61eb2dcdfce479d5db
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8f5cd7985999b41d324ba9c2216daf1ad49ca002","after":"117a379da5e5d31ea07d5b61eb2dcdfce479d5db","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/8f5cd7985999b41d324ba9c2216daf1ad49ca002...117a379da5e5d31ea07d5b61eb2dcdfce479d5db","commits":[{"id":"117a379da5e5d31ea07d5b61eb2dcdfce479d5db","message":"chore(reports): 内核退回 pin 立项的二十八份静态证据 回绑 @ 65b0b33,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 65b0b33(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=65b0b33、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次只立项、不动代码:内核仍是仓内 0.1.0 拷贝,F8 / F11 仍登记为 missing(期限\n2026-12-18 未变),replacementPlan 改为指向立项书。fork-readiness 的\nframeworkCriteriaCoverage 保持 declared 14 / registeredMissing 3 / 交叉核对 verified。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/117a379da5e5d31ea07d5b61eb2dcdfce479d5db","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T01:52:57-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"65b0b33923bcebdf42aed903963afe2ce4c0a2e1","message":"docs(planning): 内核退回 pin 立项——硬前提已验证,真正要判断的只有四个模块\n\nframework-criteria.json 里 F8 / F11 两条 missing 都指向同一件事:本仓持有一份框架 0.1.0 的\n内核拷贝,既不受任何来源门禁约束,也无法表达「落后几代」。本立项把它改为 exact pin\n@juhai/kernel。\n\n硬前提今天全部满足(实测):\n- @juhai/kernel 在 registry 上有 0.16.0 / 0.16.1 / 0.22.0;本仓 .npmrc 已声明 @juhai:registry\n- migration:plan --mode sync 实测 0.1.0 → 0.22.0 共 139 冲突,落在 packages/contracts 的只有 5 处\n- tenant.ts 三步拆分后 tenant 之名已腾空,同名不同义只剩 rls.ts 一处\n\n十五个内核模块四分类(按导出名集合求交):\n 直接 pin 5 statemachine 100% · replay 100% · realtime-stats 100% · realtime-command 90% · subscription 81%\n 需合并 3 realtime 57% · job 28% · health 25%\n 同名不相干 1 rls.ts ↔ 框架 tenant-rls.ts,重合 0%\n 净迁入 6 replay-buffer · tenant · api-error · request-context · platform-ports · alert\n\n**真正要做判断的只有 4 个模块**,其余是白拿或补齐。净迁入里 platform-ports(31 导出)\n是关键:写链前经权限端口决策 + 成功写入同事务 audit.append、生产未设 PLATFORM_PORTS_MODE\n即 fail-closed——本仓分叉于框架 0.1.0、从未见过这组端口,才各自造了一套 permission/audit。\n迁入后自建实现塞进本地实现位,将来换控制面 client 时接口不变:错层资产的迁移从「大手术」\n降为「接插座」。\n\n路径选 ②(pin)不选 ①(继续 sync):① 每次框架发版都要三方合并内核,而本仓已积压 22 个\n版本 / 139 冲突——那正是脱轨的形成机制;② 之后只需 bump 版本,且让内核来源进入\ncheck:platform-provenance 的判据面(今天内核是仓内源码,没有任何门禁能判定它是什么版本)。\n\n立项先挂一条待裁决:框架 F11 要求 pin 等于本仓 package.json.version(框架版本轴 = 内核\n版本轴),这对派生仓不成立——本仓 version 停在 0.1.0、0 个 tag。建议 A 案(本仓建版本轴,\nF11 改判「pin 等于迁移凭证里的 frameworkVersion」),顺带解掉缺失梳理 §4.4「产品仓只能按\ngitSha 钉 OS」;B 案(向框架提 FR 区分两种形态)可作回灌。\n\n分六批 B0—B5,逐批退出门写在 §5;风险五条写在 §6,其中 0.15.0 的作业 API 破坏性变更\n(job 重合仅 28%)与两套 RLS 二选一是最硬的两处。§7 显式登记本立项不做的事:不改自建\npermission/audit 的实现,替换另起一线且前置是控制面客户端发布**并有 CI 阶段门证据**。\n\n同步:framework-criteria.json 的 F8 / F11 replacementPlan 指向本立项;CLAUDE.md 可迁移性节\n加立项指针与要点。立项书内不做跨仓链接(c433d57 已清理过一轮仓外链接)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/65b0b33923bcebdf42aed903963afe2ce4c0a2e1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T01:51:25-07:00","added":["docs/planning/内核退回pin立项-2026-09-18.md"],"removed":[],"modified":["CLAUDE.md","framework-criteria.json"]}],"total_commits":0,"head_commit":{"id":"117a379da5e5d31ea07d5b61eb2dcdfce479d5db","message":"chore(reports): 内核退回 pin 立项的二十八份静态证据 回绑 @ 65b0b33,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 65b0b33(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=65b0b33、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次只立项、不动代码:内核仍是仓内 0.1.0 拷贝,F8 / F11 仍登记为 missing(期限\n2026-12-18 未变),replacementPlan 改为指向立项书。fork-readiness 的\nframeworkCriteriaCoverage 保持 declared 14 / registeredMissing 3 / 交叉核对 verified。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/117a379da5e5d31ea07d5b61eb2dcdfce479d5db","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T01:52:57-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":86191,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T16:44:39+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789721583
|
1789721613
|
0
|
1789721581
|
1789721734
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24116
|
chore(reports): B0 裁决的二十八份静态证据 回绑 @ 1f74faa,刷新快照锚点
|
76
|
5
|
governance.yml
|
68
|
5
|
0
|
refs/heads/main
|
ee4bc06608d88515f025c3a2dcffacb9f47c5417
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"117a379da5e5d31ea07d5b61eb2dcdfce479d5db","after":"ee4bc06608d88515f025c3a2dcffacb9f47c5417","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/117a379da5e5d31ea07d5b61eb2dcdfce479d5db...ee4bc06608d88515f025c3a2dcffacb9f47c5417","commits":[{"id":"ee4bc06608d88515f025c3a2dcffacb9f47c5417","message":"chore(reports): B0 裁决的二十八份静态证据 回绑 @ 1f74faa,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 1f74faa(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=1f74faa、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\nB0 只落裁决未改代码,故 fork-readiness 的 frameworkCriteriaCoverage 不变:declared 14 /\nregisteredMissing 3(F8 / F11 / F14)/ 交叉核对 verified。F11 现挂 adjudication:\"B0\",\n但按 B0 口径实现的 F11 断言要到 B5 才落——在那之前 F11 仍是诚实的 missing。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/ee4bc06608d88515f025c3a2dcffacb9f47c5417","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T01:58:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"1f74faae838116a4d546b0edaf75f4fcba026cfc","message":"docs(决策): B0 裁决 A2——F11 对派生仓改判为「pin == 凭证 source.frameworkVersion」\n\n内核退回 pin 立项 §4 挂的那条口径已裁。框架 F11 断言「@juhai/kernel 的 pin 必须等于本仓\npackage.json.version」(框架版本轴 = 内核版本轴),这条对框架自身成立,对本仓不成立:\n本仓 version 停在 0.1.0、0 个 tag,而根版本同时要服务「产品仓钉 OS」。\n\n**裁为 A2:本仓建立自己的版本轴;F11 迁入时改判为**\n\n contracts 对 @juhai/kernel 的 exact pin 必须等于\n reports/framework-migration.latest.json 的 source.frameworkVersion\n\n三条理由:\n- F11 的意图是「pin 与所同步的框架版本一致、落后几代可判定」,用凭证里的\n source.frameworkVersion 表达同样成立,且不强求派生仓与框架共用版本号\n- 若照框架原文把根版本设成 0.22.0,产品仓钉的「OS 版本」其实是框架版本,\n 缺失梳理 §4.4 不但没解决,还被永久占用\n- **该字段凭证里已经有**(record-migration.mjs 从源仓 package.json 读取),本口径\n 不需要新增任何东西——这是选 A2 而非提 FR 阻塞的关键\n\n**不照控制面先例的原因是形态不同。** 企业控制面走的是拆根:runtime/package.json 版本\n直接设为框架版本 0.22.0,故 F11 原文成立;仓根 0.1.0 与 contracts/ 1.0.0-rc.3 各留自己的\n版本。本仓是单 pnpm 根,用不了这个办法;改多根(立项 §4 的 A3)会牵动 turbo 布局、\n13 个 typecheck 任务与所有门禁的路径假设,不在这条线上做。\n\n**版本轴起点同批裁为「留到 B5 定」**:版本号要到 B5 签凭证、真正对外表达兼容范围时才\n用得上,那时内核换源的实际破坏面已清楚,定起点更有依据;现在定等于凭空拍。\n\n落点:framework-criteria.json 新增 adjudications.B0(含 assertion / rationale / precedent /\ndeferred / upstreamFeedback 五段),F11 挂 adjudication:\"B0\" 引用;立项书 §4 标已裁决、\n§5 的 B0 行标完成。CLAUDE.md 可迁移性节同步。\n\nB5 退出门顺带补两项:① 定版本轴起点(B0 顺延项);② check:fork-readiness 按本裁决实现\nF11 断言时,同时加一条 adjudication 引用完整性判据——criteria.\u003cid\u003e.adjudication 指向的 key\n必须存在于 adjudications,防悬空引用,与 D4 防「空口宣称」同型。本批按立项 §5 不改代码,\n故该判据留到 B5 一并落。\n\n上游回灌(不阻塞):可向框架提 FR,让 F11 区分「框架仓」与「派生仓」两种形态。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1f74faae838116a4d546b0edaf75f4fcba026cfc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T01:56:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/planning/内核退回pin立项-2026-09-18.md","framework-criteria.json"]}],"total_commits":0,"head_commit":{"id":"ee4bc06608d88515f025c3a2dcffacb9f47c5417","message":"chore(reports): B0 裁决的二十八份静态证据 回绑 @ 1f74faa,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 1f74faa(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=1f74faa、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\nB0 只落裁决未改代码,故 fork-readiness 的 frameworkCriteriaCoverage 不变:declared 14 /\nregisteredMissing 3(F8 / F11 / F14)/ 交叉核对 verified。F11 现挂 adjudication:\"B0\",\n但按 B0 口径实现的 F11 断言要到 B5 才落——在那之前 F11 仍是诚实的 missing。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/ee4bc06608d88515f025c3a2dcffacb9f47c5417","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T01:58:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":86443,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T16:53:02+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789721901
|
1789722070
|
0
|
1789721899
|
1789722085
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24118
|
docs(计划): 订正 contracts:check 的登记,并登记偏差 #37 / #38
|
117
|
5
|
governance.yml
|
65
|
5
|
0
|
refs/heads/main
|
6b045590e6ba93dd703453bc478b3b6c879491f3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d5323e2b149e012cd3340f330a860c232d285738","after":"6b045590e6ba93dd703453bc478b3b6c879491f3","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/d5323e2b149e012cd3340f330a860c232d285738...6b045590e6ba93dd703453bc478b3b6c879491f3","commits":[{"id":"6b045590e6ba93dd703453bc478b3b6c879491f3","message":"docs(计划): 订正 contracts:check 的登记,并登记偏差 #37 / #38\n\n#38:真实 Catalog 的治理判定不在任何自动流里。contracts/scripts/check.mjs 只在\ncontracts check 里,链与 CI 用的都是 check:local。挡它在链外的历史理由(余 6 项待\nCHG-001)经实测已全部通过——又一次「条件早已满足而无人察觉」。\n\n#37:CHG-007 立的「闸门 blocked_by vs 溯源 decided_by」只应用在 facts 的一条事实上,\nrelationships 与 scopes 仍有 4 条阻断声明指向已批准的 DEC-002 / DEC-004,且当时没留\n探测器。改 Catalog 归 Catalog Owner,本轮只登记不改数据;也没给 linter 加探测器,\n因为给一道没人跑的门禁加规则是无用功,次序上要先解决 #38。\n\n同时订正前一轮把 contracts:check 登记成 tool 的错误,并记下本轮一次把并行会话文件\n卷进自己提交的操作事故与修正过程。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/6b045590e6ba93dd703453bc478b3b6c879491f3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:05:35-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"6b045590e6ba93dd703453bc478b3b6c879491f3","message":"docs(计划): 订正 contracts:check 的登记,并登记偏差 #37 / #38\n\n#38:真实 Catalog 的治理判定不在任何自动流里。contracts/scripts/check.mjs 只在\ncontracts check 里,链与 CI 用的都是 check:local。挡它在链外的历史理由(余 6 项待\nCHG-001)经实测已全部通过——又一次「条件早已满足而无人察觉」。\n\n#37:CHG-007 立的「闸门 blocked_by vs 溯源 decided_by」只应用在 facts 的一条事实上,\nrelationships 与 scopes 仍有 4 条阻断声明指向已批准的 DEC-002 / DEC-004,且当时没留\n探测器。改 Catalog 归 Catalog Owner,本轮只登记不改数据;也没给 linter 加探测器,\n因为给一道没人跑的门禁加规则是无用功,次序上要先解决 #38。\n\n同时订正前一轮把 contracts:check 登记成 tool 的错误,并记下本轮一次把并行会话文件\n卷进自己提交的操作事故与修正过程。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/6b045590e6ba93dd703453bc478b3b6c879491f3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:05:35-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":9814,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-18T16:52:27+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789722339
|
1789722355
|
0
|
1789722339
|
1789722355
|
|
|
0
|
Edit
Delete
|
|
24120
|
chore(reports): B1 的二十八份静态证据 回绑 @ fb2fb1a,刷新快照锚点
|
76
|
5
|
governance.yml
|
70
|
5
|
0
|
refs/heads/main
|
fd3ba87ed111d9245012f0578178cccb4743ab20
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ee4bc06608d88515f025c3a2dcffacb9f47c5417","after":"fd3ba87ed111d9245012f0578178cccb4743ab20","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/ee4bc06608d88515f025c3a2dcffacb9f47c5417...fd3ba87ed111d9245012f0578178cccb4743ab20","commits":[{"id":"fd3ba87ed111d9245012f0578178cccb4743ab20","message":"chore(reports): B1 的二十八份静态证据 回绑 @ fb2fb1a,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 fb2fb1a(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=fb2fb1a、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次内两把锁各重签一次,都是「变更即复核」而非绕过:\n- kernel.exports.lock.json 763 → 755(statemachine 的 8 个导出归属转移给 @juhai/kernel)\n- check:kernel-downstream 的仓外夹具改为携带 scoped registry 后转绿;缺声明即 fail-closed\n 的分支已实活验证\n\n运行态未跑:B1 只动契约包的一个转发文件,contracts 312/312 与 typecheck 13/13 已覆盖;\n按仓规矩三级证据分开陈述,不用静态绿冒充运行态绿。runtime 报告仍绑在 dcd1c14,\n下次动到两后端(B3′ 采纳上游加固)时必须重跑。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fd3ba87ed111d9245012f0578178cccb4743ab20","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:08:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"fb2fb1a730a522c6210afc0223c84aaa6946194d","message":"feat(contracts): B1 内核首次 exact pin @juhai/kernel@0.22.0,statemachine 改为转发\n\nB1 的目的是**验证机制**,不是搬最多的代码:装包、转发、门禁、锁四条链路全走一遍,\n用唯一可证明零行为变化的模块做载体。\n\n- packages/contracts exact pin @juhai/kernel@0.22.0(registry 上有 0.16.0/0.16.1/0.22.0)\n- statemachine.ts 改为**具名**转发 8 个符号。不用 `export * from \"@juhai/kernel\"`:\n 收口前本仓还留着 10 个未迁内核模块,整体 re-export 会与它们的同名导出冲突\n- 机制验证结果:typecheck 13/13 · contracts 312/312(statemachine.test.ts 打的就是转发后的\n 实现)· 整轮 28 步前 27 绿 · **check:platform-provenance 接受新 pin**(lock 解析到 Gitea\n registry tarball)· 所有权锁 763 → 755,8 个导出的归属转移给内核包\n\n**开工即修正一处自己的判断。** 上一轮我把五个模块叫「白拿」,依据只到导出名重合率。\n逐文件 diff 后:**只有 statemachine 逐字一致**(104 行 diff 0),其余四个实现都不同,\n且方向一致——框架领先、本仓落后,落后的正好是加固:\n\n replay 框架有 maxSeq + 「游标超前于现存最大 seq ⇒ 报缺口(cursor-unknown)」,\n 本仓没有 ⇒ 伪造/串号游标被静默判成「已追平」,客户端永远收不到补发;\n 框架同时修了契约文件内部自相矛盾的 dispatchedAt 注释\n realtime-command 框架有 REALTIME_WS_MAX_PAYLOAD_BYTES,本仓 WS 载荷无上限\n subscription 框架有 REALTIME_MAX_SUBSCRIPTION_IDS/_TYPES,本仓订阅列表无上限\n realtime-stats 本仓是严格超集(多 10 个死信域导出),采纳时要保留\n\n前两类偏 DoS 面。这四个不是「白拿」而是「采纳上游加固」,要改两后端并重跑运行态,\n已从 B1 移入 B3′。立项 §2 加了修正块、§5 改了批次表。\n\n**两处实测新增风险(立项 §6):**\n\n一、跨层 peer 不一致。已发布的 @juhai/client-fact@1.0.0-rc.3 声明 peer @juhai/kernel: 0.16.1\n(lockfile 权威),而控制面仓里**同版本的源码**声明 0.22.0——控制面昨天做框架同步时改了\n源码却没重新发布。本仓 pin 0.22.0 后 pnpm install 报 unmet peer(警告,不阻断),\n**且现有门禁一条都抓不到**。三条出路(等平台重发 / 本仓退回 0.16.1 / 登记偏差并加 peer\n判据)本提交不代为决定,登记在立项 §6 等裁。\n\n二、pin 的下游代价,由 check:kernel-downstream 第一时间抓到:它在仓外装 contracts 以证明\n下游可消费,而仓外没有 .npmrc,@juhai/kernel 落到 npmjs.org 上 404。这不是门禁的毛病,\n是 pin 的真实代价——**任何消费方不配 @juhai scoped registry 就装不上**(框架 F11 原文同样\n这么声明)。处理:夹具复制仓内 .npmrc 的 scoped registry 行,把断言坐实为「配了 registry\n的消费者装得上」;并在「pin 了 @juhai/* 却无 registry 声明」时 **fail-closed**,绝不静默\n回落到公共 registry(实活验证:去掉声明即 D4 红)。新前提已写进接入手册,五个产品仓\n迁移时要同步配置。\n\n顺带一个可复用的性质:check:kernel-admission 的 K1 只计**直接声明**,所以每迁走一个模块,\n锁里的自有导出数就降一次——它天然成了这条线的进度计(763 → 755)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fb2fb1a730a522c6210afc0223c84aaa6946194d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:06:23-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.exports.lock.json","packages/contracts/package.json","packages/contracts/src/statemachine.ts","pnpm-lock.yaml","scripts/check-kernel-downstream.mjs"]}],"total_commits":0,"head_commit":{"id":"fd3ba87ed111d9245012f0578178cccb4743ab20","message":"chore(reports): B1 的二十八份静态证据 回绑 @ fb2fb1a,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 fb2fb1a(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=fb2fb1a、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次内两把锁各重签一次,都是「变更即复核」而非绕过:\n- kernel.exports.lock.json 763 → 755(statemachine 的 8 个导出归属转移给 @juhai/kernel)\n- check:kernel-downstream 的仓外夹具改为携带 scoped registry 后转绿;缺声明即 fail-closed\n 的分支已实活验证\n\n运行态未跑:B1 只动契约包的一个转发文件,contracts 312/312 与 typecheck 13/13 已覆盖;\n按仓规矩三级证据分开陈述,不用静态绿冒充运行态绿。runtime 报告仍绑在 dcd1c14,\n下次动到两后端(B3′ 采纳上游加固)时必须重跑。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fd3ba87ed111d9245012f0578178cccb4743ab20","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:08:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":86698,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T16:58:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789722485
|
1789722493
|
0
|
1789722483
|
1789722525
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24123
|
chore(reports): PEER_UNSATISFIED 判据的二十八份静态证据 回绑 @ chore(reports): PEER_UNSATISFIED 判据的二十八份静态证据 回绑 @ 8e5c633,刷新快照锚点...
|
76
|
5
|
governance.yml
|
72
|
5
|
0
|
refs/heads/main
|
3deb4ea37b83c2e2977c9c2b8e8166c101002860
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd3ba87ed111d9245012f0578178cccb4743ab20","after":"3deb4ea37b83c2e2977c9c2b8e8166c101002860","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/fd3ba87ed111d9245012f0578178cccb4743ab20...3deb4ea37b83c2e2977c9c2b8e8166c101002860","commits":[{"id":"3deb4ea37b83c2e2977c9c2b8e8166c101002860","message":"chore(reports): PEER_UNSATISFIED 判据的二十八份静态证据 回绑 @ 8e5c633,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 8e5c633(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=8e5c633、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\nplatform-dependency-provenance 报告新增一处 registered:PEER_UNSATISFIED(client-fact\nrc.3 的 peer 0.16.1 ↔ 本仓已解析 0.22.0),期限 2026-12-18。门禁整体仍绿——登记的作用是\n把「pnpm 只打 WARN、门禁零覆盖」变成「可见、有期限、到期转红」,不是让它消失。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3deb4ea37b83c2e2977c9c2b8e8166c101002860","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:38:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"8e5c633cbfbc16afc61c95b8cfcecb90a2f1aa88","message":"feat(governance): PEER_UNSATISFIED 判据——把 pnpm 只打 WARN 的跨包版本不一致变成可见可登记\n\nB1 pin @juhai/kernel@0.22.0 后 pnpm 报了一行 unmet peer 就继续装,**本仓原有门禁一条都\n抓不到**。按内核退回 pin 立项 §6 三条出路裁为 ③(登记偏差 + 加判据,不停等发布列车)。\n\n新判据 PEER_UNSATISFIED:lock 里 @juhai/* 之间声明的 peer 必须被已解析版本满足;\n未满足即红,可按既有五字段口径登记降级为 registered,过期转红。peer 指向本仓根本没装的\n包时不判(防过度判红)。自检从 7 条扩到 12 条,新增 5 条全覆盖上述分支。\n\n实测命中一条真问题,并顺带拆出更深的一层:\n\n- 已发布的 @juhai/client-fact@1.0.0-rc.3 声明 peer @juhai/kernel: 0.16.1(发布物自证),\n 而控制面仓里**同版本的源码**声明 0.22.0——2026-09-17 框架同步只改了 package.json 没重发\n- 把 registry 上的 rc.3 拆开看:dist 里**没有** Authorization 回查鉴权,而源码 reader.ts:31\n 发 Bearer ${token}。**同一个版本号,registry 与源码是两份不同的代码**\n- 该发布物 provenance.json 为 runner:\"local\" / reports:[] / **gitSha:\"\"**——空字符串。\n 任何消费者都无法验证装到的包出自哪次提交,上一条「同版本不同内容」因此无法被机器发现\n\n不兼容风险经 delta 分析可论证为极低:内核 v0.16.1 → v0.22.0 只改 health.ts(+126)、\nalert.ts(+53)、tenant.ts(+12) 三处纯增,client-fact 一个都不消费。故登记而非阻断,\n期限 2026-12-18,blockedBy 指向平台发布列车(G-12 计费阻塞)。\n\n为什么不选另两条路(立项 §6 已记):② 退回 pin 0.16.1 的当前代价几乎为零——三处加固\n(replay cursor-unknown、WS 载荷上限、订阅数上限)**实测都已在 v0.16.1 里**,我上一轮说\n「退回等于放弃 6 个版本加固」是错的——但它是伪解,B2 要迁 alert/tenant、B3 要迁 health 时\npeer 冲突原样回来;① 等平台重发会把本仓进度挂在不可控的跨仓列车上,且若仍走本地旁路,\nprovenance 依旧无 gitSha,只解决 peer 不解决可对账性。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/8e5c633cbfbc16afc61c95b8cfcecb90a2f1aa88","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:37:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","governance/platform-dependency-deviations.json","scripts/check-platform-dependency-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"3deb4ea37b83c2e2977c9c2b8e8166c101002860","message":"chore(reports): PEER_UNSATISFIED 判据的二十八份静态证据 回绑 @ 8e5c633,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 8e5c633(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=8e5c633、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\nplatform-dependency-provenance 报告新增一处 registered:PEER_UNSATISFIED(client-fact\nrc.3 的 peer 0.16.1 ↔ 本仓已解析 0.22.0),期限 2026-12-18。门禁整体仍绿——登记的作用是\n把「pnpm 只打 WARN、门禁零覆盖」变成「可见、有期限、到期转红」,不是让它消失。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3deb4ea37b83c2e2977c9c2b8e8166c101002860","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:38:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87099,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T17:08:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789724337
|
1789724347
|
0
|
1789724335
|
1789724362
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24125
|
test(治理): L6 的判定搬进 core 并补负向用例——它此前是唯一零覆盖的一条
|
117
|
5
|
governance.yml
|
66
|
5
|
0
|
refs/heads/main
|
7433af77e643c41f2ccb34fb8aebe363ec76e306
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6b045590e6ba93dd703453bc478b3b6c879491f3","after":"7433af77e643c41f2ccb34fb8aebe363ec76e306","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/6b045590e6ba93dd703453bc478b3b6c879491f3...7433af77e643c41f2ccb34fb8aebe363ec76e306","commits":[{"id":"7433af77e643c41f2ccb34fb8aebe363ec76e306","message":"test(治理): L6 的判定搬进 core 并补负向用例——它此前是唯一零覆盖的一条\n\n一致性门禁 L1—L5 / L7—L13 的判定都在 lib/workspace-consistency-core.mjs 里、各有负向\n用例,**唯独 L6(worktree 两侧 gitdir)与文件系统读取缠在 check-workspace-consistency.mjs\n里**,全量扫描确认 tests/ 里没有任何一条用例触达它。它「能工作」的唯一证据是恰好没在\n实数据上报错——而「没报错」与「判不出来」在外部看来一模一样。\n\n本轮只搬不改:IO 函数改为只收集事实,判定交给新的纯函数 evaluateWorktreeGitdirs。\n**判词逐字未变,改前改后门禁 --json 输出实测完全相同**(status / counts / issues 三者\n逐字相等,prunableWorktrees 仍为 5、L9 仍为 1)。\n\n补 8 条负向用例,覆盖两个方向的全部分支:\n 方向一 .git 为空 / 指向不存在的登记 / 登记反指不回来(含反指读不出时须写「(空)」);\n 三种坏法互斥,前一种命中不再叠加后一种\n 方向二 gitdir 为空即红;目标还在就跳过(反指归方向一,不重复报);\n **目标没了且旁边没有同名工作树 = prunable,只计数不报**——那是 git worktree\n prune 的日常;目标没了但工作树就在旁边 = 失联,判红且不计入 prunable\n\n顺带核实两条初测假阳性,记在这里免得再查一遍:L9 的判定其实在 core 里且有用例\n(composeProjectName / composeProjectCollisions),只是测试里不出现「L9」这个字面量;\nL0 与 L28 是正则误匹配(一个字符类、一处注释里的行号)。\n\n一致性门禁测试 34 → 42,治理层全量 389 → 401(395 过 / 6 跳 / 0 失败);\n统一入口阻断性门禁 11/11。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/7433af77e643c41f2ccb34fb8aebe363ec76e306","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:39:16-07:00","added":[],"removed":[],"modified":["平台治理/基础/scripts/check-workspace-consistency.mjs","平台治理/基础/scripts/lib/workspace-consistency-core.mjs","平台治理/基础/tests/workspace-consistency.test.mjs"]},{"id":"1e6a813a72945400129128947654df4ecdc8849d","message":"docs(回灌): U-39 / U-40——发布物与源码同版本不同内容,且 provenance 无 gitSha\n\n新增 §2E 第 5 轮条目(基础基座 → 基础设施)。采集自 OS 执行「内核退回 pin 立项」B1\n(contracts exact pin @juhai/kernel@0.22.0)时对接已发布客户端包的实测。\n\nU-39 发布物与其源码同版本不同内容,peer 只是露出来的一角。已发布的\n @juhai/client-fact@1.0.0-rc.3 声明 peer @juhai/kernel: 0.16.1(发布物自证),而控制面仓\n 同版本源码声明 0.22.0——2026-09-17 框架同步只改了 runtime/clients/fact/package.json 未重发。\n 进一步拆开发布物:dist 里没有 Authorization 回查鉴权,源码 reader.ts:31 却发\n Bearer ${token}。消费侧对此完全不可见:pnpm 对未满足 peer 只打一行 WARN 就继续装。\n → 平台侧动作:重发 rc.4 携带正确 peer,发布前确认 dist 与源码同一提交。\n 基座侧已自保:新增 PEER_UNSATISFIED 判据 + 五字段登记(期限 2026-12-18)。\n\nU-40 本地旁路发布的发布物不可对账到提交。registry 上 rc.3 的 provenance.json 为\n runner:\"local\" / reports:[] / gitSha:\"\"——空字符串。任何消费者都无法验证装到的包出自哪次\n 提交,U-39 那种「同版本不同内容」因此无法被机器发现。这比 peer 错一版严重:peer 至少还有\n 一个可比的值,gitSha 为空是判据缺席。\n → 平台侧动作:发布物 provenance.json 必须带真实 gitSha,本地旁路也不得留空——旁路可以解除\n CI 身份检查,但不应连「这是哪次提交构建的」都放弃。\n\n两条均标 🔴 下层缺口,阻塞于平台发布列车(G-12 计费)。基座侧不停等:按立项 §6 三条出路\n裁为 ③(登记偏差 + 加判据),B2 / B3′ 继续推进。\n\n一致性门禁复跑:合计 1 条,仅 L9(8 仓共用 compose project api-nestjs),与本次改动无关——\n它正是 OS 在 framework-criteria.json 里登记为 missing 的框架 F14。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/1e6a813a72945400129128947654df4ecdc8849d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:39:13-07:00","added":[],"removed":[],"modified":["平台治理/基础/上层对接经验回灌台账.md"]}],"total_commits":0,"head_commit":{"id":"7433af77e643c41f2ccb34fb8aebe363ec76e306","message":"test(治理): L6 的判定搬进 core 并补负向用例——它此前是唯一零覆盖的一条\n\n一致性门禁 L1—L5 / L7—L13 的判定都在 lib/workspace-consistency-core.mjs 里、各有负向\n用例,**唯独 L6(worktree 两侧 gitdir)与文件系统读取缠在 check-workspace-consistency.mjs\n里**,全量扫描确认 tests/ 里没有任何一条用例触达它。它「能工作」的唯一证据是恰好没在\n实数据上报错——而「没报错」与「判不出来」在外部看来一模一样。\n\n本轮只搬不改:IO 函数改为只收集事实,判定交给新的纯函数 evaluateWorktreeGitdirs。\n**判词逐字未变,改前改后门禁 --json 输出实测完全相同**(status / counts / issues 三者\n逐字相等,prunableWorktrees 仍为 5、L9 仍为 1)。\n\n补 8 条负向用例,覆盖两个方向的全部分支:\n 方向一 .git 为空 / 指向不存在的登记 / 登记反指不回来(含反指读不出时须写「(空)」);\n 三种坏法互斥,前一种命中不再叠加后一种\n 方向二 gitdir 为空即红;目标还在就跳过(反指归方向一,不重复报);\n **目标没了且旁边没有同名工作树 = prunable,只计数不报**——那是 git worktree\n prune 的日常;目标没了但工作树就在旁边 = 失联,判红且不计入 prunable\n\n顺带核实两条初测假阳性,记在这里免得再查一遍:L9 的判定其实在 core 里且有用例\n(composeProjectName / composeProjectCollisions),只是测试里不出现「L9」这个字面量;\nL0 与 L28 是正则误匹配(一个字符类、一处注释里的行号)。\n\n一致性门禁测试 34 → 42,治理层全量 389 → 401(395 过 / 6 跳 / 0 失败);\n统一入口阻断性门禁 11/11。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/7433af77e643c41f2ccb34fb8aebe363ec76e306","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:39:16-07:00","added":[],"removed":[],"modified":["平台治理/基础/scripts/check-workspace-consistency.mjs","平台治理/基础/scripts/lib/workspace-consistency-core.mjs","平台治理/基础/tests/workspace-consistency.test.mjs"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":9859,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-18T17:05:39+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789724364
|
1789724381
|
0
|
1789724358
|
1789724381
|
|
|
0
|
Edit
Delete
|
|
24126
|
docs(治理): README 订正——「判定逻辑在 core」这句话此前对 L6 并不成立
|
117
|
5
|
governance.yml
|
67
|
5
|
0
|
refs/heads/main
|
72c053ccbb2b4effb1451b6b61e69faf9c313fd5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7433af77e643c41f2ccb34fb8aebe363ec76e306","after":"72c053ccbb2b4effb1451b6b61e69faf9c313fd5","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/7433af77e643c41f2ccb34fb8aebe363ec76e306...72c053ccbb2b4effb1451b6b61e69faf9c313fd5","commits":[{"id":"72c053ccbb2b4effb1451b6b61e69faf9c313fd5","message":"docs(治理): README 订正——「判定逻辑在 core」这句话此前对 L6 并不成立\n\n第 49 行写着「判定逻辑在 workspace-consistency-core.mjs,夹具用例 19/19」。前半句对\nL6 是假的(它的判定与文件系统读取缠在 IO 脚本里、测试零覆盖),后半句的 19 也早已陈旧。\n\nL6 的判定已于同日搬进 core 并补 8 条用例,这句话现在成立了;数字改为当前的 42,\n并写明这条例外曾经存在——免得下一个人以为一直如此。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/72c053ccbb2b4effb1451b6b61e69faf9c313fd5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:39:56-07:00","added":[],"removed":[],"modified":["平台治理/基础/README.md"]}],"total_commits":0,"head_commit":{"id":"72c053ccbb2b4effb1451b6b61e69faf9c313fd5","message":"docs(治理): README 订正——「判定逻辑在 core」这句话此前对 L6 并不成立\n\n第 49 行写着「判定逻辑在 workspace-consistency-core.mjs,夹具用例 19/19」。前半句对\nL6 是假的(它的判定与文件系统读取缠在 IO 脚本里、测试零覆盖),后半句的 19 也早已陈旧。\n\nL6 的判定已于同日搬进 core 并补 8 条用例,这句话现在成立了;数字改为当前的 42,\n并写明这条例外曾经存在——免得下一个人以为一直如此。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/72c053ccbb2b4effb1451b6b61e69faf9c313fd5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:39:56-07:00","added":[],"removed":[],"modified":["平台治理/基础/README.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":9940,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-18T17:39:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789724401
|
1789724417
|
0
|
1789724399
|
1789724417
|
|
|
0
|
Edit
Delete
|
|
24127
|
feat(治理): L9 的完整仓名单带进 JSON——裁决输入不该每次重新推导
|
117
|
5
|
governance.yml
|
68
|
5
|
0
|
refs/heads/main
|
54738a32d101f97cc5dd3a5bca7ea426dceea9c6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"72c053ccbb2b4effb1451b6b61e69faf9c313fd5","after":"54738a32d101f97cc5dd3a5bca7ea426dceea9c6","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/72c053ccbb2b4effb1451b6b61e69faf9c313fd5...54738a32d101f97cc5dd3a5bca7ea426dceea9c6","commits":[{"id":"54738a32d101f97cc5dd3a5bca7ea426dceea9c6","message":"feat(治理): L9 的完整仓名单带进 JSON——裁决输入不该每次重新推导\n\nL9 目前是全工作区唯一在报的那条,挂在 N-11 的裁决上,而裁决要回答的正是「哪些仓各自\n补 compose `name:`」。判定本来就算出了完整名单(composeProjectCollisions 返回\nrepos / files),但建 issue 时被丢掉:消息里只写前三个加「等 N 个」,JSON 里一个都没有。\n于是每次想知道是哪八个,都得重新推导一遍。\n\n`issue()` 增一个可选 extra 参数,只用于把**判定已算出、消息里放不下**的结构化数据带进\nJSON;没有 extra 的检查一个字段都不多(用例钉住 L13 的键仍是四个)。\n\n实测:门禁现在报出的 8 个仓与我按同一口径(排除 29 个工作树、按 .git 目录归仓)独立\n重推的结果完全一致——数字员工OS、知识云、AI项目与工单、AI人事系统、设备云、巨嗨智服、\n巨嗨报价系统、嗨赞造意/image-generation。counts 未变(total 1 / L9 1)。\n\n补两条用例:L9 的发现必须携带 repos 且数量与消息声称的一致、不得重复、files 不少于仓数;\n以及 issue() 的默认形状不变。前者守的是「有冲突时名单不得丢」,不是「必须有冲突」——\nL9 清零后它自然为空。\n\n一致性门禁测试 42 → 44,治理层全量 397 过 / 6 跳 / 0 失败。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/54738a32d101f97cc5dd3a5bca7ea426dceea9c6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:46:51-07:00","added":[],"removed":[],"modified":["平台治理/基础/scripts/check-workspace-consistency.mjs","平台治理/基础/tests/workspace-consistency.test.mjs"]}],"total_commits":0,"head_commit":{"id":"54738a32d101f97cc5dd3a5bca7ea426dceea9c6","message":"feat(治理): L9 的完整仓名单带进 JSON——裁决输入不该每次重新推导\n\nL9 目前是全工作区唯一在报的那条,挂在 N-11 的裁决上,而裁决要回答的正是「哪些仓各自\n补 compose `name:`」。判定本来就算出了完整名单(composeProjectCollisions 返回\nrepos / files),但建 issue 时被丢掉:消息里只写前三个加「等 N 个」,JSON 里一个都没有。\n于是每次想知道是哪八个,都得重新推导一遍。\n\n`issue()` 增一个可选 extra 参数,只用于把**判定已算出、消息里放不下**的结构化数据带进\nJSON;没有 extra 的检查一个字段都不多(用例钉住 L13 的键仍是四个)。\n\n实测:门禁现在报出的 8 个仓与我按同一口径(排除 29 个工作树、按 .git 目录归仓)独立\n重推的结果完全一致——数字员工OS、知识云、AI项目与工单、AI人事系统、设备云、巨嗨智服、\n巨嗨报价系统、嗨赞造意/image-generation。counts 未变(total 1 / L9 1)。\n\n补两条用例:L9 的发现必须携带 repos 且数量与消息声称的一致、不得重复、files 不少于仓数;\n以及 issue() 的默认形状不变。前者守的是「有冲突时名单不得丢」,不是「必须有冲突」——\nL9 清零后它自然为空。\n\n一致性门禁测试 42 → 44,治理层全量 397 过 / 6 跳 / 0 失败。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/54738a32d101f97cc5dd3a5bca7ea426dceea9c6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:46:51-07:00","added":[],"removed":[],"modified":["平台治理/基础/scripts/check-workspace-consistency.mjs","平台治理/基础/tests/workspace-consistency.test.mjs"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":9973,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-18T17:39:59+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789724817
|
1789724908
|
0
|
1789724816
|
1789724908
|
|
|
0
|
Edit
Delete
|
|
24128
|
docs(计划): 登记 L6 / L9 两处补强,并订正自己提交信息里的一句过头话
|
117
|
5
|
governance.yml
|
69
|
5
|
0
|
refs/heads/main
|
a7075e40e9aed8fbe69edb7fb7f0ebc05e477214
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"54738a32d101f97cc5dd3a5bca7ea426dceea9c6","after":"a7075e40e9aed8fbe69edb7fb7f0ebc05e477214","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/54738a32d101f97cc5dd3a5bca7ea426dceea9c6...a7075e40e9aed8fbe69edb7fb7f0ebc05e477214","commits":[{"id":"a7075e40e9aed8fbe69edb7fb7f0ebc05e477214","message":"docs(计划): 登记 L6 / L9 两处补强,并订正自己提交信息里的一句过头话\n\nL6 此前是唯一判定与 IO 缠在一起、测试零覆盖的规则,已搬进 core 并补 8 条用例,\n只搬不改、输出逐字相同;README 那句「判定逻辑在 core」此前对它是假的,已订正。\n\nL9 的完整仓名单现在进 JSON。但我在那条提交信息里写的「每次都得重新推导」过头了:\nN-11 正文 2026-09-17 就手写了这 8 个仓名。真实缺口是名单只有手抄的一份、门禁不产\n机器形态,两者可以无声分叉。本轮独立重推的 8 个与 N-11 手抄的完全一致。\n\n另记三次初测假阳性与方法教训:这个仓一贯把判定拆进另起名字的核心库、测试用自动发现,\n按名字扫必然假阳性,要判一条规则有没有被测得找它的判定函数。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/a7075e40e9aed8fbe69edb7fb7f0ebc05e477214","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:47:33-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"a7075e40e9aed8fbe69edb7fb7f0ebc05e477214","message":"docs(计划): 登记 L6 / L9 两处补强,并订正自己提交信息里的一句过头话\n\nL6 此前是唯一判定与 IO 缠在一起、测试零覆盖的规则,已搬进 core 并补 8 条用例,\n只搬不改、输出逐字相同;README 那句「判定逻辑在 core」此前对它是假的,已订正。\n\nL9 的完整仓名单现在进 JSON。但我在那条提交信息里写的「每次都得重新推导」过头了:\nN-11 正文 2026-09-17 就手写了这 8 个仓名。真实缺口是名单只有手抄的一份、门禁不产\n机器形态,两者可以无声分叉。本轮独立重推的 8 个与 N-11 手抄的完全一致。\n\n另记三次初测假阳性与方法教训:这个仓一贯把判定拆进另起名字的核心库、测试用自动发现,\n按名字扫必然假阳性,要判一条规则有没有被测得找它的判定函数。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/a7075e40e9aed8fbe69edb7fb7f0ebc05e477214","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T02:47:33-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":10006,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-18T17:46:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789724908
|
1789724938
|
0
|
1789724855
|
1789724938
|
|
|
0
|
Edit
Delete
|
|
24130
|
chore(reports): B2 的四十一份三级证据 回绑 @ d1eb586,刷新快照锚点
|
76
|
5
|
governance.yml
|
74
|
5
|
0
|
refs/heads/main
|
91b5257007ab9d588dcada5c5ca8d0c41a024bb9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3deb4ea37b83c2e2977c9c2b8e8166c101002860","after":"91b5257007ab9d588dcada5c5ca8d0c41a024bb9","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/3deb4ea37b83c2e2977c9c2b8e8166c101002860...91b5257007ab9d588dcada5c5ca8d0c41a024bb9","commits":[{"id":"91b5257007ab9d588dcada5c5ca8d0c41a024bb9","message":"chore(reports): B2 的四十一份三级证据 回绑 @ d1eb586,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 d1eb586(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=d1eb586、worktreeDirty:false):\n静态 28 + 运行态 13。\n\n运行态实测与基线逐项持平,**tenantId 收敛在真实写链上行为中性**:\n testsPassed 733(基线 733)· behaviorParityCases 204(基线 204)· testFailures 0\n 87 项指标零违规\n静态整轮 28 步全执行、前 27 绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次跑了三轮 runtime,前两轮红,都不是 B2 的代码问题,如实记录:\n\n一、第一轮 outcomes.integration.test.ts「outcome not opened in time」(15 秒 E2E 超时)。\n 判为偶发,依据三条:该测试用 tenant-a-nestjs-outcome,在新 schema 下合法;整份日志里\n 新校验的拒绝消息 / ZodError / invalid_string **0 次命中**;同一份代码隔离重跑该文件\n 14/14 通过。第三轮整轮亦一次过。\n 顺带记一个行为:**失败的 runtime 会删掉 8 份运行态报告**(跑到一半中止、未重新生成)。\n\n二、第二轮测试全过(733 / 204-204 / 0 失败)但整轮记 failed,红在末尾的文档复核\n governance-kernel-boundary-number-consistency。根因是本会话的一次操作失误:\n `git restore reports/` 用了目录级范围,把已重新生成的 kernel-boundaries.latest.json\n 退回 HEAD 版(143/143),而 CLAUDE.md 已是 144/144。重跑静态后边界报告回到 144/144,\n 又撞上 governance-number-evidence-shape(要求一份 passed 的 runtime),于是必须再跑\n 第三轮才解环——这正是 CLAUDE.md 记载过的那个环。\n\n 同一次失误还抹掉了三份 reports/ui-*.latest.json 的未提交改动(不属本会话)。\n 已用 git fsck --lost-found 从游离 blob 全数找回并逐字核对:它们是 2026-09-15 的 UI 验收,\n 绑 c433d57 且 dirty=false。本提交仍未包含它们。\n 教训具体化:reports/ 下同时存在「本会话产出的」与「别人的」两类文件,任何范围操作都会\n 同时命中两类,**还原必须逐文件点名**。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/91b5257007ab9d588dcada5c5ca8d0c41a024bb9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:31:09-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"d1eb5860c4337cf457a03c76670d2551dc848cee","message":"feat(contracts): B2 迁入内核租户原语,收敛 tenantId 的三套口径为单源\n\n立项 B2 原写「净迁入六个」。开工时改了做法并写回立项:**净迁入的模块不该先暴露后接线**。\napi-error / replay-buffer / request-context / platform-ports / alert 只加到 barrel 而不接线,\n就是新增零消费者的 CORE 面——正是本仓 check:kernel-admission 的 K5 在盯、K4 判「声明无回执」\n的同型。改为**接线时才迁入**。六个里只有 tenant 是「迁入即能用」的,本批只做它。\n\n一、packages/contracts/src/tenant.ts 转发 @juhai/kernel 的 11 个租户解析原语。\n 这个名字是上一步 tenant.ts → authorization.ts 改名腾出来的;本仓此前**完全没有这一组**。\n\n二、用它收敛 tenantId 的三套口径(8 处 / 6 个文件):\n z.string().min(1) × 6(无上限、无字符约束) → tenantIdSchema\n .max(128) × 2(有长度无形状) → tenantIdSchema\n ^ten_.+$(事实投影,自成一套) → **叠加**在内核形状之上,不再另起\n\n 判据直接委托 normalizeTenantId,不在仓内重写正则——重写就又是一套口径。\n 用 normalizeTenantId(v) === v 而非 !== undefined:后者放行带首尾空白的值\n (normalize 先 trim 再判),于是「校验通过的值」与「真正该存的值」不是同一个。\n\n收紧实测咬住 11/11。B2 之前 z.string().min(1) 会放行全部这些:\"\"、\" t1 \"、\"t/1\"、\n**\"t\\n1\"**、\"_t\"、129 字符。含换行符那条是框架注释点名的伪造日志行向量(NestJS 侧有字符串\n拼接日志);129 字符那条对应 users 表 @@unique([tenantId, email]) 撞 Postgres btree 约\n2704 字节行上限打 500。也就是说本仓在此之前**没有任何 tenantId 形状与长度校验**。\n\n三处门禁如实红过再修,没有一处先改门禁:\n check:kernel-boundaries B3 新内核面未归类 → tenant.ts 归 CORE(contractModules 32)\n check:kernel-packages P7 公开面变更须伴随版本上调 → @repo/contracts 1.18.0 → 1.19.0\n check:kernel-admission K1 导出清单漂移 → 重签(40 模块 / 756 导出)\n连带同步接入手册下游锁行与 CLAUDE.md 边界数字 143/143 → 144/144。\n\n验证:contracts 312/312 · typecheck 13/13 · 整轮静态 28 步前 27 绿(末步仍是那 8 处已知红)。\n运行态另行重跑后回绑——本提交不含任何运行态报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d1eb5860c4337cf457a03c76670d2551dc848cee","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:04:17-07:00","added":["packages/contracts/src/tenant.ts"],"removed":[],"modified":["CLAUDE.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/employment-projection.ts","packages/contracts/src/identity.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/kernel.ts","packages/contracts/src/llm-governance.ts","packages/contracts/src/realtime.ts","packages/contracts/src/user.ts"]}],"total_commits":0,"head_commit":{"id":"91b5257007ab9d588dcada5c5ca8d0c41a024bb9","message":"chore(reports): B2 的四十一份三级证据 回绑 @ d1eb586,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 d1eb586(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=d1eb586、worktreeDirty:false):\n静态 28 + 运行态 13。\n\n运行态实测与基线逐项持平,**tenantId 收敛在真实写链上行为中性**:\n testsPassed 733(基线 733)· behaviorParityCases 204(基线 204)· testFailures 0\n 87 项指标零违规\n静态整轮 28 步全执行、前 27 绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次跑了三轮 runtime,前两轮红,都不是 B2 的代码问题,如实记录:\n\n一、第一轮 outcomes.integration.test.ts「outcome not opened in time」(15 秒 E2E 超时)。\n 判为偶发,依据三条:该测试用 tenant-a-nestjs-outcome,在新 schema 下合法;整份日志里\n 新校验的拒绝消息 / ZodError / invalid_string **0 次命中**;同一份代码隔离重跑该文件\n 14/14 通过。第三轮整轮亦一次过。\n 顺带记一个行为:**失败的 runtime 会删掉 8 份运行态报告**(跑到一半中止、未重新生成)。\n\n二、第二轮测试全过(733 / 204-204 / 0 失败)但整轮记 failed,红在末尾的文档复核\n governance-kernel-boundary-number-consistency。根因是本会话的一次操作失误:\n `git restore reports/` 用了目录级范围,把已重新生成的 kernel-boundaries.latest.json\n 退回 HEAD 版(143/143),而 CLAUDE.md 已是 144/144。重跑静态后边界报告回到 144/144,\n 又撞上 governance-number-evidence-shape(要求一份 passed 的 runtime),于是必须再跑\n 第三轮才解环——这正是 CLAUDE.md 记载过的那个环。\n\n 同一次失误还抹掉了三份 reports/ui-*.latest.json 的未提交改动(不属本会话)。\n 已用 git fsck --lost-found 从游离 blob 全数找回并逐字核对:它们是 2026-09-15 的 UI 验收,\n 绑 c433d57 且 dirty=false。本提交仍未包含它们。\n 教训具体化:reports/ 下同时存在「本会话产出的」与「别人的」两类文件,任何范围操作都会\n 同时命中两类,**还原必须逐文件点名**。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/91b5257007ab9d588dcada5c5ca8d0c41a024bb9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:31:09-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87356,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T17:38:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789741873
|
1789741882
|
0
|
1789741873
|
1789741896
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24132
|
chore(reports): 静态链首次 28/28 全通过 回绑 @ 801d916,刷新快照锚 chore(reports): 静态链首次 28/28 全通过 回绑 @ 801d916,刷新快照锚点...
|
76
|
5
|
governance.yml
|
76
|
5
|
0
|
refs/heads/main
|
4da2c656ae691428be3f177563952cba66c37b88
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"91b5257007ab9d588dcada5c5ca8d0c41a024bb9","after":"4da2c656ae691428be3f177563952cba66c37b88","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/91b5257007ab9d588dcada5c5ca8d0c41a024bb9...4da2c656ae691428be3f177563952cba66c37b88","commits":[{"id":"4da2c656ae691428be3f177563952cba66c37b88","message":"chore(reports): 静态链首次 28/28 全通过 回绑 @ 801d916,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 801d916(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=801d916、worktreeDirty:false)。\n**pnpm check 退出码 0:28/28 个步骤通过**——自 check:kernel-admission 引入以来首次整链绿,\n也是本仓静态轴扩到 28 步后的首次。\n\n绿的成色写在实现提交里,此处只记边界:唯一没有机器回执的 CORE.crossProductRequired 走的是\nevidenceDeferred 五字段登记(期限 2026-12-18、触发条件=第二个产品真实装载),它在报告里是\nobserved 一行,**不是绿,是登记在案的缺证**。到期不补即转红。\n\n运行态未受本批影响(只动门禁、注册表、夹具与文档,未动 apps/packages 运行代码),\nruntime 报告仍绑在上一批的 d1eb586,13 份运行态证据未重跑也未失效。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4da2c656ae691428be3f177563952cba66c37b88","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:42:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"801d916f36af0ee32c77b2138ec9afcf14b34db7","message":"feat(governance): K3/K4 裁决——八处准入声明逐条补上真回执,静态链首次 28/28\n\ncheck:kernel-admission 引入时诚实红 8 处(K3 一处 + K4 七处)。本批逐条裁决并清零,\n**没有一处是把判据改松**——三条是补实体,一条是承认无法证明。\n\n一、K3(跨产品证据只有命名空间导入)→ 补实体\n 下游夹具此前只有 10 个 import * as,按构造在契约模块全空时同样通过。改为携带 5 个\n **真实被产品消费**的符号(ProductManifestInput / Composition / RuntimeContractCatalog /\n DataContractImplementation / EventContractImplementation,实测自唯一装载的 juhai.hr)的\n 具名类型导入并用于类型位置——编译通过才第一次构成「下游能按名字用上这些契约」的证据。\n\n二、K4 的结构性问题:两条门禁要求互相冲突,拆字段解决\n check-kernel-boundaries 的 B2 明令 evidenceSources **不得指 reports/**(运行产物随时重跑、\n 可被删除——本会话实测过:失败的 runtime 会删掉 8 份报告),而 K4 要求必须有机器回执。\n 两条各自成立,是同一件事的两半。改为两个字段:\n evidenceSources 持久判据源(脚本 / 词典 / 锁)——B2 判它\n evidenceReceipts 该判据源产出的机器回执——K4 判它\n K4 同时加强:回执须真实存在、带机器结论(status 或 violations)、带 provenance.gitSha、\n 且自身不是红盘。另加两条配套判据:\n · 禁止把**本门禁自己产出的报告**当回执(结构性自指:它只要有发现就是红的)\n · 确实无法被证据支撑时走 evidenceDeferred 五字段登记,降级 observed、过期转红\n\n三、逐条落点\n industryIndependent → kernel-boundaries(逐文件扫 CORE 源码不得内嵌已登记 Product\n 命名空间,check-kernel-boundaries.mjs:181)+ naming(业务词典)\n dualBackendGoverned → dual-backend-parity\n stableContract → kernel-packages\n crossProductRequired → **无回执,登记为「证据待补」**:本仓只装载一个产品,跨产品消费面\n 实测仅 5 个符号 / 34 个模块为零,该证据客观上无从产生。期限\n 2026-12-18,触发条件=第二个产品真实装载;到期转红。\n 硬指一份回执等于把自证换个地方做,不做。\n\n四、订正一处我自己的误判\n 先前称「parity 对 employment 零断言」——**查错了地方**:断言在 governance.registry.json\n 的 employment.parityAssertions 里,由 check-dual-backend-parity.mjs:507 通用执行,本就有\n 10 条(消费者标识分区、new FactInbox、FACT_READ_NOT_CONFIGURED fail-closed、\n autoCommit:false、未配 broker 返回 null)。\n 据此我一度把新断言**硬编码**进脚本,被 check:fork-readiness 的 F2 当场抓住\n (「门禁不得硬编码已登记业务标识」)——F2 抓的是我的代码,抓得对。已撤回硬编码,\n 把两条新不变式(事件载荷与行映射必须走契约单源)按注册表形式补入,10 → 14 条。\n\nkernel.boundaries.json 新增 evidenceNotes:逐份回执记录**它到底判了什么**,含上述订正与\n「dual-backend-behavior 的 63 个矩阵用例不含 llm/employment,故两个 pack 不以它为据」这类边界。\n指针只说明有机器判过,不代表覆盖该词全部含义。\n\n自检 10 → 17 条(新增回执质量、自指、证据待补三组,含 1 条基线正例、2 条防过度判红)。\n整轮 pnpm check:**28/28 步骤全部通过**,退出码 0——自本门禁引入以来首次。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/801d916f36af0ee32c77b2138ec9afcf14b34db7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:41:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","governance.registry.json","kernel.boundaries.json","kernel.downstream.lock.json","scripts/check-dual-backend-parity.mjs","scripts/check-kernel-admission.mjs","tests/kernel-downstream-fixture/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"4da2c656ae691428be3f177563952cba66c37b88","message":"chore(reports): 静态链首次 28/28 全通过 回绑 @ 801d916,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 801d916(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=801d916、worktreeDirty:false)。\n**pnpm check 退出码 0:28/28 个步骤通过**——自 check:kernel-admission 引入以来首次整链绿,\n也是本仓静态轴扩到 28 步后的首次。\n\n绿的成色写在实现提交里,此处只记边界:唯一没有机器回执的 CORE.crossProductRequired 走的是\nevidenceDeferred 五字段登记(期限 2026-12-18、触发条件=第二个产品真实装载),它在报告里是\nobserved 一行,**不是绿,是登记在案的缺证**。到期不补即转红。\n\n运行态未受本批影响(只动门禁、注册表、夹具与文档,未动 apps/packages 运行代码),\nruntime 报告仍绑在上一批的 d1eb586,13 份运行态证据未重跑也未失效。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4da2c656ae691428be3f177563952cba66c37b88","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:42:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87761,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T22:31:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789742578
|
1789742587
|
0
|
1789742578
|
1789742601
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24141
|
chore(reports): B3′ 的四十一份三级证据 回绑 @ df72512,刷新快照锚点
|
76
|
5
|
governance.yml
|
78
|
5
|
0
|
refs/heads/main
|
74c732d8d4b88957365dd80770032bab706e84e2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4da2c656ae691428be3f177563952cba66c37b88","after":"74c732d8d4b88957365dd80770032bab706e84e2","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/4da2c656ae691428be3f177563952cba66c37b88...74c732d8d4b88957365dd80770032bab706e84e2","commits":[{"id":"74c732d8d4b88957365dd80770032bab706e84e2","message":"chore(reports): B3′ 的四十一份三级证据 回绑 @ df72512,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 df72512(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=df72512、worktreeDirty:false):\n静态 28 + 运行态 13。静态整轮 **28/28 步骤全部通过**(退出码 0),运行态 733 tests /\n行为矩阵 204/204 / 87 项指标零违规。\n\n本批改的是两后端的 WS 传输层与 replay 查询,两个预设风险点均未兑现:\n- 16 KiB 传输层上限**未挡住任何测试**——正常控制帧远在其下,上限值选得合适\n- outbox 查询由 findFirst 改为 aggregate(_min/_max) 后,在 RLS enforce 下行为与原先一致\n\nruntime 跑了两轮,**数字完全一致**(733 / 204-204 / 零违规),无非确定性;第一轮因改动\n尚未提交而 worktreeDirty:true,按仓规矩只绑定本地、不能作阶段门证据,故提交实现后重跑。\n这是顺序问题不是结果问题——记下来是为了下次先提交再跑,省一轮 20 分钟。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/74c732d8d4b88957365dd80770032bab706e84e2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T08:15:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"df72512110999b668b00c5cbf94ce0691ec7f3af","message":"feat(realtime): B3′ 采纳上游两处加固——重放游标缺口判定与 WS 传输层单帧上限\n\n立项 §2 的「采纳上游加固 4」批次。逐个比对后实收两处真加固、一处口径收敛,另有两处\n开工时的判断被实测推翻,一并更正在代码注释里。\n\n一、replay 转发到 @juhai/kernel,补上 cursor-unknown\n\n本仓的 replay.ts 是框架 0.1.0 时代的拷贝,导出名与框架一致但实现落后一代,缺\n`maxSeq` 与策略「游标超前于现存最大 seq ⇒ 报缺口」。旧实现下,客户端报一个本租户\n从未产生过的游标(伪造 / 串号 / DB 被重置)会命中 pendingCount === 0 而返回 none——\n「已追平」与「真的没有新事件」在数值上无从区分,客户端**永远停在一个不存在的进度上、\n再也收不到补发**,与本仓「绝不静默缺口」的判据直接冲突。\n\n实证(打转发后的实现):\n since=999999, maxSeq=42 → {\"kind\":\"gap\",\"reason\":\"cursor-unknown\"}\n since=42, maxSeq=42 → {\"kind\":\"none\"} ← 真已追平,无误报\n\n框架同时修了契约文件内部的自相矛盾:pendingCount 旧注释写「且已投递」,与两后端刻意\n选定的账本语义相反(outbox 是「发生过什么」的账本,补发范围是全部留存行,重叠由客户端\n按信封 id 去重)——docs-truth 扫不到这类矛盾。\n\n两后端各改一处查询:findFirst(minSeq) → aggregate(_min/_max),一次拿两个边界,\n比原先还少一次往返。\n\n二、WS 传输层单帧上限(REALTIME_WS_MAX_PAYLOAD_BYTES = 16 KiB)\n\n框架注释记了一次真实事故,而**本仓此前正处在那个状态**:只有应用层的\nREALTIME_MAX_COMMAND_BYTES = 4096,没有接线传输层,而 ws 的默认 maxPayload 是 100MiB\n——任意客户端反复发 100MiB 帧即可制造内存压力,而「防撑爆」的守卫在内存被完整缓冲\n之后才生效。本批同时接线两后端并取同值(G17):\n Fastify app.register(websocket, { options: { maxPayload: … } })\n NestJS @WebSocketGateway({ path: \"/ws\", maxPayload: … })\n传输层 16384 比应用层 4096 留一档余量,使「超协议约束」与「超传输上限」成为两种可区分\n的失败:4096~16384 的帧仍拿到语义清晰的 connection.error(too-large),真正的巨帧在协议层\n即被 close 1009 掐断。**只加常量不接线正是该注释批评的形态**,故两者同批落地。\n\n三、两处开工判断被实测推翻,已更正在注释里\n\n1) 「订阅列表无上限」不成立:本仓原本就有 .max(50) / .max(200),只是写成字面量,\n 值与框架一致。本批只是把魔法数字收敛成具名单源,不是补安全缺口。\n2) subscription 不是单纯落后,而是**互有领先**:框架有那两个上限,本仓有\n `envelope.resourceRefs` 这条「新事件唯一扩展协议」(禁止为产品主键继续追加字段名猜测,\n 否则行业对象会反向污染内核),框架那份仍是「取第一个以 Id 结尾的键」的启发式。\n 整份转发会删掉本仓这个设计,故**不转发**——按迁移手册 §6 走分歧账本,只取上限、\n 保留本仓实现。这是三个模块里唯一的合并式采纳。\n\n@repo/contracts 1.19.0 → 1.20.0。注意 P7 **没有要求**这次升版:根与 kernel 两个 barrel 的\nexport 行都没变,而 apiDigest 只哈希入口 .d.ts。但公开面实际多了 3 个符号,按语义应升——\n真正记录这次面变化的是 K1 锁(replay.ts 的 4 个导出转移给内核包、另两处各 +1/+2,\n40 模块 / 755 导出)。\n\n验证:contracts 312/312 · typecheck 13/13 · 静态整轮 28/28 · runtime 733 / 行为矩阵 204/204 /\n零违规(16 KiB 上限未挡住任何测试,aggregate 在 RLS enforce 下行为与 findFirst 一致)。\nruntime 报告在本提交后重跑回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/df72512110999b668b00c5cbf94ce0691ec7f3af","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T08:03:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/replay.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/replay.service.ts","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/realtime-command.ts","packages/contracts/src/replay.ts","packages/contracts/src/subscription.ts"]}],"total_commits":0,"head_commit":{"id":"74c732d8d4b88957365dd80770032bab706e84e2","message":"chore(reports): B3′ 的四十一份三级证据 回绑 @ df72512,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 df72512(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=df72512、worktreeDirty:false):\n静态 28 + 运行态 13。静态整轮 **28/28 步骤全部通过**(退出码 0),运行态 733 tests /\n行为矩阵 204/204 / 87 项指标零违规。\n\n本批改的是两后端的 WS 传输层与 replay 查询,两个预设风险点均未兑现:\n- 16 KiB 传输层上限**未挡住任何测试**——正常控制帧远在其下,上限值选得合适\n- outbox 查询由 findFirst 改为 aggregate(_min/_max) 后,在 RLS enforce 下行为与原先一致\n\nruntime 跑了两轮,**数字完全一致**(733 / 204-204 / 零违规),无非确定性;第一轮因改动\n尚未提交而 worktreeDirty:true,按仓规矩只绑定本地、不能作阶段门证据,故提交实现后重跑。\n这是顺序问题不是结果问题——记下来是为了下次先提交再跑,省一轮 20 分钟。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/74c732d8d4b88957365dd80770032bab706e84e2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T08:15:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":88055,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T22:42:58+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789744521
|
1789744530
|
0
|
1789744520
|
1789744543
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24144
|
chore(reports): B2c-1 的二十八份静态证据 回绑 @ 9eba0fd,刷新快照锚 chore(reports): B2c-1 的二十八份静态证据 回绑 @ 9eba0fd,刷新快照锚点...
|
76
|
5
|
governance.yml
|
80
|
5
|
0
|
refs/heads/main
|
60abd47e194c0b84e63968d27d493fd2fbdde658
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"74c732d8d4b88957365dd80770032bab706e84e2","after":"60abd47e194c0b84e63968d27d493fd2fbdde658","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/74c732d8d4b88957365dd80770032bab706e84e2...60abd47e194c0b84e63968d27d493fd2fbdde658","commits":[{"id":"60abd47e194c0b84e63968d27d493fd2fbdde658","message":"chore(reports): B2c-1 的二十八份静态证据 回绑 @ 9eba0fd,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 9eba0fd(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=9eba0fd、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\n未跑运行态:本批只新增两个纯转发的契约文件,未改任何运行代码,runtime 证据仍绑\ndf72512(733 / 204-204 / 零违规)且未失效。按三级分开陈述纪律,不用静态绿冒充运行态绿,\n也不为没动运行代码的改动重跑一轮 20 分钟。\n\nkernel-admission 报告里 request-context.ts 与 platform-ports.ts 会出现在 K5 的\n「零跨产品消费」观测行——这是**预期且已登记**的过渡态(立项 §5.1),不是新缺口:\n接线在 B2c-2,届时它们才真正被消费。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/60abd47e194c0b84e63968d27d493fd2fbdde658","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:32:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9eba0fd28474159053db82929391b72070d4c78f","message":"feat(contracts): B2c-1 迁入平台端口契约——自建 permission/audit 的可替换插座就位\n\n「内核退回 pin」里价值最高的一块的**契约层**。框架 0.7.0 的 platform-ports 给出四个端口\n(权限 / 审计 / 事实出口 / 服务凭据),各自对应一个企业控制面模块;端口只定形状与\nfail-closed 默认实现,权威实现由基础设施在装配点注入。\n\n packages/contracts/src/request-context.ts 14 导出(platform-ports 的决策入参形状)\n packages/contracts/src/platform-ports.ts 31 导出\n\n对本仓的意义:自建 identity / permission / audit 是错层资产(铁律三:平台拥有规则),\n但此前**没有可替换的接口**,替换等于大手术。插座就位后,将来控制面客户端发布且有 CI\n阶段门证据时只换实现、**接口不变**——迁移从「大手术」降为「接插座」。本仓分叉于框架\n0.1.0、从未见过这组端口,这正是当初各造一套的原因。\n\n**本批只做契约层,接线另起一片(B2c-2),理由与代价登记在立项 §5.1。**\nB2 开工时我立过「净迁入的模块不该先暴露后接线」,这里部分收回并说明区别:接线实测远大于\n立项估计——要在两后端各实现 PermissionDecisionPort、经 registry.replace() 注入、改写一条\n**正在生效的权限判定链**。安全敏感改动不该接在长批次尾巴上做。过渡期这两个模块是零消费面,\nK5 会把它们列进观测行;**这不是绿,是登记在案的欠账**,B2c-2 长期不做就应当退回去。\n\n已查清的接线设计(下一片直接用):**不能直接拿框架的 createLocalPlatformPorts 做权限端口**\n——它是「租户作用域 + 动作目录」式放行,比本仓的 resolveEffectivePermissions(角色矩阵 +\nsubject 级覆盖 + ALLOW/DENY 优先级)**弱**,套用等于削弱一条在跑的控制。正确做法是本仓实现\n自己的端口委托现有判定,用框架为此预留的 registry.replace() 注入。收口点已定位:\nNestJS PermissionsService.require()、Fastify hasEffectivePermission()。\n顺带好性质:PLATFORM_PORTS_MODE=local 将成为部署配置里一句可审计的显式声明\n——「本部署跑在自建权限上,不是平台权威」,错层资产第一次在编排层可见。\n\n过程中修了两个同类错误,都是**转发清单靠 grep 生成而 grep 漏了模式**:\n ① 漏 `export async function` → assertPermitted 未转发\n ② 把 class PlatformPortsRegistry 放进 type 组 → tsc 全过、运行时取不到\n第二个尤其阴险。现已加运行时可取性核对,10 个值导出全过;31 个导出与框架逐一比对无遗漏。\n\n@repo/contracts 1.20.0 → 1.21.0;三把锁重签(exports 42 模块 / 755 导出);边界受管面\n144 → 146;接入手册下游锁行同步。静态整轮 **28/28**(退出码 0)。\n运行态未受影响——本批只加契约文件,未改任何运行代码,runtime 仍绑 df72512。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9eba0fd28474159053db82929391b72070d4c78f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:31:20-07:00","added":["packages/contracts/src/platform-ports.ts","packages/contracts/src/request-context.ts"],"removed":[],"modified":["CLAUDE.md","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/kernel.ts"]}],"total_commits":0,"head_commit":{"id":"60abd47e194c0b84e63968d27d493fd2fbdde658","message":"chore(reports): B2c-1 的二十八份静态证据 回绑 @ 9eba0fd,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 9eba0fd(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=9eba0fd、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\n未跑运行态:本批只新增两个纯转发的契约文件,未改任何运行代码,runtime 证据仍绑\ndf72512(733 / 204-204 / 零违规)且未失效。按三级分开陈述纪律,不用静态绿冒充运行态绿,\n也不为没动运行代码的改动重跑一轮 20 分钟。\n\nkernel-admission 报告里 request-context.ts 与 platform-ports.ts 会出现在 K5 的\n「零跨产品消费」观测行——这是**预期且已登记**的过渡态(立项 §5.1),不是新缺口:\n接线在 B2c-2,届时它们才真正被消费。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/60abd47e194c0b84e63968d27d493fd2fbdde658","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:32:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":88443,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-18T23:15:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789770777
|
1789770786
|
0
|
1789770776
|
1789770800
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24148
|
chore(reports): ADR 0011 提案的二十八份静态证据 回绑 @ 74fbaea, chore(reports): ADR 0011 提案的二十八份静态证据 回绑 @ 74fbaea,刷新快照锚点...
|
76
|
5
|
governance.yml
|
82
|
5
|
0
|
refs/heads/main
|
f3d2cfe8c6567a9f343080ec659543e412c4e688
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"60abd47e194c0b84e63968d27d493fd2fbdde658","after":"f3d2cfe8c6567a9f343080ec659543e412c4e688","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/60abd47e194c0b84e63968d27d493fd2fbdde658...f3d2cfe8c6567a9f343080ec659543e412c4e688","commits":[{"id":"f3d2cfe8c6567a9f343080ec659543e412c4e688","message":"chore(reports): ADR 0011 提案的二十八份静态证据 回绑 @ 74fbaea,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 74fbaea(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=74fbaea、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\n未跑运行态:本批只动文档(ADR 0011 提案、立项书 B2c-2 挂起登记、ADR 索引),未改任何运行\n代码,runtime 证据仍绑 df72512(733 / 204-204 / 零违规)且未失效。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f3d2cfe8c6567a9f343080ec659543e412c4e688","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:49:10-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"74fbaea684f5b580936edcdcdb1b56a0557fade8","message":"docs(决策): ADR 0011 提案——授权判定不得以 IdP 的 role claim 为权威\n\nB2c-2 平台端口接线开工即撞到阻塞,它暴露的不是接线问题,而是本仓授权模型的一个错层。\n按「单独立裁决项」处理,B2c-2 挂起。\n\n阻塞:框架 PermissionDecisionPort.decide() 的入参是 { context: RequestContext, action,\nresourceType, resourceId },RequestContext 只有 tenantId / actorId——**不带角色声明**。\n而本仓生效角色判定是 bootstrapAdmin ? \"admin\" : (DB 角色 ?? claim 角色),注释写明\n「DB 覆盖 claim」:**无 DB 记录时已验签 token 的 claim 角色就是权威**。原样接线会让\n「无记录」那类 subject 的授权来源消失。平台端口假设权威方能从(租户, 主体, 动作)自行解出\n一切——这对拥有角色存储的平台成立,对本仓的混合模式不成立。\n\n所以差距不只是「谁来实现」,还包括「决策输入是什么」。\n\n提案内容:生效角色只来自本系统可控的来源(roleAssignment 记录 + AUTH_BOOTSTRAP_ADMIN\n引导身份);已验签 token 的 role claim 降级为信息,不参与授权判定。\n\n三条理由,第一条不是架构整洁而是安全面:\n1. **签发方等于授权方。** 当前只要 IdP 在 token 里写 role: admin,本仓即授予 admin,\n **OS 侧没有任何记录**。IdP 被攻陷或被误配就直接等于本仓提权,且事后审计在 OS 侧查不到\n 授予动作——因为从来没有授予动作。「DB 覆盖 claim」只在有记录时防住,恰恰在最常见的\n 「没记录」路径上不防。\n2. 铁律三「平台拥有规则」:角色归属属于规则,权威应在控制面 permission 模块。\n3. 这是 drop-in 的前提:决策还依赖 claim,将来换控制面客户端时仍是行为变更,只是推迟。\n\n影响面按 DB 记录有无精确切分(ADR §影响 有完整表):有记录者不变;验签且 claim 为\nmember/缺失者不变;**验签、无记录、claim 为 approver/admin 者降为 member**(失败方向是\n更拒绝,不是 fail-open,但对这些人是功能性中断);**demo 姿态自报 admin 会降为 member**,\n而它是 UI 验收与本地开发的前提(check:ui 打 mock-oidc-idp.mjs),须一并处理。\n\nADR 明确写下裁决前置:**必须先取得目标环境中「无 DB 记录且 claim 为 approver/admin」的\nsubject 实测计数**。该计数不取得,本 ADR 不应被批准——影响面未知的授权语义变更不可裁。\n\n同批:立项书 B2c-2 行改为「挂起,待 ADR 0011」并写明阻塞原因;docs/adr/README 加索引。\nB2c-1 迁入的 platform-ports / request-context 维持零消费面的过渡态(立项 §5.1 已登记)。\nB2c-2 开工时写的 NestJS 装配模块未提交(设计已完整记在 ADR 与立项里,届时重写即可)。\n\n静态整轮 28/28。本批只动文档,未改运行代码。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/74fbaea684f5b580936edcdcdb1b56a0557fade8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:47:35-07:00","added":["docs/adr/0011-authorization-must-not-trust-idp-role-claim.md"],"removed":[],"modified":["CLAUDE.md","docs/adr/README.md","docs/planning/内核退回pin立项-2026-09-18.md"]}],"total_commits":0,"head_commit":{"id":"f3d2cfe8c6567a9f343080ec659543e412c4e688","message":"chore(reports): ADR 0011 提案的二十八份静态证据 回绑 @ 74fbaea,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 74fbaea(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=74fbaea、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\n未跑运行态:本批只动文档(ADR 0011 提案、立项书 B2c-2 挂起登记、ADR 索引),未改任何运行\n代码,runtime 证据仍绑 df72512(733 / 204-204 / 零违规)且未失效。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f3d2cfe8c6567a9f343080ec659543e412c4e688","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:49:10-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":88725,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T06:32:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789771765
|
1789771773
|
0
|
1789771754
|
1789771805
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24150
|
chore(reports): F14 落地的二十八份静态证据 回绑 @ 402f502,刷新快照锚 chore(reports): F14 落地的二十八份静态证据 回绑 @ 402f502,刷新快照锚点...
|
76
|
5
|
governance.yml
|
84
|
5
|
0
|
refs/heads/main
|
85a263fb1667d12318daa5601f7e6e23284c5dfd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f3d2cfe8c6567a9f343080ec659543e412c4e688","after":"85a263fb1667d12318daa5601f7e6e23284c5dfd","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/f3d2cfe8c6567a9f343080ec659543e412c4e688...85a263fb1667d12318daa5601f7e6e23284c5dfd","commits":[{"id":"85a263fb1667d12318daa5601f7e6e23284c5dfd","message":"chore(reports): F14 落地的二十八份静态证据 回绑 @ 402f502,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 402f502(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=402f502、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\nfork-readiness 报告的 frameworkCriteriaRegisteredMissing 由 3 降为 2(F14 转 implemented),\ndeclared 仍 14、交叉核对 verified。\n\n未跑运行态:本批只改 compose 顶层 name / 宿主端口参数化与门禁脚本,未动任何应用运行代码,\nruntime 证据仍绑 df72512(733 / 204-204 / 零违规)且未失效。compose 的实际效果要到下次\ndocker compose up 才体现——改名时两个 project 下均无容器与卷,不存在需要迁移的运行态。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/85a263fb1667d12318daa5601f7e6e23284c5dfd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:55:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"402f502bec6d503e2e6c8b1319b0862eb2b9ed03","message":"feat(governance): 落地框架 F14——compose 身份派生自包名,本仓退出 L9 的 project 共用\n\n框架判据 F14 由 missing 转 implemented。这是三条 missing 里唯一不阻塞于「内核退回 pin」\n立项本身的,故先做。\n\n**问题(工作区 L9 的本仓实证):** compose 在没有顶层 name / -p / COMPOSE_PROJECT_NAME 时\n按**文件所在目录名**推导 project。开发基座在每个派生仓里都住在 apps/api-nestjs/,于是所有仓\n推导出同一个 project `api-nestjs`,共用具名卷与容器名——后 up 者接管先起者。一致性门禁实测\n本机 8 个仓共用该 project,本仓是其中之一。这与 F3(测试库名前缀)、F12(RLS 组角色名)同族:\n**集群级资源的身份必须派生自 package.json name**。\n\n两处实体修复:\n apps/api-nestjs/docker-compose.yml 补 name: ${COMPOSE_PROJECT_NAME:-digital-employee-os}\n redis 宿主端口 \"6379:6379\" → \"${REDIS_PORT:-6379}:6379\"\n (postgres 那条原本就已参数化)\n deploy/production/compose.yml 默认值 deos-production → digital-employee-os-production\n (原值既非包名派生身份、也非其 digital-employee-os-* 子命名)\n\n**改名零中断**:动手前实测两个 project 下均无容器与卷(docker ps -a / volume ls 按\ncom.docker.compose.project 标签查,皆空)。我先前提过「要挑运维窗口」——实测之后这个顾虑\n不成立,如实更正。\n\n门禁实现与框架有一处口径差异,已登记在门禁注释与 framework-criteria.json:\n**本仓限定扫 git 跟踪的 compose**,框架按目录黑名单遍历全仓。理由是本仓有 gitignored 的\ntmp/ops-config/compose.local.yml(本机运维配置,随时重建),扫未跟踪的本地状态会让门禁在\n别人 clone 后得出不同结论——**不可复现的判据比没有判据更糟**。\n\n三条负向探针实活验证,非只读代码推断:去掉顶层 name、端口写死、身份写成别的仓(api-nestjs),\n各自如期转红,还原后复验绿。\n\n效果:工作区一致性门禁 L9 的共用仓数 **8 → 7,本仓出列**(其余 7 仓是各自 Owner 的事)。\n框架判据覆盖:implemented 10(+F14)、missing 2(F8 / F11,均阻塞于内核退回 pin 立项)、\nimplemented-elsewhere 1、not-applicable 1。\n\n静态整轮 28/28。本批未改运行代码,runtime 仍绑 df72512。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/402f502bec6d503e2e6c8b1319b0862eb2b9ed03","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:53:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/docker-compose.yml","deploy/production/compose.yml","framework-criteria.json","scripts/check-fork-readiness.mjs"]}],"total_commits":0,"head_commit":{"id":"85a263fb1667d12318daa5601f7e6e23284c5dfd","message":"chore(reports): F14 落地的二十八份静态证据 回绑 @ 402f502,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 402f502(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=402f502、worktreeDirty:false)。\n静态整轮 28/28 步骤全部通过(退出码 0)。\n\nfork-readiness 报告的 frameworkCriteriaRegisteredMissing 由 3 降为 2(F14 转 implemented),\ndeclared 仍 14、交叉核对 verified。\n\n未跑运行态:本批只改 compose 顶层 name / 宿主端口参数化与门禁脚本,未动任何应用运行代码,\nruntime 证据仍绑 df72512(733 / 204-204 / 零违规)且未失效。compose 的实际效果要到下次\ndocker compose up 才体现——改名时两个 project 下均无容器与卷,不存在需要迁移的运行态。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/85a263fb1667d12318daa5601f7e6e23284c5dfd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:55:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":88985,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T06:49:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789772147
|
1789772238
|
0
|
1789772145
|
1789772364
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24161
|
docs(回灌): 订正 U-40——「gitSha 为空」不成立,字段叫 sourceSha 且有 docs(回灌): 订正 U-40——「gitSha 为空」不成立,字段叫 sourceSha 且有值,落点随之改向...
|
117
|
5
|
governance.yml
|
70
|
5
|
0
|
refs/heads/main
|
9a8b716a056597786b9fcbc8fd57bff6c5b44722
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a7075e40e9aed8fbe69edb7fb7f0ebc05e477214","after":"9a8b716a056597786b9fcbc8fd57bff6c5b44722","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/a7075e40e9aed8fbe69edb7fb7f0ebc05e477214...9a8b716a056597786b9fcbc8fd57bff6c5b44722","commits":[{"id":"9a8b716a056597786b9fcbc8fd57bff6c5b44722","message":"docs(回灌): 订正 U-40——「gitSha 为空」不成立,字段叫 sourceSha 且有值,落点随之改向\n\nU-40 原文称 registry 上的 @juhai/client-fact@1.0.0-rc.3 其 provenance.json 为 gitSha:\"\" 空字符串,\n据此把落点定为「平台侧必须带真实 gitSha,本地旁路发布也不得留空」。一手实测推翻该前提:\n\n在真源仓 npm 作用域下 npm pack 拉取架上 tarball 读其 provenance.json,client-fact 与 contracts 的\nrc.3 两份一字不差,且都带 \"sourceSha\": \"036a308f27acf35a46f068c96fea7723ef74d05e\"。\n字段名是 sourceSha 不是 gitSha,且有真实值——提交号一直在包里。照原落点做,平台会去补一个已经存在的字段。\n\n本条结论仍成立、病因换了:不是「平台没写」,是两侧键名对不上,且基座判据根本没读产物的\nprovenance.json——复核 数字员工OS/digital-employee-os/scripts/check-platform-dependency-provenance.mjs,\n其中 gitSha / sourceSha 的命中全部属于它自己报告的 provenance,没有一处读依赖产物。\n\n落点改为两条:① 平台侧把 sourceSha 这个字段名写进对外契约(发布物 schema / 接入套件文档),\n使消费者不必靠猜;旁路车另缺 tag(tag:null,与 CL-5「一次发布 = 一个 tag = 一组同版本包」不符),该项仍欠。\n② 基座侧把判据从「解析来源」扩到「内容出处」,只需读包内 sourceSha 与期望提交比对,不必等平台改任何东西。\n\n状态 🔴 → 🟡:不再与 U-39 同一阻塞,两侧都可立即动工,不受 G-12 计费阻塞;仅 tag:null 仍挂在旁路车上。\n原落点文字保留删除线,不抹掉审计痕迹。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/9a8b716a056597786b9fcbc8fd57bff6c5b44722","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:05:19-07:00","added":[],"removed":[],"modified":["平台治理/基础/上层对接经验回灌台账.md"]},{"id":"63850ac3b7b1a51d74aac689837fdf7ed58905bb","message":"docs(回灌): U-39 补 contracts 同版本不同内容的新实例——落差由一个提交扩大到一整轮硬化\n\n@juhai/contracts@1.0.0-rc.3 与 client-fact 同属 2026-09-13 那趟本地旁路车。实查架上包:其\nprovenance.json 自证 sourceSha=036a308,而仓内同版本源码已含 2026-09-18 九个契约包域\n(public-file / IM / 跨域流程 / 通知 / 数据分析 / 成本容量 / 统一体验 / 注册中心 / 配置与功能开关)\n的失败关闭硬化。消费者 exact pin 1.0.0-rc.3 拿到的是硬化前代码;./domain/* 是公开子路径导出,\n失败一侧行为已变。U-39 的「同版本不同内容」因此不是 client-fact 一例。\n\n不另开 U 号:本实例由基础设施自查发现、没有上层对接方,不符合本台账 §0「只有业务应用的开发轮次\n触发回灌」的驱动方口径,故并入 U-39 状态格,不新设真源。\n\n证据取自一手产物:在仓内 npm 作用域下 npm pack 拉取架上 tarball,读其 provenance.json。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/63850ac3b7b1a51d74aac689837fdf7ed58905bb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:03:44-07:00","added":[],"removed":[],"modified":["平台治理/基础/上层对接经验回灌台账.md"]},{"id":"fad563310502477427181b6cbe2b48af4aebb668","message":"docs(计划): 登记四份过期证据回绑与一次撤回 @ 772b253\n\nrelease-manifest / sbom / naming / fork-readiness 四份在干净检出内重跑回绑,结论逐项\n对照无劣化;sbom 的 ref 更新后它描述的才是当前登记的镜像。check:evidence 由\n36 新鲜 / 5 过期 变为 40 新鲜 / 1 过期 / 0 error,仅剩 image-smoke(须 Secret 到位后\n由 CI 插一步冒烟,带复核期 2026-10-31)。\n\n另记一次撤回:module-imports 那次回绑是多余的——并行会话提交门禁改动时已连报告一起\n回绑,它早已新鲜。教训是判据应为「这份报告现在是否被判过期」,而不是「作用域是否干净」。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/fad563310502477427181b6cbe2b48af4aebb668","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T15:47:52-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"80eced637aa8796ffec9c266cde6d6567e4fdb49","message":"docs(计划): 登记注册中心就绪闸门补判与干净检出回绑 @ 94366bc / de532d4\n\n并更正上一行登记:注册中心 9ac9914 已被 7f82399 的合并整体放弃,上一行现在只对\n统一体验 caefbf6 成立。远端那版的摘要归一化比本地那版的「一律拒」更好,本轮采纳\n其口径;只补它仍缺的四条就绪闸门真值判定,并把零覆盖的 snapshot-upgrade-review.ts\n接进夹具门禁。\n\n回绑改走 #34-A 立的干净检出路径:主工作区 4 小时没出现干净树。附带记下一条坑——\n检出必须落在工作区内,否则 workspaceRelative 套件会以 unavailable 让门禁 exit 1。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/80eced637aa8796ffec9c266cde6d6567e4fdb49","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T12:26:45-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"1d2416ab6482cf2ad8f2e4c311c62545daebfd16","message":"docs(计划): 登记统一体验与注册中心两个契约包入参硬化 @ caefbf6 / 9ac9914\n\n两域各有一条同形缺陷(闸门用真值判断,\"false\" 一律放行——统一体验是 G3 本身与\n权限 / Scope 判定,注册中心是四条就绪闸门)与各自的崩溃面;注册中心另有 blockedBy\n传字符串时 .length 是字符数、摘要正则带 i 导致同一制品两个身份两处。修的都是同一\n文件里正确写法本来就在的那种。顺带补两块零门禁覆盖:统一体验持闸的两个公开函数、\n注册中心整份 393 行的升级复核。九个契约包域至此全部补强,套件合计 188 例 0 失败。\n\n另回写一条技术教训:独立索引提交后必须 git reset -- \u003c路径\u003e 把共享索引刷回 HEAD,\n否则并行会话下一次从索引提交会把已提交的改动带回去(2026-09-18 已实际发生一次)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/1d2416ab6482cf2ad8f2e4c311c62545daebfd16","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T07:53:53-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"9a8b716a056597786b9fcbc8fd57bff6c5b44722","message":"docs(回灌): 订正 U-40——「gitSha 为空」不成立,字段叫 sourceSha 且有值,落点随之改向\n\nU-40 原文称 registry 上的 @juhai/client-fact@1.0.0-rc.3 其 provenance.json 为 gitSha:\"\" 空字符串,\n据此把落点定为「平台侧必须带真实 gitSha,本地旁路发布也不得留空」。一手实测推翻该前提:\n\n在真源仓 npm 作用域下 npm pack 拉取架上 tarball 读其 provenance.json,client-fact 与 contracts 的\nrc.3 两份一字不差,且都带 \"sourceSha\": \"036a308f27acf35a46f068c96fea7723ef74d05e\"。\n字段名是 sourceSha 不是 gitSha,且有真实值——提交号一直在包里。照原落点做,平台会去补一个已经存在的字段。\n\n本条结论仍成立、病因换了:不是「平台没写」,是两侧键名对不上,且基座判据根本没读产物的\nprovenance.json——复核 数字员工OS/digital-employee-os/scripts/check-platform-dependency-provenance.mjs,\n其中 gitSha / sourceSha 的命中全部属于它自己报告的 provenance,没有一处读依赖产物。\n\n落点改为两条:① 平台侧把 sourceSha 这个字段名写进对外契约(发布物 schema / 接入套件文档),\n使消费者不必靠猜;旁路车另缺 tag(tag:null,与 CL-5「一次发布 = 一个 tag = 一组同版本包」不符),该项仍欠。\n② 基座侧把判据从「解析来源」扩到「内容出处」,只需读包内 sourceSha 与期望提交比对,不必等平台改任何东西。\n\n状态 🔴 → 🟡:不再与 U-39 同一阻塞,两侧都可立即动工,不受 G-12 计费阻塞;仅 tag:null 仍挂在旁路车上。\n原落点文字保留删除线,不抹掉审计痕迹。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/9a8b716a056597786b9fcbc8fd57bff6c5b44722","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:05:19-07:00","added":[],"removed":[],"modified":["平台治理/基础/上层对接经验回灌台账.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":10140,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-18T22:15:32+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789772770
|
1789772785
|
0
|
1789772759
|
1789772785
|
|
|
0
|
Edit
Delete
|
|
24163
|
docs(计划): 注册中心取舍行补交叉实测证据——「大部分好或相当」可以收紧成「放弃那套实有 4 docs(计划): 注册中心取舍行补交叉实测证据——「大部分好或相当」可以收紧成「放弃那套实有 4 个缺陷」...
|
117
|
5
|
governance.yml
|
71
|
5
|
0
|
refs/heads/main
|
2395fff75b12126982536526d4ae47676954a0b2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9a8b716a056597786b9fcbc8fd57bff6c5b44722","after":"2395fff75b12126982536526d4ae47676954a0b2","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/9a8b716a056597786b9fcbc8fd57bff6c5b44722...2395fff75b12126982536526d4ae47676954a0b2","commits":[{"id":"2395fff75b12126982536526d4ae47676954a0b2","message":"docs(计划): 注册中心取舍行补交叉实测证据——「大部分好或相当」可以收紧成「放弃那套实有 4 个缺陷」\n\n第 196 行原写「远端那版大部分比本地那版做得好或相当」,是对现行实现单向复测得出的。另一会话随后做了\n双向交叉实测(两套实现各自编译成 dist 后互喂夹具与单测),结论更明确:被放弃的 9ac9914 实有 4 个缺陷——\nN10 放行可变版本标签、N11 拒错原因(其 \\d+\\.\\d+\\.\\d+ 收下 1.02.0)、P03 与 P04 两处误拒(后者会拒掉\n平台自己在发的 1.0.0-rc.x);根因是它三个文件各带一套版本文法,远端抽 registry-primitives.ts 正为收敛这三套。\n\n反向也测了:9ac9914 的 19 例夹具喂当前实现 13 通过,6 例不通过里 5 例只是原因码改名(同一输入两侧都拒)、\n1 例是摘要大小写的设计取向差异,无任何输入类别失守;其 40 例单测喂当前实现 36 通过。\n\n只补证据与出处(真源仓 7523bd0 的 contracts/SOURCE.md),不改该行原有的复测结论与实现取舍。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/2395fff75b12126982536526d4ae47676954a0b2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:07:14-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"2395fff75b12126982536526d4ae47676954a0b2","message":"docs(计划): 注册中心取舍行补交叉实测证据——「大部分好或相当」可以收紧成「放弃那套实有 4 个缺陷」\n\n第 196 行原写「远端那版大部分比本地那版做得好或相当」,是对现行实现单向复测得出的。另一会话随后做了\n双向交叉实测(两套实现各自编译成 dist 后互喂夹具与单测),结论更明确:被放弃的 9ac9914 实有 4 个缺陷——\nN10 放行可变版本标签、N11 拒错原因(其 \\d+\\.\\d+\\.\\d+ 收下 1.02.0)、P03 与 P04 两处误拒(后者会拒掉\n平台自己在发的 1.0.0-rc.x);根因是它三个文件各带一套版本文法,远端抽 registry-primitives.ts 正为收敛这三套。\n\n反向也测了:9ac9914 的 19 例夹具喂当前实现 13 通过,6 例不通过里 5 例只是原因码改名(同一输入两侧都拒)、\n1 例是摘要大小写的设计取向差异,无任何输入类别失守;其 40 例单测喂当前实现 36 通过。\n\n只补证据与出处(真源仓 7523bd0 的 contracts/SOURCE.md),不改该行原有的复测结论与实现取舍。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/2395fff75b12126982536526d4ae47676954a0b2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:07:14-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":10416,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T07:05:59+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789772868
|
1789772883
|
0
|
1789772837
|
1789772883
|
|
|
0
|
Edit
Delete
|
|
24164
|
fix(ticket): 通知投递补认领凭据与显式重试上限
|
82
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
601955837eb8caa25a91a2c2da96d9a06f8ea455
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","after":"601955837eb8caa25a91a2c2da96d9a06f8ea455","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/7c4b197f018b02f5ed675758af3f5be5dbd1de02...601955837eb8caa25a91a2c2da96d9a06f8ea455","commits":[{"id":"601955837eb8caa25a91a2c2da96d9a06f8ea455","message":"fix(ticket): 通知投递补认领凭据与显式重试上限\n\n领取此前只看 PENDING/FAILED,且完成回写只按 status=\"SENDING\" 匹配:进程崩在 deliver() 里的那行\n会永远停在 SENDING,没有任何路径能把它捡回来。另有一处重试上限双份常数——领取查询没有上限,\n死信判定走的是 @repo/notification-delivery 的包默认 3,两边靠巧合对齐,改任一边即静默不一致。\n\n- notifications 表加 claim_owner / claim_expires_at(两后端各一份 schema 与迁移),领取写认领、\n 完成按 claimOwner 回写并清空,与其余两个消费仓的 claim 列同形。\n- 领取前先把预算烧完的行(含认领过期仍卡在 SENDING 的)扫成死信;领取查询新增「SENDING 且\n 认领已过期」一支,并显式限定 attempts \u003c NOTIFICATION_MAX_ATTEMPTS。\n- 重试上限收敛为一个常数,同时进领取查询、死信清扫和 decideNotificationFailure。\n- 迁移不建索引:本仓迁移红线把非 CONCURRENTLY 的 CREATE INDEX 判为高危 DDL(首版实测被 exit 1\n 拦下),过期 SENDING 那一支由既有 notifications_tenant_status_next_attempt_idx 的\n (tenant_id, status) 前缀服务;要加 (tenant_id, status, claim_expires_at) 须按\n expand→migrate→contract 单独提,不混在这条加列迁移里。\n- packages/notification-delivery:未知异常不再默认可重试(模板体检失败这类确定性错误重发多少次\n 都是同一个结果),并补 NotificationTemplateError 的消息分支——缺它时 lastError 会把模板错误\n 写成「供应商不可用」。与报价仓的同名包语义就此一致。\n\n验证:pnpm check 全绿(15 道静态门禁 + lint + typecheck,含 write-guard / dual-backend /\nmigrations / write-chain);包单测 9/9。领取与清扫 SQL 在本机 Postgres 建临时库实跑:清扫只命中\n「预算烧完 + 认领过期」那一行,领取只取到「到期 PENDING」与「认领过期 SENDING」,正确跳过活认领、\n他租户与 next_attempt_at 未到的行,临时库跑完已删。\n\n未跑:两后端新增的认领回收验收用例(NestJS/Fastify 逐条镜像)属 check:runtime 级别,需 pgvector\n的真实库 + Redis + 附件基础设施,本机 PG 无 pgvector,未硬凑环境,故本次不声称该级证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/601955837eb8caa25a91a2c2da96d9a06f8ea455","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:27-07:00","added":["apps/api-fastify/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql","apps/api-nestjs/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql"],"removed":[],"modified":["apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"601955837eb8caa25a91a2c2da96d9a06f8ea455","message":"fix(ticket): 通知投递补认领凭据与显式重试上限\n\n领取此前只看 PENDING/FAILED,且完成回写只按 status=\"SENDING\" 匹配:进程崩在 deliver() 里的那行\n会永远停在 SENDING,没有任何路径能把它捡回来。另有一处重试上限双份常数——领取查询没有上限,\n死信判定走的是 @repo/notification-delivery 的包默认 3,两边靠巧合对齐,改任一边即静默不一致。\n\n- notifications 表加 claim_owner / claim_expires_at(两后端各一份 schema 与迁移),领取写认领、\n 完成按 claimOwner 回写并清空,与其余两个消费仓的 claim 列同形。\n- 领取前先把预算烧完的行(含认领过期仍卡在 SENDING 的)扫成死信;领取查询新增「SENDING 且\n 认领已过期」一支,并显式限定 attempts \u003c NOTIFICATION_MAX_ATTEMPTS。\n- 重试上限收敛为一个常数,同时进领取查询、死信清扫和 decideNotificationFailure。\n- 迁移不建索引:本仓迁移红线把非 CONCURRENTLY 的 CREATE INDEX 判为高危 DDL(首版实测被 exit 1\n 拦下),过期 SENDING 那一支由既有 notifications_tenant_status_next_attempt_idx 的\n (tenant_id, status) 前缀服务;要加 (tenant_id, status, claim_expires_at) 须按\n expand→migrate→contract 单独提,不混在这条加列迁移里。\n- packages/notification-delivery:未知异常不再默认可重试(模板体检失败这类确定性错误重发多少次\n 都是同一个结果),并补 NotificationTemplateError 的消息分支——缺它时 lastError 会把模板错误\n 写成「供应商不可用」。与报价仓的同名包语义就此一致。\n\n验证:pnpm check 全绿(15 道静态门禁 + lint + typecheck,含 write-guard / dual-backend /\nmigrations / write-chain);包单测 9/9。领取与清扫 SQL 在本机 Postgres 建临时库实跑:清扫只命中\n「预算烧完 + 认领过期」那一行,领取只取到「到期 PENDING」与「认领过期 SENDING」,正确跳过活认领、\n他租户与 next_attempt_at 未到的行,临时库跑完已删。\n\n未跑:两后端新增的认领回收验收用例(NestJS/Fastify 逐条镜像)属 check:runtime 级别,需 pgvector\n的真实库 + Redis + 附件基础设施,本机 PG 无 pgvector,未硬凑环境,故本次不声称该级证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/601955837eb8caa25a91a2c2da96d9a06f8ea455","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:27-07:00","added":["apps/api-fastify/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql","apps/api-nestjs/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql"],"removed":[],"modified":["apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1867,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-09-15T15:55:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789772883
|
1789772913
|
0
|
1789772841
|
1789772914
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24165
|
fix(service): 通知投递未知异常不再默认重试,并显式传重试上限
|
81
|
5
|
governance.yml
|
9
|
5
|
0
|
refs/heads/main
|
cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2085f1a31a52687344dd74911761be941a185b3c","after":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/2085f1a31a52687344dd74911761be941a185b3c...cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","commits":[{"id":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","message":"fix(service): 通知投递未知异常不再默认重试,并显式传重试上限\n\n两处与同名包在其余消费仓的语义漂移:\n\n- packages/notification-delivery:decideNotificationFailure 对非 NotificationDeliveryError 的\n 异常默认 retryable=true。模板体检失败(assertRegisteredNotificationTemplate 在 try 内)这类\n 确定性错误因此会白烧三次重试预算才进死信。改为只有投递层明确标了可重试才重试。\n- 同批补 NotificationTemplateError 的消息分支:缺它时 lastError 会把模板错误写成\n 「NOTIFICATION_PROVIDER_UNAVAILABLE」,运维照着这条记录去查供应商,查不到任何东西。\n- 两后端 decideNotificationFailure 显式传 maxAttempts: MAX_ATTEMPTS。此前领取查询用本地常数 3、\n 死信判定用包默认 3,靠巧合对齐,改任一边即静默不一致。\n\n验证:typecheck 绿;包单测 5/5(新增未知异常与模板错误两条断言);dual-backend /\nconcurrency-guard / migrations / governance-docs / docs-truth / mobile / provenance 逐道绿。\ncheck:os-product 红,与本次无关:它按 ../Digital Employee OS 找 OS 仓(该路径已不存在),指到真实\n路径后卡在锁定的 OS 基线 SHA,本次改动前即如此。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:35-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","message":"fix(service): 通知投递未知异常不再默认重试,并显式传重试上限\n\n两处与同名包在其余消费仓的语义漂移:\n\n- packages/notification-delivery:decideNotificationFailure 对非 NotificationDeliveryError 的\n 异常默认 retryable=true。模板体检失败(assertRegisteredNotificationTemplate 在 try 内)这类\n 确定性错误因此会白烧三次重试预算才进死信。改为只有投递层明确标了可重试才重试。\n- 同批补 NotificationTemplateError 的消息分支:缺它时 lastError 会把模板错误写成\n 「NOTIFICATION_PROVIDER_UNAVAILABLE」,运维照着这条记录去查供应商,查不到任何东西。\n- 两后端 decideNotificationFailure 显式传 maxAttempts: MAX_ATTEMPTS。此前领取查询用本地常数 3、\n 死信判定用包默认 3,靠巧合对齐,改任一边即静默不一致。\n\n验证:typecheck 绿;包单测 5/5(新增未知异常与模板错误两条断言);dual-backend /\nconcurrency-guard / migrations / governance-docs / docs-truth / mobile / provenance 逐道绿。\ncheck:os-product 红,与本次无关:它按 ../Digital Employee OS 找 OS 仓(该路径已不存在),指到真实\n路径后卡在锁定的 OS 基线 SHA,本次改动前即如此。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:35-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":81,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3362,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-09-15T10:54:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789772913
|
1789772921
|
0
|
1789772844
|
1789772921
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24166
|
fix(quotation): 通知投递显式传重试上限——领取与死信判定不再各用一份常数
|
72
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
6908c19f9faf3b006d73054657b97c6cb8f945d9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","after":"6908c19f9faf3b006d73054657b97c6cb8f945d9","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf...6908c19f9faf3b006d73054657b97c6cb8f945d9","commits":[{"id":"6908c19f9faf3b006d73054657b97c6cb8f945d9","message":"fix(quotation): 通知投递显式传重试上限——领取与死信判定不再各用一份常数\n\n服务里的 MAX_ATTEMPTS = 3 只进领取查询与死信清扫,decideNotificationFailure 没传 maxAttempts、\n走的是 @repo/notification-delivery 的包默认 3。今天两个 3 相等所以看不出来,改任一边即静默不一致:\n领取按新上限继续捡,死信判定仍按旧上限提前把行判死。同仓 event-delivery.service.ts 一直是显式传的。\n\n两后端各一行,语义不变。验证:typecheck 绿;pnpm check 22 道全绿;包单测 4/4 未受影响。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/6908c19f9faf3b006d73054657b97c6cb8f945d9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:42-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-nestjs/src/events/notification-delivery.service.ts"]}],"total_commits":0,"head_commit":{"id":"6908c19f9faf3b006d73054657b97c6cb8f945d9","message":"fix(quotation): 通知投递显式传重试上限——领取与死信判定不再各用一份常数\n\n服务里的 MAX_ATTEMPTS = 3 只进领取查询与死信清扫,decideNotificationFailure 没传 maxAttempts、\n走的是 @repo/notification-delivery 的包默认 3。今天两个 3 相等所以看不出来,改任一边即静默不一致:\n领取按新上限继续捡,死信判定仍按旧上限提前把行判死。同仓 event-delivery.service.ts 一直是显式传的。\n\n两后端各一行,语义不变。验证:typecheck 绿;pnpm check 22 道全绿;包单测 4/4 未受影响。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/6908c19f9faf3b006d73054657b97c6cb8f945d9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:06:42-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-nestjs/src/events/notification-delivery.service.ts"]},"repository":{"id":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":35851,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":11,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-09-15T10:54:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789772921
|
1789773989
|
0
|
1789772844
|
1789773991
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24168
|
docs(计划): 登记本轮五件事,并订正 image-smoke「本机解决不了」与镜像落差 116
|
117
|
5
|
governance.yml
|
72
|
5
|
0
|
refs/heads/main
|
8e5cc87f027dab462c6f3f5bf8f0e42894778016
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2395fff75b12126982536526d4ae47676954a0b2","after":"8e5cc87f027dab462c6f3f5bf8f0e42894778016","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/2395fff75b12126982536526d4ae47676954a0b2...8e5cc87f027dab462c6f3f5bf8f0e42894778016","commits":[{"id":"8e5cc87f027dab462c6f3f5bf8f0e42894778016","message":"docs(计划): 登记本轮五件事,并订正 image-smoke「本机解决不了」与镜像落差 116\n\n§8 加一行:① 目录快照发布维度补 not-in-manifest——「Manifest 落后 HEAD」是一个全局\n事实,此前被复制成 21 条目各自的 release.status=stale,其中 14 条没有运行时模块、\nManifest 从未收录过;② runtime 动态区回灌两级验收 SHA(报告已绑 08c3788 / 1b23285,\n动态区还写 765300b);③ 完整 pnpm --dir runtime check 让 18 份静态子报告同绑一次运行,\nreportProvenanceViolations 归零——单跑一道门禁做不到这条;④ 镜像冒烟本机真跑 6/6 后\n补绑定,check:evidence 在 95b88d3 上到 passed / 41 新鲜 / 0 过期;⑤ runbook §7 补\n--env-file 来源,连带回绑两份工作台快照;⑥ 镜像同步被 GH006 拒绝并留证。\n\n订正上一条登记:image-smoke 被记成「不是本机静态能解决的」,实测不是——它的 sourceSha\n与 image-digest.json 一致,说明冒的是当前镜像、结论有效,过期只是绑定落后,本机真跑一次\n即清。但 §5 那条「CI 在 build 与 sbom 之间插一步冒烟」的登记不因此关闭。\n\n另记一条机制发现:直推镜像 main 在机制上走不通(workflow 只在 pull_request /\npush:[main] / workflow_dispatch 触发,而保护要求 check 挂在被推的 commit 上,该 commit\n没到过 GitHub 就没有 check,要跑就得先推上 main)。可行路线只剩合 PR #45 或侧分支\ndispatch 后推同一 SHA,都要计费先恢复。\n\n三处「落后 116 个提交」按实测改为 245,并写明实测日期与「引用前重测」——这个数每天在涨,\n写死一个数就是下一次误判的来源。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/8e5cc87f027dab462c6f3f5bf8f0e42894778016","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:09:33-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"8e5cc87f027dab462c6f3f5bf8f0e42894778016","message":"docs(计划): 登记本轮五件事,并订正 image-smoke「本机解决不了」与镜像落差 116\n\n§8 加一行:① 目录快照发布维度补 not-in-manifest——「Manifest 落后 HEAD」是一个全局\n事实,此前被复制成 21 条目各自的 release.status=stale,其中 14 条没有运行时模块、\nManifest 从未收录过;② runtime 动态区回灌两级验收 SHA(报告已绑 08c3788 / 1b23285,\n动态区还写 765300b);③ 完整 pnpm --dir runtime check 让 18 份静态子报告同绑一次运行,\nreportProvenanceViolations 归零——单跑一道门禁做不到这条;④ 镜像冒烟本机真跑 6/6 后\n补绑定,check:evidence 在 95b88d3 上到 passed / 41 新鲜 / 0 过期;⑤ runbook §7 补\n--env-file 来源,连带回绑两份工作台快照;⑥ 镜像同步被 GH006 拒绝并留证。\n\n订正上一条登记:image-smoke 被记成「不是本机静态能解决的」,实测不是——它的 sourceSha\n与 image-digest.json 一致,说明冒的是当前镜像、结论有效,过期只是绑定落后,本机真跑一次\n即清。但 §5 那条「CI 在 build 与 sbom 之间插一步冒烟」的登记不因此关闭。\n\n另记一条机制发现:直推镜像 main 在机制上走不通(workflow 只在 pull_request /\npush:[main] / workflow_dispatch 触发,而保护要求 check 挂在被推的 commit 上,该 commit\n没到过 GitHub 就没有 check,要跑就得先推上 main)。可行路线只剩合 PR #45 或侧分支\ndispatch 后推同一 SHA,都要计费先恢复。\n\n三处「落后 116 个提交」按实测改为 245,并写明实测日期与「引用前重测」——这个数每天在涨,\n写死一个数就是下一次误判的来源。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/8e5cc87f027dab462c6f3f5bf8f0e42894778016","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:09:33-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":10469,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T07:07:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789773989
|
1789774004
|
0
|
1789773007
|
1789774004
|
|
|
0
|
Edit
Delete
|
|
24176
|
chore(reports): health 采纳的四十一份三级证据 回绑 @ fc147d3,刷新 chore(reports): health 采纳的四十一份三级证据 回绑 @ fc147d3,刷新快照锚点...
|
76
|
5
|
governance.yml
|
86
|
5
|
0
|
refs/heads/main
|
001e16da960e9c44fcb2f943d149bb374c710e33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"85a263fb1667d12318daa5601f7e6e23284c5dfd","after":"001e16da960e9c44fcb2f943d149bb374c710e33","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/85a263fb1667d12318daa5601f7e6e23284c5dfd...001e16da960e9c44fcb2f943d149bb374c710e33","commits":[{"id":"001e16da960e9c44fcb2f943d149bb374c710e33","message":"chore(reports): health 采纳的四十一份三级证据 回绑 @ fc147d3,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 fc147d3(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=fc147d3、worktreeDirty:false):\n静态 28 + 运行态 13。静态整轮 28/28(退出码 0);运行态 735 tests / 行为矩阵 204/204 /\n87 项指标零违规。\n\nhealth 换成内核 buildHealthResponse 后**行为中性**:四处调用点、两个 dispatcher 的\n200/503 映射、NestJS 的 ServiceUnavailableException、依赖弹性用例(14 故障 + 14 恢复 +\n半开 4 + 延迟 4)全过。开工时列的三个风险点(响应形状、503 映射、超时语义)一个都未兑现。\n\n用例数 733 → 735(health 3 例改写为 5 例,覆盖面上升);地板 683 未动——地板只在全绿后用\n--update-baseline 收紧,不随一次上浮改。\n\n本批跑了两轮 runtime,第一轮红在末尾的 docs-truth 复核(动态数字仍写 733)。\n**这是结构性自指,不是缺陷**:任何改变用例数的批次,第一轮 runtime 必然在自己最后一步的\n数字校验上失败——数字只有跑完才知道,而跑的最后一步要校验数字。已把「改动影响用例数时\n预期两轮 runtime」记进 fc147d3 的提交信息,与「先提交再跑」是同一类流程教训\n(后者本批已用上,第一轮即 clean 绑定)。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/001e16da960e9c44fcb2f943d149bb374c710e33","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:31:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"fc147d377061ea86c37cdd24e1afb0c441a6e2fe","message":"docs(治理): 动态数字随 health 用例增补对齐——733 → 735 tests\n\nhealth 由 3 例改写为 5 例后 runtime 用例数 733 → 735,CLAUDE.md 动态区两处随之更新:\n证据新鲜度行的「(733 tests / 0 failures)」与动态表的 tests-passing 行。地板 683 不动\n(地板只在全绿后用 --update-baseline 收紧,不随一次上浮改)。\n\n**这一轮红是结构性自指,不是缺陷:** 任何改变用例数的批次,第一轮 runtime 必然在自己\n最后一步的 docs-truth 复核上失败——数字只有跑完才知道,而跑的最后一步要校验数字。\n本轮测试本身全过(735 tests / 0 failures、行为矩阵 204/204、87 项指标零违规),\n红的只有 governance-number-evidence-consistency 的两处漂移字段。修正后重跑即闭合。\n\n顺带记一条可复用的顺序:**改动会影响用例数时,预期两轮 runtime**——第一轮取真实数字,\n更新文档后第二轮取 clean 绑定的 passed 证据。与「先提交再跑」是同一类流程教训。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fc147d377061ea86c37cdd24e1afb0c441a6e2fe","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:19:20-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"bfc3ef5a82a201c649688dd76b3ed22704560888","message":"feat(health): B3 余采纳内核可扩展健康检查;同批订正 B4 的分类误判\n\n两件事,都是「实测推翻先前判断」的后续。\n\n一、B4 调查结论写回立项(不改代码)\n\n先前把 `rls` 归为「同名不相干、二选一」——0% 导出重合被读成互斥,实际是**解决不同问题**:\n框架 tenant-rls 管**姿态与探测**(resolveTenantRlsMode 生产拒绝 off、assertRlsCapableRole\n启动拒绝 superuser/BYPASSRLS、tenantRlsRoleNames 派生角色名),本仓 rls 管**清单与纪律**\n(67 张表/模型登记、角色名常量、SET LOCAL ROLE 的租户 id 校验)。两者互补。\n\n调查顺带查出一个真缺口并登记进 §6:**应用不在启动时探测连接角色**。现有保护全在门禁时——\ncheck:db-credential-separation 供给角色、查 pg_roles、断言不特权(8 负例含 runtime-superuser\n探针),验的是「供给对不对」而非「应用会不会拒绝启动」。若部署时 DB URL 指向超级用户,应用\n照常启动,所有不走 tenantTx 的查询都没有 RLS。补它的前提是先采纳双 URL 模型——\nDATABASE_RUNTIME_URL 在本仓只被 scripts/with-platform-dev.mjs 用到,**两个应用根本不读它**。\n故 B4 重定义为「采纳双 URL RLS 模型 + 启动探测」,属部署面变更,独立批次。\n**没有顺手先迁 tenant-rls 契约**——那会再造一块零消费面,同一个错误不在一次会话里犯第二遍。\n\n二、health 采纳内核可扩展形态(框架 0.19.0,受理基础设施仓 FR-1)\n\n本仓原实现是固定两键 checks + evaluateHealthDependencies,属 0.19.0 之前的形态。框架把\nchecks 改为 { database; redis } \u0026 Record\u003cstring, HealthCheckState\u003e——**纯增键,既有消费者逐字\n不受影响**——并给出附加子检查登记点与名字 fail-closed(占用核心名 / 重复登记在登记这一刻抛错)。\n\n为什么现在采纳:本仓已知有拿不出来的健康维度(缺失梳理 §3 记着「消费组滞后无指标」)。\n固定两键下这类维度无处安放;换成可扩展形状后,Kafka 消费者滞后、平台端口状态才有登记位。\n\n替换而非合并:框架 buildHealthResponse + probeHealthCheck 覆盖本仓 evaluateHealthDependencies\n的全部语义,并把 service / uptime / timestamp 一并产出——四处适配器此前各自手拼这三个字段,\n正是 G17 行为漂移的老来源(两侧曾一个回浮点进程 uptime、一个回整数应用 uptime)。\n输出逐字兼容:无 extras 时 every(up) 等价于原先 database \u0026\u0026 redis,timestamp 同为 toISOString()。\n\n四处调用点全改:两个 dispatcher + Fastify 路由 + NestJS 控制器。\n\n**测试覆盖上升而非下降**:health.test.ts 由 3 例改写为 5 例——原三条语义(ok / 逐项判责 /\n超时 fail-closed)逐条在新 API 上重验,另加两条覆盖新能力(附加子检查参与 degraded 判定、\n名字 fail-closed)。contracts 312 → 314,own-test-cases 736 → 738。\n\n三处门禁断言随符号改名同步(C45 双后端 health、C58 两个 dispatcher、O11 运维平面)。\n**断言意图未变**,改的只是符号名。三条都做了实活验证:把符号换成不含原串的名字后 C45/C58/O11\n如期转红,还原复验绿。(第一次探针用 buildHealthResponseX,正则仍匹配前缀而未触发——\n探针本身的设计错误,已重做。)\n\n@repo/contracts 1.21.0 → 1.22.0;三把锁重签(exports 42 模块 / 751 导出);接入手册锁行同步;\nCLAUDE.md 动态表 own-test-cases 随报告更新。静态整轮 28/28。\n运行态在本提交后重跑回绑——health 端点实现已换,必须验。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/bfc3ef5a82a201c649688dd76b3ed22704560888","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:08:02-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/routes/health.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/health/health.controller.ts","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/health.test.ts","packages/contracts/src/health.ts","scripts/check-dual-backend-parity.mjs","scripts/check-operations.mjs"]}],"total_commits":0,"head_commit":{"id":"001e16da960e9c44fcb2f943d149bb374c710e33","message":"chore(reports): health 采纳的四十一份三级证据 回绑 @ fc147d3,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 fc147d3(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n四十一份 reports/*.latest.json 全部 clean 绑定(gitSha=fc147d3、worktreeDirty:false):\n静态 28 + 运行态 13。静态整轮 28/28(退出码 0);运行态 735 tests / 行为矩阵 204/204 /\n87 项指标零违规。\n\nhealth 换成内核 buildHealthResponse 后**行为中性**:四处调用点、两个 dispatcher 的\n200/503 映射、NestJS 的 ServiceUnavailableException、依赖弹性用例(14 故障 + 14 恢复 +\n半开 4 + 延迟 4)全过。开工时列的三个风险点(响应形状、503 映射、超时语义)一个都未兑现。\n\n用例数 733 → 735(health 3 例改写为 5 例,覆盖面上升);地板 683 未动——地板只在全绿后用\n--update-baseline 收紧,不随一次上浮改。\n\n本批跑了两轮 runtime,第一轮红在末尾的 docs-truth 复核(动态数字仍写 733)。\n**这是结构性自指,不是缺陷**:任何改变用例数的批次,第一轮 runtime 必然在自己最后一步的\n数字校验上失败——数字只有跑完才知道,而跑的最后一步要校验数字。已把「改动影响用例数时\n预期两轮 runtime」记进 fc147d3 的提交信息,与「先提交再跑」是同一类流程教训\n(后者本批已用上,第一轮即 clean 绑定)。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/001e16da960e9c44fcb2f943d149bb374c710e33","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:31:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":89257,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T06:55:46+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789774294
|
1789774384
|
0
|
1789774292
|
1789774420
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24178
|
chore(reports): realtime 依赖登记的二十八份静态证据 回绑 @ 5f3807 chore(reports): realtime 依赖登记的二十八份静态证据 回绑 @ 5f38077,刷新快照锚点...
|
76
|
5
|
governance.yml
|
88
|
5
|
0
|
refs/heads/main
|
2ef8d2fea20dcc03a7397ed3fc71312b675a70d9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"001e16da960e9c44fcb2f943d149bb374c710e33","after":"2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/001e16da960e9c44fcb2f943d149bb374c710e33...2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","commits":[{"id":"2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","message":"chore(reports): realtime 依赖登记的二十八份静态证据 回绑 @ 5f38077,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 5f38077(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=5f38077、worktreeDirty:false)。\n静态整轮 28/28(退出码 0)。\n\n未跑运行态:本批只动立项文档,未改任何运行代码,runtime 证据仍绑 fc147d3\n(735 / 204-204 / 零违规)且未失效。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:35:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"5f38077645e9e39fc5b2b1a44387d3aeb72b1b5f","message":"docs(planning): 登记 realtime 双向分歧与 RequestContext 贯通这个共同前置\n\n接 realtime 时发现它不该现在做,原因值得单独记:\n\n**realtime 是双向分歧,不是本仓落后。** makeEnvelope 两边各自演进过——\n 本仓:resourceRefs 支持(resourceRefsFromData + 去重),与 subscription 同一条扩展协议\n 框架:options.context → envelope.context { requestId, traceId }(0.6.0 上下文贯通)\n另有 realtimeChannelForDatabase(按 Redis 逻辑库分区频道,13 个消费者,正是此前 runtime\n长期假红的根因所在)是本仓独有。整份转发会丢掉本仓那半,故按迁移手册 §6 走分歧账本。\n\n**更要紧的是它暴露了一个共同前置。** 框架那一半依赖 RequestContext 从 HTTP 层贯通,\n而这正是 B2c-1 明确推迟的 ALS 工作。两个挂起批次因此指向同一件没做的事:\n\n B2c-2 平台端口接线 —— decide() 入参是 RequestContext。服务层拿不到 HTTP 头,\n 只能合成 requestId:对权限判定无妨(端口只用 tenantId + actorId + action),\n 但**审计关联失效**。这就是 B2c-2 只接权限端口、不接审计端口的原因。\n B3″ realtime —— envelope.context 取自 propagatedContextOf(RequestContext)。\n 没有真实上下文,这个字段要么缺席、要么填合成值——**后者比缺席更糟**,\n 它让「信封可追溯」成为假象。\n\n本仓**已有 AsyncLocalStorage**(两后端各一份 rls-context.ts 用于 RLS 租户绑定),\n不是从零起;缺的是把 buildRequestContext 的产物在请求入口塞进 ALS 并让下游取用。\n框架 0.4.0 / 0.6.0 的两后端接线可直接对照。\n\n登记它而不是顺手做:贯通请求上下文会改变两后端的请求入口与队列载荷(0.6.0 的\noutboxContext 把 context 带进 outbox 行),属跨切面改动,应当独立批次并配完整 runtime\n验证,不该作为别的批次的副产品。\n\n本批只动文档,静态 28/28,未改运行代码。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5f38077645e9e39fc5b2b1a44387d3aeb72b1b5f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:33:37-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/planning/内核退回pin立项-2026-09-18.md"]}],"total_commits":0,"head_commit":{"id":"2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","message":"chore(reports): realtime 依赖登记的二十八份静态证据 回绑 @ 5f38077,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 5f38077(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=5f38077、worktreeDirty:false)。\n静态整轮 28/28(退出码 0)。\n\n未跑运行态:本批只动立项文档,未改任何运行代码,runtime 证据仍绑 fc147d3\n(735 / 204-204 / 零违规)且未失效。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:35:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":89809,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T07:31:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789774506
|
1789774515
|
0
|
1789774505
|
1789774529
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24182
|
docs(治理): 总架构 §1 表前五项复核改记 2026-09-18,图 1 / 图 2 图注同 docs(治理): 总架构 §1 表前五项复核改记 2026-09-18,图 1 / 图 2 图注同步对齐...
|
117
|
5
|
governance.yml
|
73
|
5
|
0
|
refs/heads/main
|
b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8e5cc87f027dab462c6f3f5bf8f0e42894778016","after":"b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/8e5cc87f027dab462c6f3f5bf8f0e42894778016...b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85","commits":[{"id":"b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85","message":"docs(治理): 总架构 §1 表前五项复核改记 2026-09-18,图 1 / 图 2 图注同步对齐\n\n按原复算方式对活契约与 runtime/modules.json 重读平台项目 21 / 裁决 39 / 事实 11 /\n实体 168 / 运行时模块 7 五项,取值与 09-17 完全一致,故观测时刻改记 2026-09-18,\n并在 §1 表下补一段复核记:复核是工作区内只读直读,未产出登记报告,证据只绑定本地\n工作区。两张图(图 1 五层与依赖方向、图 2 现存跨应用关系)的图注观测时刻一并改到\n09-18,与表对齐;§0 增补段补一句指向这次改记。\n\n未重跑的五项——派生仓分档、框架版本 L11 / L12、docker ps、文档口径一致性——\n保持 2026-09-17 不动。本轮复跑 check-workspace-consistency.mjs 仍只有 L9 一条\n(COMPOSE_PROJECT_COLLISION,7 个仓共用 api-nestjs project 名),与文中写法一致。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:34:29-07:00","added":[],"removed":[],"modified":["平台治理/企业应用群总架构-2026-09-17.md","平台治理/基础/分层模型-图1-五层与依赖方向.svg","平台治理/基础/分层模型-图2-现存跨应用关系.svg"]}],"total_commits":0,"head_commit":{"id":"b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85","message":"docs(治理): 总架构 §1 表前五项复核改记 2026-09-18,图 1 / 图 2 图注同步对齐\n\n按原复算方式对活契约与 runtime/modules.json 重读平台项目 21 / 裁决 39 / 事实 11 /\n实体 168 / 运行时模块 7 五项,取值与 09-17 完全一致,故观测时刻改记 2026-09-18,\n并在 §1 表下补一段复核记:复核是工作区内只读直读,未产出登记报告,证据只绑定本地\n工作区。两张图(图 1 五层与依赖方向、图 2 现存跨应用关系)的图注观测时刻一并改到\n09-18,与表对齐;§0 增补段补一句指向这次改记。\n\n未重跑的五项——派生仓分档、框架版本 L11 / L12、docker ps、文档口径一致性——\n保持 2026-09-17 不动。本轮复跑 check-workspace-consistency.mjs 仍只有 L9 一条\n(COMPOSE_PROJECT_COLLISION,7 个仓共用 api-nestjs project 名),与文中写法一致。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:34:29-07:00","added":[],"removed":[],"modified":["平台治理/企业应用群总架构-2026-09-17.md","平台治理/基础/分层模型-图1-五层与依赖方向.svg","平台治理/基础/分层模型-图2-现存跨应用关系.svg"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":10526,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T07:10:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789774923
|
1789774938
|
0
|
1789774905
|
1789774938
|
|
|
0
|
Edit
Delete
|
|
24202
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 47e6 chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 47e6fe3;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
90
|
5
|
0
|
refs/heads/main
|
34aab5dea31113ee2688fd236eea3f382402027e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2ef8d2fea20dcc03a7397ed3fc71312b675a70d9","after":"34aab5dea31113ee2688fd236eea3f382402027e","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/2ef8d2fea20dcc03a7397ed3fc71312b675a70d9...34aab5dea31113ee2688fd236eea3f382402027e","commits":[{"id":"34aab5dea31113ee2688fd236eea3f382402027e","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 47e6fe3;锚点随批次刷新\n\n三级证据本批首次同时绑定 clean HEAD `47e6fe3`(worktreeDirty:false):\n\n· runtime 30/30 步、**747 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 七包测试、迁移 deploy/status、auth-startup、db-credential-separation、tracing、\n dependency-resilience、capacity、write-capacity、multi-instance 全通过。\n 747 = 735 + 本批 12 例,与 b71b745 前置写下的预测值一致——预测被实测证实,\n 不是反过来改文档迁就。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate(收尾清单硬条目)。\n\nauth-startup 现有**三类拒启各 2/2**:无验签器、显式 demo、**生产缺 APP_ID**。第三类是本日\n新增,`missingAppIdRejected: 2` 是两个后端都真的起不来的机器回执——它抓到的正是本批自己\n第一版的惰性解析缺陷,不是事后补的装饰。\n\n跑了三轮 runtime,如实记账:\n ① 红在 auth-startup —— 真缺陷(惰性 APP_ID),已修(47e6fe3 的父提交);\n ② 实质全绿但红在收尾 docs-truth 的快照锚点滞后 —— 锚点停在 3949dcc 而 HEAD 已走两步,\n 打穿 C232 的 +1 自指窗。修复提交已把锚点折进去指向其父提交;\n ③ 30/30 全绿,即本提交回绑的这一份。\n第 ② 轮暴露的是我自己的流程错:改变用例数的批次天然要两轮,但锚点该在每个提交里跟着走,\n不该等到最后一个提交才想起来——C241 写的就是这条,这次仍然踩了。\n\n本提交按 C241 把锚点指向父提交 47e6fe3;证据新鲜度里 runtime 与 auth-startup 两行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/34aab5dea31113ee2688fd236eea3f382402027e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:38:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"47e6fe38803a863e867b9f8a6141540da75736ee","message":"fix(kernel-repin): APP_ID 改为装配期强制解析——惰性解析让生产「起得来但每个请求 500」\n\n本批 runtime 第一轮就红在 auth-startup,抓到的是我自己引入的缺陷,不是环境问题:\n\n首版 appId() 是**惰性**的(第一次请求才解析)。于是生产缺 APP_ID 时进程**正常启动**,\n随后 /api/health 与每个业务请求各 500 一次——栈顶就是 request-context 插件。内核对\nresolveAppId 写明的语义是「生产缺失即抛错,起不来好过匿名运行」,惰性版把它退化成\n「运行但全错」,而且把一个配置错误伪装成运行时故障。假绿五形态里的「假健康读模型」\n换了个方向:健康检查自己 500,但进程活着、编排层看不出是配置问题。\n\n改法:\n· appId() 解析失败时包一层稳定归因码 `[APP_ID_REQUIRED]`(与 C51 的 AUTH_VERIFIER_REQUIRED、\n C153 的 secret 读取同款——门禁判定归因码,不去匹配内核的中文消息);\n· 新增 assertRequestContextStartup(),在**四个入口**启动期强制解析:\n NestJS create-app.ts / Fastify app.ts(紧挨 assertTenantAuthStartup)\n + 两个 dispatcher 的 main()(contextFromJob 同样以 APP_ID 标识来源应用);\n· check:auth-startup 增加**第三类拒启负例**:生产 + required + 有 verifier、但显式拿掉\n APP_ID → 必须起不来。指标 missingAppIdRejected 入棘轮(floor 2);\n· 八个启动生产入口的 runner 显式提供 APP_ID——它们本来就该像真实编排那样配齐环境,\n 这不是放宽判据:判据是「缺了要拒启」,由上面那条负例证明,不是靠别的 runner 顺带不配。\n\n绊网加厚:check:dual-backend 的 RequestContext 断言由 7 条扩到 14 条,覆盖四个入口的启动闸、\n两份持有模块的归因码,以及那条负例本身——防惰性解析回潮(它在 typecheck 和行为矩阵下都是绿的)。\n\n第一轮 runtime 的其余结果(报告已随失败轮作废,此处只作判断依据,不作证据引用):\n21 个步骤 status=0,**testsPassed=747——与上一提交前置的预测值一致**,两个 request-context\n验收文件各 6 例都在里面;唯一红的是 auth-startup。行为矩阵未执行(在 auth-startup 之后)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/47e6fe38803a863e867b9f8a6141540da75736ee","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:14:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/lib/request-context.ts","apps/api-nestjs/src/common/request-context.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/dispatcher.ts","docs/planning/内核退回pin立项-2026-09-18.md","reports/baseline.json","scripts/check-auth-startup.mjs","scripts/check-capacity-envelope.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dependency-resilience.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-multi-instance.mjs","scripts/check-redis-auth-live.mjs","scripts/check-tracing.mjs","scripts/check-write-capacity.mjs","scripts/governance-report.mjs"]},{"id":"b71b745a36f3b4786d177604aa7034bf5a43ba39","message":"chore(reports): 静态 28/28 回绑 @ 3949dcc;数字前置到本批实测值\n\n静态 28 份报告在实现提交上重新生成并回绑(`check:kernel-admission` 42 模块 / 751 导出、\n`check:kernel-boundaries` 147/147 受管面 / 245/245 锁定文件、`check:dual-backend` 负探针 2/2)。\n\nCLAUDE.md 动态数字随本批改动前移:\n own-tests 92 → 94 (+2 个 request-context 验收文件,C70 只计 git 已跟踪,\n 故必须在实现提交落地后才数得到)\n own-test-cases 738 → 750 (+12 例,与 governance.latest.json 实测一致)\n tests-passing 735 → 747 (**这一个是预测值**:735 + 本批 12 例,尚未被 runtime 实测)\n\n「tests-passing 写在实测之前」是本仓已知的结构性自指,不是抄数:任何改变用例数的批次\n都会在自己第一次 runtime 的收尾 docs-truth 上红——C231/C244 把该复验放在 canonical 报告\n写下之后,而正确数字只有跑完才知道。两条出路都要跑两轮 runtime(先跑得数再改文档,或\n先写预测再跑),这里选后者,好处是 runtime 报告能直接绑定 clean HEAD。\n**若下一轮实测不等于 747,以报告为准修正本行,不反过来迁就文档。**\n\n快照锚点按 C241 指向实现提交 3949dcc。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/b71b745a36f3b4786d177604aa7034bf5a43ba39","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:59:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"3949dcccd743f991487c1438db85ddb11277cc4c","message":"feat(kernel-repin): RequestContext 从 HTTP 层贯通——两后端回显 x-request-id / x-trace-id\n\nB2c-2 与 B3″ 的共同前置(立项 §5.2)。形状与解析全部取自 contracts `request-context.ts`\n(转发自 `@juhai/kernel` 0.22.0),本仓只写 AsyncLocalStorage、APP_ID 解析与两个框架各自的\n入口适配——不复制第二份判定。\n\n修的是一个真缺陷,不只是搬代码:本仓此前**不回显任何相关性标识**,调用方拿到 500 之后\n没有任何能交给运维去查日志的句柄。现在固定回显 x-request-id;有合法 traceparent 时另回\nx-trace-id。入站 requestId 合法即沿用(跨服务相关性的唯一意义),非法即丢弃重生成——不把\n外部字符串反射进响应头与日志。\n\n装配(两侧必须最先,鉴权在其后才能 enrich,响应头回显要覆盖其后所有分支):\n NestJS create-app.ts 第一个 app.use(先于 trace 中间件)\n Fastify app.ts 第一个 register(先于 setErrorHandler 与既有 hook)\n\n与既有 rls-context 并存、刻意不合并:那一份持有 RLS 执行身份(tenant/system 两态),\n这一份持有请求可追溯性。失败语义不同,合成一个 store 会让「租户缺失」与「上下文缺失」\n不可区分。\n\n⚠️ 部署侧同批改动:resolveAppId 在生产缺 APP_ID 时抛错拒绝启动,\ndeploy/production/compose.yml 的 x-api-environment 与 x-dispatcher-environment 两个锚点\n都已写入 APP_ID。漏掉任一个,对应进程起不来——不能等下一批补。\n\n为什么额外建绊网:行为矩阵**结构上证明不了这条**。x-request-id 是实例噪声,被显式排除在\n22 个稳定响应头白名单之外(两端值必然不同),所以删掉任一侧的装配点,矩阵 204 例仍全绿。\n补两层:\n · check:dual-backend 新增 7 条 targeted 断言(含装配顺序、两个 compose 锚点各一)\n + 一个受控断线负探针;dualBackendParityNegativeProbes 由 1 收紧到 2;\n · 两侧各 6 例真实 HTTP 验收 request-context.acceptance.test.ts,断言集逐条对等:\n 无头生成 / 合法沿用 / 非法重生成 / traceparent 取 trace-id / 畸形不猜 / 404 也回显。\n\n负向实测(已恢复现场):注释掉 Fastify 的 register → 该侧 6/6 精确红;注释掉 NestJS 的\napp.use → 该侧 6/6 精确红。\n\n本批没做、也不声称:outboxContext() 与 decisionContext() 目前**零调用方**——把 context\n写进 outbox 行是 B3″,接进权限判定是 B2c-2(仍卡 ADR 0011 裁决)。本批只交付「上下文在\n请求入口真实存在、可被下游取用、且对外可见」。\n\n边界归属:新增 3 个源码文件按 CORE 归属,kernel.boundaries.lock 重签,受管面 146→147、\n锁定文件 242→245,CLAUDE.md 同步。baseline 只收紧本批真正改变的那个字段\n(dualBackendParityNegativeProbes 1→2)——其余若干地板确实落后于现值(ownTests 83 vs 92、\nrlsProtectedTables 65 vs 67 等),那是另一件事,不在本批顺手扫掉。\n\n证据:typecheck 13/13;pnpm check 28/28;两侧 request-context 验收各 6/6(真实 DB\ndigital_employee_os_acceptance_20260918 @127.0.0.1:55470 + redis :6404/3)。\nruntime 整轮与报告回绑在下一提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3949dcccd743f991487c1438db85ddb11277cc4c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T16:56:13-07:00","added":["apps/api-fastify/src/lib/request-context.ts","apps/api-fastify/src/plugins/request-context.ts","apps/api-fastify/test/request-context.acceptance.test.ts","apps/api-nestjs/src/common/request-context.ts","apps/api-nestjs/test/request-context.acceptance.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-nestjs/src/create-app.ts","deploy/production/compose.yml","docs/planning/内核退回pin立项-2026-09-18.md","kernel.boundaries.json","kernel.boundaries.lock.json","reports/baseline.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"34aab5dea31113ee2688fd236eea3f382402027e","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 47e6fe3;锚点随批次刷新\n\n三级证据本批首次同时绑定 clean HEAD `47e6fe3`(worktreeDirty:false):\n\n· runtime 30/30 步、**747 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 七包测试、迁移 deploy/status、auth-startup、db-credential-separation、tracing、\n dependency-resilience、capacity、write-capacity、multi-instance 全通过。\n 747 = 735 + 本批 12 例,与 b71b745 前置写下的预测值一致——预测被实测证实,\n 不是反过来改文档迁就。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate(收尾清单硬条目)。\n\nauth-startup 现有**三类拒启各 2/2**:无验签器、显式 demo、**生产缺 APP_ID**。第三类是本日\n新增,`missingAppIdRejected: 2` 是两个后端都真的起不来的机器回执——它抓到的正是本批自己\n第一版的惰性解析缺陷,不是事后补的装饰。\n\n跑了三轮 runtime,如实记账:\n ① 红在 auth-startup —— 真缺陷(惰性 APP_ID),已修(47e6fe3 的父提交);\n ② 实质全绿但红在收尾 docs-truth 的快照锚点滞后 —— 锚点停在 3949dcc 而 HEAD 已走两步,\n 打穿 C232 的 +1 自指窗。修复提交已把锚点折进去指向其父提交;\n ③ 30/30 全绿,即本提交回绑的这一份。\n第 ② 轮暴露的是我自己的流程错:改变用例数的批次天然要两轮,但锚点该在每个提交里跟着走,\n不该等到最后一个提交才想起来——C241 写的就是这条,这次仍然踩了。\n\n本提交按 C241 把锚点指向父提交 47e6fe3;证据新鲜度里 runtime 与 auth-startup 两行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/34aab5dea31113ee2688fd236eea3f382402027e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:38:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":90066,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T07:35:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789778311
|
1789778402
|
0
|
1789778300
|
1789779516
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24204
|
docs(计划): 登记 docs-truth 那条红的修复 @ 8a621fd / 12093b8
|
117
|
5
|
governance.yml
|
74
|
5
|
0
|
refs/heads/main
|
0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85","after":"0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/b0c8f85aaf3e0d5d8581c460a2bebbe2c14e9a85...0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f","commits":[{"id":"0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f","message":"docs(计划): 登记 docs-truth 那条红的修复 @ 8a621fd / 12093b8\n\n动态区 UI 条目实为三处漂移(SHA、端口、验收库),门禁只抓得到 SHA 一处;只换 SHA 会把红\n变绿却留着两句假话,故三处一并订正。同时记下 freshness-sha-* 的覆盖边界:它只断言 SHA\n的声明形式,同条目里的端口与库名可以静默漂移——绿不代表整行都对。\n\nruntime check 现 exit 0、16 项全过;报告在干净 worktree 整批重出回绑,check:evidence\n降至 0 error。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:34:13-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"f84a1e12c72975d9a25af5f9fe62413314b9a280","message":"docs(计划): 登记盲区复核第二轮结果——无新洞,并自查本轮新增的两处接线\n\n四类结果与首轮一致:够不到的检查器 1 个(dev helper 非门禁)、登记报告 0 份无产出方、\n未构建检出逐道跑无新的空跑即绿、流外门禁 5 道复核期均未过期。\n\n自查本轮自己新加的两样是否变成同类盲区:check:fixture-coverage 四处接线齐全;identity\n的两条 freshness 断言经递归展开确认 CI 的 identity job 可达。\n\n同时写清边界:接线正确不等于当前在把关——GitHub Actions 因计费停摆、Gitea 镜像通道从未\n启用,两条均已在案,故这些门禁当前实际把关仍只在本机。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/f84a1e12c72975d9a25af5f9fe62413314b9a280","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:29:40-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"4a26207d8d4f89aa1b24b7ad4698b6091cc92361","message":"docs(计划): 登记 identity docs-truth 补 freshness-sha 断言 @ 1f3ff8c / 6687aec\n\n出口二选一取 ②。口径移植自 runtime 版并保留其三条设计判断(不含静态级、未接线跳过而非\n恒红、必须是声明形式);唯一差异是认本仓实际写法 clean commit `sha`。负向三项实做,含\n上游记载过的「SHA 只出现在提交区间里」那条自我假绿陷阱。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/4a26207d8d4f89aa1b24b7ad4698b6091cc92361","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:25:17-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"32f549d3f61c3729d1a00abb65f50df542c84c39","message":"docs(计划): 登记全仓盲区复核结果与 identity 漂移订正 @ a48cbd6\n\n系统性扫描四类形态,唯一真发现是 identity/reports 完全在新鲜度扫描面之外,且已造成\n一处数字漂移(文档 255 @ 85d538b vs 报告 261 @ 25ead3e),当日已修并补处置说明。\n其余四类均核过且干净,含未构建检出里逐道跑根链验证无新的空跑即绿。\n\n另记本轮自己的三次假阳性及其成因,均在报出前复验修正。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/32f549d3f61c3729d1a00abb65f50df542c84c39","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:20:38-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"c3ae79df23ed6c5e055ef1c5ac6862f14bc477fe","message":"docs(计划): 登记 fixture-coverage 升格为门禁 @ ab28a95 / 83a5542\n\nOwner 裁方案 B。升格前提是先修掉它自己的假绿:不构建直接跑时 15 个套件全跳过而两个\n总数双双为 0、退出码 0,naive 接进 CI 就是永远绿。只阻断 wiringTotal,nowhereTotal 因\n改进过程中非单调只记不拦。另修一处证据污染:显式 --suite 不再写仓级报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/c3ae79df23ed6c5e055ef1c5ac6862f14bc477fe","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:13:51-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f","message":"docs(计划): 登记 docs-truth 那条红的修复 @ 8a621fd / 12093b8\n\n动态区 UI 条目实为三处漂移(SHA、端口、验收库),门禁只抓得到 SHA 一处;只换 SHA 会把红\n变绿却留着两句假话,故三处一并订正。同时记下 freshness-sha-* 的覆盖边界:它只断言 SHA\n的声明形式,同条目里的端口与库名可以静默漂移——绿不代表整行都对。\n\nruntime check 现 exit 0、16 项全过;报告在干净 worktree 整批重出回绑,check:evidence\n降至 0 error。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:34:13-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":10551,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T07:41:45+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789778432
|
1789778463
|
0
|
1789778300
|
1789778463
|
|
|
0
|
Edit
Delete
|
|
24206
|
docs(计划): 登记推送结果与两条实测更正 @ a178ba3
|
117
|
5
|
governance.yml
|
75
|
5
|
0
|
refs/heads/main
|
dea10cf1124b0e7714fe60f395709cda0be55fdb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f","after":"dea10cf1124b0e7714fe60f395709cda0be55fdb","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/0bd8704df3bd5cfbed6e6b06cbcf6d211d0da76f...dea10cf1124b0e7714fe60f395709cda0be55fdb","commits":[{"id":"dea10cf1124b0e7714fe60f395709cda0be55fdb","message":"docs(计划): 登记推送结果与两条实测更正 @ a178ba3\n\n三处远端均已推送并核对 SHA 一致。过程中查出 main 分支保护整个消失(404 Branch not\nprotected,非只摘必需检查)与计费仍未恢复(run 35410044850 三 job failure、注解逐字\n未变)两条,已补进 CLAUDE.md 云端治理段。\n\n按事实作用域,现在只能说到「远端已有该 SHA」,不能说「远端 CI 已通过」。保护由谁摘、\n为何摘未知,本会话未改动任何 GitHub 设置,留给仓库管理权限持有者二选一收口。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/dea10cf1124b0e7714fe60f395709cda0be55fdb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:45:36-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"dea10cf1124b0e7714fe60f395709cda0be55fdb","message":"docs(计划): 登记推送结果与两条实测更正 @ a178ba3\n\n三处远端均已推送并核对 SHA 一致。过程中查出 main 分支保护整个消失(404 Branch not\nprotected,非只摘必需检查)与计费仍未恢复(run 35410044850 三 job failure、注解逐字\n未变)两条,已补进 CLAUDE.md 云端治理段。\n\n按事实作用域,现在只能说到「远端已有该 SHA」,不能说「远端 CI 已通过」。保护由谁摘、\n为何摘未知,本会话未改动任何 GitHub 设置,留给仓库管理权限持有者二选一收口。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/dea10cf1124b0e7714fe60f395709cda0be55fdb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:45:36-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":11037,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T08:38:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789779518
|
1789779534
|
0
|
1789778936
|
1789779534
|
|
|
0
|
Edit
Delete
|
|
24209
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 1b22 chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 1b228ba;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
92
|
5
|
0
|
refs/heads/main
|
94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"34aab5dea31113ee2688fd236eea3f382402027e","after":"94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/34aab5dea31113ee2688fd236eea3f382402027e...94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","commits":[{"id":"94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 1b228ba;锚点随批次刷新\n\nB3″ 三级证据绑定 clean HEAD `1b228ba`(worktreeDirty:false):\n\n· runtime 30/30 步、**759 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 759 = 747 + 本批 12 例,与 1b228ba 前置写下的预测值一致。\n 信封加了可选 context 之后矩阵仍 204/204——它本来就比不到这个字段\n (outbox 快照只取 type + payload),这也正是本批另建 14 条绊网的理由。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\n**一轮过**。上一批因锚点没跟着提交走白跑 25 分钟,这批把锚点写进了每个提交,没有复发。\n\n本提交按 C241 把锚点指向父提交 1b228ba;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:13:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"1b228baf0006555572a2e829ae95f67960da7e98","message":"chore(reports): 静态 28/28 回绑 @ aa62fba;数字前置到本批实测值\n\nown-tests 94 → 96、own-test-cases 750 → 762(+2 文件 / +12 例信封上下文验收,C70 只计\ngit 已跟踪文件,故必须在实现提交落地后才数得到)。\n\ntests-passing 747 → 759 是**预测值**(747 + 本批 12 例),由下一轮 runtime 实测证实;\n不等于 759 就按报告改文档。上一批已验证过这条路子:预测值被实测原样证实。\n理由同上批:改变用例数的批次结构上要两轮 runtime,先写预测能让 runtime 报告直接绑 clean HEAD。\n\n锚点按 C241 指向父提交 aa62fba——上一批就是漏在这里,白跑了一轮 25 分钟。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1b228baf0006555572a2e829ae95f67960da7e98","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:00:51-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"aa62fba5da4448840228f6699f42085fb2bdeae8","message":"feat(kernel-repin): B3″ realtime 双向合并——信封请求上下文真正贯通到 outbox\n\n内核 0.6.0 给信封加了 `context {requestId, traceId}`,但**只给了字段,没给它怎么进来**:\n写入端如何落库、读出端如何还原、无入站请求时如何表达「不知道」,三件事都留给下游发明。\n最省事的实现——投递时从当前 ALS 取一份填进去——恰好是最坏的:照着那个 requestId 去查日志\n只会查到 dispatcher 自己,「信封可追溯」就此变成假象。本批按三段落地:\n\n· 写入:outbox 加 request_id / trace_id 两列(两后端字节一致迁移,纯 additive 可空),\n 由 **Prisma 客户端扩展单点注入**。不逐处改两后端各 74 处 tx.outbox.create——那是\n 148 处一次性改动外加一条永久漂移缝:新写链忘了带就静默缺席,而少一个可空字段\n 不会让任何门禁红。扩展在交互式事务内同样生效,P4 的「outbox 与业务写同 tx」不变。\n 装配顺序固定:扩展在最内层、RLS 代理在最外层——反过来 $extends 会作用到代理的\n 目标对象上,代理当场失效。\n· 读出:dispatcher 与重放各自**从行上取**,经 contracts envelopeContextOf 还原;\n requestId 缺席即整体缺席(半份上下文既对不上日志,也不能声称知道来源)。\n· 缺席:无入站请求(worker / dispatcher / 触发器)时两列 NULL,信封里干脆没有 context。\n\n独立列而非塞 payload:payload 是领域事实,掺进基建相关性标识会被双后端行为矩阵当成领域\n差异比较——它的 outbox 快照恰好只取 type + payload。\n\n这是**合并不是 pin**:内核那版没有 resourceRefs,也没有 realtimeChannelForDatabase,\n直接 pin 会丢掉产品扩展参与订阅的唯一途径与「同 Redis 实例多环境不得互相收事件」的结构解\n(13 个消费者)。分歧已登记进迁移手册 §6,上游同步不得用内核版覆盖本文件。\n\n守护(行为矩阵**结构上证明不了这条**:上下文走独立列,矩阵只比 type + payload,\n删掉任一侧的注入或读出,204 例仍全绿):\n· check:dual-backend 增 14 条 targeted 断言(注入点/读出点/迁移/负例本身)+ 1 个受控断线\n 负探针,dualBackendParityNegativeProbes 由 2 收紧到 3;\n· 两侧各 6 例真实 DB 验收,断言集逐条对等:落库两列 / 无请求即 NULL / dispatcher 读出 /\n 重放保留 / 半份整体缺席 / 显式值不被覆盖。\n负向实测:摘掉 Fastify 注入扩展 → 精确 3 例红;摘掉重放读出 → 精确 1 例红;均已恢复现场。\n\ncontracts 升 1.23.0(expand-only),packages/downstream 两把锁重签,下游 fixture 源码未改\n即通过(同 major 兼容成立)。顺带实测到一个门禁盲区并如实登记为 U-42:check:kernel-packages\n的 apiDigest **只哈希入口 .d.ts 字节、不含再导出的模块**,所以本批加 3 个公开导出它不会红——\n「同版本改公开 API 即红」对 barrel 式入口基本不成立,版本是自觉升的。\n\n本批明确不做、逐条登记在立项书 §5.3:内核的 defineRealtimeEventTypes 组合式事件类型、\n两个未接线的内核常量(LIVE_BUFFER_LIMIT / REDIS_COMMAND_TIMEOUT_MS——后者对应一个真实的\nRedis publish 无超时缺口)、产品事件路径(走 raw SQL,扩展覆盖不到,目前没有 context)、\nworker 派生事件继承原始请求。前三项是范围取舍,最后一项的后果是那些行 context 为 NULL——\n缺席是诚实的,不构成假象。\n\n证据:typecheck 13/13;pnpm check 28/28;两侧信封上下文验收各 6/6(真实 DB\ndigital_employee_os_acceptance_20260918 @127.0.0.1:55470 + redis :6404/3)。\nruntime 整轮与报告回绑在下一提交。锚点按 C241 指向父提交 34aab5d。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/aa62fba5da4448840228f6699f42085fb2bdeae8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T17:59:16-07:00","added":["apps/api-fastify/prisma/migrations/20260929000000_outbox_request_context/migration.sql","apps/api-fastify/src/plugins/outbox-request-context.ts","apps/api-fastify/test/realtime.envelope-context.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260929000000_outbox_request_context/migration.sql","apps/api-nestjs/src/prisma/outbox-request-context.ts","apps/api-nestjs/test/realtime.envelope-context.acceptance.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/prisma/prisma.service.ts","docs/migration-playbook.md","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/realtime.ts","reports/baseline.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 1b228ba;锚点随批次刷新\n\nB3″ 三级证据绑定 clean HEAD `1b228ba`(worktreeDirty:false):\n\n· runtime 30/30 步、**759 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 759 = 747 + 本批 12 例,与 1b228ba 前置写下的预测值一致。\n 信封加了可选 context 之后矩阵仍 204/204——它本来就比不到这个字段\n (outbox 快照只取 type + payload),这也正是本批另建 14 条绊网的理由。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\n**一轮过**。上一批因锚点没跟着提交走白跑 25 分钟,这批把锚点写进了每个提交,没有复发。\n\n本提交按 C241 把锚点指向父提交 1b228ba;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:13:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":90457,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T08:38:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789780398
|
1789780407
|
0
|
1789780398
|
1789780421
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24213
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 56e6 chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 56e6e57;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
94
|
5
|
0
|
refs/heads/main
|
01d0eabfa71ec061d876d39d4f399d2290530a15
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb","after":"01d0eabfa71ec061d876d39d4f399d2290530a15","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/94ec469fbac4eeda3fb9d0f0545be831e8eeb2cb...01d0eabfa71ec061d876d39d4f399d2290530a15","commits":[{"id":"01d0eabfa71ec061d876d39d4f399d2290530a15","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 56e6e57;锚点随批次刷新\n\nRedis 发布时限批次的三级证据,绑定 clean HEAD `56e6e57`(worktreeDirty:false):\n\n· runtime 30/30 步、**776 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 776 = 759 + 本批 17 例(contracts 9 + 两后端各 4),与前置预测一致。\n dependency-resilience / multi-instance / write-capacity 这些真打 Redis 的\n 门禁全过——2 秒时限没有误伤健康链路。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate\n (npm 审计接口 503 重试两次后成功)。\n\n本提交按 C241 把锚点指向父提交 56e6e57;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/01d0eabfa71ec061d876d39d4f399d2290530a15","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:44:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"56e6e57c22a534a07ac54bc5f8bf9da1c6806a03","message":"chore(reports): 静态 28/28 回绑 @ 00cd95d;数字前置到本批实测值\n\nown-tests 96 → 99、own-test-cases 762 → 779(+3 文件 / +17 例:contracts 9 例判定单测\n与两后端各 4 例黑洞 Redis 验收;C70 只计 git 已跟踪文件,故必须在实现提交落地后才数得到)。\n\ntests-passing 759 → 776 是**预测值**(759 + 17),由下一轮 runtime 实测证实。\n前两批这条路子都验证过:预测被实测原样证实。\n\n锚点按 C241 指向父提交 00cd95d。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/56e6e57c22a534a07ac54bc5f8bf9da1c6806a03","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:31:04-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"00cd95da0b4f2694db9528235f69d2f95a6707ab","message":"fix(realtime): Redis 发布加可判责时限 + 批次预算刹车——此前一次 Redis 故障既不可判责也不收敛\n\nB3″ 登记的推迟项里有一条是真缺口,同日单独做掉。**先有证据再动手**:起一个「接受连接但\n永不应答」的 TCP 服务端(C63 已建模的半开/黑洞形态),用与本仓 publisher 完全相同的连接配置\n(maxRetriesPerRequest: null——BullMQ 的要求)打一次 publish,**8 秒后仍然挂着**。\n不是慢,是永远:ioredis 在该配置下无限重试,命令永不 reject。\n\n真正的后果不在「慢」,在它挂在 outbox 领取事务**之内**:\n\n 修复前 修复后\n 单行 publish 无限挂起 2s 抛 REALTIME_REDIS_COMMAND_TIMEOUT\n 该行 attempts 不增(整事务回滚) +1,事务提交\n 批内其余 49 行 一次都没试过 按预算尽量试,剩下留给下一跳\n 连续故障 每秒重开一个必然超时的事务,不收敛 10 跳后进死信,可判责终态\n 运维看到的错误 Prisma 事务超时,**指向数据库** 稳定前缀,指向 Redis\n\n**光加超时不够,这是最容易做漏的一半。** 故障时每行烧掉一个完整时限,一批 50 行 ×2s 远超\n15 秒事务预算——事务照样超时回滚、attempts 照样不增,只是从「挂着」变成「忙着」。\n所以有 realtimeDispatchBudget:每行开工前裁决「还剩不剩得下再试一行」,不够就 break,\n把剩下的留给下一跳,让本事务先把已累加的 attempts 提交掉。**收敛性来自这条刹车,不是超时。**\n\n超时**抛错不吞**:五个 publish 点各有自己的失败语义(dispatcher 累加 attempts 走死信,\n进程内扇出向上传播)。在 helper 里吞掉就变成事件静默丢失,比挂住更糟。\n\n证据:\n· contracts 9 例判定单测——含「超时后底层 promise 迟到 reject 不产生 unhandledRejection」\n 与「15s 预算最多放行 7 行」(关键不是 7,是它 \u003c 50);\n· 两后端各 4 例真实 ioredis 打黑洞服务端验收,**直接测生产类**\n (new EventBus(hungRedis) / new EventBusService(hungRedis, ...))——在测试里另写一份\n publish 只能证明 helper 能用,证明不了生产路径接了它;\n· check:dual-backend 增 12 条 targeted 断言(五个 publish 点 + 两处刹车 + 黑洞用例本身)\n + 1 个受控断线负探针,dualBackendParityNegativeProbes 3 → 4。\n负向实测:摘掉 Fastify 生产 EventBus.publish 的时限 → 该用例挂满 30 秒测试上限后红、\n其余三例仍绿(精确命中);已恢复现场。\n\n顺带调了一个既有断言并注明理由:G16 的「提交后才发投递样本」用 4200 字节邻近窗口,预算刹车\n合法地把两点推远约 600 字节,放宽到 4800。它是邻近性启发式不是语义判据,意图未变;\n我也把预算日志挪到 observeDelivery 之后,尽量少动它的相邻性。\n\ncontracts 升 1.24.0(expand-only),两把锁重签,下游 fixture 源码未改即通过。\n\n证据:typecheck 13/13;pnpm check 28/28。runtime 整轮与报告回绑在下一提交。\n锚点按 C241 指向父提交 94ec469。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/00cd95da0b4f2694db9528235f69d2f95a6707ab","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:29:12-07:00","added":["apps/api-fastify/test/realtime.redis-timeout.acceptance.test.ts","apps/api-nestjs/test/realtime.redis-timeout.acceptance.test.ts","packages/contracts/src/realtime-redis-timeout.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/realtime.ts","reports/baseline.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"01d0eabfa71ec061d876d39d4f399d2290530a15","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 56e6e57;锚点随批次刷新\n\nRedis 发布时限批次的三级证据,绑定 clean HEAD `56e6e57`(worktreeDirty:false):\n\n· runtime 30/30 步、**776 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 776 = 759 + 本批 17 例(contracts 9 + 两后端各 4),与前置预测一致。\n dependency-resilience / multi-instance / write-capacity 这些真打 Redis 的\n 门禁全过——2 秒时限没有误伤健康链路。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate\n (npm 审计接口 503 重试两次后成功)。\n\n本提交按 C241 把锚点指向父提交 56e6e57;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/01d0eabfa71ec061d876d39d4f399d2290530a15","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T18:44:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":90814,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T09:13:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789782246
|
1789782336
|
0
|
1789782244
|
1789782350
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24216
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 520c chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 520cacc;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
96
|
5
|
0
|
refs/heads/main
|
c015261889aca3b700d1226045d8f66a27c3d431
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"01d0eabfa71ec061d876d39d4f399d2290530a15","after":"c015261889aca3b700d1226045d8f66a27c3d431","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/01d0eabfa71ec061d876d39d4f399d2290530a15...c015261889aca3b700d1226045d8f66a27c3d431","commits":[{"id":"c015261889aca3b700d1226045d8f66a27c3d431","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 520cacc;锚点随批次刷新\n\nB4 三级证据绑定 clean HEAD `520cacc`(worktreeDirty:false):\n\n· runtime 30/30 步、**786 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 786 = 776 + 本批 10 例,与前置预测一致。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate(接口 503 重试后成功)。\n\n**本轮 runtime 的额外含义**:db-credential-separation / tracing / multi-instance /\ndependency-resilience / capacity / write-capacity 六个子门禁**第一次在聚合内跑在非超级用户\n登录上**——此前它们以 production 姿态启动真实入口却连超级用户,RLS 对其不生效。\n`dbCredentialSuperuserStartupRejected: 2` 是两个生产入口在超级用户连接下拒启的机器回执。\n\n本提交按 C241 把锚点指向父提交 520cacc;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c015261889aca3b700d1226045d8f66a27c3d431","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:23:25-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"520cacc00a6da74c376ff46886b4c61dea393ab3","message":"chore(reports): 静态 28/28 回绑 @ 52665a2;数字前置到本批实测值\n\nown-tests 99 → 100、own-test-cases 779 → 789(+1 文件 / +10 例 RLS 启动姿态判定单测;\nC70 只计 git 已跟踪文件,故必须在实现提交落地后才数得到)。\n\ntests-passing 776 → 786 是**预测值**(776 + 10),由下一轮 runtime 实测证实。\n前三批都验证过这条路子:预测被实测原样证实。\n\n锚点按 C241 指向父提交 52665a2。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/520cacc00a6da74c376ff46886b4c61dea393ab3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:10:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/redis-auth-live.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"52665a2f60d48062cfe891dafcd7728379524b34","message":"feat(kernel-repin): B4 RLS 启动期姿态探测——顺带修掉验收基座一直跑在超级用户上\n\n开工实测让 B4 第三次校准范围(先「rls 二选一」→ §2 订正「两模块互补」→「双 URL + 启动探测」)。\n**双 URL 那一半不做**:生产编排早有等价的三登录分离(MIGRATION / tenant API / system dispatcher),\nC55/C56 用真库临时 login + 8 个负例验过。语义已覆盖,只差名字;改名要牵动 C55/C56 全部验收面、\n8 个 runner 与生产编排,换不来任何安全收益。登记进迁移手册 §6 分歧账本。\n\n**真正缺的那一件做了。** rls.ts 文件头一直写着「非超级用户生产连接」,但那只是**运维前提**:\n部署时把 URL 填成超级用户,应用照常启动,FORCE RLS 对超级用户不生效,所有 RLS 断言恒绿。\ncheck:db-credential-separation 验的是**供给对不对**,不是**应用会不会拒绝**。\n现在四个入口(两 API 装配点 + 两 dispatcher)在 enforce 姿态下查两个事实——登录不得\nsuperuser/BYPASSRLS、清单内每张租户表已 FORCE RLS,任一不满足即拒启,错误带\n[RLS_RUNTIME_ROLE_UNSAFE] / [RLS_TABLES_NOT_FORCED]。姿态沿用已有的 RLS_CONTEXT_REQUIRED=1,\n不引入第二个开关。\n\n**它当场揪出的第二件事,比第一件更值钱**:加完探测跑第一个 runner 就红了,红的不是生产,\n是本仓自己的验收基座——七个 runner 都以 NODE_ENV=production 启动真实入口,却把共享验收库的\n**超级用户** URL 递给子进程。\"生产入口能跑\"这条证据一直比它看起来的弱:任何只在普通登录下\n才暴露的权限问题,在这些 runner 里结构上看不见。新增 scripts/lib/acceptance-runtime-login.mjs\n幂等供给非超级用户登录(API 走 tenant、dispatcher 走 system,与生产同构),\n**七个全部在新登录下通过**——没有发现只在超级用户下才活得下来的路径,说明 RLS 桥本身是对的,\n这条证据链只是终于名副其实了。\n\ncheck:redis-auth-live 是唯一需要 tenant+system 双成员资格的(它刻意单进程走完\n写库 → in-process dispatcher → Pub/Sub)。为它单开 combined 登录,并在代码里写明\n**它比生产姿态弱且是刻意的**,不构成\"生产也可以合并\"的先例。\n\n**顺带发现一个早已存在的红,判责 C254**:redis-auth 在新登录下仍红;git stash 回到 HEAD\n01d0eab 用超级用户跑一样红,与 B4 无关。根因是 C253 的第四处遗漏——它同样写死基础频道却跑在\nRedis DB 7 上。C253 修了三处,漏它是因为 check:redis-auth 不在 check:runtime 聚合里、修完\n再没跑过,而基线行从 2026-08-26 起一直标着 GREEN。C234 的 agedAcceptanceReports 当时就报了\n24 天陈旧,但「记录不阻断」——**一条不阻断的记录摆在一行 GREEN 旁边,不构成控制**。已修并转绿。\n\n证据:contracts 10 例判定单测;check:db-credentials 负例 8 → 10(新增两个生产入口在超级用户\n连接下拒启的**活证据**);七个 runner 在非超级用户登录下全绿;check:dual-backend 增 11 条\ntargeted 断言 + 1 个受控断线负探针(负探针 4 → 5);pnpm check 28/28;typecheck 13/13。\ncontracts 升 1.25.0(expand-only),两把锁重签。\n\n过程中一次自己的操作失误,如实记:为了给 redis-auth 的红做归因,我 git stash 了整个工作区,\npop 时因未跟踪文件已存在而失败,而我用 \u003e/dev/null 把报错吞了——正是本仓记过的「别用\ncmd \u003e/dev/null \u0026\u0026 echo 掩盖退出码」。已逐文件比对 stash 内容确认无丢失后才 drop。\n\n本批不做:把 agedAcceptanceReports 从「记录」升级为「阻断」——当前 7 份报告 19–24 天陈旧\n(含需 Docker / Xcode 的),一刀切会把整块板子打红。独立立项。\n\nruntime 整轮与报告回绑在下一提交。锚点按 C241 指向父提交 01d0eab。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/52665a2f60d48062cfe891dafcd7728379524b34","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:07:42-07:00","added":["apps/api-fastify/src/plugins/rls-startup.ts","apps/api-nestjs/src/prisma/rls-startup.ts","packages/contracts/src/rls-startup.test.ts","scripts/lib/acceptance-runtime-login.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/prisma/prisma.service.ts","deploy/production/compose.yml","docs/migration-playbook.md","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/rls.ts","reports/baseline.json","scripts/check-auth-startup.mjs","scripts/check-capacity-envelope.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dependency-resilience.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-multi-instance.mjs","scripts/check-redis-auth-live.mjs","scripts/check-tracing.mjs","scripts/check-write-capacity.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"c015261889aca3b700d1226045d8f66a27c3d431","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 520cacc;锚点随批次刷新\n\nB4 三级证据绑定 clean HEAD `520cacc`(worktreeDirty:false):\n\n· runtime 30/30 步、**786 tests / 0 failures**、行为矩阵 **204/204**(地板 204);\n 786 = 776 + 本批 10 例,与前置预测一致。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate(接口 503 重试后成功)。\n\n**本轮 runtime 的额外含义**:db-credential-separation / tracing / multi-instance /\ndependency-resilience / capacity / write-capacity 六个子门禁**第一次在聚合内跑在非超级用户\n登录上**——此前它们以 production 姿态启动真实入口却连超级用户,RLS 对其不生效。\n`dbCredentialSuperuserStartupRejected: 2` 是两个生产入口在超级用户连接下拒启的机器回执。\n\n本提交按 C241 把锚点指向父提交 520cacc;证据新鲜度的 runtime 行同步回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c015261889aca3b700d1226045d8f66a27c3d431","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:23:25-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91147,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T09:44:05+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789784611
|
1789784619
|
0
|
1789784609
|
1789784633
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24219
|
docs(计划): 登记本会话——C-3 宿主协议签收面首次有落点,并附三处自查出的自造缺陷
|
117
|
5
|
governance.yml
|
76
|
5
|
0
|
refs/heads/main
|
078af5fc66585384df768683780239154d06dc7b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dea10cf1124b0e7714fe60f395709cda0be55fdb","after":"078af5fc66585384df768683780239154d06dc7b","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/dea10cf1124b0e7714fe60f395709cda0be55fdb...078af5fc66585384df768683780239154d06dc7b","commits":[{"id":"078af5fc66585384df768683780239154d06dc7b","message":"docs(计划): 登记本会话——C-3 宿主协议签收面首次有落点,并附三处自查出的自造缺陷\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/078af5fc66585384df768683780239154d06dc7b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:41:03-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"c777303990ce57b7b331c10c8d135b455238797a","message":"docs(基础): 开发环境.md 重写到 2026-09-18 实测——修掉两条已不成立的声明并补端口盘\n\n原文停在 2026-09-04,两条声明已不成立:\n- 「派生仓现存 3 个」——派生仓状态.json 实为 active 0 / archived 0 / missing 1 / retired 18;\n- 路径 `AI数字员工/digital-employee-os` 不存在,实为 `数字员工OS/digital-employee-os`。\n\n补上原文完全没有的本机端口盘(41 个运行容器 / 6 个栈):enterprise-platform-stack\nPG 55470 / Redis 56379 / runtime 53001 / Caddy 58080,ep-delivery-20260917 PG 55481,\nbase-framework PG 5432 / Redis 6379,hi-atelier,deos-local-verify,deos-acceptance-redis 6404。\n新增 §4 工作区一致性门禁一节(当日 CLEAN,14 仓 / 8346 文件 / 4462 链接 / 22 份 compose)。\n\n§5 已知差异按当日实测重写:\n- deos-local-verify 栈不完整——gateway 的 nginx 找不到上游 api-active(该栈无 api 容器),\n 已连续重启 2946 次,当日 docker stop 停下,容器保留可 start 恢复;根因属 OS 层未查。\n- base-framework-app 容器已不存在,当日随 73 个死容器清理,原文那条「看 3500—3502」作废。\n- 7 个上层应用仓仍无 F14 守卫,compose 身份复发只能靠工作区 L9 兜住。\n\n文内每条命令均当场复核过输出与文中声明一致;旧版两条错误声明与初始化经过移入文末「历史记录」,\n不删除。门禁 check-workspace-consistency.mjs 重写后仍 CLEAN(exit 0 / 0 issues)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/c777303990ce57b7b331c10c8d135b455238797a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:17:52-07:00","added":[],"removed":[],"modified":["平台治理/基础/开发环境.md"]},{"id":"c894b8ce4445a7e939a0a8d5022dfb526aa3f1a5","message":"docs(决策): N-11 关闭——七个仓补齐 compose 身份,L9 转 CLEAN,并更正两处前置\n\n选项 ① 已执行:七个仓的 apps/api-nestjs/docker-compose.yml 各补\n`name: ${COMPOSE_PROJECT_NAME:-\u003c本仓 package.json name\u003e}`,各仓本地提交(未推远端)。\ndocker compose config 逐份实测 project 名互不相同、卷已变为 \u003cname\u003e_*;\ncheck-workspace-consistency.mjs 由 ISSUES 转 CLEAN(exit 0 / 0 issues)。\n\n两处更正写进条目:\n- 数量是 7 个仓不是 8 个。09-17 清单里的数字员工OS 此后已自行补上 name:,本轮不在名单内。\n- 本条一直把「共用卷里的数据归谁」列为选 ①/② 的前置,实测**该前置是空的**:\n 本机 260 个卷无任何 api-nestjs_*,project=api-nestjs 零命中,这七份 compose 在本机\n 从未以默认推导名起过;已存在的 juhai-knowledge-cloud / juhai-quotation 两个 project 的\n config_files 指向工作区外的另一棵树,与本条无关。故零数据迁移,且该结论只绑本机。\n\n未随本条关闭:选项 ② 的防复发半边。七个仓仍无 F14 守卫,仓内 pnpm check 在冲突状态下\n依旧会绿,复发只能靠工作区 L9 兜住——另行派活。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/c894b8ce4445a7e939a0a8d5022dfb526aa3f1a5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:14:16-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/待裁决架构事项.md"]}],"total_commits":0,"head_commit":{"id":"078af5fc66585384df768683780239154d06dc7b","message":"docs(计划): 登记本会话——C-3 宿主协议签收面首次有落点,并附三处自查出的自造缺陷\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/078af5fc66585384df768683780239154d06dc7b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:41:03-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":11102,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T08:48:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789786714
|
1789786730
|
0
|
1789786684
|
1789786730
|
|
|
0
|
Edit
Delete
|
|
24220
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 43e3 chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 43e3fe5;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
98
|
5
|
0
|
refs/heads/main
|
8419453dedda057cca061637c499e06b345c8db8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c015261889aca3b700d1226045d8f66a27c3d431","after":"8419453dedda057cca061637c499e06b345c8db8","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/c015261889aca3b700d1226045d8f66a27c3d431...8419453dedda057cca061637c499e06b345c8db8","commits":[{"id":"8419453dedda057cca061637c499e06b345c8db8","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 43e3fe5;锚点随批次刷新\n\n· runtime 30/30 步、786 tests / 0 failures、行为矩阵 204/204,clean HEAD `43e3fe5`。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\n本批只动了两个门禁脚本(check-access-audit 的 envsubst 白名单、check-operations 的 O4\n派生断言),runtime 路径未变,本可不重跑。**仍然重跑了**:这一批讲的就是「陈旧证据不算数」,\n给自己开例外会让整批话失去分量——runtime 证据现在绑在本批 HEAD 上,不是上一批的。\n\n本提交按 C241 把锚点指向父提交 43e3fe5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/8419453dedda057cca061637c499e06b345c8db8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:03:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"43e3fe53b3cef4f9941b75a4cc2a132349a37505","message":"fix(gates): C255 access-audit 网关三周起不来 + 陈旧报告全面复验;O4 改为从模板派生\n\nC254 说「聚合外的 runner 会静默腐化」,那就把这句话查实:基线上还有 9 份报告 19–26 天陈旧\n且都标着 GREEN。能本机复验的七份全部重跑,结果分两类——\n\n**一类是本机缺前提,不是回归**:\n· trace-backend 依次缺 grafana/tempo:3.0.3、prom/prometheus:v3.14.0,runner fail-closed 拒跑,\n 行为正确。拉回后实跑通过(Collector→Tempo 入库、双重启持久、告警 3/3)。\n 顺带订正 CLAUDE.md 里 C243 的说法:「本机 Docker 走离线代理,基础镜像拉取一律超时」当日\n 已不成立,pull 正常。\n· 五个 check:*-image runner(postgres / alertmanager / loki / tempo / otel-collector)全绿。\n\n**一类是真回归,判责 C255**:\nC230 给网关模板加了 set_real_ip_from ${REAL_IP_TRUSTED_CIDR},同步了模板 / compose /\n.env.example / O4 断言四处,**唯独漏了 check-access-audit.mjs 自己硬编码的那份\nNGINX_ENVSUBST_FILTER**。变量不被替换,nginx 以\n`host not found in set_real_ip_from \"${REAL_IP_TRUSTED_CIDR}\"` 启动失败——\n该专项自 2026-08-29 起红了三周,而基线行按 08-26 的绿盘一直标着 GREEN。\n讽刺的是 O4 恰有一条「envsubst filter must allow the real_ip trust variable」:\n**它只查 compose,没查自己的测试夹具**。\n\n修法的重点不在补那一个变量,而在别让下一个变量再漏:O4 该断言改为**从模板派生**——\n模板里出现的每个 ${VAR} 必须同时出现在 compose 与 runner 两份白名单里,漏一个即红。\n负向已验证:摘掉变量精确报 `[O4] ... missing template variables: REAL_IP_TRUSTED_CIDR`。\n\n**今天两个 C 号(C254 / C255)是同一个结构**:功能落地时打断了聚合外的 runner,\n而它不再运行,所以没人知道。`agedAcceptanceReports` 每次都如实报了陈旧,\n但「记录不阻断」——一条不阻断的记录摆在一行 GREEN 旁边不构成控制。\n把它升级为阻断仍是独立立项(当前仍有 mobile-android / mobile-ios /\nimage-vulnerabilities 三项本机不可复验)。\n\n证据:trace-backend、access-audit、五个镜像 runner 七份报告全部回绑当日并 status=passed;\nCLAUDE.md 三处新鲜度日期随报告 generatedAt 同步(C132 会持续盯);pnpm check 28/28。\n\n锚点按 C241 指向父提交 c015261。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/43e3fe53b3cef4f9941b75a4cc2a132349a37505","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:51:02-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/access-audit.latest.json","reports/agent-adapters.latest.json","reports/alertmanager-image.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/loki-image.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/otel-collector-image.latest.json","reports/platform-dependency-provenance.latest.json","reports/postgres-image.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tempo-image.latest.json","reports/trace-backend.latest.json","reports/validation-source.latest.json","scripts/check-access-audit.mjs","scripts/check-operations.mjs"]}],"total_commits":0,"head_commit":{"id":"8419453dedda057cca061637c499e06b345c8db8","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ 43e3fe5;锚点随批次刷新\n\n· runtime 30/30 步、786 tests / 0 failures、行为矩阵 204/204,clean HEAD `43e3fe5`。\n· 静态 28/28。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\n本批只动了两个门禁脚本(check-access-audit 的 envsubst 白名单、check-operations 的 O4\n派生断言),runtime 路径未变,本可不重跑。**仍然重跑了**:这一批讲的就是「陈旧证据不算数」,\n给自己开例外会让整批话失去分量——runtime 证据现在绑在本批 HEAD 上,不是上一批的。\n\n本提交按 C241 把锚点指向父提交 43e3fe5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/8419453dedda057cca061637c499e06b345c8db8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:03:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91576,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T10:23:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789787034
|
1789787043
|
0
|
1789787034
|
1789787057
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24222
|
chore(reports): runtime 30/30 + 静态 28/28 回绑 @ dd2d chore(reports): runtime 30/30 + 静态 28/28 回绑 @ dd2dab5;锚点随批次刷新...
|
76
|
5
|
governance.yml
|
100
|
5
|
0
|
refs/heads/main
|
14983b57ae2ab9c0e424700ca11c3f4677984400
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8419453dedda057cca061637c499e06b345c8db8","after":"14983b57ae2ab9c0e424700ca11c3f4677984400","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/8419453dedda057cca061637c499e06b345c8db8...14983b57ae2ab9c0e424700ca11c3f4677984400","commits":[{"id":"14983b57ae2ab9c0e424700ca11c3f4677984400","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ dd2dab5;锚点随批次刷新\n\n· runtime 30/30 步、786 tests / 0 failures、行为矩阵 204/204,clean HEAD `dd2dab5`。\n· 静态 28/28(含 C256 的时效判定与门禁内自检 9/9)。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\nC256 上线后第一份 governance 报告:staleAcceptanceFreshnessViolations=0,\n两条陈旧源(mobile-android / mobile-ios)都落在已登记且未过期的豁免里——\n**它们仍然是陈旧的,只是不再沉默**:到 2026-12-19 若未解除,门禁会自己红。\n\n本提交按 C241 把锚点指向父提交 dd2dab5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/14983b57ae2ab9c0e424700ca11c3f4677984400","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:31:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"dd2dab5799d061d69b7158585f1b38cd58a31833","message":"feat(gates): C256 验收时效由「记录」升级为「陈旧即红,除非登记」\n\nC254(redis-auth 红 24 天)与 C255(access-audit 红 3 周)同日连出,形态一模一样:\n功能落地时打断了聚合外的 runner,它不再运行,所以没人知道。\n\n关键不在检测失灵——**两次 C234 的 agedAcceptanceReports 都如实报了陈旧,两次都没人动**。\n问题是它「记录不阻断」:一条不阻断的记录摆在一行 GREEN 旁边,不构成控制。\n\nC234 当初不阻断的理由写在注释里且成立——「强制会把离线 check 变成环境人质」。\n所以这次不是在阻断与不阻断之间二选一,而是把「为什么可以不跑」从沉默变成**登记**:\n\n· 超 14 天即红;\n· 出口是五字段登记(reason / registeredAt / expiresAt / blockedBy / replacementPlan),\n 与 platform-dependency-deviations、framework-criteria 的 missing 登记同口径——\n 半份不算、过期即红、expiresAt 非法即红、**策略文件缺失也红**(缺策略不等于没有时效要求);\n· 豁免会过期,逼人重新面对,而不是永久沉默;\n· 已不陈旧却仍挂着的豁免显形但不阻断(它自己会过期),防豁免只增不减。\n\n当前 2 条登记,都是诚实的环境限制而非拖延:\n mobileAndroidAcceptance —— 缺 JDK/SDK/device,runner 本身 fail-closed 无假绿风险;\n mobileIosAcceptance —— 缺 Xcode 26,现有报告只是无 Xcode 下的 fail-closed 自测,\n 不是 native 证据(G19 早已如实标注)。\n两条均至 2026-12-19,replacementPlan 写明各自的解除条件。\n\n**判定器自检在门禁内自跑**(9 条判据、5 条负向),不是只挂一个人工命令——\n只挂人工命令,它自己就会变成下一个 C254。这批修的就是这个病,不能自己再犯一次。\n\n活证据:摘掉 mobile-ios 豁免 → 精确报「已 24 天未重跑(上限 14 天)且无时效豁免登记」,\nmetric 由 0 变 1;恢复即绿。\n\n棘轮新增三项:staleAcceptanceFreshnessViolations(floor 0)、\nacceptanceFreshnessSelfTestCases(floor 9)、acceptanceFreshnessSelfTestNegatives(floor 5)。\n静态轴仍是 28 步——判定挂在 check:governance 内,没有新增步骤。\n\n证据:pnpm check 28/28;自检 9/9。锚点按 C241 指向父提交 8419453。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/dd2dab5799d061d69b7158585f1b38cd58a31833","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:19:11-07:00","added":["governance/acceptance-freshness.json","scripts/check-acceptance-freshness.mjs","scripts/lib/acceptance-freshness.mjs"],"removed":[],"modified":["CLAUDE.md","package.json","reports/agent-adapters.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"14983b57ae2ab9c0e424700ca11c3f4677984400","message":"chore(reports): runtime 30/30 + 静态 28/28 回绑 @ dd2dab5;锚点随批次刷新\n\n· runtime 30/30 步、786 tests / 0 failures、行为矩阵 204/204,clean HEAD `dd2dab5`。\n· 静态 28/28(含 C256 的时效判定与门禁内自检 9/9)。\n· 依赖 pnpm audit --prod --audit-level high = 0 high / 3 moderate。\n\nC256 上线后第一份 governance 报告:staleAcceptanceFreshnessViolations=0,\n两条陈旧源(mobile-android / mobile-ios)都落在已登记且未过期的豁免里——\n**它们仍然是陈旧的,只是不再沉默**:到 2026-12-19 若未解除,门禁会自己红。\n\n本提交按 C241 把锚点指向父提交 dd2dab5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/14983b57ae2ab9c0e424700ca11c3f4677984400","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T20:31:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":91996,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T11:03:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789788717
|
1789788726
|
0
|
1789788715
|
1789788849
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24225
|
docs(决策): CHG-020 材料成稿 + 采纳形态对照 §5.6 收口 G-10 @ 0ec docs(决策): CHG-020 材料成稿 + 采纳形态对照 §5.6 收口 G-10 @ 0ec2442...
|
117
|
5
|
governance.yml
|
77
|
5
|
0
|
refs/heads/main
|
ea1054cc672f778229bd51b5c4327884a98b9236
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"078af5fc66585384df768683780239154d06dc7b","after":"ea1054cc672f778229bd51b5c4327884a98b9236","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/078af5fc66585384df768683780239154d06dc7b...ea1054cc672f778229bd51b5c4327884a98b9236","commits":[{"id":"ea1054cc672f778229bd51b5c4327884a98b9236","message":"docs(决策): CHG-020 材料成稿 + 采纳形态对照 §5.6 收口 G-10 @ 0ec2442\n\n- 采纳形态覆盖度对照增 §5.6:「采纳的组件自身不在被观测面内」此前在 G-1…G-9 的对照表里\n 没有位置——那张表问的是原规则的判定有没有被承接,没问承接方自己看得见吗。Collector\n 是被观测的(Prometheus 回抓 :8888 + 三条告警),Caddy 完全在外面。trace / metrics /\n logs 三面同日关闭,实现与实测在真源仓 0ec2442 / 72df024。\n- 开发计划:候选 OpenAPI 6 → 11 份(2026-09-18 增五份宿主契约)、CHG-020 进「材料已成\n 待签署」行、新增 G-16 行(契约登记面的门禁覆盖)、裁决队列 ③ a 项加 CHG-020 并注明\n 签署前先答其 §0 的方向题(偏差 #39)。\n- CHG-020 材料五份:四份宿主契约由候选转正式登记,含门禁扩面(check:candidate-contracts\n 扫两目录 + 反向规则 REGISTERED_STILL_PENDING)。本包未改动任何文件,§0 挂着一处\n blocked_by 方向循环待 Catalog Owner 定口径:签收单侧写「先登记后签收」,五份候选的\n x-enterprise-blocked-by 写的是「先签收后登记」。\n\n一致性门禁 CLEAN(本次提交前实测)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/ea1054cc672f778229bd51b5c4327884a98b9236","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T22:55:09-07:00","added":["平台治理/doc/decisions/CHG-020-材料/README.md","平台治理/doc/decisions/CHG-020-材料/code.delta.json","平台治理/doc/decisions/CHG-020-材料/contracts.delta.json","平台治理/doc/decisions/CHG-020-材料/platform-projects.delta.json","平台治理/doc/decisions/CHG-020-材料/tests.delta.json"],"removed":[],"modified":["平台治理/基础设施文档/docs/采纳形态覆盖度对照-2026-09-14.md","平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"ea1054cc672f778229bd51b5c4327884a98b9236","message":"docs(决策): CHG-020 材料成稿 + 采纳形态对照 §5.6 收口 G-10 @ 0ec2442\n\n- 采纳形态覆盖度对照增 §5.6:「采纳的组件自身不在被观测面内」此前在 G-1…G-9 的对照表里\n 没有位置——那张表问的是原规则的判定有没有被承接,没问承接方自己看得见吗。Collector\n 是被观测的(Prometheus 回抓 :8888 + 三条告警),Caddy 完全在外面。trace / metrics /\n logs 三面同日关闭,实现与实测在真源仓 0ec2442 / 72df024。\n- 开发计划:候选 OpenAPI 6 → 11 份(2026-09-18 增五份宿主契约)、CHG-020 进「材料已成\n 待签署」行、新增 G-16 行(契约登记面的门禁覆盖)、裁决队列 ③ a 项加 CHG-020 并注明\n 签署前先答其 §0 的方向题(偏差 #39)。\n- CHG-020 材料五份:四份宿主契约由候选转正式登记,含门禁扩面(check:candidate-contracts\n 扫两目录 + 反向规则 REGISTERED_STILL_PENDING)。本包未改动任何文件,§0 挂着一处\n blocked_by 方向循环待 Catalog Owner 定口径:签收单侧写「先登记后签收」,五份候选的\n x-enterprise-blocked-by 写的是「先签收后登记」。\n\n一致性门禁 CLEAN(本次提交前实测)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/ea1054cc672f778229bd51b5c4327884a98b9236","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T22:55:09-07:00","added":["平台治理/doc/decisions/CHG-020-材料/README.md","平台治理/doc/decisions/CHG-020-材料/code.delta.json","平台治理/doc/decisions/CHG-020-材料/contracts.delta.json","平台治理/doc/decisions/CHG-020-材料/platform-projects.delta.json","平台治理/doc/decisions/CHG-020-材料/tests.delta.json"],"removed":[],"modified":["平台治理/基础设施文档/docs/采纳形态覆盖度对照-2026-09-14.md","平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":11192,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T10:58:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789798135
|
1789798165
|
0
|
1789798059
|
1789798165
|
|
|
0
|
Edit
Delete
|
|
24226
|
docs(计划): 登记本会话——松散端 A 组 16 条全部做完,并附三处清单口径更正与一处新缺陷
|
117
|
5
|
governance.yml
|
78
|
5
|
0
|
refs/heads/main
|
705fb456d585cf4825078b6af0e2ef9d41ecd5f5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ea1054cc672f778229bd51b5c4327884a98b9236","after":"705fb456d585cf4825078b6af0e2ef9d41ecd5f5","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/ea1054cc672f778229bd51b5c4327884a98b9236...705fb456d585cf4825078b6af0e2ef9d41ecd5f5","commits":[{"id":"705fb456d585cf4825078b6af0e2ef9d41ecd5f5","message":"docs(计划): 登记本会话——松散端 A 组 16 条全部做完,并附三处清单口径更正与一处新缺陷\n\n- §1 两行按当天实测改:运行证据行的 mainline 由四套件改**六套件 72 例**(A15 新接的\n permission-ops 2 / ai-route-persistence 5)、绑定改 `51f100b`、治理测试 444 → 449;\n 证据新鲜度行原写「35 份全部新鲜、0 过期 / 0 告警」,**与实测差得远**(开工时是 5 error\n + 14 warning),整行改为 `partial @ 3be0bb7`(45 份 / 41 新鲜 / 4 过期 / 0 error)并写清\n 收口过程与余下 4 条为何还在。\n- §8 账本增当天一行:A1—A16 逐项做法与实测出口、三处清单本身给错的口径(Prometheus\n 端口与无 lifecycle 标志、陈旧 worktree 属治理仓、reports:rebind 的覆盖面)、一处新查出\n 的缺陷(`pnpm test` 与 `GOV_REPORT_DIR` 互相抵消,没有一种跑法既不污染又全绿),以及\n B1—B11 十一项待裁的归属与本轮各做到哪一步。\n\n一致性门禁 CLEAN,`prunableWorktrees` 归零。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/705fb456d585cf4825078b6af0e2ef9d41ecd5f5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T00:08:42-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"f2e130d38b5a8ae5d7f18d7a717bf1fb89f02b08","message":"docs(数字): 文档订正第三批(治理层侧)—— §1 的五处报告绑定全不对,并修三个数\n\n按各报告 `provenance.gitSha` 逐份实测,§1「运行 / UI 证据」一行原先**五处绑定全不对**:\n\n| 报告 | 原写 | 实测 |\n|---|---|---|\n| runtime-acceptance | `765300b` | `8a621fd` |\n| ui-acceptance | `003aadd` | `67e8193` |\n| mainline-acceptance | `bc978a8` | `8a621fd` |\n| mainline-restore | `bc978a8` | `765300b` |\n| identity-ui | `828f178` | `46265a6` |\n\n五份 `worktreeDirty` 均 false;用例数(775 / 5·1 / 11·17·19·18 / 3 库 / 2)逐份核对无误,\n错的只是绑定——而绑定正是「这个结论由哪个提交支撑」的唯一定位手段。\n\n另修三个数:\n- `check:fixtures` 17 套件 **189 例 → 702 例**(这条现已有 `check:doc-claims` 机器守);\n- 治理测试 **277/277 → 444(443 通过 / 1 skipped)**;\n- 撤权 SLA cacheBound p95 **5042 ms → 5027.7 ms**(invalidationPush 122 ms 与其\n `measured-with-harness-transport` 的定性无误,不动);\n- Release Manifest 绑定 `71b306f` → `2e06b92`(本日重跑回绑;缺 6 项不变)。\n\n一致性门禁 CLEAN。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/f2e130d38b5a8ae5d7f18d7a717bf1fb89f02b08","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T23:32:28-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"aa8550683e912d5442a0e8248915ccdb95a36f10","message":"docs(事实): 文档订正第二批(治理层侧)—— 镜像落后数、「分叉」定性、worktree 与 check 链描述\n\n- 开发计划三处镜像声明:「落后 Gitea 245 个提交」→ **41 个提交**(`github/main` =\n `51e311b`,2026-09-18 23:20 实测)。§1 仓与远端一行整行重写:本地 main = Gitea\n `origin/main` = `12bed2f`、0 个未推提交;本地分支 46 条(含 main),其中 30 条领先\n main、15 条已被 main 完全吸收。\n- §8「两远端分叉扩大」**定性也错了**:GitHub 侧 0 个独有提交,不是分叉,是纯落后;\n 同条里「直推已实证不可行」也已不成立(分支保护其间消失)。三处一并订正并留痕。\n- `企业控制面/CLAUDE.md` 两处:① `.worktrees/` 实测是**两条**(security-governance-hardening\n + docs/registry-blueprint-record),另有一条在本目录之外的 `/private/tmp/ep-delivery-20260917`,\n 并写明权威口径是 `git worktree list` 而不是本表;② 仓根 `pnpm check` 由「静态门禁链」\n 改为逐环列出的 **20 环**,并记下本会话实测到的坑——第 15 环 `pnpm test` 会改写\n `reports/caddy.latest.json`,而用 `GOV_REPORT_DIR` 规避改写又会让 12 个回读仓内报告\n 路径的用例判红,两者互相抵消,跑完整链后须 `git status` 看一眼。\n\n一致性门禁 CLEAN(4491 条链接)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/aa8550683e912d5442a0e8248915ccdb95a36f10","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T23:27:24-07:00","added":[],"removed":[],"modified":["企业控制面/CLAUDE.md","平台治理/基础设施文档/开发计划.md"]},{"id":"e707f1df114df1b3eaeaa8731fd21efe9354933f","message":"docs(状态): 文档订正第一批(治理层侧)—— ai-gateway 档位、工作台交付 ② 状态、A-7 事实数\n\n与真源仓同批(见 enterprise-platform 同日提交):\n\n- `企业控制面/README.md` AI 与集成行:`ai-gateway` 模块 `state=shape` → `authority`\n (2026-09-17 `ai-route.v1` 第一批转权威账本)。\n- 开发计划 §状态行、交付五步行、领取队列 ④ 三处:工作台交付 ② 由「▶ 可开工」改为\n 「🟡 进行中」。理由是实测——WB-1 脚手架、目录读面、受控执行面第一条、同源托管 +\n 入口 forward_auth、服务目录环境列探针均已落,**未闭合的是阶段 ② 验收本身**\n (目标环境四页 + `check:deployed`)。原写法会让读者以为一行代码都还没写。\n- 基础设施文档 README 的开发计划摘要同步(「前置只余 OPS-3 第一条」已不成立)。\n- 决策批次-2026-09-16 A-7:`check:facts` 登记 1 / 候选 15 是裁决当时的盘面,保留历史\n 取值并标注 2026-09-18 实测的 11 / 5。\n\n一致性门禁 CLEAN。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/e707f1df114df1b3eaeaa8731fd21efe9354933f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T23:23:51-07:00","added":[],"removed":[],"modified":["企业控制面/README.md","平台治理/doc/decisions/决策批次-2026-09-16.md","平台治理/基础设施文档/README.md","平台治理/基础设施文档/开发计划.md"]},{"id":"a5d023f2ee1eb81503166218eceece073ab2e2bb","message":"docs(计划): 并回陈旧 worktree 独有的「第四处同病」账本行,并补上一提交漏改的 L13 收纳数\n\n- A6:`claude/zealous-tu-6f0fca` 这个 worktree 挂在盘上两天,相对 main 只有一条独有内容——\n 开发计划.md 里「第四处同病」那条账本行(revocation-sla 的报告由用例自己在 beforeAll 起手\n 无条件写 failed,adda76a 的 runner 侧修复没覆盖到;同日已修 08c3788)。手工插回它自称的\n 位置(「本表上一条」= 验收 runner 三处同病那条,按最新在上的表序即其正上方),而不是\n cherry-pick:该分支另有 6 行是 main 早已推进过的旧版本,整条并回会把状态倒退。\n- 同时修掉上一提交(ea1054c)漏掉的一处:CHG-020 材料 5 个文件进仓后,\n `平台治理/README.md` 收纳表的 `doc/` 数没跟着改,一致性门禁 L13 判 GOVERNANCE_COUNT_DRIFT\n (声明 149 / 实为 154)。已改 154,并把材料区间写到 CHG-001~020。门禁复跑 CLEAN。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/a5d023f2ee1eb81503166218eceece073ab2e2bb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T23:10:48-07:00","added":[],"removed":[],"modified":["平台治理/README.md","平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"705fb456d585cf4825078b6af0e2ef9d41ecd5f5","message":"docs(计划): 登记本会话——松散端 A 组 16 条全部做完,并附三处清单口径更正与一处新缺陷\n\n- §1 两行按当天实测改:运行证据行的 mainline 由四套件改**六套件 72 例**(A15 新接的\n permission-ops 2 / ai-route-persistence 5)、绑定改 `51f100b`、治理测试 444 → 449;\n 证据新鲜度行原写「35 份全部新鲜、0 过期 / 0 告警」,**与实测差得远**(开工时是 5 error\n + 14 warning),整行改为 `partial @ 3be0bb7`(45 份 / 41 新鲜 / 4 过期 / 0 error)并写清\n 收口过程与余下 4 条为何还在。\n- §8 账本增当天一行:A1—A16 逐项做法与实测出口、三处清单本身给错的口径(Prometheus\n 端口与无 lifecycle 标志、陈旧 worktree 属治理仓、reports:rebind 的覆盖面)、一处新查出\n 的缺陷(`pnpm test` 与 `GOV_REPORT_DIR` 互相抵消,没有一种跑法既不污染又全绿),以及\n B1—B11 十一项待裁的归属与本轮各做到哪一步。\n\n一致性门禁 CLEAN,`prunableWorktrees` 归零。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/705fb456d585cf4825078b6af0e2ef9d41ecd5f5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T00:08:42-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":11294,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T14:07:39+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789801726
|
1789801742
|
0
|
1789801725
|
1789801742
|
|
|
0
|
Edit
Delete
|
|
24228
|
docs(计划): 镜像落后数三处更新到收尾实测 53(23:20 量到的 41 已被本会话自己的 docs(计划): 镜像落后数三处更新到收尾实测 53(23:20 量到的 41 已被本会话自己的 12 个提交推开)...
|
117
|
5
|
governance.yml
|
79
|
5
|
0
|
refs/heads/main
|
7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"705fb456d585cf4825078b6af0e2ef9d41ecd5f5","after":"7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/705fb456d585cf4825078b6af0e2ef9d41ecd5f5...7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0","commits":[{"id":"7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0","message":"docs(计划): 镜像落后数三处更新到收尾实测 53(23:20 量到的 41 已被本会话自己的 12 个提交推开)\n\n这个数随本仓每个提交增长,三处都已写明「引用前必重测」。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T00:13:51-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0","message":"docs(计划): 镜像落后数三处更新到收尾实测 53(23:20 量到的 41 已被本会话自己的 12 个提交推开)\n\n这个数随本仓每个提交增长,三处都已写明「引用前必重测」。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T00:13:51-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":11694,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T15:08:46+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789802037
|
1789802052
|
0
|
1789802036
|
1789802052
|
|
|
0
|
Edit
Delete
|
|
24230
|
docs(治理): workspace.json 补五层职责字段——层定义此前只在总架构图 PNG docs(治理): workspace.json 补五层职责字段——层定义此前只在总架构图 PNG 里...
|
117
|
5
|
governance.yml
|
80
|
5
|
0
|
refs/heads/main
|
cf82ac49afd4e6da0307bf0f0e1e255be6701bab
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0","after":"cf82ac49afd4e6da0307bf0f0e1e255be6701bab","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/7e11860ff60ecbcf1c10f1c0a578263f6e39e7b0...cf82ac49afd4e6da0307bf0f0e1e255be6701bab","commits":[{"id":"cf82ac49afd4e6da0307bf0f0e1e255be6701bab","message":"docs(治理): workspace.json 补五层职责字段——层定义此前只在总架构图 PNG 里\n\nterminology.layers 每层加 responsibility,五句逐字取自根目录\n「AI 应用开发的企业应用群总架构图.png」的层图注。此前本文件只有\nterm / alias / directory / order,五层「是什么」没有任何机器口径,\n于是既无法被引用,也无法反驳把基础基座与基础框架压成一格\nBASE_ASSET / asset 的 Catalog 登记(platform-projects.json)。\n\n职责是应然口径,不是现状声明——该图已由\n平台治理/企业应用群总架构-2026-09-17.md §2.1 定性为愿景图并记了三处过期。\n平台治理不在图上,不给该字段(其原有 note 已说明)。\n\nnote 内一并记录两处现存措辞不一致,本提交不改它们:\n- 数字员工OS/README.md 首句作「运行时宿主,装载并串接……」,弱于图注的「运行与控制中枢」\n- 工程基础框架/README.md 标题自称「基础资产」而非层名\n另三层 README 首句与图注逐字一致。\n\n纯加法:唯一消费方 平台治理/基础/scripts/lib/domain-layer-core.mjs 的\nlayerIndex() 只读 directory / term,复算映射仍 6 条、取值未变。\n门禁 check-workspace-consistency.mjs --json → status=CLEAN / issues=0 / EXIT=0\n(14 仓 8371 文件 4493 链接,2026-09-19,工作区作用域)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/cf82ac49afd4e6da0307bf0f0e1e255be6701bab","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T00:59:20-07:00","added":[],"removed":[],"modified":["workspace.json"]},{"id":"4a9dad2c0559feeb66d3c74e4720e70d5bedf698","message":"docs(治理): 门禁链 20 → 21 环——真源仓新增 check:stub-surface,并订正 pnpm test 两条跑法的已合口径\n\n- `pnpm check` 增第 12 环 `check:stub-surface`(真源仓 `6986527`):把「失败关闭的桩 /\n 只在登记里或只在测试夹具里装配 / 环境开关决定走哪条分支」三种未落地形态扫成清单,\n 34 条逐条登记在 `enterprise-platform/governance/stub-surface.json`(只写为什么还在,\n 清单本身由门禁从源码推导),并守住仓根 CLAUDE.md 对清单数字的声明。环数与序号跟着改:\n `pnpm test` 由第 15 环变第 16 环。\n- 订正同句尾巴:本条此前写「`pnpm test` 会改写 `reports/caddy.latest.json`,而设\n `GOV_REPORT_DIR` 规避又会让 12 个回读仓内报告路径的用例判红,两者互相抵消」。该状态已由\n 真源仓 `7021758` 合上——2026-09-19 在干净树上两条跑法各跑一遍实测:均 471 例\n 470 通过 / 0 失败 / 1 跳过,且不设 `GOV_REPORT_DIR` 时 `reports/` 一个字节不动。\n\n`node 平台治理/基础/scripts/check-workspace-consistency.mjs` 合计 0 条\n(14 个仓 / 8370 份受控文件,L4 断链 0 / L13 数字声明 0)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/4a9dad2c0559feeb66d3c74e4720e70d5bedf698","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T00:30:44-07:00","added":[],"removed":[],"modified":["企业控制面/CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"cf82ac49afd4e6da0307bf0f0e1e255be6701bab","message":"docs(治理): workspace.json 补五层职责字段——层定义此前只在总架构图 PNG 里\n\nterminology.layers 每层加 responsibility,五句逐字取自根目录\n「AI 应用开发的企业应用群总架构图.png」的层图注。此前本文件只有\nterm / alias / directory / order,五层「是什么」没有任何机器口径,\n于是既无法被引用,也无法反驳把基础基座与基础框架压成一格\nBASE_ASSET / asset 的 Catalog 登记(platform-projects.json)。\n\n职责是应然口径,不是现状声明——该图已由\n平台治理/企业应用群总架构-2026-09-17.md §2.1 定性为愿景图并记了三处过期。\n平台治理不在图上,不给该字段(其原有 note 已说明)。\n\nnote 内一并记录两处现存措辞不一致,本提交不改它们:\n- 数字员工OS/README.md 首句作「运行时宿主,装载并串接……」,弱于图注的「运行与控制中枢」\n- 工程基础框架/README.md 标题自称「基础资产」而非层名\n另三层 README 首句与图注逐字一致。\n\n纯加法:唯一消费方 平台治理/基础/scripts/lib/domain-layer-core.mjs 的\nlayerIndex() 只读 directory / term,复算映射仍 6 条、取值未变。\n门禁 check-workspace-consistency.mjs --json → status=CLEAN / issues=0 / EXIT=0\n(14 仓 8371 文件 4493 链接,2026-09-19,工作区作用域)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/cf82ac49afd4e6da0307bf0f0e1e255be6701bab","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T00:59:20-07:00","added":[],"removed":[],"modified":["workspace.json"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":11931,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T15:34:50+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789804819
|
1789804910
|
0
|
1789804818
|
1789804910
|
|
|
0
|
Edit
Delete
|
|
24232
|
docs(决策): 写回 CHG-021 材料的 README——77aaf85 里存进去的那份不是 docs(决策): 写回 CHG-021 材料的 README——77aaf85 里存进去的那份不是本包内容...
|
117
|
5
|
governance.yml
|
81
|
5
|
0
|
refs/heads/main
|
7ad320a65b921c9d68a4ab48df81241998e64867
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cf82ac49afd4e6da0307bf0f0e1e255be6701bab","after":"7ad320a65b921c9d68a4ab48df81241998e64867","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/cf82ac49afd4e6da0307bf0f0e1e255be6701bab...7ad320a65b921c9d68a4ab48df81241998e64867","commits":[{"id":"7ad320a65b921c9d68a4ab48df81241998e64867","message":"docs(决策): 写回 CHG-021 材料的 README——77aaf85 里存进去的那份不是本包内容\n\n事故与更正,如实记:本包 README 于 2026-09-19 01:53 写成,提交 77aaf85 于约 02:0x 落库;\n两者之间另一并行会话(九域/六域收编那条线)在同一路径写入了它自己的材料,而我提交前\n只核了文件名清单、没核文件内容,于是 77aaf85 存进去的是它的「CHG-021-C3-NINE-DOMAIN-MODULE-INTAKE」,\n本包的 README 从未真正入库。四份 delta 与 DEC-040 草案未被波及,一直是本包内容(changeId 均为\nCHG-021-HOSTED-MODULE-PROMOTION),可据以复核本文与它们是否一致。\n\n本次按本会话原稿写回,内容与四份 delta 逐项对齐,并补一节「与 CHG-022 的分工」:\n- CHG-021(本包)= C11 公共文件 / C12 通知与 Webhook / C13 配置与功能开关三条**有真实现与存量\n 消费者**的托管能力升格,要处理权威状态迁移、宿主改造与回切;\n- CHG-022 = 其余六个**零运行面**契约域(C15—C19 + C01)的收编。\n两包范围不重叠。编号维持现状:并行会话已自取 CHG-022 并在其材料里引用本包为 CHG-021,\n无须改号。\n\n链接自检:8 条相对链接逐条验在(含新增的 ../CHG-022-材料/README.md)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/7ad320a65b921c9d68a4ab48df81241998e64867","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:21:58-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/CHG-021-材料/README.md"]},{"id":"e8d488b2bf75395b2aae4a653146440a624073f1","message":"docs(治理): 收纳表随 DEC-040 / CHG-021 落地改数——doc/ 154 → 160,编号区间跟到 040 / 021\n\nL13(治理层自己的数字声明与 git ls-files 不符)在上一条提交后即判红:收纳表写 154,实为 160。\n六个文件全部来自 77aaf85(DEC-040 草案 1 份 + CHG-021 材料 5 份)。同时把区间描述从\nDEC-001~039 / CHG-001~020 跟到 DEC-001~040 / CHG-001~021。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/e8d488b2bf75395b2aae4a653146440a624073f1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:10:28-07:00","added":[],"removed":[],"modified":["平台治理/README.md"]},{"id":"77aaf8599b0379a71bf3eed4e07fa93e08317325","message":"docs(决策): DEC-040 托管能力升格为平台运行时模块 + CHG-021 受控变更包(均待签署)\n\n目录负责人 2026-09-19 提出「托管模块应该直接迁进本仓」。该指示与三处已批准口径相反\n(Q01「不得以方便实现自动新增 M8」、设计方案第 155 行「三消费者 + G4 后用 scaffold 加模块」、\n第 35 行把自动服务化文件/通知/配置列为非目标),故先成裁决材料,批准后实现才有依据。\n\nDEC-040 草案(待批准):\n- 底账:三条能力的代码两半都已在本仓(规则 2026-09-14 进 contracts/src/domain,副作用\n 2026-09-18 进 runtime/clients),没有的是运行服务与权威状态——后者仍完整在工单宿主。\n- 消费者实测 3 / 3 / 1;配置的三消费者条件按建议 Decision 第 4 条显式豁免,带回看期\n 2027-03-19 与 single-consumer 接口标记。\n- 补齐 Q01 要求的两个宿主方案成本与迁移影响对比(不做这张表,本裁决不满足自己的准入条件)。\n- 写明两处代价:① 验收等级如实由 E2 降到 E0(宿主实现的 E2 不证明平台实现);② 业务外键\n (Attachment.ticket_id 必填 + Cascade、Notification 唯一键含 escalation_id)必须断开,\n 级联删除语义要由宿主显式调用重建。\n- 内核无对应端口且 kernel 由仓外框架 Owner 发布,故升格出的模块 provides 为空、消费面只有 HTTP。\n\nCHG-021 材料(待 DEC-040 批准 + Catalog Owner 签署,本包未改动任何文件):\n- 四份 delta:decisions / platform-projects / modules / catalog-map,各带当前值与目标值。\n- 逐行核过 check:modules(第 45—57 行)的六条判据并写进应用顺序;登记面与模块骨架必须同批落地。\n- 附实施工作包七步链与已知风险;顺带记录三条模块登记会补上 Release Manifest 少三行的现存缺口。\n\n自检:四份 delta JSON 合法;两份文档 10 条相对链接逐条验在。治理层一致性检查只扫已跟踪文件,\n本批提交后才算机器验过。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/77aaf8599b0379a71bf3eed4e07fa93e08317325","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:08:58-07:00","added":["平台治理/doc/decisions/CHG-021-材料/README.md","平台治理/doc/decisions/CHG-021-材料/catalog-map.delta.json","平台治理/doc/decisions/CHG-021-材料/decisions.delta.json","平台治理/doc/decisions/CHG-021-材料/modules.delta.json","平台治理/doc/decisions/CHG-021-材料/platform-projects.delta.json","平台治理/doc/decisions/DEC-040-托管能力升格为平台运行时模块-草案.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"7ad320a65b921c9d68a4ab48df81241998e64867","message":"docs(决策): 写回 CHG-021 材料的 README——77aaf85 里存进去的那份不是本包内容\n\n事故与更正,如实记:本包 README 于 2026-09-19 01:53 写成,提交 77aaf85 于约 02:0x 落库;\n两者之间另一并行会话(九域/六域收编那条线)在同一路径写入了它自己的材料,而我提交前\n只核了文件名清单、没核文件内容,于是 77aaf85 存进去的是它的「CHG-021-C3-NINE-DOMAIN-MODULE-INTAKE」,\n本包的 README 从未真正入库。四份 delta 与 DEC-040 草案未被波及,一直是本包内容(changeId 均为\nCHG-021-HOSTED-MODULE-PROMOTION),可据以复核本文与它们是否一致。\n\n本次按本会话原稿写回,内容与四份 delta 逐项对齐,并补一节「与 CHG-022 的分工」:\n- CHG-021(本包)= C11 公共文件 / C12 通知与 Webhook / C13 配置与功能开关三条**有真实现与存量\n 消费者**的托管能力升格,要处理权威状态迁移、宿主改造与回切;\n- CHG-022 = 其余六个**零运行面**契约域(C15—C19 + C01)的收编。\n两包范围不重叠。编号维持现状:并行会话已自取 CHG-022 并在其材料里引用本包为 CHG-021,\n无须改号。\n\n链接自检:8 条相对链接逐条验在(含新增的 ../CHG-022-材料/README.md)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/7ad320a65b921c9d68a4ab48df81241998e64867","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:21:58-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/CHG-021-材料/README.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":11940,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T16:00:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789810068
|
1789810083
|
0
|
1789810066
|
1789810083
|
|
|
0
|
Edit
Delete
|
|
24234
|
docs(决策): DEC-041 零运行面契约域收编为平台运行时模块 + CHG-022 受控变更 docs(决策): DEC-041 零运行面契约域收编为平台运行时模块 + CHG-022 受控变更包(均待签署)...
|
117
|
5
|
governance.yml
|
82
|
5
|
0
|
refs/heads/main
|
87c3722f6c778c786ea50eba75bc5806fa300b0b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7ad320a65b921c9d68a4ab48df81241998e64867","after":"87c3722f6c778c786ea50eba75bc5806fa300b0b","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/7ad320a65b921c9d68a4ab48df81241998e64867...87c3722f6c778c786ea50eba75bc5806fa300b0b","commits":[{"id":"87c3722f6c778c786ea50eba75bc5806fa300b0b","message":"docs(决策): DEC-041 零运行面契约域收编为平台运行时模块 + CHG-022 受控变更包(均待签署)\n\n目录负责人 2026-09-19 提出「调度跨域、企业 IM、数据分析、统一体验、成本容量 + 应用与\n契约注册中心,应该直接放到企业控制面作为运行时模块;企业控制面要支持运行时模块的新增\n和删除」。该指示与已批准的 决策批次-2026-09-16 C-3 相反——C-3 的承接表把这几项裁给上层\n既有宿主,附条件「不新增 M8」「宿主协议签收才算准入」——故先成裁决材料,批准后实现才有依据。\n\n范围与 DEC-040 / CHG-021 划清:那一对管 C11—C13 三条有真实现的托管能力,本对管六个\n零运行面的域(C15 / C16 / C17 / C18 / C19 + C01)。两包独立签署、互不为前置(目录负责人当日定案)。\n\nDEC-041 草案(待批准):\n- Q01 备选条款是唯一合法入口,其触发条件经实测成立,且成立得比该条款预想的彻底:C-3\n 指定的五个宿主里三个不存在——C17「已有分析产品宿主」在业务应用层四个 + 企业领域应用层\n 四个里无一是分析产品;C19「复用 C17」随之落空;C15「业务应用的托管流程执行器」全工作区\n grep 零命中,最接近的工单仓 AutomationRun.ticketId 是必填外键 + onDelete Cascade,绑死\n 单张工单。一个须新建(C16 要的 Conversation/Membership/Message 工单 schema 里没有,而\n C-3 自己要求与 TicketMessage 分开),一个不是状态宿主(C18)。不是「评估后认为不足」,\n 是没有评估对象。\n- 补齐 Q01 要求的两个宿主方案成本与迁移影响对比(不做这张表,本裁决不满足自己的准入条件):\n 逐域给 C-3 指定者 + 全工作区内另找的最接近者,两个候选都评。\n- 一处此前没有材料提过的事实:这六项的 Catalog hosted_by 早就是 enterprise-platform。\n 登记面一直说它们归控制面,是 C-3 把运行宿主裁给了上层——本件是把裁决对齐到登记,\n 不是反过来。另引 workspace.json 2026-09-19 才补入的 layers[].responsibility 作为层职责口径\n (应然口径,不作现状证据)。\n- 建议 Decision 八条:provides 全空不动 kernel(exact pin 不受影响)/「不新增 M8」改写为\n 九项准入标准而非删除(Q01「不得以方便实现自动新增」保留,从「不许新增」变成「不许绕过\n 准入条件新增」)/ 先契约后实现 / 六域起 shape,升 authority 各需一条新的已批准 DEC,本件\n 不代批 / Fact 按 DEC-038(仍 pending)停在候选 / 验收等级不升不降(六域本就 candidate_e0\n E0,与 DEC-040 那三条 E2→E0 相反,两份材料别串)/ 无消费者的模块只能停 shape / 退役机制\n 与本件同批建。末两条为目录负责人当日对原待定项 B / C 的定案。\n- 第 7 条的后果已写明:六域今天零消费者,与「shape 不得有迁移」叠加,等于第一个真实消费者\n 出现前一个都不能升 authority、也建不了权威表。这是已决且尚未满足,不是未决。\n\nCHG-022 材料(待 DEC-041 批准 + Catalog Owner 签署,本包未改动任何文件):\n- 四份 delta:decisions / platform-projects / modules / catalog-map,各带当前值与目标值。\n platform-projects 每条另列 unchanged 段,把「六域只改 form、hosted_by 与验收等级都不动」\n 与 CHG-021 三条的相反处置区分开。\n- §4A 八步应用顺序,每步注明为什么在那一位;六个模块可分批,但每批内部第 3—7 步必须同一提交,\n 否则 catalog:drift(2026-09-17 起 drift 档一律阻断)在中间态判红。\n- 第 8 步是退役机制:今天 runtime/modules.json 没有任何退役表达(无 retirement 字段、无\n directory: null 等价物),删目录 + 删登记行之后 check:modules 反而是绿的——这正是 Q01 要求\n 宿主提供「退出保障」的那一条,对控制面自己同样不成立的地方。没有退役路径,「支持新增」\n 就是单向门。\n- 顺带记录一处由 CHG-021 的 catalog-map.delta.json 查明、本包据以补进准入第 1 条的判据:\n 每个新模块必须在 governance/catalog-map.json 显式登记 模块 id → Catalog id 的映射,不靠\n 同名推断(既有 identity→enterprise-idp 就不同名),漏掉则 build-workbench-snapshots 报\n MODULE_WITHOUT_CATALOG_ENTRY、check:catalog 对账同时判红。\n\n收纳表随之改数:doc/ 160 → 166,编号区间跟到 041 / 022。\n\n配套的两份设计文档在真源仓 docs/能力设计/(九域模块化落地设计、运行时模块进出机制设计),\n本次不在治理仓提交范围内。\n\n自检:四份 delta JSON 合法;六份文件的相对链接逐条验在;治理层一致性检查 CLEAN\n(14 仓 / 8377 文件 / 4507 链接)——它只扫已跟踪文件,本批提交后才算机器验过。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/87c3722f6c778c786ea50eba75bc5806fa300b0b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:36:03-07:00","added":["平台治理/doc/decisions/CHG-022-材料/README.md","平台治理/doc/decisions/CHG-022-材料/catalog-map.delta.json","平台治理/doc/decisions/CHG-022-材料/decisions.delta.json","平台治理/doc/decisions/CHG-022-材料/modules.delta.json","平台治理/doc/decisions/CHG-022-材料/platform-projects.delta.json","平台治理/doc/decisions/DEC-041-零运行面契约域收编为平台运行时模块-草案.md"],"removed":[],"modified":["平台治理/README.md"]}],"total_commits":0,"head_commit":{"id":"87c3722f6c778c786ea50eba75bc5806fa300b0b","message":"docs(决策): DEC-041 零运行面契约域收编为平台运行时模块 + CHG-022 受控变更包(均待签署)\n\n目录负责人 2026-09-19 提出「调度跨域、企业 IM、数据分析、统一体验、成本容量 + 应用与\n契约注册中心,应该直接放到企业控制面作为运行时模块;企业控制面要支持运行时模块的新增\n和删除」。该指示与已批准的 决策批次-2026-09-16 C-3 相反——C-3 的承接表把这几项裁给上层\n既有宿主,附条件「不新增 M8」「宿主协议签收才算准入」——故先成裁决材料,批准后实现才有依据。\n\n范围与 DEC-040 / CHG-021 划清:那一对管 C11—C13 三条有真实现的托管能力,本对管六个\n零运行面的域(C15 / C16 / C17 / C18 / C19 + C01)。两包独立签署、互不为前置(目录负责人当日定案)。\n\nDEC-041 草案(待批准):\n- Q01 备选条款是唯一合法入口,其触发条件经实测成立,且成立得比该条款预想的彻底:C-3\n 指定的五个宿主里三个不存在——C17「已有分析产品宿主」在业务应用层四个 + 企业领域应用层\n 四个里无一是分析产品;C19「复用 C17」随之落空;C15「业务应用的托管流程执行器」全工作区\n grep 零命中,最接近的工单仓 AutomationRun.ticketId 是必填外键 + onDelete Cascade,绑死\n 单张工单。一个须新建(C16 要的 Conversation/Membership/Message 工单 schema 里没有,而\n C-3 自己要求与 TicketMessage 分开),一个不是状态宿主(C18)。不是「评估后认为不足」,\n 是没有评估对象。\n- 补齐 Q01 要求的两个宿主方案成本与迁移影响对比(不做这张表,本裁决不满足自己的准入条件):\n 逐域给 C-3 指定者 + 全工作区内另找的最接近者,两个候选都评。\n- 一处此前没有材料提过的事实:这六项的 Catalog hosted_by 早就是 enterprise-platform。\n 登记面一直说它们归控制面,是 C-3 把运行宿主裁给了上层——本件是把裁决对齐到登记,\n 不是反过来。另引 workspace.json 2026-09-19 才补入的 layers[].responsibility 作为层职责口径\n (应然口径,不作现状证据)。\n- 建议 Decision 八条:provides 全空不动 kernel(exact pin 不受影响)/「不新增 M8」改写为\n 九项准入标准而非删除(Q01「不得以方便实现自动新增」保留,从「不许新增」变成「不许绕过\n 准入条件新增」)/ 先契约后实现 / 六域起 shape,升 authority 各需一条新的已批准 DEC,本件\n 不代批 / Fact 按 DEC-038(仍 pending)停在候选 / 验收等级不升不降(六域本就 candidate_e0\n E0,与 DEC-040 那三条 E2→E0 相反,两份材料别串)/ 无消费者的模块只能停 shape / 退役机制\n 与本件同批建。末两条为目录负责人当日对原待定项 B / C 的定案。\n- 第 7 条的后果已写明:六域今天零消费者,与「shape 不得有迁移」叠加,等于第一个真实消费者\n 出现前一个都不能升 authority、也建不了权威表。这是已决且尚未满足,不是未决。\n\nCHG-022 材料(待 DEC-041 批准 + Catalog Owner 签署,本包未改动任何文件):\n- 四份 delta:decisions / platform-projects / modules / catalog-map,各带当前值与目标值。\n platform-projects 每条另列 unchanged 段,把「六域只改 form、hosted_by 与验收等级都不动」\n 与 CHG-021 三条的相反处置区分开。\n- §4A 八步应用顺序,每步注明为什么在那一位;六个模块可分批,但每批内部第 3—7 步必须同一提交,\n 否则 catalog:drift(2026-09-17 起 drift 档一律阻断)在中间态判红。\n- 第 8 步是退役机制:今天 runtime/modules.json 没有任何退役表达(无 retirement 字段、无\n directory: null 等价物),删目录 + 删登记行之后 check:modules 反而是绿的——这正是 Q01 要求\n 宿主提供「退出保障」的那一条,对控制面自己同样不成立的地方。没有退役路径,「支持新增」\n 就是单向门。\n- 顺带记录一处由 CHG-021 的 catalog-map.delta.json 查明、本包据以补进准入第 1 条的判据:\n 每个新模块必须在 governance/catalog-map.json 显式登记 模块 id → Catalog id 的映射,不靠\n 同名推断(既有 identity→enterprise-idp 就不同名),漏掉则 build-workbench-snapshots 报\n MODULE_WITHOUT_CATALOG_ENTRY、check:catalog 对账同时判红。\n\n收纳表随之改数:doc/ 160 → 166,编号区间跟到 041 / 022。\n\n配套的两份设计文档在真源仓 docs/能力设计/(九域模块化落地设计、运行时模块进出机制设计),\n本次不在治理仓提交范围内。\n\n自检:四份 delta JSON 合法;六份文件的相对链接逐条验在;治理层一致性检查 CLEAN\n(14 仓 / 8377 文件 / 4507 链接)——它只扫已跟踪文件,本批提交后才算机器验过。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/87c3722f6c778c786ea50eba75bc5806fa300b0b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:36:03-07:00","added":["平台治理/doc/decisions/CHG-022-材料/README.md","平台治理/doc/decisions/CHG-022-材料/catalog-map.delta.json","平台治理/doc/decisions/CHG-022-材料/decisions.delta.json","平台治理/doc/decisions/CHG-022-材料/modules.delta.json","平台治理/doc/decisions/CHG-022-材料/platform-projects.delta.json","平台治理/doc/decisions/DEC-041-零运行面契约域收编为平台运行时模块-草案.md"],"removed":[],"modified":["平台治理/README.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":11981,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T17:27:46+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789810841
|
1789810856
|
0
|
1789810841
|
1789810856
|
|
|
0
|
Edit
Delete
|
|
24236
|
docs(决策): DEC-040 补第 6 条终局形态——16 模块 + 3 采纳 + 2 排除资 docs(决策): DEC-040 补第 6 条终局形态——16 模块 + 3 采纳 + 2 排除资产,C07/C08/C09 显式裁定不升格...
|
117
|
5
|
governance.yml
|
83
|
5
|
0
|
refs/heads/main
|
6310f96273f3871838ed559d8ba7376fca142465
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"87c3722f6c778c786ea50eba75bc5806fa300b0b","after":"6310f96273f3871838ed559d8ba7376fca142465","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/87c3722f6c778c786ea50eba75bc5806fa300b0b...6310f96273f3871838ed559d8ba7376fca142465","commits":[{"id":"6310f96273f3871838ed559d8ba7376fca142465","message":"docs(决策): DEC-040 补第 6 条终局形态——16 模块 + 3 采纳 + 2 排除资产,C07/C08/C09 显式裁定不升格\n\n目录负责人 2026-09-19 口径:「除 C07 交付、C08 网关、C09 观测外的项目都应该是运行时模块」。\n对着机器 Catalog 核过,这句与桌上两包严丝合缝,不需要第三包:7(已有)+ 3(DEC-040/CHG-021)\n+ 6(DEC-041/CHG-022)= 16,余下正好是那三条采纳形态,加两条排除资产即 21 条 Catalog 项目。\n\n但有个措辞缺口:两包此前只是**没覆盖** C07/C08/C09,而「没被覆盖」与「已裁定维持采纳形态」\n不是一回事——DEC-041 全文对这三条零提及(实测 grep 零命中)。故在 DEC-040 建议 Decision 补第 6 条:\n\n- 三档分法成表,逐条点名。\n- 三条不升格的理由落到具体落点:交付=release-manifest / check-promotion / verify-candidate;\n 网关=Caddyfile + caddy-routes.json + check-caddy;观测=collector + otel-attributes.json + check-otel。\n 给它们建模块=再造一个已经在跑的东西,且 DEC-024 / DEC-025 已批准这三处选型。\n- 例外入口不关死:将来某条被证明给不了隔离 / 故障预算 / 退出保障,仍可按 Q01 备选条款另提裁决,\n 但同样须附两个宿主方案的成本与迁移影响,不得以「形态统一」为由自动升格。\n\nCHG-021 的「与 CHG-022 的分工」段同步补成三分法并指回本条。\n自检:两份文档相对链接逐条验在;工作区一致性 0 条(8386 份受控文件 / 4607 条链接)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/6310f96273f3871838ed559d8ba7376fca142465","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:49:08-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/CHG-021-材料/README.md","平台治理/doc/decisions/DEC-040-托管能力升格为平台运行时模块-草案.md"]}],"total_commits":0,"head_commit":{"id":"6310f96273f3871838ed559d8ba7376fca142465","message":"docs(决策): DEC-040 补第 6 条终局形态——16 模块 + 3 采纳 + 2 排除资产,C07/C08/C09 显式裁定不升格\n\n目录负责人 2026-09-19 口径:「除 C07 交付、C08 网关、C09 观测外的项目都应该是运行时模块」。\n对着机器 Catalog 核过,这句与桌上两包严丝合缝,不需要第三包:7(已有)+ 3(DEC-040/CHG-021)\n+ 6(DEC-041/CHG-022)= 16,余下正好是那三条采纳形态,加两条排除资产即 21 条 Catalog 项目。\n\n但有个措辞缺口:两包此前只是**没覆盖** C07/C08/C09,而「没被覆盖」与「已裁定维持采纳形态」\n不是一回事——DEC-041 全文对这三条零提及(实测 grep 零命中)。故在 DEC-040 建议 Decision 补第 6 条:\n\n- 三档分法成表,逐条点名。\n- 三条不升格的理由落到具体落点:交付=release-manifest / check-promotion / verify-candidate;\n 网关=Caddyfile + caddy-routes.json + check-caddy;观测=collector + otel-attributes.json + check-otel。\n 给它们建模块=再造一个已经在跑的东西,且 DEC-024 / DEC-025 已批准这三处选型。\n- 例外入口不关死:将来某条被证明给不了隔离 / 故障预算 / 退出保障,仍可按 Q01 备选条款另提裁决,\n 但同样须附两个宿主方案的成本与迁移影响,不得以「形态统一」为由自动升格。\n\nCHG-021 的「与 CHG-022 的分工」段同步补成三分法并指回本条。\n自检:两份文档相对链接逐条验在;工作区一致性 0 条(8386 份受控文件 / 4607 条链接)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/6310f96273f3871838ed559d8ba7376fca142465","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:49:08-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/CHG-021-材料/README.md","平台治理/doc/decisions/DEC-040-托管能力升格为平台运行时模块-草案.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12019,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T17:40:41+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789811365
|
1789811381
|
0
|
1789811363
|
1789811381
|
|
|
0
|
Edit
Delete
|
|
24237
|
docs(决策): DEC-040 / DEC-041 批准记录落定——九域全收开工,起手 C11 docs(决策): DEC-040 / DEC-041 批准记录落定——九域全收开工,起手 C11 公共文件...
|
117
|
5
|
governance.yml
|
84
|
5
|
0
|
refs/heads/main
|
97e65b262e22f4bfef8755e848e5bacbf33574b3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6310f96273f3871838ed559d8ba7376fca142465","after":"97e65b262e22f4bfef8755e848e5bacbf33574b3","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/6310f96273f3871838ed559d8ba7376fca142465...97e65b262e22f4bfef8755e848e5bacbf33574b3","commits":[{"id":"97e65b262e22f4bfef8755e848e5bacbf33574b3","message":"docs(决策): DEC-040 / DEC-041 批准记录落定——九域全收开工,起手 C11 公共文件\n\n目录负责人 2026-09-19 在会话内批准两件,逐句留痕记在各自批准记录里:\n- DEC-040 选 A(C11/C12/C13 三条一并升格),第 4 条配置豁免与第 6 条终局形态均照原文批准;\n 附加条件:按 CHG-021 §6 一条走完再开下一条,起手 C11 公共文件。\n- DEC-041 选 A(C01 + C15—C19 六域一并收编),四项待定照其正文已定案原文批准;\n 六域实施由其材料的负责会话推进,与本三条并行、互不为前置。\n\n两件的「Current action 不得做」自本记录起失效,改由各自 CHG 的应用顺序一步一验约束。\n下一步是 CHG-021 §5 第 1 步:把 DEC-040 登记进真源仓 contracts/catalogs/decisions.json。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/97e65b262e22f4bfef8755e848e5bacbf33574b3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:55:33-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/DEC-040-托管能力升格为平台运行时模块-草案.md","平台治理/doc/decisions/DEC-041-零运行面契约域收编为平台运行时模块-草案.md"]}],"total_commits":0,"head_commit":{"id":"97e65b262e22f4bfef8755e848e5bacbf33574b3","message":"docs(决策): DEC-040 / DEC-041 批准记录落定——九域全收开工,起手 C11 公共文件\n\n目录负责人 2026-09-19 在会话内批准两件,逐句留痕记在各自批准记录里:\n- DEC-040 选 A(C11/C12/C13 三条一并升格),第 4 条配置豁免与第 6 条终局形态均照原文批准;\n 附加条件:按 CHG-021 §6 一条走完再开下一条,起手 C11 公共文件。\n- DEC-041 选 A(C01 + C15—C19 六域一并收编),四项待定照其正文已定案原文批准;\n 六域实施由其材料的负责会话推进,与本三条并行、互不为前置。\n\n两件的「Current action 不得做」自本记录起失效,改由各自 CHG 的应用顺序一步一验约束。\n下一步是 CHG-021 §5 第 1 步:把 DEC-040 登记进真源仓 contracts/catalogs/decisions.json。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/97e65b262e22f4bfef8755e848e5bacbf33574b3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T02:55:33-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/DEC-040-托管能力升格为平台运行时模块-草案.md","平台治理/doc/decisions/DEC-041-零运行面契约域收编为平台运行时模块-草案.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12036,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T17:49:23+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789811737
|
1789811753
|
0
|
1789811736
|
1789811753
|
|
|
0
|
Edit
Delete
|
|
24239
|
docs(基础): 治理测试计数由 471 改 480 —— 随 check:modules 投影准 docs(基础): 治理测试计数由 471 改 480 —— 随 check:modules 投影准入新增 8 例...
|
117
|
5
|
governance.yml
|
85
|
5
|
0
|
refs/heads/main
|
3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"97e65b262e22f4bfef8755e848e5bacbf33574b3","after":"3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/97e65b262e22f4bfef8755e848e5bacbf33574b3...3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2","commits":[{"id":"3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2","message":"docs(基础): 治理测试计数由 471 改 480 —— 随 check:modules 投影准入新增 8 例\n\n真源仓 `c1d6baa` 给 check:modules 加了投影类模块准入(CHG-022 §3.2 第 10 条\n可机器判定的那一半),带 8 个负向用例;另有并行会话 1 例。两条跑法复测都是\n480 例 479 通过 / 0 失败 / 1 跳过,`reports/` 仍一个字节不动。\n\n两仓数字一起改(本目录 CLAUDE.md 纪律):真源仓改实现,治理层改引用。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T04:15:39-07:00","added":[],"removed":[],"modified":["企业控制面/CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2","message":"docs(基础): 治理测试计数由 471 改 480 —— 随 check:modules 投影准入新增 8 例\n\n真源仓 `c1d6baa` 给 check:modules 加了投影类模块准入(CHG-022 §3.2 第 10 条\n可机器判定的那一半),带 8 个负向用例;另有并行会话 1 例。两条跑法复测都是\n480 例 479 通过 / 0 失败 / 1 跳过,`reports/` 仍一个字节不动。\n\n两仓数字一起改(本目录 CLAUDE.md 纪律):真源仓改实现,治理层改引用。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T04:15:39-07:00","added":[],"removed":[],"modified":["企业控制面/CLAUDE.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12056,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T17:55:37+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789823691
|
1789823781
|
0
|
1789823568
|
1789823781
|
|
|
0
|
Edit
Delete
|
|
24240
|
docs(基础): 裁决计数随 DEC-040 由 39/32 改 40/33 —— L13 两处锚 docs(基础): 裁决计数随 DEC-040 由 39/32 改 40/33 —— L13 两处锚点...
|
117
|
5
|
governance.yml
|
86
|
5
|
0
|
refs/heads/main
|
204cd56aef423637994576cd323a2e466c19380a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2","after":"204cd56aef423637994576cd323a2e466c19380a","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/3e1c4767a1d962075bfbcd815c9ce1f1bb7fd0a2...204cd56aef423637994576cd323a2e466c19380a","commits":[{"id":"204cd56aef423637994576cd323a2e466c19380a","message":"docs(基础): 裁决计数随 DEC-040 由 39/32 改 40/33 —— L13 两处锚点\n\n真源仓 2026-09-19 按 CHG-021 §5 第 1 步登记 DEC-040 = approved,活跃 Catalog\n现为 40 条:33 approved / 3 pending / 4 rejected。治理层两处「快照时效提示」\n锚点后的机器基线声明仍写 39 / 32,一致性门禁 L13 四处判红。\n\n只改锚点后那句「机器基线为 N 条」——它是当前声明。同段落里 2026-09-04—09-10\n与 2026-09-12 决策会的历史数字**原样不动**:那是当时的事实,改它等于篡改记录。\n\n复跑 check-workspace-consistency:5 条降到 1 条。余下 1 条是 L10,在\nruntime/modules/public-file/src/persistence/public-file-store.ts 的注释里\n(「等 DEC-040 问题 5 裁完再加」),该注释早于「控制器四个操作落地」与\n「客户端由副作用半边改写」两个提交,是否已过期归实现方判断,本提交不代改。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/204cd56aef423637994576cd323a2e466c19380a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T06:17:06-07:00","added":[],"removed":[],"modified":["平台治理/基础/README.md","平台治理/基础/总体开发计划.md"]}],"total_commits":0,"head_commit":{"id":"204cd56aef423637994576cd323a2e466c19380a","message":"docs(基础): 裁决计数随 DEC-040 由 39/32 改 40/33 —— L13 两处锚点\n\n真源仓 2026-09-19 按 CHG-021 §5 第 1 步登记 DEC-040 = approved,活跃 Catalog\n现为 40 条:33 approved / 3 pending / 4 rejected。治理层两处「快照时效提示」\n锚点后的机器基线声明仍写 39 / 32,一致性门禁 L13 四处判红。\n\n只改锚点后那句「机器基线为 N 条」——它是当前声明。同段落里 2026-09-04—09-10\n与 2026-09-12 决策会的历史数字**原样不动**:那是当时的事实,改它等于篡改记录。\n\n复跑 check-workspace-consistency:5 条降到 1 条。余下 1 条是 L10,在\nruntime/modules/public-file/src/persistence/public-file-store.ts 的注释里\n(「等 DEC-040 问题 5 裁完再加」),该注释早于「控制器四个操作落地」与\n「客户端由副作用半边改写」两个提交,是否已过期归实现方判断,本提交不代改。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/204cd56aef423637994576cd323a2e466c19380a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T06:17:06-07:00","added":[],"removed":[],"modified":["平台治理/基础/README.md","平台治理/基础/总体开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12061,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T21:12:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789823882
|
1789823913
|
0
|
1789823829
|
1789823913
|
|
|
0
|
Edit
Delete
|
|
24243
|
docs(governance): reconcile DEC-040/041 status and docs(governance): reconcile DEC-040/041 status and CHG-021 progress...
|
117
|
5
|
governance.yml
|
87
|
5
|
0
|
refs/heads/main
|
e4287f952d278ffe74c3ad682b9d11bc7028908c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"204cd56aef423637994576cd323a2e466c19380a","after":"e4287f952d278ffe74c3ad682b9d11bc7028908c","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/204cd56aef423637994576cd323a2e466c19380a...e4287f952d278ffe74c3ad682b9d11bc7028908c","commits":[{"id":"e4287f952d278ffe74c3ad682b9d11bc7028908c","message":"docs(governance): reconcile DEC-040/041 status and CHG-021 progress\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/e4287f952d278ffe74c3ad682b9d11bc7028908c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T07:48:19-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/CHG-021-材料/README.md","平台治理/doc/decisions/DEC-040-托管能力升格为平台运行时模块-草案.md","平台治理/doc/decisions/DEC-041-零运行面契约域收编为平台运行时模块-草案.md","平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"e4287f952d278ffe74c3ad682b9d11bc7028908c","message":"docs(governance): reconcile DEC-040/041 status and CHG-021 progress\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/e4287f952d278ffe74c3ad682b9d11bc7028908c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T07:48:19-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/CHG-021-材料/README.md","平台治理/doc/decisions/DEC-040-托管能力升格为平台运行时模块-草案.md","平台治理/doc/decisions/DEC-041-零运行面契约域收编为平台运行时模块-草案.md","平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12126,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T21:17:10+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789829312
|
1789829327
|
0
|
1789829310
|
1789829327
|
|
|
0
|
Edit
Delete
|
|
24246
|
docs(governance): record verified dev runtime upda docs(governance): record verified dev runtime update...
|
117
|
5
|
governance.yml
|
88
|
5
|
0
|
refs/heads/main
|
1d0dd2c042d6a06ccd5c53cfcc5115850fefe859
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e4287f952d278ffe74c3ad682b9d11bc7028908c","after":"1d0dd2c042d6a06ccd5c53cfcc5115850fefe859","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/e4287f952d278ffe74c3ad682b9d11bc7028908c...1d0dd2c042d6a06ccd5c53cfcc5115850fefe859","commits":[{"id":"1d0dd2c042d6a06ccd5c53cfcc5115850fefe859","message":"docs(governance): record verified dev runtime update\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/1d0dd2c042d6a06ccd5c53cfcc5115850fefe859","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T07:53:47-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/CHG-021-材料/README.md","平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"1d0dd2c042d6a06ccd5c53cfcc5115850fefe859","message":"docs(governance): record verified dev runtime update\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/1d0dd2c042d6a06ccd5c53cfcc5115850fefe859","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T07:53:47-07:00","added":[],"removed":[],"modified":["平台治理/doc/decisions/CHG-021-材料/README.md","平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12225,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T22:48:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789830731
|
1789830746
|
0
|
1789829649
|
1789830746
|
|
|
0
|
Edit
Delete
|
|
24255
|
docs(acceptance): record MCP verification and shar docs(acceptance): record MCP verification and shared-dev OS entry...
|
76
|
5
|
governance.yml
|
102
|
5
|
0
|
refs/heads/main
|
0bacabbbf2ed7e903ea7c77bad7cb973220417f9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"14983b57ae2ab9c0e424700ca11c3f4677984400","after":"0bacabbbf2ed7e903ea7c77bad7cb973220417f9","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/14983b57ae2ab9c0e424700ca11c3f4677984400...0bacabbbf2ed7e903ea7c77bad7cb973220417f9","commits":[{"id":"0bacabbbf2ed7e903ea7c77bad7cb973220417f9","message":"docs(acceptance): record MCP verification and shared-dev OS entry\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0bacabbbf2ed7e903ea7c77bad7cb973220417f9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:37:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/operations/mcp-client-acceptance-2026-09-19.md","docs/platform-shared-dev.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"545112d3ab25eef1235f4ba7e96425f77521cf9a","message":"chore(governance): register MCP consumer contract exports\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/545112d3ab25eef1235f4ba7e96425f77521cf9a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:33:38-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/domain/mcp-control-plane-blueprint.md","kernel.exports.lock.json"]},{"id":"cb8177419cb374287ef67bf5a65cdfa2fe5d3a5f","message":"feat(mcp): add governed read-only control-plane client and evidence view\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/cb8177419cb374287ef67bf5a65cdfa2fe5d3a5f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:23:59-07:00","added":["apps/api-fastify/prisma/migrations/20260930000000_mcp_read_external/migration.sql","apps/api-nestjs/prisma/migrations/20260930000000_mcp_read_external/migration.sql","docs/domain/mcp-control-plane-blueprint.md","docs/operations/mcp-client-acceptance-2026-09-19.md","packages/contracts/src/mcp-control-plane.ts","packages/tool-runtime/src/implementations/control-plane-query-v1.ts","packages/tool-runtime/src/mcp-control-plane.test.ts","packages/tool-runtime/src/mcp-control-plane.ts","packages/tool-runtime/src/mcp-dispatch.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/tool-execution.service.ts","apps/api-fastify/src/plugins/tool-intent-dispatcher.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-nestjs/src/tools/tool-intent-dispatcher.service.ts","apps/api-nestjs/src/tools/tools-execution.service.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/workbench/RuntimeContextShell.tsx","apps/web/src/features/tools/components/ToolGovernancePanel.tsx","deploy/production/compose.yml","docs/domain/owner-matrix.md","docs/domain/tool-execution-blueprint.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/tool.ts","packages/contracts/src/tools-contracts.ts","packages/tool-runtime/package.json","packages/tool-runtime/src/index.test.ts","packages/tool-runtime/src/index.ts","pnpm-lock.yaml"]},{"id":"edec489b68a5957de8136f926c39f509e6b2147c","message":"feat(realtime): 产品事件补齐请求上下文——不改产品,来源留在 OS 侧\n\nB3″ 如实登记过一条:产品事件走 @repo/product-runtime 的裸 SQL INSERT,Prisma 扩展覆盖不到,\n所以它们没有 context。本批补齐,但**原计划的做法行不通,改了路子**:\n\n原计划「给 ProductSqlRuntimeOptions 加上下文入参」——查下来 createProductSqlRuntime 的调用方是\n**产品自己的组合根**(products/\u003cid\u003e/src/os-composition.mjs),而 products/\u003cid\u003e/ 按双形态原则\n只是派生制品、真源在独立仓。改它的签名就是制造与独立仓的漂移,必须走 GAP-10 对账。\n本仓不越过那道协议去改派生制品。\n\n改为 OS 侧进程级 provider:`setProductOutboxContextProvider`,两后端在装配期各注册一次自己的\n`outboxContext`(读 AsyncLocalStorage),**产品代码一个字不用改**。\n\n**这条依赖一个必须验证而不是假设的前提**:后端按包名 import 与产品按绝对路径 require,\n拿到的是不是同一个模块实例?不是的话,provider 注册在一边、读在另一边,上下文会静默为 null\n——正是那种「看起来接上了、其实全是空」的假绿。实测验证:pnpm 软链 + Node realpath 解析\n使两者命中同一 CJS 缓存项,`byPath.setProductOutboxContextProvider === byName.…` 为 true。\n为此两后端新增 @repo/product-runtime workspace 依赖(它是本仓 6 个稳定内核包之一,\n不是对产品的依赖,方向没问题)。\n\n失败语义:provider 抛错时返回空上下文而不是让事务失败——**上下文缺席远好于业务写链被拖垮**。\n未注册(worker / 独立 dispatcher)时两列为 NULL,缺席是诚实的,不合成。\n\n守护:product-runtime 单测 7 → 10(注册即带 / 未注册即 NULL / provider 抛错不拖垮写链);\ncheck:dual-backend 增 5 条 targeted 断言 + 1 个受控断线负探针(负探针 5 → 6)。\nproduct-runtime 升 1.2.0(expand-only),kernel.packages / kernel.downstream 两把锁重签,\n下游 fixture 源码未改即通过。\n\n过程中撞到一次邻近窗口:注册行插在 assertTenantAuthStartup 与框架初始化之间,撑破了 C51 的\n160 字节断言。**这次没有放宽窗口**——C51 那句「必须在框架初始化之前 fail closed」是有语义的,\n改为把注册挪到框架创建之后(它本来也不需要那么早)。\n\n证据:typecheck 14/14;pnpm check 28/28;product-runtime 10/10。\nown-test-cases 789 → 792 已按实测更新;tests-passing 仍写 786(当前 runtime 报告口径),\n等本批 runtime 实测后再改——不预写未经实测的数字。锚点按 C241 指向父提交 14983b5。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/edec489b68a5957de8136f926c39f509e6b2147c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T22:02:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/src/app.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/create-app.ts","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/product-runtime/package.json","packages/product-runtime/src/product-sql.test.ts","packages/product-runtime/src/product-sql.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"0bacabbbf2ed7e903ea7c77bad7cb973220417f9","message":"docs(acceptance): record MCP verification and shared-dev OS entry\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0bacabbbf2ed7e903ea7c77bad7cb973220417f9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:37:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/operations/mcp-client-acceptance-2026-09-19.md","docs/platform-shared-dev.md","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":92412,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-19T11:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1789861083
|
1789861173
|
0
|
1789861082
|
1789861294
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24265
|
docs(governance): align layer terminology and plat docs(governance): align layer terminology and platform status...
|
117
|
5
|
governance.yml
|
89
|
5
|
0
|
refs/heads/main
|
e665ccae21f6bfec22ea24f341e726c550634b00
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1d0dd2c042d6a06ccd5c53cfcc5115850fefe859","after":"e665ccae21f6bfec22ea24f341e726c550634b00","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/1d0dd2c042d6a06ccd5c53cfcc5115850fefe859...e665ccae21f6bfec22ea24f341e726c550634b00","commits":[{"id":"e665ccae21f6bfec22ea24f341e726c550634b00","message":"docs(governance): align layer terminology and platform status\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/e665ccae21f6bfec22ea24f341e726c550634b00","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:57:10-07:00","added":[],"removed":[],"modified":["workspace.json","工程基础框架/README.md","平台治理/基础设施文档/开发计划.md","数字员工OS/README.md"]}],"total_commits":0,"head_commit":{"id":"e665ccae21f6bfec22ea24f341e726c550634b00","message":"docs(governance): align layer terminology and platform status\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/e665ccae21f6bfec22ea24f341e726c550634b00","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:57:10-07:00","added":[],"removed":[],"modified":["workspace.json","工程基础框架/README.md","平台治理/基础设施文档/开发计划.md","数字员工OS/README.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12310,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-19T22:54:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789862509
|
1789862600
|
0
|
1789862243
|
1789862600
|
|
|
0
|
Edit
Delete
|
|
24266
|
docs(governance): align DEC-041 catalog counts
|
117
|
5
|
governance.yml
|
90
|
5
|
0
|
refs/heads/main
|
600b27dd78486b235f958cb358b936a3b64abf07
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e665ccae21f6bfec22ea24f341e726c550634b00","after":"600b27dd78486b235f958cb358b936a3b64abf07","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/e665ccae21f6bfec22ea24f341e726c550634b00...600b27dd78486b235f958cb358b936a3b64abf07","commits":[{"id":"600b27dd78486b235f958cb358b936a3b64abf07","message":"docs(governance): align DEC-041 catalog counts\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/600b27dd78486b235f958cb358b936a3b64abf07","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:58:02-07:00","added":[],"removed":[],"modified":["平台治理/基础/README.md","平台治理/基础/总体开发计划.md"]}],"total_commits":0,"head_commit":{"id":"600b27dd78486b235f958cb358b936a3b64abf07","message":"docs(governance): align DEC-041 catalog counts\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/600b27dd78486b235f958cb358b936a3b64abf07","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T16:58:02-07:00","added":[],"removed":[],"modified":["平台治理/基础/README.md","平台治理/基础/总体开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12399,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-20T07:57:23+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789862600
|
1789862897
|
0
|
1789862288
|
1789862897
|
|
|
0
|
Edit
Delete
|
|
24271
|
docs(计划): 登记 B5 收口、check:runtime 重跑撞出的回归与状态格再订 @ 真 docs(计划): 登记 B5 收口、check:runtime 重跑撞出的回归与状态格再订 @ 真源仓 c0422ba...
|
117
|
5
|
governance.yml
|
91
|
5
|
0
|
refs/heads/main
|
47a3de602dfa355f1dce32f192ddf4478d0c923a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"600b27dd78486b235f958cb358b936a3b64abf07","after":"47a3de602dfa355f1dce32f192ddf4478d0c923a","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/600b27dd78486b235f958cb358b936a3b64abf07...47a3de602dfa355f1dce32f192ddf4478d0c923a","commits":[{"id":"47a3de602dfa355f1dce32f192ddf4478d0c923a","message":"docs(计划): 登记 B5 收口、check:runtime 重跑撞出的回归与状态格再订 @ 真源仓 c0422ba\n\n- 状态行与 §1 四行按 2026-09-20T01:05Z 实测重订:作业由 15 个拒绝桩改为 job-readiness 记账\n (active 8 / alternate 2 / deferred 12,真正新写的处理器只有 identity.session-cleanup),未落地面 47 → 33;\n dev 当晚又切三次、现跑 793dd51 构建的镜像;check:deployed 判定范围按依赖闭包修正(B5,84a8991)。\n- check:runtime 在 HEAD 重跑:clean 20f2211 上红(a64dc81 留下两条旧夹具用例,根链不跑 api-nestjs 单测\n 所以过了整链并部署到 dev),修于 0482667 后 1109 tests / 0 failures,回绑 c0422ba。\n- 未认证写入的读数改成实测口径:已登记的操作路由 401,裸集合路径 404(与当日几份部署记录不符,未回查)。\n- §5 ⑤ 增门禁缺口待裁;§7 增「根链绿 ≠ 运行时测试绿」;§8 增一行。\n\n一致性门禁 CLEAN。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/47a3de602dfa355f1dce32f192ddf4478d0c923a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T18:13:13-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},{"id":"f2c623fd273fd92026151c1e305ecf51f430c218","message":"docs(计划): 登记 F1 收口与当晚状态格重订——变更记录一行 + 控制面 CLAUDE.md 三处随实测改\n\n开发计划 §8 增 2026-09-19 晚一行:F1 依据判定(真源仓 27e8679 / 7c0d8df)、本文订正范围、\n一致性门禁由 5 条转 CLEAN(其中 L4 是数字员工OS 仓并行验收临时删报告的瞬态,未改该仓)、\n以及订正过程中真源仓 HEAD 由 44f8a6c 走到 12b7347、本批改动被 e665cca / 600b27d 带走提交的事实。\n\n企业控制面/CLAUDE.md:worktree 由两条订正为四条并注明这张表一天就能过期;治理测试计数\n不再写死单一数字(当天 480 → 510 → 513);门禁链说明补第 2 环 modules 新守的 authority 依据。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/f2c623fd273fd92026151c1e305ecf51f430c218","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T17:10:18-07:00","added":[],"removed":[],"modified":["企业控制面/CLAUDE.md","平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"47a3de602dfa355f1dce32f192ddf4478d0c923a","message":"docs(计划): 登记 B5 收口、check:runtime 重跑撞出的回归与状态格再订 @ 真源仓 c0422ba\n\n- 状态行与 §1 四行按 2026-09-20T01:05Z 实测重订:作业由 15 个拒绝桩改为 job-readiness 记账\n (active 8 / alternate 2 / deferred 12,真正新写的处理器只有 identity.session-cleanup),未落地面 47 → 33;\n dev 当晚又切三次、现跑 793dd51 构建的镜像;check:deployed 判定范围按依赖闭包修正(B5,84a8991)。\n- check:runtime 在 HEAD 重跑:clean 20f2211 上红(a64dc81 留下两条旧夹具用例,根链不跑 api-nestjs 单测\n 所以过了整链并部署到 dev),修于 0482667 后 1109 tests / 0 failures,回绑 c0422ba。\n- 未认证写入的读数改成实测口径:已登记的操作路由 401,裸集合路径 404(与当日几份部署记录不符,未回查)。\n- §5 ⑤ 增门禁缺口待裁;§7 增「根链绿 ≠ 运行时测试绿」;§8 增一行。\n\n一致性门禁 CLEAN。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/47a3de602dfa355f1dce32f192ddf4478d0c923a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T18:13:13-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12464,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-20T07:58:08+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789867919
|
1789867935
|
0
|
1789867918
|
1789867935
|
|
|
0
|
Edit
Delete
|
|
24276
|
docs(计划): 登记治理缺口收口——check:deployed 核镜像源是否被通过的 chec docs(计划): 登记治理缺口收口——check:deployed 核镜像源是否被通过的 check:runtime 覆盖 @ 真源仓 a6a2ee7 / ef116fb...
|
117
|
5
|
governance.yml
|
92
|
5
|
0
|
refs/heads/main
|
ede3bf5896a22d0dd6585945e8c7cdc4e7e0bda1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"47a3de602dfa355f1dce32f192ddf4478d0c923a","after":"ede3bf5896a22d0dd6585945e8c7cdc4e7e0bda1","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/47a3de602dfa355f1dce32f192ddf4478d0c923a...ede3bf5896a22d0dd6585945e8c7cdc4e7e0bda1","commits":[{"id":"ede3bf5896a22d0dd6585945e8c7cdc4e7e0bda1","message":"docs(计划): 登记治理缺口收口——check:deployed 核镜像源是否被通过的 check:runtime 覆盖 @ 真源仓 a6a2ee7 / ef116fb\n\n§5 ⑤ 的「门禁缺口待裁」改为已收口并说明选了哪条路(设为前置的机器形态,不重跑验收,\n核验收绑定的提交与镜像源之间镜像代码面有无差异)、没选哪条(runtime 无库单测并进根链)与理由;\n§1「stack / 部署」补判定规则、作用域收窄与当前读数;§7 一处补引;§8 增一行。\nF4 未动,理由写进 §8。一致性门禁 CLEAN。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/ede3bf5896a22d0dd6585945e8c7cdc4e7e0bda1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T20:30:22-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"ede3bf5896a22d0dd6585945e8c7cdc4e7e0bda1","message":"docs(计划): 登记治理缺口收口——check:deployed 核镜像源是否被通过的 check:runtime 覆盖 @ 真源仓 a6a2ee7 / ef116fb\n\n§5 ⑤ 的「门禁缺口待裁」改为已收口并说明选了哪条路(设为前置的机器形态,不重跑验收,\n核验收绑定的提交与镜像源之间镜像代码面有无差异)、没选哪条(runtime 无库单测并进根链)与理由;\n§1「stack / 部署」补判定规则、作用域收窄与当前读数;§7 一处补引;§8 增一行。\nF4 未动,理由写进 §8。一致性门禁 CLEAN。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/ede3bf5896a22d0dd6585945e8c7cdc4e7e0bda1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-19T20:30:22-07:00","added":[],"removed":[],"modified":["平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":12633,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-20T09:31:58+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1789875028
|
1789875044
|
0
|
1789875027
|
1789875044
|
|
|
0
|
Edit
Delete
|