| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"23f6e71c1971bd243b703ddcf0ce7c4d40974a83","after":"8a95879f7501b2874d73cf1f36f07f7673695db3","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/23f6e71c1971bd243b703ddcf0ce7c4d40974a83...8a95879f7501b2874d73cf1f36f07f7673695db3","commits":[{"id":"8a95879f7501b2874d73cf1f36f07f7673695db3","message":"test(modules): 六模块失败关闭夹具 + check:fixtures platform-fixtures 套件格式(开发计划 §3A Mx-7)\n\n- runtime/modules/{permission,credential,fact,audit,ai-gateway,scope}/test/fixtures/\u003cm\u003e.fixtures.json(kind=PlatformFixtures,\n P%02d- / N%02d- 命名,56 例):M3 Decision 预检形状 / 目录正反例;M2 人员 Token 复用、空主体、超 ttl、过宽 / 重复 scope、AI 无委托;\n M5 重复投递 / 乱序 / 缺口 / 毒消息(纯函数级);M6 无 Actor、敏感明细、时间篡改;M7 归属 / 委托命令 / 人工批准 / 敏感供应商、\n 路由区域 / 层级 / 留存 / 静默回退;M4 跨租户、版本水位落后、禁止字段(customer-account)、缺 Owner 引用。\n 端口级 / DEC 门后的情形(吊销即时性、OpenBao / Broker 断连、策略不可用、查询越权、配额熔断、别名解析)在各夹具 description 指向\n 端口一致性夹具 / e2e / chaos todo,不冒充。\n- 每模块 src/domain/fixture-evaluator.ts:evaluateFixturePayload(rule, payload) → 拒绝原因(空 = ACCEPT),只调用迁入的纯规则,\n 经 domain index 导出;test/negative/\u003cm\u003e.fixtures.test.ts(经 src,68 例:形状 + 逐例 + 篡改必红)与 governance check:fixtures(经 dist)共用同一函数。\n- governance/check-fixtures.mjs 新增套件格式 C(format=platform-fixtures:fixtureFile + rulesModule + requires;requires 缺失 → unavailable,\n 与 workspaceRelative 同语义)+ evaluatePlatformFixtures 纯函数(id 前缀须与 expect 对应);governance/test/platform-fixtures.test.mjs 3 例\n (正 / 篡改 exit 1 / 缺构建产物 unavailable);governance/fixtures/module-\u003cm\u003e.suite.json ×6。\n- 根 check:fixtures 挂六个模块套件(8 套件 89 例 0 失败);新增根脚本 runtime:build:modules;CI static job 在 pnpm check 前构建模块 dist。\n 负向实测:篡改 audit N01 的 reasons → check:fixtures exit 1(module-audit 1 失败),恢复后 exit 0。\n\n静态门禁(runtime pnpm check)与 governance 测试(106 例)在本提交前的脏树上通过;真实 DB 验收随后绑定。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/8a95879f7501b2874d73cf1f36f07f7673695db3","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-12T03:19:40-07:00","added":["governance/fixtures/module-ai-gateway.suite.json","governance/fixtures/module-audit.suite.json","governance/fixtures/module-credential.suite.json","governance/fixtures/module-fact.suite.json","governance/fixtures/module-permission.suite.json","governance/fixtures/module-scope.suite.json","governance/test/platform-fixtures.test.mjs","runtime/modules/ai-gateway/src/domain/fixture-evaluator.ts","runtime/modules/ai-gateway/test/fixtures/ai-gateway.fixtures.json","runtime/modules/ai-gateway/test/negative/ai-gateway.fixtures.test.ts","runtime/modules/audit/src/domain/fixture-evaluator.ts","runtime/modules/audit/test/fixtures/audit.fixtures.json","runtime/modules/audit/test/negative/audit.fixtures.test.ts","runtime/modules/credential/src/domain/fixture-evaluator.ts","runtime/modules/credential/test/fixtures/credential.fixtures.json","runtime/modules/credential/test/negative/credential.fixtures.test.ts","runtime/modules/fact/src/domain/fixture-evaluator.ts","runtime/modules/fact/test/fixtures/fact.fixtures.json","runtime/modules/fact/test/negative/fact.fixtures.test.ts","runtime/modules/permission/src/domain/fixture-evaluator.ts","runtime/modules/permission/test/fixtures/permission.fixtures.json","runtime/modules/permission/test/negative/permission.fixtures.test.ts","runtime/modules/scope/src/domain/fixture-evaluator.ts","runtime/modules/scope/test/fixtures/scope.fixtures.json","runtime/modules/scope/test/negative/scope.fixtures.test.ts"],"removed":[],"modified":[".github/workflows/platform.yml","governance/check-fixtures.mjs","package.json","runtime/modules/ai-gateway/src/domain/index.ts","runtime/modules/audit/src/domain/index.ts","runtime/modules/credential/src/domain/index.ts","runtime/modules/fact/src/domain/index.ts","runtime/modules/permission/src/domain/index.ts","runtime/modules/scope/src/domain/index.ts"]},{"id":"9276c8decb4f65b258b578a130e561ce7bc5d280","message":"docs(contracts): CT-2 阶段 2 回写候选——11 条候选 schema 改指 CHG-004 材料(镜像验证 passed),FactPersisted 实体改 FactAcceptance(DEC-015),README 指向登记包\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/9276c8decb4f65b258b578a130e561ce7bc5d280","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-12T03:18:32-07:00","added":[],"removed":[],"modified":["contracts/candidates/README.md","contracts/candidates/facts/AiActionGoverned.v1.json","contracts/candidates/facts/AuditAppended.v1.json","contracts/candidates/facts/FactPersisted.v1.json","contracts/candidates/facts/GrantChanged.v1.json","contracts/candidates/facts/OrganizationUnitMoved.v1.json","contracts/candidates/facts/PermissionInvalidated.v1.json","contracts/candidates/facts/ScopeSnapshotPublished.v1.json","contracts/candidates/facts/ServiceCredentialIssued.v1.json","contracts/candidates/facts/ServiceCredentialRevoked.v1.json","contracts/candidates/facts/SessionRevoked.v1.json","contracts/candidates/facts/StoreOrgAssignmentChanged.v1.json"]}],"total_commits":0,"head_commit":{"id":"8a95879f7501b2874d73cf1f36f07f7673695db3","message":"test(modules): 六模块失败关闭夹具 + check:fixtures platform-fixtures 套件格式(开发计划 §3A Mx-7)\n\n- runtime/modules/{permission,credential,fact,audit,ai-gateway,scope}/test/fixtures/\u003cm\u003e.fixtures.json(kind=PlatformFixtures,\n P%02d- / N%02d- 命名,56 例):M3 Decision 预检形状 / 目录正反例;M2 人员 Token 复用、空主体、超 ttl、过宽 / 重复 scope、AI 无委托;\n M5 重复投递 / 乱序 / 缺口 / 毒消息(纯函数级);M6 无 Actor、敏感明细、时间篡改;M7 归属 / 委托命令 / 人工批准 / 敏感供应商、\n 路由区域 / 层级 / 留存 / 静默回退;M4 跨租户、版本水位落后、禁止字段(customer-account)、缺 Owner 引用。\n 端口级 / DEC 门后的情形(吊销即时性、OpenBao / Broker 断连、策略不可用、查询越权、配额熔断、别名解析)在各夹具 description 指向\n 端口一致性夹具 / e2e / chaos todo,不冒充。\n- 每模块 src/domain/fixture-evaluator.ts:evaluateFixturePayload(rule, payload) → 拒绝原因(空 = ACCEPT),只调用迁入的纯规则,\n 经 domain index 导出;test/negative/\u003cm\u003e.fixtures.test.ts(经 src,68 例:形状 + 逐例 + 篡改必红)与 governance check:fixtures(经 dist)共用同一函数。\n- governance/check-fixtures.mjs 新增套件格式 C(format=platform-fixtures:fixtureFile + rulesModule + requires;requires 缺失 → unavailable,\n 与 workspaceRelative 同语义)+ evaluatePlatformFixtures 纯函数(id 前缀须与 expect 对应);governance/test/platform-fixtures.test.mjs 3 例\n (正 / 篡改 exit 1 / 缺构建产物 unavailable);governance/fixtures/module-\u003cm\u003e.suite.json ×6。\n- 根 check:fixtures 挂六个模块套件(8 套件 89 例 0 失败);新增根脚本 runtime:build:modules;CI static job 在 pnpm check 前构建模块 dist。\n 负向实测:篡改 audit N01 的 reasons → check:fixtures exit 1(module-audit 1 失败),恢复后 exit 0。\n\n静态门禁(runtime pnpm check)与 governance 测试(106 例)在本提交前的脏树上通过;真实 DB 验收随后绑定。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/8a95879f7501b2874d73cf1f36f07f7673695db3","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-12T03:19:40-07:00","added":["governance/fixtures/module-ai-gateway.suite.json","governance/fixtures/module-audit.suite.json","governance/fixtures/module-credential.suite.json","governance/fixtures/module-fact.suite.json","governance/fixtures/module-permission.suite.json","governance/fixtures/module-scope.suite.json","governance/test/platform-fixtures.test.mjs","runtime/modules/ai-gateway/src/domain/fixture-evaluator.ts","runtime/modules/ai-gateway/test/fixtures/ai-gateway.fixtures.json","runtime/modules/ai-gateway/test/negative/ai-gateway.fixtures.test.ts","runtime/modules/audit/src/domain/fixture-evaluator.ts","runtime/modules/audit/test/fixtures/audit.fixtures.json","runtime/modules/audit/test/negative/audit.fixtures.test.ts","runtime/modules/credential/src/domain/fixture-evaluator.ts","runtime/modules/credential/test/fixtures/credential.fixtures.json","runtime/modules/credential/test/negative/credential.fixtures.test.ts","runtime/modules/fact/src/domain/fixture-evaluator.ts","runtime/modules/fact/test/fixtures/fact.fixtures.json","runtime/modules/fact/test/negative/fact.fixtures.test.ts","runtime/modules/permission/src/domain/fixture-evaluator.ts","runtime/modules/permission/test/fixtures/permission.fixtures.json","runtime/modules/permission/test/negative/permission.fixtures.test.ts","runtime/modules/scope/src/domain/fixture-evaluator.ts","runtime/modules/scope/test/fixtures/scope.fixtures.json","runtime/modules/scope/test/negative/scope.fixtures.test.ts"],"removed":[],"modified":[".github/workflows/platform.yml","governance/check-fixtures.mjs","package.json","runtime/modules/ai-gateway/src/domain/index.ts","runtime/modules/audit/src/domain/index.ts","runtime/modules/credential/src/domain/index.ts","runtime/modules/fact/src/domain/index.ts","runtime/modules/permission/src/domain/index.ts","runtime/modules/scope/src/domain/index.ts"]},"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":3393,"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":4,"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-12T18:16:03+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"}}... |