| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab","after":"4b067cd4a76bfced89f76e979cf7bd36d3521a91","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab...4b067cd4a76bfced89f76e979cf7bd36d3521a91","commits":[{"id":"4b067cd4a76bfced89f76e979cf7bd36d3521a91","message":"chore(reports): otel 回绑 @ e5cc39f(首次用 pnpm reports:rebind 产出)\n\n在主工作区有并行会话未提交改动的情况下,经 HEAD 干净检出生成,\nprovenance 绑 e5cc39f / worktreeDirty=false——偏差 #34-A 裁决实现的首次实用。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/4b067cd4a76bfced89f76e979cf7bd36d3521a91","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-17T16:32:14-07:00","added":[],"removed":[],"modified":["reports/otel.latest.json"]},{"id":"e5cc39f4dc74d56bce2b1861b15f8822ec3fdc3e","message":"feat(governance): 偏差 #34 裁决实现——干净检出回绑工具 + 脏绑判定不再断言未核实的事\n\n2026-09-17 目录负责人裁决:A 走「干净 worktree 生成报告」(不动判据),\nB「修正断言」。\n\n#34-A|新增 governance/rebind-reports.mjs(pnpm reports:rebind)\nprovenance.worktreeDirty 由全仓 git status 算,而 check:evidence 判过期是按\n每份报告自己的作用域算。口径不一致,导致只要仓里任何无关文件脏着就没法回绑\n任何报告——本工作区常有 2—3 个并行会话,干净窗口稀少,这是过期证据难清零的\n结构性成因。裁决不放宽 worktreeDirty,改为换个干净的地方生成:在 HEAD 开\ngit worktree 检出,在那里跑门禁,只把「绑 HEAD 且 dirty=false」的报告拷回。\n\n可行前提是 governance/ 零依赖(package.json 无 dependencies/devDependencies),\n临时检出不需要 pnpm install。实测:主工作区有 7 项未提交时,otel 报告仍绑到\n0c5d0b0 / dirty=false。\n\n三条护栏,都有负向用例:\n- 作用域内有未提交输入的门禁跳过(否则是拿 HEAD 的结论覆盖当前工作区)\n- 目标报告自己未提交的跳过(并行会话的在途产物,覆盖即销毁;--force 才 override)\n- 产出 provenance 不是干净 HEAD 绑定就不带回\n范围外的说清楚不假装:check:fixtures / check:port-conformance 与 runtime、\ncontracts 的检查需要构建产物,必须在装好依赖的检出里跑。\n\n顺带记一条坑:入口判定不能写 `import.meta.url === file://${argv[1]}`——本仓\n路径含中文,import.meta.url 是百分号编码的,比较永远不等,脚本会静默不做事。\n\n#34-B|check-evidence-freshness 的 EVIDENCE_BOUND_DIRTY\n该分支读的是工作区里的报告文件,定级却用 currentTreeDirty,而后者走\ngitProvenance() 并显式排除 *.latest.json。于是并行会话跑门禁、只有报告文件脏\n时,当前树被算作干净,4 份未提交的在途报告被判 error 并输出「脏绑报告被提交\n了」——该断言为假(那 4 份的 HEAD 版本干净绑 8382c04)。现按报告文件自身是否\n未提交区分:在途产物降 info 并如实描述;确系已提交的脏绑仍是 error。判据未放宽,\n两条负向用例分别钉住这两侧。\n\ngovernance 测试 266 → 275。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e5cc39f4dc74d56bce2b1861b15f8822ec3fdc3e","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-17T16:32:04-07:00","added":["governance/rebind-reports.mjs","governance/test/rebind-reports.test.mjs"],"removed":[],"modified":["docs/runbook.md","governance/README.md","governance/check-evidence-freshness.mjs","governance/test/check-evidence-freshness.test.mjs","package.json"]}],"total_commits":0,"head_commit":{"id":"4b067cd4a76bfced89f76e979cf7bd36d3521a91","message":"chore(reports): otel 回绑 @ e5cc39f(首次用 pnpm reports:rebind 产出)\n\n在主工作区有并行会话未提交改动的情况下,经 HEAD 干净检出生成,\nprovenance 绑 e5cc39f / worktreeDirty=false——偏差 #34-A 裁决实现的首次实用。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/4b067cd4a76bfced89f76e979cf7bd36d3521a91","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-17T16:32:14-07:00","added":[],"removed":[],"modified":["reports/otel.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":17171,"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":42,"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-18T07:26:12+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"}}... |