| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"42c886ed5e5d0a6a4d5bd1d7f6b3a99a9fc1316e","after":"80c8bdabb7ff33364f9d270d4a771bf25a2cad71","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/42c886ed5e5d0a6a4d5bd1d7f6b3a99a9fc1316e...80c8bdabb7ff33364f9d270d4a771bf25a2cad71","commits":[{"id":"80c8bdabb7ff33364f9d270d4a771bf25a2cad71","message":"test: record review-fix acceptance on clean 4708949 (runtime 298/floor 292, UI 14/floor 13)\n\nSupersedes the 68e37c0 reports. All reports come from committed 4708949\n(worktreeDirty=false):\n- pnpm check: pass; lint/typecheck re-run with turbo --force 19/19\n- pnpm check:runtime: 298 passed / 0 failed, floor 292; includes the 6 real\n C16 cases against an isolated 04 enterprise-platform 6ae2a13 shared clone\n- C16_BROWSER_ACCEPTANCE=1 pnpm check:ui: 14 passed (12 demo incl. real C16\n browser + 2 Keycloak OIDC) / 0 failed, floor 13\n- pnpm check:governance (required): passed, no regressions\nD3 preservation manifest: 65 files (25 SQL) sha256-identical; no migration.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/80c8bdabb7ff33364f9d270d4a771bf25a2cad71","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T01:00:48-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/backend-behavior-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},{"id":"4708949f3d90ebf2490bc90a2baf32d3d58850f2","message":"fix(realtime): route permission before tenant-level bypass; replay and AST guard coverage (review WO-RT-F1..F4)\n\n- F1: unanchored (permission-class) envelopes are now checked against the\n HTTP route permission before the tenant-level shortcut, so manager without\n tenant:manage no longer receives user/order/job/inbound/notification/\n knowledge/projection-rebuild envelopes (same as HTTP 403); tenantAdmin and\n holders of the permission unchanged; ticket/project/unclassified behaviour\n for tenant-level roles unchanged. New acceptance case (SSE+WS, live+replay)\n fails on 68e37c0.\n- F2: new replay case: requester role and project-derived member reconnecting\n with a cursor on SSE and WS get hint fields only; WS and SSE \"send raw\n envelope when visible\" replay mutations both turn it red.\n- F3: guard scan now uses the TypeScript AST (same parser as\n check:write-chain); outbox.create/createMany/upsert and eventBus.publish\n calls must expose a literal, literal ternary or enumerated type, indirect\n forms such as create({ data: row }) fail.\n- F4: dated note in docs/governance-experience.md; known drift (CLAUDE.md\n stable lines, D3-preserved contracts comments, 01 layer docs) registered\n in the implementation record.\nRatchet 43/308/292/13 with pin. D3 preservation files unchanged.\nVerified so far on dirty tree: targeted tests, full api-nestjs suite,\npnpm check; full gates on this commit next.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/4708949f3d90ebf2490bc90a2baf32d3d58850f2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T00:54:13-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-nestjs/src/events/realtime-visibility.ts","apps/api-nestjs/test/realtime.object-scope.acceptance.test.ts","apps/api-nestjs/test/realtime.visibility-guard.test.ts","docs/governance-experience.md","docs/实时通道对象授权实施记录-2026-10-27.md","governance/d3-test-scope.json","scripts/lib/governance-baseline.test.mjs"]},{"id":"68e37c0e4e8cdcd99f9d60bae36eee08556bfa7f","message":"test: record PM-06 realtime object-scope acceptance on clean 563f3d3 (runtime 296/floor 290, UI 14/floor 13)\n\nSupersedes the 2b49b0f reports (bound to a5817fa, before the D3\npreservation fix). All reports come from committed 563f3d3\n(worktreeDirty=false):\n- pnpm check: pass; lint/typecheck re-run with turbo --force 19/19\n- pnpm check:runtime: 296 passed / 0 failed, floor 290; includes the 6 real\n C16 cases against an isolated 04 enterprise-platform 6ae2a13 shared clone\n- C16_BROWSER_ACCEPTANCE=1 pnpm check:ui: 14 passed (12 demo incl. real C16\n browser + 2 Keycloak OIDC) / 0 failed, floor 13\n- pnpm check:governance (required): passed, no regressions\nD3 preservation manifest: 65 files (25 SQL) sha256-identical; no migration.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/68e37c0e4e8cdcd99f9d60bae36eee08556bfa7f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T00:11:01-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/backend-behavior-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},{"id":"563f3d3841ee758cb82b4c6a242021bec9b0efd2","message":"fix(realtime): keep D3 preservation files byte-identical (revert contracts comment edits)\n\npackages/contracts/src/realtime.ts and subscription.ts are in the D3\npreservation manifest (65 files incl. 25 SQL, sha256-pinned). The previous\ncommit edited only their header comments; restore them to 42c886e bytes and\nrecord in CLAUDE.md dynamic region and the implementation record that those\ncomments still describe tenant-only filtering and are superseded by the\nrealtime object-scope record. No behaviour change; full gates re-run next.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/563f3d3841ee758cb82b4c6a242021bec9b0efd2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T00:06:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/实时通道对象授权实施记录-2026-10-27.md","packages/contracts/src/realtime.ts","packages/contracts/src/subscription.ts"]},{"id":"2b49b0f07582f43ef225a525ae004c4df93461ff","message":"test: record PM-06 realtime object-scope acceptance on clean a5817fa (runtime 296/floor 290, UI 14/floor 13)\n\nAll reports come from the committed candidate a5817fa (worktreeDirty=false):\n- pnpm check: pass (lint/typecheck also re-run with turbo --force, 19/19)\n- pnpm check:runtime: 296 passed / 0 failed, floor 290; includes the 6 real\n C16 cases against an isolated 04 enterprise-platform 6ae2a13 shared clone\n (permission/audit/collaboration-messaging, loopback, test-only fixtures)\n- C16_BROWSER_ACCEPTANCE=1 pnpm check:ui: 14 passed (12 demo incl. real C16\n browser + 2 Keycloak OIDC) / 0 failed, floor 13\n- pnpm check:governance (required): passed, no regressions\n\nTwo earlier check:ui attempts on the same SHA failed because of gate-env\nmistakes (platform tenant map missing the -nestjs suffix; reused UI tenant\nleft a previous run's ticket selected); both reports kept outside the repo.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/2b49b0f07582f43ef225a525ae004c4df93461ff","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T00:05:21-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/backend-behavior-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]}],"total_commits":0,"head_commit":{"id":"80c8bdabb7ff33364f9d270d4a771bf25a2cad71","message":"test: record review-fix acceptance on clean 4708949 (runtime 298/floor 292, UI 14/floor 13)\n\nSupersedes the 68e37c0 reports. All reports come from committed 4708949\n(worktreeDirty=false):\n- pnpm check: pass; lint/typecheck re-run with turbo --force 19/19\n- pnpm check:runtime: 298 passed / 0 failed, floor 292; includes the 6 real\n C16 cases against an isolated 04 enterprise-platform 6ae2a13 shared clone\n- C16_BROWSER_ACCEPTANCE=1 pnpm check:ui: 14 passed (12 demo incl. real C16\n browser + 2 Keycloak OIDC) / 0 failed, floor 13\n- pnpm check:governance (required): passed, no regressions\nD3 preservation manifest: 65 files (25 SQL) sha256-identical; no migration.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/80c8bdabb7ff33364f9d270d4a771bf25a2cad71","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T01:00:48-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/backend-behavior-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},"repository":{"id":82,"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":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":4047,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.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-08-26T09:08:57+08:00","updated_at":"2026-10-28T10:29:14+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"}}... |