| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"908cf2d862dd87d195567ab8b87bee0f487755af","after":"1ccb3b69c365de2f80a4032ee4035a6999253197","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/908cf2d862dd87d195567ab8b87bee0f487755af...1ccb3b69c365de2f80a4032ee4035a6999253197","commits":[{"id":"1ccb3b69c365de2f80a4032ee4035a6999253197","message":"chore(reports): OPS-1 应用后门禁回绑 @ 6378b6f\n\nruntime 16 项静态门禁(含新增 check:platform-ops-definitions)、module-imports 0、fixtures 189/189、facts 16、catalog / drift、migration-decs、caddy、工作台两份快照(controlled_operations=recorded,5 条定义 1 条已实现);check:evidence partial(fresh 26 / stale 9,余 9 份均为需真实库或容器重跑的 warn 级)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1ccb3b69c365de2f80a4032ee4035a6999253197","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-17T15:59:06-07:00","added":["runtime/reports/platform-ops-definitions.latest.json"],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"6378b6fbbdc70f947a007c7a644eea2929ed8484","message":"feat(runtime,contracts): OPS-1 平台运维命令 API 首条命令 permission.invalidation(CHG-005 / X09;CHG-018 条件 A 受控执行面)\n\n目录负责人 2026-09-17 批准 CHG-005 并点选「登记 + 契约 + 实现第一条命令」。\n- 候选 Schema:contracts/candidates/schemas/platform-ops/{operation-definitions,operation-request,operation-receipt}.v1.schema.json(补齐 OpenAPI 原引用的三份缺文件)。\n- 定义快照:runtime/scripts/sync-platform-ops-definitions.mjs → packages/contracts/src/platform-ops-definitions.ts(5 条),check:platform-ops-definitions 进 runtime check 链(负向已验证:改一条 risk 即 exit 1)。\n- 线上形状:packages/contracts/src/platform-ops.ts(请求 / 回执 Zod、ReasonCode、opr_ 编码、规范化 JSON),单测 4/4。\n- 模块接口:module-kit PlatformOpsRuntime(plan / execute / receipt)+ PlatformModule.opsRuntime 钩子;M3 实现以 operationId 为账本幂等键(invalidation_ledger.fact_id),审计经既有 outbox 中继(details 带 operation_id / definition_id / reason_code)。\n- 装配点:/api/platform/ops/{definitions,{definitionId},receipts/{operationId}},三重守卫(platform:ops scope ∧ 管理客户端 ∧ 管理员白名单,未配置即失败关闭)、Idempotency-Key、dry-run、plan_digest、executable 判定;auth 增 token scope/scp → AuthContext.scopes。\n- 工作台运维快照:controlled_operations 由固定 unavailable 改为登记五条定义与本仓实现状态,不声称任何环境可执行。\n验收:contracts 4/4、装配点纯函数 6/6、permission 隔离库集成 2/2(platform_permission_test,非超级用户角色)、真实 HTTP 4/4(内核库 + Redis :56379/7 + AUTH_MODE=jwt,覆盖 401/403/URL 凭证/executable/planned/缺键 400/409 不可执行/succeeded→replayed→409 冲突/回执一致/跨租户 404)、governance 265/265、runtime 静态门禁全过。记录见 docs/平台运维命令OPS-1实现记录-2026-09-17.md。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/6378b6fbbdc70f947a007c7a644eea2929ed8484","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-17T15:58:44-07:00","added":["contracts/candidates/schemas/platform-ops/operation-definitions.v1.schema.json","contracts/candidates/schemas/platform-ops/operation-receipt.v1.schema.json","contracts/candidates/schemas/platform-ops/operation-request.v1.schema.json","docs/平台运维命令OPS-1实现记录-2026-09-17.md","runtime/apps/api-nestjs/src/platform/http/platform-ops.adapter.ts","runtime/apps/api-nestjs/src/platform/http/platform-ops.controller.ts","runtime/apps/api-nestjs/test/platform.ops.http.test.ts","runtime/apps/api-nestjs/test/platform.ops.test.ts","runtime/modules/kit/src/platform-ops-runtime.ts","runtime/modules/permission/src/ops/permission-ops.ts","runtime/modules/permission/test/ops.integration.ts","runtime/modules/permission/vitest.integration.config.ts","runtime/packages/contracts/src/platform-ops-definitions.ts","runtime/packages/contracts/src/platform-ops.test.ts","runtime/packages/contracts/src/platform-ops.ts","runtime/scripts/sync-platform-ops-definitions.mjs"],"removed":[],"modified":["docs/runbook.md","docs/企业公共基础平台对外交付设计.md","docs/工作台管理接口实现记录-2026-09-17.md","governance/build-workbench-snapshots.mjs","governance/evidence-scopes.json","governance/test/build-workbench-snapshots.test.mjs","runtime/CLAUDE.md","runtime/apps/api-nestjs/src/auth/auth.guard.ts","runtime/apps/api-nestjs/src/auth/token-verifier.ts","runtime/apps/api-nestjs/src/platform/platform-http.module.ts","runtime/modules/kit/src/index.ts","runtime/modules/permission/package.json","runtime/modules/permission/src/index.ts","runtime/modules/permission/src/persistence/permission-store.ts","runtime/package.json","runtime/packages/contracts/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"1ccb3b69c365de2f80a4032ee4035a6999253197","message":"chore(reports): OPS-1 应用后门禁回绑 @ 6378b6f\n\nruntime 16 项静态门禁(含新增 check:platform-ops-definitions)、module-imports 0、fixtures 189/189、facts 16、catalog / drift、migration-decs、caddy、工作台两份快照(controlled_operations=recorded,5 条定义 1 条已实现);check:evidence partial(fresh 26 / stale 9,余 9 份均为需真实库或容器重跑的 warn 级)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1ccb3b69c365de2f80a4032ee4035a6999253197","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-17T15:59:06-07:00","added":["runtime/reports/platform-ops-definitions.latest.json"],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.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":16573,"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-17T23:40:19+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"}}... |