|
31070
|
5
|
5
|
5
|
76
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"1c8523a92 {"Commits":[{"Sha1":"1c8523a92bf32cb7257642251ad57e7a03ebf161","Message":"chore(reports): runtime 验收在 clean HEAD 首次绑定 回绑 @ dcd1c14,刷新证据新鲜度与快照锚点\n\ntenant.ts 三步拆分的运行态复验。结果与拆分前基线**逐项持平**,行为中性在运行态得到证实:\n\n testsPassed 733(基线 733,地板 683)\n behaviorParityCases 204(地板 204,violations 0)\n 87 项指标零违规——迁移 deploy/status、七包串行测试、双管道竞争验收、行为矩阵、\n auth-startup、db-credential-separation(8 负例 + 2 进程隔离)、tracing(4 服务)、\n dependency-resilience(14 故障 + 14 恢复 + 半开 4)、capacity(480 请求 p95 20.0ms)、\n write-capacity(40 链路终态 + 80 派发)、multi-instance(4 进程)、\n 产品扩展 / 迁移 / SQL 运行时与产品验收(258 正 + 124 负)\n\n**首次在 clean HEAD 上绑定**:13 份运行态报告的 provenance 全部 gitSha=dcd1c14、\nworktreeDirty:false。此前那份(2026-09-14)绑的是 6396f7f 且工作区 dirty,按仓规矩只能\n绑定本地、不能作阶段门证据。\n\n基座刻意隔离,不沿用上次配置:\n- 新建独立验收库 digital_employee_os_acceptance_20260918 @127.0.0.1:55470(按 Owner 决定保留,\n 与工作区 enterprise_platform_acceptance_* 的带日期惯例一致,便于回查)\n- 新起专用 Redis 容器(redis://127.0.0.1:6404/3)——上次用的 6404 实例已不存在\n- 不用 digital_employee_os_dev_nestjs:那是 dev 库,跑验收会被测试数据反复清洗\n- 理由是 G15/O1:本机 41 个容器多仓共用端口,且实测另有并行会话正在跑 enterprise-platform\n 的 api-nestjs。上次 runtime 长期假红的根因正是共用逻辑库导致三处订阅端收不到信封\n\nCLAUDE.md 证据新鲜度两行同步刷新(三级分开陈述,不互相冒充):\n- 真实 DB:2026-09-14 🟡(dirty)→ 2026-09-18 ✅(clean dcd1c14)\n- 静态链:2026-09-14 ✅ 27/27 → 2026-09-18 🟡(clean 1994f3c 上 28 步全执行、前 27 绿,\n 末步 check:kernel-admission 诚实红 8 处)。「27/27」与「28 步 27 绿」不是退步,是多了一条\n 此前不存在的判据,且它一上来就报出真实缺口——该说明已写进文档行内,防止后来者误读为回归。\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 dcd1c14(声明落后 0,本提交自身使实测落后 1,\n落在 +1 自指窗内)。推送前已跑 check:docs-truth:assert 自检通过。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次(check:ui 不在 runtime 链内,未跑),\n未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:34:51-07:00"}],"HeadCommit":{"Sha1":"1c8523a92bf32cb7257642251ad57e7a03ebf161","Message":"chore(reports): runtime 验收在 clean HEAD 首次绑定 回绑 @ dcd1c14,刷新证据新鲜度与快照锚点\n\ntenant.ts 三步拆分的运行态复验。结果与拆分前基线**逐项持平**,行为中性在运行态得到证实:\n\n testsPassed 733(基线 733,地板 683)\n behaviorParityCases 204(地板 204,violations 0)\n 87 项指标零违规——迁移 deploy/status、七包串行测试、双管道竞争验收、行为矩阵、\n auth-startup、db-credential-separation(8 负例 + 2 进程隔离)、tracing(4 服务)、\n dependency-resilience(14 故障 + 14 恢复 + 半开 4)、capacity(480 请求 p95 20.0ms)、\n write-capacity(40 链路终态 + 80 派发)、multi-instance(4 进程)、\n 产品扩展 / 迁移 / SQL 运行时与产品验收(258 正 + 124 负)\n\n**首次在 clean HEAD 上绑定**:13 份运行态报告的 provenance 全部 gitSha=dcd1c14、\nworktreeDirty:false。此前那份(2026-09-14)绑的是 6396f7f 且工作区 dirty,按仓规矩只能\n绑定本地、不能作阶段门证据。\n\n基座刻意隔离,不沿用上次配置:\n- 新建独立验收库 digital_employee_os_acceptance_20260918 @127.0.0.1:55470(按 Owner 决定保留,\n 与工作区 enterprise_platform_acceptance_* 的带日期惯例一致,便于回查)\n- 新起专用 Redis 容器(redis://127.0.0.1:6404/3)——上次用的 6404 实例已不存在\n- 不用 digital_employee_os_dev_nestjs:那是 dev 库,跑验收会被测试数据反复清洗\n- 理由是 G15/O1:本机 41 个容器多仓共用端口,且实测另有并行会话正在跑 enterprise-platform\n 的 api-nestjs。上次 runtime 长期假红的根因正是共用逻辑库导致三处订阅端收不到信封\n\nCLAUDE.md 证据新鲜度两行同步刷新(三级分开陈述,不互相冒充):\n- 真实 DB:2026-09-14 🟡(dirty)→ 2026-09-18 ✅(clean dcd1c14)\n- 静态链:2026-09-14 ✅ 27/27 → 2026-09-18 🟡(clean 1994f3c 上 28 步全执行、前 27 绿,\n 末步 check:kernel-admission 诚实红 8 处)。「27/27」与「28 步 27 绿」不是退步,是多了一条\n 此前不存在的判据,且它一上来就报出真实缺口——该说明已写进文档行内,防止后来者误读为回归。\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 dcd1c14(声明落后 0,本提交自身使实测落后 1,\n落在 +1 自指窗内)。推送前已跑 check:docs-truth:assert 自检通过。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次(check:ui 不在 runtime 链内,未跑),\n未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:34:51-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/dcd1c1486e63a7f67a0c548158823764a0b58b21...1c8523a92bf32cb7257642251ad57e7a03ebf161","Len":1}...
|
1789720501
|
Edit
Delete
|
|
31069
|
5
|
5
|
5
|
117
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"58a896f8a {"Commits":[{"Sha1":"58a896f8a4030c0d72fa3b631d8f823f144d1650","Message":"docs(计划): 登记 FR-7 与 gate-flow 推导修正,并订正跨目录待办的 FR 清单\n\n跨目录待办原写「余 FR-6 待受理」,漏了 FR-2 / FR-3——两条 2026-09-12 提出、09-18 复核\n仍成立并补了新证据。现改为四条:FR-2 / FR-3 / FR-6 / FR-7。\n\nFR-7:governance.rules.json 的 mode 与 ADR-0010 状态的耦合没有执行者。ADR 写着「仍为\nProposed 时 mode 固定为 observe」,而 schema 只管枚举、check-governance-rules 只打印\n不判、generate-governance-status 只回显。翻成 enforced 没人拦,ADR 受理后留在 observe\n也没人报,17 条规则会永远停在诊断态。本仓未做本地修正:那四个文件与框架逐字相同。\n\n同轮修了 check:gate-flow 的一处真缺陷:推导在 CI 原文上按名匹配,而工作流里本就有\n带 `pnpm check` 的说明行,没被误判纯属侥幸。已改为先剥注释再匹配。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:22:21-07:00"}],"HeadCommit":{"Sha1":"58a896f8a4030c0d72fa3b631d8f823f144d1650","Message":"docs(计划): 登记 FR-7 与 gate-flow 推导修正,并订正跨目录待办的 FR 清单\n\n跨目录待办原写「余 FR-6 待受理」,漏了 FR-2 / FR-3——两条 2026-09-12 提出、09-18 复核\n仍成立并补了新证据。现改为四条:FR-2 / FR-3 / FR-6 / FR-7。\n\nFR-7:governance.rules.json 的 mode 与 ADR-0010 状态的耦合没有执行者。ADR 写着「仍为\nProposed 时 mode 固定为 observe」,而 schema 只管枚举、check-governance-rules 只打印\n不判、generate-governance-status 只回显。翻成 enforced 没人拦,ADR 受理后留在 observe\n也没人报,17 条规则会永远停在诊断态。本仓未做本地修正:那四个文件与框架逐字相同。\n\n同轮修了 check:gate-flow 的一处真缺陷:推导在 CI 原文上按名匹配,而工作流里本就有\n带 `pnpm check` 的说明行,没被误判纯属侥幸。已改为先剥注释再匹配。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:22:21-07:00"},"CompareURL":"luoanwu/platform-governance/compare/ed4a869bde4de3243013e74e7f48454e053bd2fa...58a896f8a4030c0d72fa3b631d8f823f144d1650","Len":1}...
|
1789719743
|
Edit
Delete
|
|
31068
|
5
|
5
|
5
|
76
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"dcd1c1486 {"Commits":[{"Sha1":"dcd1c1486e63a7f67a0c548158823764a0b58b21","Message":"chore(reports): 整轮 pnpm check 二十八份证据 回绑 @ 1994f3c,刷新快照锚点\n\n本批次最后一个提交,按 C241 纪律同时刷新 CLAUDE.md 的快照基准提交锚点到 1994f3c\n(声明落后 0,本提交自身使实测落后 1,落在 C19 式 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=1994f3c、worktreeDirty:false)。\n整轮 28 步全部执行,前 27 步全绿,末步 check:kernel-admission 红 8 处——该门禁引入时即\n登记的已知诚实红(K3 一处:crossProductRequired 的证据源是命名空间冒烟测试;\nK4 七处:三个组件的 admissionEvidence 声明为 true 却无机器回执),链尾位置正是为了不连带\n抹掉前 27 步的证据。\n\n与上一次整轮绿盘(23d1b7a @ 6396f7f,27/27)相比,本轮是 28 步:新增的第 28 步\ncheck:kernel-admission 自身就是本批次引入的。因此「27/27 全绿」与「28 步 27 绿」不是退步,\n是多了一条此前不存在的判据,并且它一上来就报出了真实缺口。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次(check:ui 不在静态链内,本轮未跑),\n未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:21:28-07:00"},{"Sha1":"1994f3c74ee90e08df7f1b03afff9dd570fee87d","Message":"docs(治理): 整轮 pnpm check 暴露的三处文档漂移——下游锁、边界数字、快照锚点\n\n本批次六个提交推送时没有刷新文档真相,整轮 pnpm check 的 check:docs-truth 如实报红 4 条\n(第 2 条是第 1 条的负向探针连带)。逐条修:\n\n- docs/product-extension-guide.md 的「当前下游兼容锁」行仍写 @repo/contracts@1.16.0,\n 实际已随两次公开面变更升到 1.18.0。该行要求与 kernel.downstream.lock.json **逐字**匹配。\n- CLAUDE.md 内核边界数字 142/142 → 143/143 受管面:identity.ts 迁入 CORE 的 contractModules\n 多了一个受管面。242/242 源码文件与 7/7 负向探针未变。\n (C152 那条历史教训行里的 136/136 是当时的实测记录,属历史事实,不改。)\n- 快照基准提交锚点 070b944 落后 HEAD 10 提交——其中 8 个是本批次的,另 2 个\n (23d1b7a / c433d57)在本批次之前就已漏刷。锚点随批次最后一个提交刷新,故不在本提交里改。\n\n整轮实测(28 步全部执行):前 27 步全绿——check:platform / naming / schema / validation /\ncontract-consumers / dual-backend / write-guard / list-bounds / fork-readiness /\nkernel-boundaries / kernel-packages / kernel-downstream / kernel-extensions /\nproduct-migrations / product-acceptance / agent-adapters / report-lock / operations /\nllm-eval / rls / migrations / governance-docs / docs-truth / governance / lint(5/5)/\ntypecheck(13/13)/ platform-provenance;末步 check:kernel-admission 红 8 处,\n是该门禁引入时即登记的已知诚实红(K3 一处 + K4 七处),位置在链尾正是为了不连带抹掉\n前 27 步的证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:19:40-07:00"}],"HeadCommit":{"Sha1":"dcd1c1486e63a7f67a0c548158823764a0b58b21","Message":"chore(reports): 整轮 pnpm check 二十八份证据 回绑 @ 1994f3c,刷新快照锚点\n\n本批次最后一个提交,按 C241 纪律同时刷新 CLAUDE.md 的快照基准提交锚点到 1994f3c\n(声明落后 0,本提交自身使实测落后 1,落在 C19 式 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=1994f3c、worktreeDirty:false)。\n整轮 28 步全部执行,前 27 步全绿,末步 check:kernel-admission 红 8 处——该门禁引入时即\n登记的已知诚实红(K3 一处:crossProductRequired 的证据源是命名空间冒烟测试;\nK4 七处:三个组件的 admissionEvidence 声明为 true 却无机器回执),链尾位置正是为了不连带\n抹掉前 27 步的证据。\n\n与上一次整轮绿盘(23d1b7a @ 6396f7f,27/27)相比,本轮是 28 步:新增的第 28 步\ncheck:kernel-admission 自身就是本批次引入的。因此「27/27 全绿」与「28 步 27 绿」不是退步,\n是多了一条此前不存在的判据,并且它一上来就报出了真实缺口。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次(check:ui 不在静态链内,本轮未跑),\n未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:21:28-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/832f9b2e5ab646a48adbf37b80db1d41092f2f7e...dcd1c1486e63a7f67a0c548158823764a0b58b21","Len":2}...
|
1789719706
|
Edit
Delete
|
|
31067
|
5
|
5
|
5
|
116
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"1e6f71d84 {"Commits":[{"Sha1":"1e6f71d846a9ad3bcbd04a3f2b5fdb3f69ca1884","Message":"chore(reports): check:gate-flow 回绑 @ 5003319\n\n剥注释后判定结果不变:45 个脚本、33 个有消费入口、12 个流外且全部具名、0 违规。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:20:03-07:00"},{"Sha1":"5003319dcea673584371b081f59f4e347a33c4ae","Message":"fix(governance): check:gate-flow 先剥 CI 注释再匹配——否则它会亲手把自己的发现消音\n\n推导层原本直接在 CI 原文上按名匹配。工作流里本来就有\n`# static → 私有包认证 … + 根 pnpm check(含 runtime 静态门禁)` 这样的说明行,\n它没被误判纯属侥幸:`check` 后面跟的是中文括号,不是空白。只要有人写下\n「待 Secret 后加 pnpm image:smoke 这一步」,不剥注释就会把这个门禁**最实的那条发现**\n判成已被消费,随后 F2 还会反过来要求删掉那条登记。\n\n剥注释的代价是可能漏判(shell 里 `#` 之后的真命令被切掉),而漏判只会多要一条登记、\n逼人看一眼,是安全的那一侧。\n\n同时把两条刻意的保守取舍写进文件头,并在登记表 note 里记下测量结论,免得被\"优化\"掉:\n\n一、**不扫脚本正文**。消费确实可能发生在脚本内部,但天真地按名扫正文更糟——实测\n本仓 `lib/gate-flow-core.mjs` 自己的注释里就写着 image:smoke / promotion:check /\ncheck:deployed 三个名字,扫正文会把这个门禁要报的三条发现全部判成已消费。\n\n二、**扫描面只有根 package.json,这是量过之后的决定**。另外三个 pnpm 根逐个测过,\n没有真空缺:runtime 的 check:conformance:differential 被 check-runtime-acceptance\n的 plan 数组 spawn;check-runtime-governance 与 generate-governance-status 被 profile\n运行器与 governance-report 调用;check:kernel / :production / :conformance 是框架给的\nprofile 分组、其成分检查已逐条在 runtime 的 check 链里;identity 的\ncheck:dual-backend-behavior 被该仓 check-runtime-acceptance 调用。这些消费全在脚本\n正文内部,要判它们就得解析 spawn 的实参数组,而那正是第一条否掉的方向。\n\ngate-flow 测试 15 → 18,治理测试 298 → 301。判定结果不变:45 个脚本 / 33 有消费入口 /\n12 流外且全部具名。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:19:48-07:00"},{"Sha1":"dbc608b892652e920970ea5368a57a02263d9915","Message":"chore(reports): 工作台两份快照回绑 @ b1c2c0d\n\n本轮部署证据落进运维快照作用域(image-digest / image-smoke / deployed-runtime / runtime-up),\n经 reports:rebind 在 HEAD 的干净检出里重跑,两份同源快照一并带回。\n\n顺带实测:dev overlay 把目录快照按路径只读挂进容器,rebind 带回新文件后\nGET /api/platform/catalog 立刻报出新的 snapshot.provenance.gitSha=b1c2c0d,无需重建容器。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:19:18-07:00"},{"Sha1":"b1c2c0dc197166f41437f03707ad0a1bd11448c1","Message":"chore(reports): dev 重新部署证据回绑 @ d8f0920 / 759e559\n\n- image-digest:干净检出构建的 d8f09205c8a5(worktreeDirty=false,contextMode=head)\n- image-smoke:6/6(scope 单 profile、Redis 逻辑库 15、:53009)\n- pg-dump.2026-09-18:切换前七个模块库快照上传 MinIO\n- runtime-up.2026-09-18:22 条读面探针 + 4 条受控执行探针 + 3 条非 canonical 对照,\n 8 条 findings(4 修 4 留裁决),可观测三后端切换后仍有信号\n- deployed-runtime:passed / IMAGE_SOURCE_EQUIVALENT\n\nprovenance.worktreeDirty=true:本工作区有并行会话 WIP,运行面记录只绑定本地;\n镜像证据独立绑定干净检出(image.worktreeDirty=false)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:18:59-07:00"},{"Sha1":"709cd94cfc5cd138b5539053554ef1b4d4dcd4ff","Message":"docs(部署): dev 常驻运行时重新部署与三个运行面取证记录(2026-09-18)\n\ncheck:deployed 从 BUILT_IMAGE_SOURCE_BEHIND 转 passed 的完整过程:四个部署缺口、\n一个被吞掉的真实缺陷、受控执行面的 dev 验收,以及六条仍未闭环的事实。\n作用域只到本机 dev,不外推目标环境签收。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:18:52-07:00"}],"HeadCommit":{"Sha1":"1e6f71d846a9ad3bcbd04a3f2b5fdb3f69ca1884","Message":"chore(reports): check:gate-flow 回绑 @ 5003319\n\n剥注释后判定结果不变:45 个脚本、33 个有消费入口、12 个流外且全部具名、0 违规。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:20:03-07:00"},"CompareURL":"luoanwu/enterprise-platform/compare/2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a...1e6f71d846a9ad3bcbd04a3f2b5fdb3f69ca1884","Len":7}...
|
1789719607
|
Edit
Delete
|
|
31066
|
5
|
5
|
5
|
117
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"ed4a869bd {"Commits":[{"Sha1":"ed4a869bde4de3243013e74e7f48454e053bd2fa","Message":"docs(框架): 提 FR-7——governance.rules 的 mode 与 ADR-0010 状态的耦合没有执行者\n\nADR-0010 正文写着「在本 ADR 仍为 Proposed 时,mode 固定为 observe」。这句话是整份\n17 条规则注册表**是建议还是约束**的唯一依据。2026-09-18 逐行走读实测:没有任何东西\n在执行它。\n\n governance.rules.schema.json 只把 mode 约束成枚举,管形状不管该是哪个\n check-governance-rules.mjs 校验了 profile 入口、例外到期、enforced 规则须有\n owner、依赖成环等多项,唯独从不判 mode——全文只在\n 成功行里把它打印出来\n generate-governance-status.mjs 按正则读了 ADR 状态,但只回显进报告,不参与判定\n\n两个方向的失效都是静默的:把 mode 翻成 enforced 而 ADR 仍 Proposed 会全绿;ADR 受理\n之后 mode 一直留在 observe 也全绿,17 条规则就此永远停在诊断态,既无提示也无复核期。\n这是「搁置没有出口」,而且落在治理模型的核心开关上。另有一处降级:decisionStatus\n取不到时静默退回 \"Unknown\" 并照常回显,ADR 标题改一个字就会让这条读取无声失效。\n\n请求逐字落实 ADR 已写的那句,不新增政策;不改 schema、不改任何规则的 severity 或\nenforcement、不改 mode 当前取值——今天跑起来仍全绿,只在有人动 mode 或动 ADR 状态时\n才说话。\n\n**本仓未做任何本地修正**:governance.rules.json、其 schema、check-governance-rules.mjs\n与 ADR-0010 四者在 enterprise-platform/runtime/ 下与框架仓逐字相同,本仓改它等于分叉\n框架治理核心,下次同步必冲突。这与 FR-6 的处置不同——那条本仓已本地修正是因为它只在\n本仓恒红,而这条改的是框架给所有派生仓的判据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:18:22-07:00"}],"HeadCommit":{"Sha1":"ed4a869bde4de3243013e74e7f48454e053bd2fa","Message":"docs(框架): 提 FR-7——governance.rules 的 mode 与 ADR-0010 状态的耦合没有执行者\n\nADR-0010 正文写着「在本 ADR 仍为 Proposed 时,mode 固定为 observe」。这句话是整份\n17 条规则注册表**是建议还是约束**的唯一依据。2026-09-18 逐行走读实测:没有任何东西\n在执行它。\n\n governance.rules.schema.json 只把 mode 约束成枚举,管形状不管该是哪个\n check-governance-rules.mjs 校验了 profile 入口、例外到期、enforced 规则须有\n owner、依赖成环等多项,唯独从不判 mode——全文只在\n 成功行里把它打印出来\n generate-governance-status.mjs 按正则读了 ADR 状态,但只回显进报告,不参与判定\n\n两个方向的失效都是静默的:把 mode 翻成 enforced 而 ADR 仍 Proposed 会全绿;ADR 受理\n之后 mode 一直留在 observe 也全绿,17 条规则就此永远停在诊断态,既无提示也无复核期。\n这是「搁置没有出口」,而且落在治理模型的核心开关上。另有一处降级:decisionStatus\n取不到时静默退回 \"Unknown\" 并照常回显,ADR 标题改一个字就会让这条读取无声失效。\n\n请求逐字落实 ADR 已写的那句,不新增政策;不改 schema、不改任何规则的 severity 或\nenforcement、不改 mode 当前取值——今天跑起来仍全绿,只在有人动 mode 或动 ADR 状态时\n才说话。\n\n**本仓未做任何本地修正**:governance.rules.json、其 schema、check-governance-rules.mjs\n与 ADR-0010 四者在 enterprise-platform/runtime/ 下与框架仓逐字相同,本仓改它等于分叉\n框架治理核心,下次同步必冲突。这与 FR-6 的处置不同——那条本仓已本地修正是因为它只在\n本仓恒红,而这条改的是框架给所有派生仓的判据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:18:22-07:00"},"CompareURL":"luoanwu/platform-governance/compare/392f0fde46813c5d061762b8985c74948f6bb088...ed4a869bde4de3243013e74e7f48454e053bd2fa","Len":1}...
|
1789719506
|
Edit
Delete
|
|
31065
|
5
|
5
|
5
|
76
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"832f9b2e5 {"Commits":[{"Sha1":"832f9b2e5ab646a48adbf37b80db1d41092f2f7e","Message":"chore(reports): tenant.ts 拆分第三步的十三份静态门禁证据 回绑 @ a0a9f1a\n\n十三份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages /\nkernel-downstream / kernel-extensions / statemachine-write-guard / list-bounds /\nfork-readiness 十二绿;kernel-admission 仍是引入时那 8 处(K3 一处 + K4 七处),\n与三步拆分前逐条一致——全程未引入新红,也未消除旧红。\n\n三步各自撞到的门禁都如实红过再修,没有一处是先改门禁再做变更:\n第一步 K1(导出归属漂移);第二步 K1 + kernel-packages P7(公开面变更须伴随版本上调)\n+ kernel-downstream D1(下游安装版本随之重签);第三步同上两处 P7 / D1。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:12:22-07:00"},{"Sha1":"a0a9f1aa5d77ac7d1c9b74a3e445a323a205f5b6","Message":"refactor(contracts): tenant.ts 拆分第三步——自建权限改名 authorization.ts,tenant 之名腾空\n\n第一步迁出 work 域判定、第二步迁出自建身份之后,tenant.ts 剩下的 22 个导出整体就是\n「自建权限」一类。因此第三步不是搬符号,是给文件正名。\n\n packages/contracts/src/tenant.ts → packages/contracts/src/authorization.ts\n\n改名本身的价值不只是可读性:OS 的 tenant.ts 与框架 @juhai/kernel 的同名文件**共有导出 0 个**,\n框架那份是租户解析策略(normalizeTenantId / tenantIdFromClaims / decideTenantResolution /\nresolveAuthMode / AUTH_MODES),OS 一个都没有。两个同名不同义的文件是「形似而神不同」漂移\n最典型的载体。改名之后 tenant.ts 这个名字腾空,留给内核退回 pin 时由 @juhai/kernel 提供的\n真正租户原语——顺带补上 OS 现在缺的 tenantId 形状与长度校验(当前主口径是无上限的\nz.string().min(1),另有两处 .max(128) 与 employment-projection.ts 的 ^ten_.+$,三套并存)。\n\n同步改动:\n\n- 六处 import 改指:identity.ts / outcome.ts / task.ts / index.ts / kernel.ts / contracts.test.ts。\n- check-dual-backend-parity.mjs 的 C52 两条断言(权限目录与角色默认值、ALLOW/DENY 优先级)\n 改指 authorization.ts。C52 没有专用负向探针,但 expectSource 对缺失文件计 missing file\n 违规(fail-closed),门禁绿即证明两条断言在新路径上真实命中,不是指向不存在文件的假绿。\n- kernel.boundaries.json:CORE 的 contractModules 由 tenant.ts 改为 authorization.ts。\n- check-kernel-admission.mjs 头部叙述里的 tenant.ts 改为历史表述,不再指向已不存在的路径。\n- @repo/contracts 1.17.0 → 1.18.0(根与 kernel 两个 barrel 的 export 行都变了,P7 要求公开面\n 变更伴随版本上调);kernel.packages.lock.json / kernel.downstream.lock.json /\n kernel.exports.lock.json 三把锁随之重签。\n\n本步**未**把自建权限移出 @repo/contracts/kernel 子路径。按同一套理由(铁律三:平台拥有规则)\n它和自建身份一样不属于跨产品必需的内核契约,但从已声明的稳定子路径上摘除符号是**破坏性\n收窄**,应单独裁定并走主版本号,不随改名夹带。实测当前 kernel 子路径的唯一消费者是下游夹具\n的命名空间导入,产品侧零具名消费——真要摘,成本主要在版本语义而非调用方。\n\n三步累计:tenant.ts 1075 行 / 65 导出 → authorization.ts 273 行 / 22 导出\n+ identity.ts 818 行 / 23 导出 + task.ts / outcome.ts 各收 3 / 1 个 + 17 个降私有。\n\n验证:@repo/contracts 24 文件 312/312(三步前后四次逐次一致,行为中性);typecheck 13/13;\nnaming / schema / validation / contract-consumers / dual-backend / kernel-boundaries /\nkernel-packages / kernel-downstream / kernel-extensions / write-guard / list-bounds /\nfork-readiness 十二门全绿;kernel-admission 仍是引入时那 8 处,未引入新红。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:11:37-07:00"},{"Sha1":"d7c932b537561ae02bcc860d506fea7c1d878b30","Message":"chore(reports): tenant.ts 拆分第二步的十份静态门禁证据 回绑 @ 439c6f7\n\n十份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages /\nkernel-downstream / kernel-extensions 九绿;kernel-admission 仍是引入时那 8 处\n(K3 一处 + K4 七处),与两步拆分前逐条一致——未引入新红,也未消除旧红。\n\n本步中 kernel-packages 的 P7 与 kernel-downstream 的 D1 都如实报过红:前者要求根 barrel\n新增导出必须伴随版本上调(@repo/contracts 1.16.0 → 1.17.0),后者要求下游夹具的安装版本\n随之重签。两处都是设计内的「变更即复核」,不是绕过。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:08:09-07:00"},{"Sha1":"439c6f7e34f48f718f18479aa1dd2e9a9e3fcfe1","Message":"refactor(contracts): tenant.ts 拆分第二步——自建身份迁出 identity.ts\n\n框架 @juhai/kernel 的 tenant.ts 在 0.4.0—0.7.0 之间把边界写死为「本文件只做策略,\n不做验签」:验签需要密钥/JWKS,而契约包被 web 直接 import,密钥语义不能泄漏进浏览器包。\nOS 分叉于框架 0.1.0,没见过这条边界,于是策略、验签、自建权限、work 域判定四类长进了\n同一个文件。第一步已迁出 work 域判定,本步迁出身份一类。\n\n packages/contracts/src/identity.ts(新增,818 行 / 23 导出)\n 验签原语(注入式,契约包自身不 import node:crypto)、JWKS 密钥库、\n 浏览器身份与会话、OIDC PKCE 三组 schema、启动姿态门、实时连接过期、\n 鉴权入口 resolveTenantAuth,以及 token 解码/比对等私有管道\n\n packages/contracts/src/tenant.ts(273 行 / 22 导出,原 1042 行 / 44 导出)\n 只剩自建权限一类:角色与权限词汇表、ALLOW/DENY 判定、授权 DTO、审计载荷\n\n两处归属判断值得记下:\n\n- bindAuditActorSubject / AuditActorBinding 一并迁入 identity.ts。它绑定的是**已验签的\n sub**,属身份来源而非授权判定;留在 tenant.ts 会让授权侧反向依赖 TenantAuthPosture,\n identity ↔ tenant 成环。\n- roleFromClaim 留在 tenant.ts 并升为导出。它是角色词汇表的一部分(claim → 合法角色),\n 两侧都要用;反过来把它搬进 identity 会让 resolveEffectiveRole 反向依赖,同样成环。\n\n依赖方向单向:identity → tenant(借 TENANT_ROLES / TenantRole / roleFromClaim),\ntenant 不反向依赖 identity。切分前已用脚本枚举 75 个顶层声明的引用图逐条验证无反向边。\n\nidentity.ts **不进 @repo/contracts/kernel 子路径**,只经根 barrel 导出:自建身份不是跨产品\n必需的内核契约,后续应换成企业 IdP 的 client-identity。\n\n同步改动:\n\n- check-dual-backend-parity.mjs 三处按路径钉在 tenant.ts 的断言改指 identity.ts——\n C51(启动姿态判定与断言)、C181(实时过期策略)、C73(已验签 sub 的审计主体绑定)。\n 改完用门禁自带负向探针验活:DUAL_BACKEND_NEGATIVE_PROBE=missing-realtime-auth-expiry\n 与 =missing-audit-actor-binding 均如期转红,断言不是改成了指向不存在文件的假绿。\n C52 两条仍在 tenant.ts(权限目录与 ALLOW/DENY 优先级未动)。\n- kernel.boundaries.json:identity.ts 登记进 CORE 的 contractModules(30 → 31)。\n- @repo/contracts 1.16.0 → 1.17.0。check:kernel-packages 的 P7 要求公开面变更必须伴随\n 版本上调;根 barrel 新增一行 export * 是加法变更,取次版本。kernel.packages.json 与\n kernel.packages.lock.json / kernel.downstream.lock.json 随之重签(后者只改版本号一行)。\n\n顺带修正上一笔提交里的说法,方向不变但更准确:check:kernel-packages 的 apiDigest 只哈希\nrequiredExports 入口的 .d.ts,而入口就是 barrel——它看得见「根 barrel 多了一行 export *」,\n看不见任何具体符号的增删。上一步降私有 17 个符号它全绿,正是这个原因。\n\n验证:@repo/contracts 24 文件 312/312(三次拆分前后逐次一致,行为中性);typecheck 13/13;\nnaming / schema / validation / contract-consumers / dual-backend / kernel-boundaries /\nkernel-packages / kernel-downstream / kernel-extensions 九门全绿;kernel-admission 仍是\n引入时那 8 处(K3 一处 + K4 七处),未引入新红。kernel.exports.lock.json 重签为\n39 个模块 / 763 个导出。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:07:27-07:00"}],"HeadCommit":{"Sha1":"832f9b2e5ab646a48adbf37b80db1d41092f2f7e","Message":"chore(reports): tenant.ts 拆分第三步的十三份静态门禁证据 回绑 @ a0a9f1a\n\n十三份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages /\nkernel-downstream / kernel-extensions / statemachine-write-guard / list-bounds /\nfork-readiness 十二绿;kernel-admission 仍是引入时那 8 处(K3 一处 + K4 七处),\n与三步拆分前逐条一致——全程未引入新红,也未消除旧红。\n\n三步各自撞到的门禁都如实红过再修,没有一处是先改门禁再做变更:\n第一步 K1(导出归属漂移);第二步 K1 + kernel-packages P7(公开面变更须伴随版本上调)\n+ kernel-downstream D1(下游安装版本随之重签);第三步同上两处 P7 / D1。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:12:22-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/614681e6e78d0385bbf043ef964bd444d8e5958b...832f9b2e5ab646a48adbf37b80db1d41092f2f7e","Len":4}...
|
1789719150
|
Edit
Delete
|
|
31064
|
11
|
5
|
8
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"b95bc8ca6 {"Commits":[{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"}],"HeadCommit":{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"},"CompareURL":"vodtest/app/compare/82bea1818b4939b2669fa482282e55b08d09988a...b95bc8ca61a1eee32824ca00934dcd4561260235","Len":1}...
|
1789719063
|
Edit
Delete
|
|
31063
|
10
|
5
|
8
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"b95bc8ca6 {"Commits":[{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"}],"HeadCommit":{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"},"CompareURL":"vodtest/app/compare/82bea1818b4939b2669fa482282e55b08d09988a...b95bc8ca61a1eee32824ca00934dcd4561260235","Len":1}...
|
1789719063
|
Edit
Delete
|
|
31062
|
7
|
5
|
8
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"b95bc8ca6 {"Commits":[{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"}],"HeadCommit":{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"},"CompareURL":"vodtest/app/compare/82bea1818b4939b2669fa482282e55b08d09988a...b95bc8ca61a1eee32824ca00934dcd4561260235","Len":1}...
|
1789719063
|
Edit
Delete
|
|
31061
|
4
|
5
|
8
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"b95bc8ca6 {"Commits":[{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"}],"HeadCommit":{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"},"CompareURL":"vodtest/app/compare/82bea1818b4939b2669fa482282e55b08d09988a...b95bc8ca61a1eee32824ca00934dcd4561260235","Len":1}...
|
1789719063
|
Edit
Delete
|
|
31060
|
3
|
5
|
8
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"b95bc8ca6 {"Commits":[{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"}],"HeadCommit":{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"},"CompareURL":"vodtest/app/compare/82bea1818b4939b2669fa482282e55b08d09988a...b95bc8ca61a1eee32824ca00934dcd4561260235","Len":1}...
|
1789719063
|
Edit
Delete
|
|
31059
|
1
|
5
|
8
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"b95bc8ca6 {"Commits":[{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"}],"HeadCommit":{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"},"CompareURL":"vodtest/app/compare/82bea1818b4939b2669fa482282e55b08d09988a...b95bc8ca61a1eee32824ca00934dcd4561260235","Len":1}...
|
1789719063
|
Edit
Delete
|
|
31058
|
9
|
5
|
8
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"b95bc8ca6 {"Commits":[{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"}],"HeadCommit":{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"},"CompareURL":"vodtest/app/compare/82bea1818b4939b2669fa482282e55b08d09988a...b95bc8ca61a1eee32824ca00934dcd4561260235","Len":1}...
|
1789719063
|
Edit
Delete
|
|
31057
|
8
|
5
|
8
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"b95bc8ca6 {"Commits":[{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"}],"HeadCommit":{"Sha1":"b95bc8ca61a1eee32824ca00934dcd4561260235","Message":"需求 安全巡检 16865\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-09-18T16:10:58+08:00"},"CompareURL":"vodtest/app/compare/82bea1818b4939b2669fa482282e55b08d09988a...b95bc8ca61a1eee32824ca00934dcd4561260235","Len":1}...
|
1789719063
|
Edit
Delete
|
|
31056
|
5
|
5
|
5
|
117
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"392f0fde4 {"Commits":[{"Sha1":"392f0fde46813c5d061762b8985c74948f6bb088","Message":"docs(计划): 登记 check:gate-flow——真源仓补上「每个门禁的失败信号有谁在看」\n\n治理层 2026-09-14 已为自己建了门禁消费登记并写明病因,真源仓一直没问过这个问题。\n实测 44 个脚本里 12 个既不在 check 链、CI 也不调用,其中三个是真门禁;最实的一处是\nCI 的 image job 构建、生成 SBOM、签名镜像却从不启动它一次,而那六项冒烟正是 D-1 的\n退出条件——且 image-smoke 报告在未登记账里的搁置因此没有出口。\n\n消费关系自动推导不接受声明,登记表只装推不出来的那些,随接线变少、不能无声变多。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:10:55-07:00"}],"HeadCommit":{"Sha1":"392f0fde46813c5d061762b8985c74948f6bb088","Message":"docs(计划): 登记 check:gate-flow——真源仓补上「每个门禁的失败信号有谁在看」\n\n治理层 2026-09-14 已为自己建了门禁消费登记并写明病因,真源仓一直没问过这个问题。\n实测 44 个脚本里 12 个既不在 check 链、CI 也不调用,其中三个是真门禁;最实的一处是\nCI 的 image job 构建、生成 SBOM、签名镜像却从不启动它一次,而那六项冒烟正是 D-1 的\n退出条件——且 image-smoke 报告在未登记账里的搁置因此没有出口。\n\n消费关系自动推导不接受声明,登记表只装推不出来的那些,随接线变少、不能无声变多。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:10:55-07:00"},"CompareURL":"luoanwu/platform-governance/compare/f0d1f11ac7747e845e2781e441cf35bf86717dd5...392f0fde46813c5d061762b8985c74948f6bb088","Len":1}...
|
1789719058
|
Edit
Delete
|
|
31055
|
5
|
5
|
5
|
116
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"2d4b55254 {"Commits":[{"Sha1":"2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","Message":"chore(reports): check:gate-flow 回绑 @ 574cfb7\n\n45 个脚本、33 个有消费入口、12 个流外且全部具名(门禁 4 / 工具 8)、0 违规。\n并行会话正在本仓改 Dockerfile 与底座,主工作区非干净树——经 reports:rebind 在\nHEAD 的干净检出里生成,未触及对方在途文件。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:09:55-07:00"},{"Sha1":"f3ae97f3460699338d08efe3dd60ea69a3d49fa4","Message":"feat(stack,runtime): dev 常驻运行时接上受控执行面与统一服务目录快照(CHG-018 条件 A 的目标环境半边)\n\ncompose 的 runtime 服务此前没有 PLATFORM_OPS_ENABLED / _CLIENT_IDS / _ADMIN_SUBJECTS,也没有\nPLATFORM_CATALOG_SNAPSHOT_PATH:OPS-1 的命令面在 dev 容器里根本不存在(定义 executable=false),\n/api/platform/catalog 的 snapshot 恒为 unavailable。仓内验收过的两个面没有任何一条路径到达运行环境,\nOPS-1 记录里「目标环境验收留阶段 ②」说的就是这一段。\n\n- stack/compose.yaml:四个键全部空默认值——不配置 = 不开命令面,而不是开着没人管\n- stack/overlays/dev.yaml:reports/workbench-catalog-snapshot.latest.json 只读挂到\n /srv/runtime/catalog-snapshot.json,快照绑的是它自己的 gitSha,不是本进程\n- runtime/Dockerfile:ENV PLATFORM_SOURCE_SHA=${SOURCE_SHA},与 OCI revision 标签同源;\n 缺它时目录读面只能报 source_sha_status=unknown,不从文件系统猜\n- docs/runbook.md:§2 环境表补两行,并写明改这四个键必须重建容器(restart 带不上新环境)\n\n本提交只改配置与镜像环境变量;镜像重建、容器切换与探针结果另行取证提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:09:52-07:00"},{"Sha1":"574cfb754278102c1588009c4af3a66dc2201777","Message":"feat(governance): 补 check:gate-flow——每个门禁的失败信号有谁在看?\n\n治理层 2026-09-14 就为自己建了 `门禁消费登记.json` 逐条回答这个问题,并写明了病因:\n一个门禁若既不在统一流内、也不在任何 CI 链里,它就停在「永远红」或「永远绿」,\n两种都不再携带信息。本仓一直没问过这个问题。\n\n实测:根 package.json 44 个脚本里 12 个既不在 `pnpm check` 链、CI 也不调用。\n多数是工具与开发者聚合入口(已逐条核实其组成部分确被消费),但其中三个是真门禁:\n\n image:smoke CI 的 image job 构建镜像、生成 SBOM、签名,**却从不启动它一次**。\n 而开发计划把这六项冒烟写成 D-1 的退出条件。更要紧的是\n `image-smoke.latest.json` 在 evidence-scopes 的未登记账里写着\n 「待其下一次真实运行后登记」——而没有任何东西会触发那次运行,\n 于是那条搁置根本没有出口。本轮把它写成带复核期的具名条件。\n promotion:check DEC-024 / DEC-026 的晋级判据,事件驱动,硬接进 check 链只会恒绿\n check:deployed 活体核验,CI runner 上没有长驻底座,接进去等于加一个恒定跳过\n\n三个各有理由,但理由此前只散在 CLAUDE.md / README 的散文里,没有一条有复核期。\n\n**消费关系一律自动推导,不接受声明。** 治理层那套让登记表自报 consumption 再用 G3\n去源码里证伪;本仓直接从 check 链的递归展开与两份 CI 工作流现取——声明会撒谎,\n推导不会。CI 有几处绕开 pnpm 直接 `node governance/build-image.mjs`,因此除按名匹配\n外还按脚本里出现的 .mjs 路径匹配(用例钉住这两条与正则转义)。\n`governance/gate-flow.json` 因此只装推不出来的那些:随接线逐条变少(F2 会拦下\n已被消费却还留着的腐烂登记),也不能无声变多(F1 拦下任何新出现的未说明脚本)。\n\nF4 守的是日期不是条件:接入条件多半含人的判断(「Secret 到位后」「首次晋级时」),\n不可能机器化;能机器化的是必须有人按期回来看一眼。同形判据已在治理层\ngate-registry-core 的 G6 与 domain-layer-baseline 的 B4 上验证过:缓期不是豁免。\n\n已串进 `pnpm check`(放 check:evidence 之前,纯静态先跑先报),报告登记进\nevidence-scopes(severity=error,作用域逐条对应它实际读的文件),并加入\nreports:rebind 的零依赖清单——本仓常有并行会话,脏树上拿不到干净绑定。\n\n治理测试 283 → 298。当前:45 个脚本,33 个有消费入口,12 个流外且全部具名\n(门禁 4 / 工具 8)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:09:11-07:00"}],"HeadCommit":{"Sha1":"2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","Message":"chore(reports): check:gate-flow 回绑 @ 574cfb7\n\n45 个脚本、33 个有消费入口、12 个流外且全部具名(门禁 4 / 工具 8)、0 违规。\n并行会话正在本仓改 Dockerfile 与底座,主工作区非干净树——经 reports:rebind 在\nHEAD 的干净检出里生成,未触及对方在途文件。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:09:55-07:00"},"CompareURL":"luoanwu/enterprise-platform/compare/0abd15c28dd2b92c583289934db660363b202fd4...2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","Len":3}...
|
1789719017
|
Edit
Delete
|
|
31054
|
11
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"a9e17e07df844a597a4e7aef47c08235a41d3d49","Message":"Merge pull request '11111' (#223) from pc-260818 into pc\n\nReviewed-on: https://gitea.g-hi.com/vodtest/pc/pulls/223\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-15T09:38:55+08:00"},"CompareURL":"vodtest/pc/compare/pc...a9e17e07df844a597a4e7aef47c08235a41d3d49","Len":0}...
|
1789718620
|
Edit
Delete
|
|
31053
|
10
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"a9e17e07df844a597a4e7aef47c08235a41d3d49","Message":"Merge pull request '11111' (#223) from pc-260818 into pc\n\nReviewed-on: https://gitea.g-hi.com/vodtest/pc/pulls/223\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-15T09:38:55+08:00"},"CompareURL":"vodtest/pc/compare/pc...a9e17e07df844a597a4e7aef47c08235a41d3d49","Len":0}...
|
1789718620
|
Edit
Delete
|
|
31052
|
8
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"a9e17e07df844a597a4e7aef47c08235a41d3d49","Message":"Merge pull request '11111' (#223) from pc-260818 into pc\n\nReviewed-on: https://gitea.g-hi.com/vodtest/pc/pulls/223\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-15T09:38:55+08:00"},"CompareURL":"vodtest/pc/compare/pc...a9e17e07df844a597a4e7aef47c08235a41d3d49","Len":0}...
|
1789718620
|
Edit
Delete
|
|
31051
|
7
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"a9e17e07df844a597a4e7aef47c08235a41d3d49","Message":"Merge pull request '11111' (#223) from pc-260818 into pc\n\nReviewed-on: https://gitea.g-hi.com/vodtest/pc/pulls/223\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-15T09:38:55+08:00"},"CompareURL":"vodtest/pc/compare/pc...a9e17e07df844a597a4e7aef47c08235a41d3d49","Len":0}...
|
1789718620
|
Edit
Delete
|
|
31050
|
4
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"a9e17e07df844a597a4e7aef47c08235a41d3d49","Message":"Merge pull request '11111' (#223) from pc-260818 into pc\n\nReviewed-on: https://gitea.g-hi.com/vodtest/pc/pulls/223\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-15T09:38:55+08:00"},"CompareURL":"vodtest/pc/compare/pc...a9e17e07df844a597a4e7aef47c08235a41d3d49","Len":0}...
|
1789718620
|
Edit
Delete
|
|
31049
|
3
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"a9e17e07df844a597a4e7aef47c08235a41d3d49","Message":"Merge pull request '11111' (#223) from pc-260818 into pc\n\nReviewed-on: https://gitea.g-hi.com/vodtest/pc/pulls/223\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-15T09:38:55+08:00"},"CompareURL":"vodtest/pc/compare/pc...a9e17e07df844a597a4e7aef47c08235a41d3d49","Len":0}...
|
1789718620
|
Edit
Delete
|
|
31048
|
9
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"a9e17e07df844a597a4e7aef47c08235a41d3d49","Message":"Merge pull request '11111' (#223) from pc-260818 into pc\n\nReviewed-on: https://gitea.g-hi.com/vodtest/pc/pulls/223\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-15T09:38:55+08:00"},"CompareURL":"vodtest/pc/compare/pc...a9e17e07df844a597a4e7aef47c08235a41d3d49","Len":0}...
|
1789718620
|
Edit
Delete
|
|
31047
|
1
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"a9e17e07df844a597a4e7aef47c08235a41d3d49","Message":"Merge pull request '11111' (#223) from pc-260818 into pc\n\nReviewed-on: https://gitea.g-hi.com/vodtest/pc/pulls/223\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-15T09:38:55+08:00"},"CompareURL":"vodtest/pc/compare/pc...a9e17e07df844a597a4e7aef47c08235a41d3d49","Len":0}...
|
1789718620
|
Edit
Delete
|
|
31046
|
11
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
|
1789718620
|
Edit
Delete
|
|
31045
|
10
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
|
1789718620
|
Edit
Delete
|
|
31044
|
8
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
|
1789718620
|
Edit
Delete
|
|
31043
|
7
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
|
1789718620
|
Edit
Delete
|
|
31042
|
4
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
|
1789718620
|
Edit
Delete
|
|
31041
|
3
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
|
1789718620
|
Edit
Delete
|
|
31040
|
9
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
|
1789718620
|
Edit
Delete
|
|
31039
|
1
|
5
|
1
|
18
|
0
|
0
|
refs/heads/pc-261020
|
0
|
|
1789718620
|
Edit
Delete
|
|
31038
|
11
|
7
|
1
|
18
|
0
|
0
|
|
0
|
225|需求 服务评价推送判断 16807
|
1789718565
|
Edit
Delete
|
|
31037
|
10
|
7
|
1
|
18
|
0
|
0
|
|
0
|
225|需求 服务评价推送判断 16807
|
1789718565
|
Edit
Delete
|
|
31036
|
8
|
7
|
1
|
18
|
0
|
0
|
|
0
|
225|需求 服务评价推送判断 16807
|
1789718565
|
Edit
Delete
|
|
31035
|
7
|
7
|
1
|
18
|
0
|
0
|
|
0
|
225|需求 服务评价推送判断 16807
|
1789718565
|
Edit
Delete
|
|
31034
|
4
|
7
|
1
|
18
|
0
|
0
|
|
0
|
225|需求 服务评价推送判断 16807
|
1789718565
|
Edit
Delete
|
|
31033
|
3
|
7
|
1
|
18
|
0
|
0
|
|
0
|
225|需求 服务评价推送判断 16807
|
1789718565
|
Edit
Delete
|
|
31032
|
9
|
7
|
1
|
18
|
0
|
0
|
|
0
|
225|需求 服务评价推送判断 16807
|
1789718565
|
Edit
Delete
|
|
31031
|
1
|
7
|
1
|
18
|
0
|
0
|
|
0
|
225|需求 服务评价推送判断 16807
|
1789718565
|
Edit
Delete
|
|
31030
|
1
|
5
|
1
|
32
|
0
|
0
|
refs/heads/master
|
1
|
{"Commits":[{"Sha1":"5d4f5563e {"Commits":[{"Sha1":"5d4f5563ed56364cbe8df63ed42c1cbbbade3708","Message":"111\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T16:02:32+08:00"}],"HeadCommit":{"Sha1":"5d4f5563ed56364cbe8df63ed42c1cbbbade3708","Message":"111\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T16:02:32+08:00"},"CompareURL":"zhangjunnan/zhouhui/compare/5cdc3d972cb45c1157c30007fd2839ee432e3455...5d4f5563ed56364cbe8df63ed42c1cbbbade3708","Len":1}...
|
1789718559
|
Edit
Delete
|
|
31029
|
5
|
5
|
5
|
76
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"614681e6e {"Commits":[{"Sha1":"614681e6e78d0385bbf043ef964bd444d8e5958b","Message":"chore(reports): tenant.ts 拆分第一步的八份静态门禁证据 回绑 @ 53be2c3\n\n八份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages 七绿,\nkernel-admission 仍是引入时那 8 处(K3 一处 + K4 七处),与拆分前逐条一致——\n本次未引入新红,也未消除旧红。\n\nkernel-admission 的 K1 在重签前如实报出本次变更:task.ts / outcome.ts 各新增、\ntenant.ts 消失 21 个(17 个降私有 + 4 个迁出)。kernel.exports.lock.json 已随实现提交\n重签为 762 个导出。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:00:33-07:00"},{"Sha1":"53be2c3dd5e52e0392225f359296ef250447bc56","Message":"refactor(contracts): tenant.ts 拆分第一步——work 域判定迁出、17 个零引用导出降私有\n\ntenant.ts 与框架 @juhai/kernel 的同名文件共有导出 0 个:它不是「改过的内核」,是绕过\n内核另写的一份,1075 行 / 65 导出里混着四类东西(租户策略、JWT 验签、自建权限、\nwork 域业务判定)。本次只做两件行为中性的事,不改任何实现。\n\n一、work 域判定迁出(不满足 kernel.boundaries.json 的 CORE 准入证据 crossProductRequired)\n\n requiredPermissionForTaskEvent / canApproveTask / canTransitionTask → task.ts\n canResolveOutcome → outcome.ts\n\n「哪些任务事件是特权事件」只对本 OS 的 work 域成立,不是跨产品必需的内核契约。\n角色与权限的定义仍留在 tenant.ts,后续随自建权限一并迁往 authorization.ts。\n\n二、17 个全仓零引用的导出降为模块内私有\n\n RsaSha256Verify verifyJwtRs256 JwksKeyStoreDeps browserJwtIdentitySchema\n BrowserJwtIdentity PermissionOverrideLike PermissionAuditEventData RoleAuditEventData\n TENANT_AUTH_STARTUP_MODES TenantAuthStartupMode TenantAuthStartupDecision\n TenantAuthEnvironment TenantAuthInput TenantAuthPosture RealtimeAuthExpiryDecision\n TenantAuthOptions AuditActorBinding\n\n前五个与 RsaSha256Verify / verifyJwtRs256 是 resolveTenantAuth 的内部实现,后端注入的是\nnode:crypto 的 createHmac / createVerify,从不按名字引用这些类型。\nPermissionAuditEventData / RoleAuditEventData 模块内也不使用,是纯死代码;本次只降可见性,\n删除留给后续。\n\ntenant.ts 65 → 44 导出。应用侧零改动——都经 @repo/contracts 根 barrel 导入,模块间搬移\n不可见;只有 contracts.test.ts 的直接 ./tenant 导入需要切分(保留 21、迁出 4)。\n\n验证:@repo/contracts 24 文件 312/312(与变更前基线逐个一致,行为中性);typecheck 13/13;\ncheck:dual-backend / naming / schema / validation / contract-consumers / kernel-boundaries 全绿。\ncheck-dual-backend-parity.mjs 对 tenant.ts 有 5 处内容位置断言(C51/C52/C73/C181),本次\n涉及的标识符全部仍在该文件内,故未触发;C 组迁往 authorization.ts 时这 5 处必须同步改路径。\n\n顺带一处发现:check:kernel-packages 对本次 21 个符号的公开面收缩完全无感——它的 apiDigest\n只覆盖导出子路径,不覆盖符号集合。真正抓到本次变更的是 check:kernel-admission 的 K1\n(task.ts/outcome.ts 3 处新增、tenant.ts 21 处消失)。kernel.exports.lock.json 随本提交重签\n779 → 762 个导出;重签是 K1「变更即复核」的设计意图,不是绕过。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T00:59:59-07:00"}],"HeadCommit":{"Sha1":"614681e6e78d0385bbf043ef964bd444d8e5958b","Message":"chore(reports): tenant.ts 拆分第一步的八份静态门禁证据 回绑 @ 53be2c3\n\n八份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages 七绿,\nkernel-admission 仍是引入时那 8 处(K3 一处 + K4 七处),与拆分前逐条一致——\n本次未引入新红,也未消除旧红。\n\nkernel-admission 的 K1 在重签前如实报出本次变更:task.ts / outcome.ts 各新增、\ntenant.ts 消失 21 个(17 个降私有 + 4 个迁出)。kernel.exports.lock.json 已随实现提交\n重签为 762 个导出。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T01:00:33-07:00"},"CompareURL":"luoanwu/digital-employee-os/compare/ea965ed902a9807d07d7d89fc173668804c6294c...614681e6e78d0385bbf043ef964bd444d8e5958b","Len":2}...
|
1789718531
|
Edit
Delete
|
|
31028
|
11
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Message":"Merge pull request '需求 直播间配置不设置 16817' (#109) from app-260915 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/109\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T15:59:16+08:00"},"CompareURL":"vodtest/app/compare/app...f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Len":0}...
|
1789718518
|
Edit
Delete
|
|
31027
|
10
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Message":"Merge pull request '需求 直播间配置不设置 16817' (#109) from app-260915 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/109\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T15:59:16+08:00"},"CompareURL":"vodtest/app/compare/app...f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Len":0}...
|
1789718518
|
Edit
Delete
|
|
31026
|
8
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Message":"Merge pull request '需求 直播间配置不设置 16817' (#109) from app-260915 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/109\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T15:59:16+08:00"},"CompareURL":"vodtest/app/compare/app...f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Len":0}...
|
1789718518
|
Edit
Delete
|
|
31025
|
7
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Message":"Merge pull request '需求 直播间配置不设置 16817' (#109) from app-260915 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/109\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T15:59:16+08:00"},"CompareURL":"vodtest/app/compare/app...f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Len":0}...
|
1789718518
|
Edit
Delete
|
|
31024
|
4
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Message":"Merge pull request '需求 直播间配置不设置 16817' (#109) from app-260915 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/109\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T15:59:16+08:00"},"CompareURL":"vodtest/app/compare/app...f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Len":0}...
|
1789718518
|
Edit
Delete
|
|
31023
|
3
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Message":"Merge pull request '需求 直播间配置不设置 16817' (#109) from app-260915 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/109\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T15:59:16+08:00"},"CompareURL":"vodtest/app/compare/app...f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Len":0}...
|
1789718518
|
Edit
Delete
|
|
31022
|
9
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Message":"Merge pull request '需求 直播间配置不设置 16817' (#109) from app-260915 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/109\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T15:59:16+08:00"},"CompareURL":"vodtest/app/compare/app...f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Len":0}...
|
1789718518
|
Edit
Delete
|
|
31021
|
1
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app-261020
|
0
|
{"Commits":[],"HeadCommit":{"S {"Commits":[],"HeadCommit":{"Sha1":"f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Message":"Merge pull request '需求 直播间配置不设置 16817' (#109) from app-260915 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/109\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-09-18T15:59:16+08:00"},"CompareURL":"vodtest/app/compare/app...f0f87a4584fb8539f77697d8abf7fc66a2280bcb","Len":0}...
|
1789718518
|
Edit
Delete
|