| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6765c0bf1b8aab56356524c2f8e7512d7bc2eb33","after":"99cce601d0afd37f556bc74e98d770ec1ed40271","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/6765c0bf1b8aab56356524c2f8e7512d7bc2eb33...99cce601d0afd37f556bc74e98d770ec1ed40271","commits":[{"id":"99cce601d0afd37f556bc74e98d770ec1ed40271","message":"merge: integrate MS-1 release and backup workflow\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/99cce601d0afd37f556bc74e98d770ec1ed40271","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-12T00:47:15-07:00","added":[".github/workflows/publish-packages.yml","docs/MS-1发布与接入操作说明.md","governance/prepare-package-release.mjs","governance/publish-rc.mjs","governance/test/package-release.test.mjs","governance/test/pg-dump.test.mjs","governance/test/publish-rc.test.mjs"],"removed":[],"modified":["contracts/package.json","governance/package.json","governance/templates/consumer-governance.yml","governance/test/restore-drill.test.mjs","stack/backup/pg-dump.sh","stack/backup/restore-drill.sh"]},{"id":"fc3780587fee2c864cf181d3cebfd22e88c0de40","message":"feat(ms1): gate RC publication and enable verified backup integration\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/fc3780587fee2c864cf181d3cebfd22e88c0de40","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-12T00:46:38-07:00","added":[".github/workflows/publish-packages.yml","docs/MS-1发布与接入操作说明.md","governance/prepare-package-release.mjs","governance/publish-rc.mjs","governance/test/package-release.test.mjs","governance/test/pg-dump.test.mjs","governance/test/publish-rc.test.mjs"],"removed":[],"modified":["contracts/package.json","governance/package.json","governance/templates/consumer-governance.yml","governance/test/restore-drill.test.mjs","stack/backup/pg-dump.sh","stack/backup/restore-drill.sh"]},{"id":"a95834dc7a5d064c8e66685c41fbdf4ac4ef839a","message":"fix(runtime): Decision API 单测不再静态 import 运行时模块(check:module-imports)\n\napps / packages 只经 PLATFORM_PROFILES 动态装载模块(仓纪律 4);纯函数单测改用 POLICY_UNAVAILABLE 形状端口替身,\n真实 permission-shape 的 200 deny policy-unavailable 由 platform.http.acceptance.test.ts 在装载态验收。\n根 `pnpm check` 在 aa50624 上曾因该 import 在 check:module-imports 报 1 处违规(未入报告提交)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a95834dc7a5d064c8e66685c41fbdf4ac4ef839a","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-12T00:45:18-07:00","added":[],"removed":[],"modified":["runtime/apps/api-nestjs/test/platform.decision-api.test.ts"]},{"id":"aa50624369b9e9a6a3d50d0d4909e77f621aab31","message":"docs(runtime): record clean commit acceptance @ 98baa5a(M3-4 / S-5 后:runtime 346 / UI 5;地板 346 / 35 / 184)\n\n- 证据新鲜度三行改绑 clean `98baa5a`:真实 DB check:runtime 346 tests / 0 failures(api-nestjs 18 文件 105 例,\n 新增 platform.http.acceptance 3 例 + platform.decision-api 4 例;contracts 增 platform-http 3 例)、UI 5/5、双后端差分 0 差异;\n 共享底座 :55470 `enterprise_platform_acceptance_m34_20260912` + :56379/7。\n- reports/baseline.json 地板收紧:testsPassed 336 → 346,ownTests 32 → 35,ownTestCases 174 → 184。\n- 三份验收报告 provenance.gitSha = 98baa5a、worktreeDirty=false。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/aa50624369b9e9a6a3d50d0d4909e77f621aab31","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-12T00:43:25-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]},{"id":"98baa5a89acdae9886655e8eaa8cae0589e0df20","message":"feat(runtime): Decision API 骨架 + 模块运维视图(开发计划 §3A M3-4 / S-5)\n\n- packages/contracts/src/platform-http.ts:Catalog 已登记契约 permission-decision-api.v1 的 Zod 镜像\n (请求 / 响应 schema 与 contracts/schemas/*.v1.schema.json 逐字段同形;reason_code 枚举与 Catalog 一致,\n 3 例单测用 contracts/examples 正例 + 逐项破坏反例);只登记已登记契约,其余 11 个 HTTP 契约不建 schema。\n- apps/api-nestjs/src/platform/http/permission-decision.{adapter,controller}.ts:POST /api/v1/decisions,\n 鉴权走全局 Guard(401),入参经 ZodValidationPipe + @repo/contracts(400,check:validation 口径),\n 纯函数 evaluateDecisionApi:token 租户 ≠ actor / scope 租户 → tenant-mismatch 不打端口;端口 reasonCode →\n 契约 reason_code(POLICY_UNAVAILABLE / NOT_CONFIGURED → policy-unavailable,NO_TENANT_CONTEXT / INVALID_REQUEST →\n context-invalid,UNKNOWN_ACTION → unknown-action,未知码一律 policy-denied 失败关闭);4 例纯函数单测。\n- apps/api-nestjs/src/platform/http/platform-modules.controller.ts(@Public):GET /api/platform/modules\n (装配模式 + 四端口当前提供方名 + 已装载模块)与 GET /api/platform/modules/:id/health\n ({module,state,status,checks},未装载 404);module-kit PlatformModule 增 health?()(S-5 过渡方案:\n 内核 HealthResponse.checks 写死 database / redis,扩展走框架变更请求 DOC-5)。\n- platform-http.module.ts 进 KERNEL_IMPORTS;HTTP 适配器落装配点而非模块 src/http/(模块包保持框架无关,\n 偏差登记到开发计划 §6)。\n- test/platform.http.acceptance.test.ts:真实 DB 验收 3 例(permission 装载 200 deny policy-unavailable /\n tenant-mismatch / 400 / 401;未装载走内核基束;模块清单 + health + 404)。\n\n静态门禁(runtime pnpm check 14 项 + lint + typecheck)在本提交前的脏树上通过;真实 DB 验收随后绑定本提交。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/98baa5a89acdae9886655e8eaa8cae0589e0df20","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-12T00:39:59-07:00","added":["runtime/apps/api-nestjs/src/platform/http/permission-decision.adapter.ts","runtime/apps/api-nestjs/src/platform/http/permission-decision.controller.ts","runtime/apps/api-nestjs/src/platform/http/platform-modules.controller.ts","runtime/apps/api-nestjs/src/platform/platform-http.module.ts","runtime/apps/api-nestjs/test/platform.decision-api.test.ts","runtime/apps/api-nestjs/test/platform.http.acceptance.test.ts","runtime/packages/contracts/src/platform-http.test.ts","runtime/packages/contracts/src/platform-http.ts"],"removed":[],"modified":["runtime/apps/api-nestjs/src/app.module.ts","runtime/modules/kit/src/index.ts","runtime/packages/contracts/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"99cce601d0afd37f556bc74e98d770ec1ed40271","message":"merge: integrate MS-1 release and backup workflow\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/99cce601d0afd37f556bc74e98d770ec1ed40271","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-12T00:47:15-07:00","added":[".github/workflows/publish-packages.yml","docs/MS-1发布与接入操作说明.md","governance/prepare-package-release.mjs","governance/publish-rc.mjs","governance/test/package-release.test.mjs","governance/test/pg-dump.test.mjs","governance/test/publish-rc.test.mjs"],"removed":[],"modified":["contracts/package.json","governance/package.json","governance/templates/consumer-governance.yml","governance/test/restore-drill.test.mjs","stack/backup/pg-dump.sh","stack/backup/restore-drill.sh"]},"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":2396,"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":1,"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-12T15:30:28+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"}}... |