| content |
{"Commits":[{"Sha1":"73e36fd4d {"Commits":[{"Sha1":"73e36fd4d78f4fe2e6d2ee90381700b0da82d381","Message":"docs(runbook): §7 补 image:smoke 的 --env-file 从哪来——仓里没有这份文件,此前只写了占位\n\nrunbook 只写 `pnpm image:smoke -- --env-file \u003cenv\u003e`,而仓里既没有这份 env,也没说它从\n哪来。实跑一次才发现 .secrets/enterprise-platform-runtime-dev.env 用的是 compose 变量名,\n镜像读的是容器变量名,映射在 stack/compose.yaml 的 runtime environment 块。\n\n连带记下三处只有实跑才撞得上的坑:smoke 的 docker run 不挂 stack 网络(compose 内部主机名\n解析不了,要换 host.docker.internal + 已发布端口)、Redis 逻辑库别撞 dev 常驻运行时的 14、\nscope 这种 shape 档不需要 DATABASE_URL_\u003cMODULE\u003e。\n\n另加一条判读规则:冒烟报告的 sourceSha 是镜像来源提交、provenance.gitSha 是本次运行绑定,\n两者不同是正常的;check:evidence 判 image-smoke 过期时先比它与 image-digest.json 的\nsourceSha,相同就只需重跑补绑定,不必重建镜像。\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-18T15:55:22-07:00"},{"Sha1":"d3c6a3f5fee8d2d65b58e89bddd00f6e12c12930","Message":"chore(reports): check:fixtures 回绑 @ 91216b5\n\n17 套件 307 例,0 失败 0 不可用;干净树本地跑(provenance worktreeDirty=false —— 判定按仓内口径\n排除 *.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-18T15:55:13-07:00"},{"Sha1":"91216b52fce5a1c677eab2d973a5cdbdac2a68f7","Message":"test(contracts): 注册中心入参体检的门禁覆盖——24 个分支里 12 个没有任何用例走到\n\n同日注册中心那笔把 appId / version / blockedBy 的入参体检从抛 TypeError 改成了拒绝,夹具也从 8 例\n补到 21 例。但「不崩了」与「崩回去会被门禁抓到」是两回事。复核方式不是读用例名,而是算覆盖:对当年\n会抛的那 20 处变异逐一跑规则、取回原因码,再看夹具里有没有用例声明过该原因。\n\n结果:\n snapshot.version(4 种脏值) 已钉 VERSION_REQUIRED\n snapshot.blockedBy(4 种) 已钉 SNAPSHOT_BLOCKERS_INVALID\n next.version(4 种) 已钉 SEMANTIC_VERSION_REQUIRED\n snapshot.appId(4 种) ✗ APP_ID_REQUIRED\n next.appId(4 种) ✗ APP_ID_CHANGED\n next.blockedBy(4 种) ✗ NEXT_SNAPSHOT_NOT_CONSUMABLE\n\n21 个用例里没有任何一个往 appId 或 transition 侧的 blockedBy 喂脏值——那两处守卫改回去\ncheck:fixtures 不会红,它压根走不到那条路径。APP_ID_CHANGED 与 NEXT_SNAPSHOT_NOT_CONSUMABLE\n此前单测与夹具都是零覆盖,后者还是 transition 规则里最常出现的一条。\n\n补:夹具 21 → 25 例(N17 appId 非字符串 / N18 appId 整键缺失 / N19 transition 改写 Owner 应用 /\nN20 next 侧 blockers 非数组),单测 46 → 49 例。补后重算覆盖:24 / 24 全钉。\n\n负向实测:把 N19 的声明原因改成不会产生的串 → 门禁 exit 1 并点名该例,恢复后转绿。\n\n本条只补门禁覆盖,没有改任何判定——registry-snapshot.ts / snapshot-upgrade-review.ts 一行未动;\nupgrade 规则那半边(四条就绪闸门各一条真值用例)本来就完整,不在范围内。\n\n证据:在仅含本提交改动的导出树上 tsc 绿、定向 49/49、contract-application-contract-registry 25/25。\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-18T15:54:24-07:00"},{"Sha1":"7c2ac28f4020b30d3b1940a85169738c3f4f5039","Message":"chore(reports): 镜像冒烟重跑回绑 @ 5a40e51\n\n在 5a40e51 的干净 detached worktree 里真起容器跑 governance/smoke-image.mjs,\n6 项全过:container-running / api-health-200(database、redis 均 up)/\nplatform-modules-view(fail-closed,scope(shape))/ module-health-200 /\ndecisions-unauthenticated-401 / docker-healthcheck-healthy。容器结束即删。\n\n冒的仍是 reports/image-digest.json 里那个镜像(sha256:c086993…,源码 05e3826e,\nlinux/arm64),未重建;报告里的 sourceSha 因此仍是 05e3826e——它记的是镜像的来源提交,\nprovenance.gitSha=5a40e51 才是本次冒烟的运行绑定。此前 check:evidence 判它过期是因为\nimage-digest.json 在 05e3826e 之后才被提交进来,结论本身没变,这次是用真跑把绑定补上。\n\nenv-file 由 .secrets/enterprise-platform-runtime-dev.env 按 stack/compose.yaml 的\n容器变量名映射而来,落在会话临时目录、未进仓;容器不挂 stack 网络,故主机名换成\nhost.docker.internal + 已发布端口(PG :55470 / Redis :56379),Redis 借未分配的\n逻辑库 15(dev 常驻运行时占 14,禁止共用)。\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-18T15:52:52-07:00"},{"Sha1":"5a40e517a6f296e16d35481b22b4db15478eaa50","Message":"chore(reports): check:fixtures 回绑 @ f2f1063\n\n17 套件 303 例,0 失败 0 不可用;干净树本地跑,provenance worktreeDirty=false。\n\n九个契约包夹具在本轮入参体检后的分布:\n public-file 29 / cost-capacity 32 / data-analytics 27 / application-contract-registry 21 /\n enterprise-experience 18 / configuration-feature-flags 17 / notification-webhook 17 /\n cross-domain-workflow 16 / collaboration-messaging 14\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-18T15:51:21-07:00"}],"HeadCommit":{"Sha1":"73e36fd4d78f4fe2e6d2ee90381700b0da82d381","Message":"docs(runbook): §7 补 image:smoke 的 --env-file 从哪来——仓里没有这份文件,此前只写了占位\n\nrunbook 只写 `pnpm image:smoke -- --env-file \u003cenv\u003e`,而仓里既没有这份 env,也没说它从\n哪来。实跑一次才发现 .secrets/enterprise-platform-runtime-dev.env 用的是 compose 变量名,\n镜像读的是容器变量名,映射在 stack/compose.yaml 的 runtime environment 块。\n\n连带记下三处只有实跑才撞得上的坑:smoke 的 docker run 不挂 stack 网络(compose 内部主机名\n解析不了,要换 host.docker.internal + 已发布端口)、Redis 逻辑库别撞 dev 常驻运行时的 14、\nscope 这种 shape 档不需要 DATABASE_URL_\u003cMODULE\u003e。\n\n另加一条判读规则:冒烟报告的 sourceSha 是镜像来源提交、provenance.gitSha 是本次运行绑定,\n两者不同是正常的;check:evidence 判 image-smoke 过期时先比它与 image-digest.json 的\nsourceSha,相同就只需重跑补绑定,不必重建镜像。\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-18T15:55:22-07:00"},"CompareURL":"luoanwu/enterprise-platform/compare/b60cc18d640a6561ccdd0fa798753d1f6476bad5...73e36fd4d78f4fe2e6d2ee90381700b0da82d381","Len":6}... |