| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7fc8eac049de96e596bb7211c6723eada19b5c6e","after":"3828481b87e0bdd3010cefb5b098be2a548dc072","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/7fc8eac049de96e596bb7211c6723eada19b5c6e...3828481b87e0bdd3010cefb5b098be2a548dc072","commits":[{"id":"3828481b87e0bdd3010cefb5b098be2a548dc072","message":"test(governance): refresh release and runtime evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/3828481b87e0bdd3010cefb5b098be2a548dc072","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-23T04:41:15-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/leave.http.test.ts","apps/api-fastify/test/payroll-foundation.http.test.ts","apps/api-fastify/test/payroll-profiles.http.test.ts","apps/api-fastify/test/payroll-runs.http.test.ts","apps/api-fastify/test/workforce-time.http.test.ts","apps/api-nestjs/test/leave.http.test.ts","apps/api-nestjs/test/payroll-foundation.http.test.ts","apps/api-nestjs/test/payroll-profiles.http.test.ts","apps/api-nestjs/test/payroll-runs.http.test.ts","apps/api-nestjs/test/workforce-time.http.test.ts","products/juhai.hr/readiness.json","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-os-product-layer.mjs","scripts/governance-report.mjs"]},{"id":"a60edd33a5ea2c056c25809282d57ff326eb52ab","message":"feat(agent): connect HR product to OS control plane\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/a60edd33a5ea2c056c25809282d57ff326eb52ab","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-23T04:21:43-07:00","added":["docs/deployment-record-2026-09-23-agent-control-plane-os-integration.md","docs/domain/agent-control-plane-integration-blueprint.md","products/juhai.hr/acceptance/agent-tools.contract.test.mjs","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/transfer-service.d.mts","products/juhai.hr/src/transfer-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/bundle-index.json","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/acceptance/agent-tools.contract.test.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/distribution.json","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/manifest.json","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-policy.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-policy.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/transfer-service.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/transfer-service.mjs","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/0a980c0573c1b49d24ee1c00367541e1b1a67fe67cac49d6cf3382d275d1d8f4/products/juhai.hr/src/web-workspace.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","docs/domain/os-product-layer-blueprint.md","docs/domain/owner-matrix.md","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/manifest.json","products/juhai.hr/readiness.json","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-workbench.mjs","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-runtime.rejected.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-migrations-runtime.latest.json","reports/os-product-privacy.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-apply-preview.latest.json","reports/os-product-registration-candidate.latest.json","reports/os-product-registration-verification.latest.json","reports/os-product-registration.latest.json","reports/os-product-sql-runtime.latest.json","reports/os-product-sql-runtime.rejected.json","reports/os-product-upgrade-candidate.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/audit-os-product-rebase-decision.mjs","scripts/audit-os-product-upgrade-candidate.mjs","scripts/check-os-product-host-runtime.mjs","scripts/check-os-product-host-ui.mjs","scripts/check-os-product-layer.mjs","scripts/check-os-product-registration.mjs","scripts/lib/os-product-migration-governance.mjs","scripts/prepare-os-product-registration-candidate.mjs","scripts/serve-os-product-host.mjs"]}],"total_commits":0,"head_commit":{"id":"3828481b87e0bdd3010cefb5b098be2a548dc072","message":"test(governance): refresh release and runtime evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/3828481b87e0bdd3010cefb5b098be2a548dc072","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-23T04:41:15-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/leave.http.test.ts","apps/api-fastify/test/payroll-foundation.http.test.ts","apps/api-fastify/test/payroll-profiles.http.test.ts","apps/api-fastify/test/payroll-runs.http.test.ts","apps/api-fastify/test/workforce-time.http.test.ts","apps/api-nestjs/test/leave.http.test.ts","apps/api-nestjs/test/payroll-foundation.http.test.ts","apps/api-nestjs/test/payroll-profiles.http.test.ts","apps/api-nestjs/test/payroll-runs.http.test.ts","apps/api-nestjs/test/workforce-time.http.test.ts","products/juhai.hr/readiness.json","reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-bundle.latest.json","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/outbox-multi-instance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-os-product-layer.mjs","scripts/governance-report.mjs"]},"repository":{"id":83,"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-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":5693,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-23T18:22:26+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"}}... |