| content |
{"Commits":[{"Sha1":"fa3f105cf {"Commits":[{"Sha1":"fa3f105cf5e845bbec0378eb1f12c2c7fd935033","Message":"Merge branch 'main' into feat/client-identity\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-12T06:55:23-07:00"},{"Sha1":"4b563df617da8051d598fefbf8bf284ae013f366","Message":"feat(governance): PF-23 staging 晋级流程草案——晋级记录 Schema / 模板 / 签收位 P1—P9 + check-promotion R1—R9(DEC-024 A / DEC-026 批准记录 2026-09-12)\n\n- stack/promotion/promotion-record.schema.json:晋级记录 v1(manifest / candidate / checks / approvals / rollback / signoff / waivers / preview)\n- stack/promotion/target-env-signoff.template.json:目标环境签收位 P1—P9(取自 OS deploy/production/target-env-signoff.json,改基础设施口径,不登记实名)\n- stack/promotion/promotion-record.template.json:staging 记录模板\n- governance/check-promotion.mjs:R1 形状 / R2 级序 dev→test→staging→prod(preview←candidate)/ R3 同 digest(记录 = 候选 = Manifest images.runtime.digest,prod 禁止 rebuild)/ R4 级别门槛 / R5 检查项 / R6 审批角色 / R7 回滚演练 ≤ 600 s / R8 preview 上限 / R9 签收项在模板内 → reports/promotion.latest.json;根脚本 promotion:check\n- governance/test/promotion.test.mjs 18 例(治理套件 144/144)\n- docs/staging晋级操作说明.md:级序与门槛、十步操作、记录格式、恢复演练、首次晋级前置、偏差;runbook §5 / §10、governance / stack / 仓 README 同步\n- 无真实晋级记录:Manifest 仍 partial 且 images.runtime.digest=null\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-12T06:54:53-07:00"},{"Sha1":"ad294902eb3bd88b58b5a4e056d892c8a311cd65","Message":"Merge pull request #13 from laoluojuhai/feat/client-identity\n\nfeat(identity): add verified token consumer and validate stack integration","AuthorEmail":"158980461+laoluojuhai@users.noreply.github.com","AuthorName":"laoluojuhai","CommitterEmail":"noreply@github.com","CommitterName":"GitHub","Timestamp":"2026-09-12T06:53:37-07:00"},{"Sha1":"a66461cda48132fb6a863b64f705b12e11460ce4","Message":"fix(stack): delimit broker variable in candidate dry-run\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-12T06:42:54-07:00"},{"Sha1":"6b4e0d146b3d8694bf699c898c9ba80df9bb478a","Message":"Merge commit '44f921ff30c0579e914befcdfb77cd569513cdb6' into feat/client-identity\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-12T06:41:54-07:00"}],"HeadCommit":{"Sha1":"fa3f105cf5e845bbec0378eb1f12c2c7fd935033","Message":"Merge branch 'main' into feat/client-identity\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-12T06:55:23-07:00"},"CompareURL":"luoanwu/enterprise-platform/compare/f1404780a55c8cf7ab4ab0b98386c071169dc78a...fa3f105cf5e845bbec0378eb1f12c2c7fd935033","Len":12}... |