| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8dcb04b664321242273d29feb4ad9011e779e007","after":"ef116fb5485a9c2357b8c6cbc7747b3ea64dcec8","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/8dcb04b664321242273d29feb4ad9011e779e007...ef116fb5485a9c2357b8c6cbc7747b3ea64dcec8","commits":[{"id":"ef116fb5485a9c2357b8c6cbc7747b3ea64dcec8","message":"chore(reports): 验收覆盖判定影响的三份回绑 @ a6a2ee7\n\ndoc-claims / stub-surface 因 CLAUDE.md 与 runbook 各增一句而过期,经 reports:rebind 在 HEAD 的干净检出里重生成(dirty=false)。\ndeployed-runtime 在 clean a6a2ee7 上重写:passed,报告首次带 acceptance 摘要与 DEPLOYED_IMAGE_ACCEPTED 判定\n(镜像源 d3cea6b 的代码面与验收绑定的提交相同)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ef116fb5485a9c2357b8c6cbc7747b3ea64dcec8","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:28:56-07:00","added":[],"removed":[],"modified":["reports/deployed-runtime.latest.json","reports/doc-claims.latest.json","reports/stub-surface.latest.json"]},{"id":"a6a2ee70c86148e91119d37aa7ea448627e45603","message":"feat(governance): check:deployed 核「镜像源是否被通过的 check:runtime 覆盖」——没验过的代码不得切到 dev\n\n2026-09-19 晚 a64dc81 过了根 pnpm check、构建并切到 dev,而 check:runtime 的 test 步是红的:根链的\nruntime 一环只有静态门禁 + lint + typecheck,不跑任何包的单测;真实库验收又不是构建与切换的前置。\n当晚四次 dev 切换里,能确认切换前跑过 check:runtime 的只有一次。\n\n这里不把验收塞进根链(要真实 PG / Redis / Broker,本机与 CI 都不是随手可跑),也不重跑验收,\n只在 check:deployed 里核一件事:runtime-acceptance 报告绑定的提交与镜像源提交之间,镜像代码面\n有没有差异。有 → DEPLOYED_IMAGE_NOT_ACCEPTED(error);报告缺失 / 未通过 / 绑脏树 / 无法比较各自\n判红;无差异 → DEPLOYED_IMAGE_ACCEPTED(info)。先后不论:验收可以晚于构建,只要中间没改会进\n镜像的代码。报告增 acceptance 摘要(绑定 SHA / status / testsPassed),读者能核对判定依据。\n\n镜像代码面 = 闭包范围(84a8991)再去掉测试面:*.test.ts、test/ 目录、vitest 配置。依据是闭包内\n每个包都只发 dist(+ generated / prisma / migrations),tsconfig 把测试排除在构建外,api-nestjs 的\nbuild 排除 test/ 且 Dockerfile 再 rm -rf src test——这个前提由 image-code-scope.test.mjs 对真仓逐包\n核对,前提一破那条用例先红。BUILT_IMAGE_SOURCE_BEHIND 与未提交输入判定同样改用代码面:\n只改用例(如 0482667 修 a64dc81 留下的旧夹具)不再要求重建镜像,镜像 c165a1b 的代码与 0482667\n逐字相同,那份 1109 / 0 就覆盖它。\n\nevidence-scopes.json 的 deployed-runtime 条目随之收窄:闭包外 9 个包与测试面排除,runtime-acceptance\n报告成为输入;静态排除项由 evidence-scopes-image.test.mjs 钉在 imageWorkspaceClosure 的推导上,\n闭包一变那条用例先红。runbook 的换镜像命令前加 pnpm check:deployed;CLAUDE.md 读取规则补一句。\n治理测试 +10(533 / 532 通过 / 1 跳过)。\n\n真仓此刻:镜像源 d3cea6b,验收绑 1abd12a(1175 / passed),代码面相同 → passed。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a6a2ee70c86148e91119d37aa7ea448627e45603","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:21:19-07:00","added":["governance/test/deployed-runtime-acceptance.test.mjs","governance/test/evidence-scopes-image.test.mjs","governance/test/image-code-scope.test.mjs"],"removed":[],"modified":["CLAUDE.md","docs/runbook.md","governance/check-deployed-runtime.mjs","governance/evidence-scopes.json","governance/lib/deployed-runtime.mjs","governance/lib/source-changes.mjs"]}],"total_commits":0,"head_commit":{"id":"ef116fb5485a9c2357b8c6cbc7747b3ea64dcec8","message":"chore(reports): 验收覆盖判定影响的三份回绑 @ a6a2ee7\n\ndoc-claims / stub-surface 因 CLAUDE.md 与 runbook 各增一句而过期,经 reports:rebind 在 HEAD 的干净检出里重生成(dirty=false)。\ndeployed-runtime 在 clean a6a2ee7 上重写:passed,报告首次带 acceptance 摘要与 DEPLOYED_IMAGE_ACCEPTED 判定\n(镜像源 d3cea6b 的代码面与验收绑定的提交相同)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ef116fb5485a9c2357b8c6cbc7747b3ea64dcec8","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:28:56-07:00","added":[],"removed":[],"modified":["reports/deployed-runtime.latest.json","reports/doc-claims.latest.json","reports/stub-surface.latest.json"]},"repository":{"id":116,"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":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":28665,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":44,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-20T10:41:55+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"}}... |