|
23880
|
feat(platform): consume verified RC contracts and feat(platform): consume verified RC contracts and governance with private CI auth...
|
76
|
5
|
governance.yml
|
40
|
5
|
0
|
refs/heads/main
|
5f885a2a77b66d0ae55dff6ae8f1e2a64e087670
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a772517da3040f54e5d2c91fa5e1c133cabd3c17","after":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/a772517da3040f54e5d2c91fa5e1c133cabd3c17...5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","commits":[{"id":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","message":"feat(platform): consume verified RC contracts and governance with private CI auth\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","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-12T01:51:30-07:00","added":[".github/workflows/platform-governance.yml","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".npmrc","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/compose.yml","docs/operations/production-runbook.md","package.json","pnpm-lock.yaml","scripts/check-all.mjs"]}],"total_commits":0,"head_commit":{"id":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","message":"feat(platform): consume verified RC contracts and governance with private CI auth\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","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-12T01:51:30-07:00","added":[".github/workflows/platform-governance.yml","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".npmrc","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/compose.yml","docs/operations/production-runbook.md","package.json","pnpm-lock.yaml","scripts/check-all.mjs"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":82774,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-05T13:02:37+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"}}...
|
push
|
2
|
36
|
1789203138
|
1789203259
|
0
|
1789203137
|
1789203381
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23882
|
feat(platform): pin published RC contracts and gov feat(platform): pin published RC contracts and governance in HR checks...
|
83
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
df46b98835ff77c7f4675e043d0869799fbb8d08
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c652cd634964e915a0a9895cc9a91be4381333b0","after":"df46b98835ff77c7f4675e043d0869799fbb8d08","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/c652cd634964e915a0a9895cc9a91be4381333b0...df46b98835ff77c7f4675e043d0869799fbb8d08","commits":[{"id":"df46b98835ff77c7f4675e043d0869799fbb8d08","message":"feat(platform): pin published RC contracts and governance in HR checks\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/df46b98835ff77c7f4675e043d0869799fbb8d08","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-12T01:51:37-07:00","added":[".github/workflows/platform-governance.yml",".npmrc","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"df46b98835ff77c7f4675e043d0869799fbb8d08","message":"feat(platform): pin published RC contracts and governance in HR checks\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/df46b98835ff77c7f4675e043d0869799fbb8d08","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-12T01:51:37-07:00","added":[".github/workflows/platform-governance.yml",".npmrc","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","package.json","pnpm-lock.yaml"]},"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":3899,"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":1,"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-08-30T15:09:56+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"}}...
|
push
|
2
|
6
|
1789203290
|
1789203320
|
0
|
1789203232
|
1789203322
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23886
|
test(platform): keep dispatcher fixtures aligned w test(platform): keep dispatcher fixtures aligned with Redis client options...
|
83
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
c934bc46240daae849ad93cfacaa3b25c41b323f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df46b98835ff77c7f4675e043d0869799fbb8d08","after":"c934bc46240daae849ad93cfacaa3b25c41b323f","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/df46b98835ff77c7f4675e043d0869799fbb8d08...c934bc46240daae849ad93cfacaa3b25c41b323f","commits":[{"id":"c934bc46240daae849ad93cfacaa3b25c41b323f","message":"test(platform): keep dispatcher fixtures aligned with Redis client options\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c934bc46240daae849ad93cfacaa3b25c41b323f","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-12T02:38:16-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"]},{"id":"330a3287b5c0b68652d73af62cab45f99b0d5a84","message":"fix(platform): scope realtime channels for shared development Redis\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/330a3287b5c0b68652d73af62cab45f99b0d5a84","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-12T02:26:46-07:00","added":["docs/platform-shared-dev.md","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"],"removed":[],"modified":[".gitignore","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","packages/contracts/src/realtime.ts"]}],"total_commits":0,"head_commit":{"id":"c934bc46240daae849ad93cfacaa3b25c41b323f","message":"test(platform): keep dispatcher fixtures aligned with Redis client options\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c934bc46240daae849ad93cfacaa3b25c41b323f","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-12T02:38:16-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.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":4021,"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":1,"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-12T16:53:52+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"}}...
|
push
|
2
|
6
|
1789206500
|
1789206529
|
0
|
1789206499
|
1789206529
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23888
|
fix(platform): keep Fastify development Redis isol fix(platform): keep Fastify development Redis isolated on database 11...
|
76
|
5
|
governance.yml
|
42
|
5
|
0
|
refs/heads/main
|
61e00f88d70ca5b4fc186baadde559375a90e339
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","after":"61e00f88d70ca5b4fc186baadde559375a90e339","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/5f885a2a77b66d0ae55dff6ae8f1e2a64e087670...61e00f88d70ca5b4fc186baadde559375a90e339","commits":[{"id":"61e00f88d70ca5b4fc186baadde559375a90e339","message":"fix(platform): keep Fastify development Redis isolated on database 11\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/61e00f88d70ca5b4fc186baadde559375a90e339","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-12T02:38:45-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","docs/platform-shared-dev.md","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"]},{"id":"2fef8653ab472b10e1e52c143f2f37c0afbe8d6e","message":"fix(platform): isolate development PubSub and preserve historical environments\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2fef8653ab472b10e1e52c143f2f37c0afbe8d6e","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-12T02:26:52-07:00","added":["docs/platform-shared-dev.md","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"],"removed":[],"modified":[".gitignore","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/test/triggers.integration.test.ts","packages/contracts/src/realtime.ts"]}],"total_commits":0,"head_commit":{"id":"61e00f88d70ca5b4fc186baadde559375a90e339","message":"fix(platform): keep Fastify development Redis isolated on database 11\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/61e00f88d70ca5b4fc186baadde559375a90e339","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-12T02:38:45-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","docs/platform-shared-dev.md","packages/contracts/src/realtime-database.test.ts","scripts/with-platform-dev.mjs"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":82938,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-12T16:52:17+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"}}...
|
push
|
2
|
36
|
1789206543
|
1789206557
|
0
|
1789206510
|
1789206591
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23913
|
docs(governance): record clean RC1 consumer verifi docs(governance): record clean RC1 consumer verification...
|
83
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
caf551df74c25b3bad8b1a5540f3cc8900649b2d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c934bc46240daae849ad93cfacaa3b25c41b323f","after":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/c934bc46240daae849ad93cfacaa3b25c41b323f...caf551df74c25b3bad8b1a5540f3cc8900649b2d","commits":[{"id":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/caf551df74c25b3bad8b1a5540f3cc8900649b2d","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-12T06:53:40-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["docs/platform-rc1-upgrade-2026-09-12.md"]},{"id":"c39a56fdb9dbf93e1a4623165569f225775be692","message":"chore(governance): consume platform RC1 and require contract fixtures\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c39a56fdb9dbf93e1a4623165569f225775be692","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-12T06:53:07-07:00","added":["docs/platform-rc1-upgrade-2026-09-12.md"],"removed":[],"modified":[".github/workflows/platform-governance.yml","CLAUDE.md","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/caf551df74c25b3bad8b1a5540f3cc8900649b2d","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-12T06:53:40-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["docs/platform-rc1-upgrade-2026-09-12.md"]},"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":4056,"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":1,"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-12T17:48: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"}}...
|
push
|
2
|
6
|
1789221260
|
1789221289
|
0
|
1789221259
|
1789221291
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23915
|
docs(governance): record clean RC1 consumer verifi docs(governance): record clean RC1 consumer verification...
|
76
|
5
|
governance.yml
|
44
|
5
|
0
|
refs/heads/main
|
2e0a21b4f10ddcf54ff726c454c1f389e5c95b63
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"61e00f88d70ca5b4fc186baadde559375a90e339","after":"2e0a21b4f10ddcf54ff726c454c1f389e5c95b63","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/61e00f88d70ca5b4fc186baadde559375a90e339...2e0a21b4f10ddcf54ff726c454c1f389e5c95b63","commits":[{"id":"2e0a21b4f10ddcf54ff726c454c1f389e5c95b63","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2e0a21b4f10ddcf54ff726c454c1f389e5c95b63","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-12T06:53:45-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["CLAUDE.md","docs/platform-rc1-upgrade-2026-09-12.md"]},{"id":"fee7c79784baee2964b05f77854a8b99590a4ac0","message":"chore(governance): consume platform RC1 and require contract fixtures\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fee7c79784baee2964b05f77854a8b99590a4ac0","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-12T06:53:12-07:00","added":["docs/platform-rc1-upgrade-2026-09-12.md"],"removed":[],"modified":[".github/workflows/platform-governance.yml","CLAUDE.md","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"2e0a21b4f10ddcf54ff726c454c1f389e5c95b63","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2e0a21b4f10ddcf54ff726c454c1f389e5c95b63","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-12T06:53:45-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["CLAUDE.md","docs/platform-rc1-upgrade-2026-09-12.md"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":83005,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-12T17:48:30+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"}}...
|
push
|
2
|
36
|
1789221303
|
1789221312
|
0
|
1789221262
|
1789221329
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23918
|
fix(ci): fetch report provenance history for HR go fix(ci): fetch report provenance history for HR governance...
|
83
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
6823a38dc4626db9f396978663efbc2493a1276c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","after":"6823a38dc4626db9f396978663efbc2493a1276c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/caf551df74c25b3bad8b1a5540f3cc8900649b2d...6823a38dc4626db9f396978663efbc2493a1276c","commits":[{"id":"6823a38dc4626db9f396978663efbc2493a1276c","message":"fix(ci): fetch report provenance history for HR governance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/6823a38dc4626db9f396978663efbc2493a1276c","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-12T06:58:07-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","docs/platform-rc1-upgrade-2026-09-12.md"]}],"total_commits":0,"head_commit":{"id":"6823a38dc4626db9f396978663efbc2493a1276c","message":"fix(ci): fetch report provenance history for HR governance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/6823a38dc4626db9f396978663efbc2493a1276c","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-12T06:58:07-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","docs/platform-rc1-upgrade-2026-09-12.md"]},"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":4233,"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":1,"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-12T21:54: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"}}...
|
push
|
2
|
6
|
1789221490
|
1789221525
|
0
|
1789221489
|
1789221527
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23932
|
docs(ops): record verified service restart on 2026 docs(ops): record verified service restart on 2026-09-13...
|
57
|
5
|
governance.yml
|
219
|
5
|
0
|
refs/heads/main
|
ee15aeee5a19ac28b0bb162b149bd7b900c09a5e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0ab42fc10e7bd94db12fcd439a5410d0930ab7f7","after":"ee15aeee5a19ac28b0bb162b149bd7b900c09a5e","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/0ab42fc10e7bd94db12fcd439a5410d0930ab7f7...ee15aeee5a19ac28b0bb162b149bd7b900c09a5e","commits":[{"id":"ee15aeee5a19ac28b0bb162b149bd7b900c09a5e","message":"docs(ops): record verified service restart on 2026-09-13\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ee15aeee5a19ac28b0bb162b149bd7b900c09a5e","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-12T20:20:02-07:00","added":["docs/governance/log/2026-09-13-service-restart.md","reports/restart-2026-09-13/verification.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"ee15aeee5a19ac28b0bb162b149bd7b900c09a5e","message":"docs(ops): record verified service restart on 2026-09-13\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ee15aeee5a19ac28b0bb162b149bd7b900c09a5e","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-12T20:20:02-07:00","added":["docs/governance/log/2026-09-13-service-restart.md","reports/restart-2026-09-13/verification.json"],"removed":[],"modified":[]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":947748,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-12T16:14:37+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"}}...
|
push
|
2
|
4
|
1789269618
|
1789269663
|
0
|
1789269616
|
1789269663
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23933
|
docs(ops): record local deployment credential reco docs(ops): record local deployment credential recovery...
|
76
|
5
|
governance.yml
|
46
|
5
|
0
|
refs/heads/main
|
18a1b036f3dbb3f51ac773862e0cafac278bb34e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e0a21b4f10ddcf54ff726c454c1f389e5c95b63","after":"18a1b036f3dbb3f51ac773862e0cafac278bb34e","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/2e0a21b4f10ddcf54ff726c454c1f389e5c95b63...18a1b036f3dbb3f51ac773862e0cafac278bb34e","commits":[{"id":"18a1b036f3dbb3f51ac773862e0cafac278bb34e","message":"docs(ops): record local deployment credential recovery\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/18a1b036f3dbb3f51ac773862e0cafac278bb34e","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-13T01:34:57-07:00","added":["docs/operations/local-restart-2026-09-13.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"18a1b036f3dbb3f51ac773862e0cafac278bb34e","message":"docs(ops): record local deployment credential recovery\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/18a1b036f3dbb3f51ac773862e0cafac278bb34e","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-13T01:34:57-07:00","added":["docs/operations/local-restart-2026-09-13.md"],"removed":[],"modified":[]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":83345,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-12T21:54:23+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"}}...
|
push
|
2
|
36
|
1789288509
|
1789288520
|
0
|
1789288508
|
1789288536
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23936
|
feat(content): number every editable content block
|
57
|
5
|
governance.yml
|
220
|
5
|
0
|
refs/heads/main
|
d3fbd4067795e6e683483f03dad85573cd6a7cd1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ee15aeee5a19ac28b0bb162b149bd7b900c09a5e","after":"d3fbd4067795e6e683483f03dad85573cd6a7cd1","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ee15aeee5a19ac28b0bb162b149bd7b900c09a5e...d3fbd4067795e6e683483f03dad85573cd6a7cd1","commits":[{"id":"d3fbd4067795e6e683483f03dad85573cd6a7cd1","message":"feat(content): number every editable content block\n\nThe 核对 step already refers to paragraphs as \"第 N 块\" and offers a 定位\nbutton per issue, but the editor itself never showed a number, so the\nreader had to count. Each editable block now carries its position as a\nbadge left of the type selector (aria-label \"第 N 块\"); preview mode\nrenders no toolbar, so the numbers stay out of the finished draft. The\nbrowser acceptance asserts the badge reads \"1\" while editing and is\nabsent in preview.\n\nVerified on source fingerprint\nsha256:f368d571fff347125bde8e62213bc4476098bccc0c80a0a886c75f92f3f10c45\nin an isolated stack: runtime, public-file, inference, script,\nproduction, ui, deps and shijie all passed, then the full `pnpm check`\nchain. The CLAUDE.md baseline rows now point at this fingerprint.\nEvidence: reports/content-block-index-2026-09-13/ and\nacceptance-artifacts/content-block-index-2026-09-13/.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d3fbd4067795e6e683483f03dad85573cd6a7cd1","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-13T20:33:39-07:00","added":["docs/governance/log/2026-09-13-content-block-index.md","reports/content-block-index-2026-09-13/README.md","reports/content-block-index-2026-09-13/gates.jsonl"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/ContentStudio.tsx","apps/web/src/components/material-factory/content-studio.module.css","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-result.png","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1440.png","reports/template-preview.templates.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png","scripts/lib/content-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"d3fbd4067795e6e683483f03dad85573cd6a7cd1","message":"feat(content): number every editable content block\n\nThe 核对 step already refers to paragraphs as \"第 N 块\" and offers a 定位\nbutton per issue, but the editor itself never showed a number, so the\nreader had to count. Each editable block now carries its position as a\nbadge left of the type selector (aria-label \"第 N 块\"); preview mode\nrenders no toolbar, so the numbers stay out of the finished draft. The\nbrowser acceptance asserts the badge reads \"1\" while editing and is\nabsent in preview.\n\nVerified on source fingerprint\nsha256:f368d571fff347125bde8e62213bc4476098bccc0c80a0a886c75f92f3f10c45\nin an isolated stack: runtime, public-file, inference, script,\nproduction, ui, deps and shijie all passed, then the full `pnpm check`\nchain. The CLAUDE.md baseline rows now point at this fingerprint.\nEvidence: reports/content-block-index-2026-09-13/ and\nacceptance-artifacts/content-block-index-2026-09-13/.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d3fbd4067795e6e683483f03dad85573cd6a7cd1","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-13T20:33:39-07:00","added":["docs/governance/log/2026-09-13-content-block-index.md","reports/content-block-index-2026-09-13/README.md","reports/content-block-index-2026-09-13/gates.jsonl"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/ContentStudio.tsx","apps/web/src/components/material-factory/content-studio.module.css","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-result.png","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1440.png","reports/template-preview.templates.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png","scripts/lib/content-ui-acceptance.mjs"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":947766,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-13T11:20:16+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"}}...
|
push
|
2
|
4
|
1789356845
|
1789356891
|
0
|
1789356844
|
1789356891
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23937
|
test(gates): re-run all eight heavy gates at the n test(gates): re-run all eight heavy gates at the new fingerprint...
|
57
|
5
|
governance.yml
|
221
|
5
|
0
|
refs/heads/main
|
9cc15150d067694c6a44837fe08ccbaf47d84767
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d3fbd4067795e6e683483f03dad85573cd6a7cd1","after":"9cc15150d067694c6a44837fe08ccbaf47d84767","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/d3fbd4067795e6e683483f03dad85573cd6a7cd1...9cc15150d067694c6a44837fe08ccbaf47d84767","commits":[{"id":"9cc15150d067694c6a44837fe08ccbaf47d84767","message":"test(gates): re-run all eight heavy gates at the new fingerprint\n\nThe earlier claim that heavy gates could not run in this session was wrong.\nWhat auto mode blocks is reading the production stack's credentials -- and the\nexisting runner never needed them: it provisions its own isolated postgres,\nredis and minio containers with self-generated passwords and copies the virus\ndatabase out of hi-atelier-clamav-1 into a private clamd. Reused that recipe\nwith distinct container names and ports.\n\nAll eight gates pass: runtime, public-file, inference, script, shijie,\nproduction, ui, deps. clamd probe is real (PING/PONG, EICAR FOUND, clean OK).\nPer the repo's own lesson that ALL_GATES_PASSED does not by itself prove the\nreports are current, each report's sourceFingerprint was machine-compared\nagainst the working tree: all eight equal b9a349f9 with status=passed.\n\ncheck:ui is the evidence that matters here -- with the demo-button click gone,\nthe OCR and export assertions now run against the instance left by the real\nCreativeOperation path, and the browser run confirms that instance still has no\nrendered asset, so the assertions keep their meaning.\n\nThe 12 baseline rows marked OPEN in the previous commit are restored to GREEN\non this fresh evidence. check:governance exits 0 with heavyGateDocDrift 0.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9cc15150d067694c6a44837fe08ccbaf47d84767","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-13T21:26:25-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-13-appearance-edit-queued-audit.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/director-workbench.desktop.png","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1440.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-result.png","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/render-job-drainability.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-making.390.png","reports/template-making.768.png","reports/template-preview.templates.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},{"id":"befdfea0383f867d23cae49c9b3288b18ff39c1d","message":"docs(governance): ratchet the new gate and mark stale heavy rows OPEN\n\nRegisters renderJobDrainabilityViolations and\nrenderJobDrainabilitySelftestFailures in reports/baseline.json at 0 (the\nstrictest value for a down ratchet; --update-baseline validates before\nwriting so it cannot bootstrap a brand-new metric), and adds the gate to the\nCLAUDE.md baseline table plus a source-map row naming\nexecuteCreativeOperation as the single outward render entry point.\n\nThis round touched apps/ and scripts/, so the source fingerprint moved from\nf368d571 to b9a349f9 and 12 baseline rows bound to the old evidence went\nstale. Auto mode blocked re-running the heavy gates (reading MinIO/ClamAV\ncredentials and provisioning an isolated database are both denied), so those\nrows are marked 🟡 OPEN rather than left claiming ✅ on stale evidence.\nheavyGateDocDrift returns to 0 because the doc no longer outruns the machine\nevidence, not because the evidence is fresh.\n\ncheck:governance now exits 0; check:scripts 94/94 pass. check:ui still needs\na real re-run before this round can be called ready.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/befdfea0383f867d23cae49c9b3288b18ff39c1d","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-13T21:12:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-13-appearance-edit-queued-audit.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/render-job-drainability.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"75ab917550cf4fc78362fcd8672127bff55fddb5","message":"fix(material): retire the registration-only render-jobs entry point\n\nPOST /material-factory/instances/:id/render-jobs created a RenderJob at the\nschema default QUEUED and returned. Nothing in the repo drains a factory-path\nQUEUED row: render-worker only claims productionId+revisionId+CLAIMED, no\nBullMQ queue scans them, the outbox dispatcher only publishes to Redis, and\npoll-on-read filters sourceAssetId/maskAssetId NOT NULL which that path never\nsets. Every call therefore minted a permanently stuck row -- 39 of them in the\nlocal production database.\n\nRemoved the route from both backends, the enqueueRenderJob web wrapper, and the\ndemo-gated \"create demo instance\" button that the UI acceptance script clicked\nonce per run. requestRenderJob stays as the internal first step of\nrunRenderPipeline, which transitions QUEUED-\u003eRUNNING synchronously; the real\nuser path (executeCreativeOperation -\u003e creative worker) is unchanged.\n\nAdded check:render-drainability, a static gate with 8 negative injections that\nfails if any route, web wrapper, demo button or acceptance click comes back, or\nif either backend's runRenderPipeline loses its synchronous QUEUED-\u003eRUNNING\ntransition. Registered in governance-report with a violations + selftest\nratchet.\n\nVerified: turbo typecheck 23/23, turbo lint 11/11, naming/validation/\ncontract-consumers/module-boundary/schema gates pass, gate selftest 8/8 red.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/75ab917550cf4fc78362fcd8672127bff55fddb5","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-13T21:03:03-07:00","added":["reports/render-job-drainability.latest.json","scripts/check-render-job-drainability.mjs"],"removed":[],"modified":["apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/lib/api.ts","package.json","reports/contract-consumers.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"9ae843f023c4987a566a4c92e0011fe0caf49c70","message":"docs(governance): audit the 39 abandoned APPEARANCE_EDIT QUEUED rows\n\nRead-only investigation; no production rows were mutated.\n\nRoot cause: POST /instances/:id/render-jobs (requestRenderJob) is a\nregistration-only endpoint by design and has never had a consumer. The\nrender worker requires productionId+revisionId+CLAIMED, no BullMQ queue\nscans factory QUEUED rows, the outbox dispatcher only publishes to Redis,\nand poll-on-read filters sourceAssetId/maskAssetId NOT NULL -- which these\nrows never have. QUEUED is effectively terminal on that path.\n\nThe rows come from the demo-gated \"create demo instance\" button in\nEditStudio, clicked by check-ui-acceptance.mjs; all 39 tenants match the\nui-acceptance-\u003cts\u003e-\u003crunid\u003e format. Not a dispatcher regression: both the\nbutton and its acceptance click date to the initial commit fc2ce503. They\nstopped on 09-05 because heavy gates moved to an isolated database, not\nbecause of a code fix.\n\nThe real user path (run-real-pipeline -\u003e CreativeOperation -\u003e creative\nworker) drains normally, and prod runs SINGLE_TENANT so the demo button is\nnot rendered for real users.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9ae843f023c4987a566a4c92e0011fe0caf49c70","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-13T20:57:21-07:00","added":["docs/governance/log/2026-09-13-appearance-edit-queued-audit.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"9cc15150d067694c6a44837fe08ccbaf47d84767","message":"test(gates): re-run all eight heavy gates at the new fingerprint\n\nThe earlier claim that heavy gates could not run in this session was wrong.\nWhat auto mode blocks is reading the production stack's credentials -- and the\nexisting runner never needed them: it provisions its own isolated postgres,\nredis and minio containers with self-generated passwords and copies the virus\ndatabase out of hi-atelier-clamav-1 into a private clamd. Reused that recipe\nwith distinct container names and ports.\n\nAll eight gates pass: runtime, public-file, inference, script, shijie,\nproduction, ui, deps. clamd probe is real (PING/PONG, EICAR FOUND, clean OK).\nPer the repo's own lesson that ALL_GATES_PASSED does not by itself prove the\nreports are current, each report's sourceFingerprint was machine-compared\nagainst the working tree: all eight equal b9a349f9 with status=passed.\n\ncheck:ui is the evidence that matters here -- with the demo-button click gone,\nthe OCR and export assertions now run against the instance left by the real\nCreativeOperation path, and the browser run confirms that instance still has no\nrendered asset, so the assertions keep their meaning.\n\nThe 12 baseline rows marked OPEN in the previous commit are restored to GREEN\non this fresh evidence. check:governance exits 0 with heavyGateDocDrift 0.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9cc15150d067694c6a44837fe08ccbaf47d84767","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-13T21:26:25-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-13-appearance-edit-queued-audit.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/director-workbench.desktop.png","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1440.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-result.png","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/render-job-drainability.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-making.390.png","reports/template-making.768.png","reports/template-preview.templates.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":956436,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":15,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-14T11:39:52+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"}}...
|
push
|
2
|
4
|
1789360061
|
1789360151
|
0
|
1789360061
|
1789360151
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23940
|
docs(governance): record the verified ui-acceptanc docs(governance): record the verified ui-acceptance purge...
|
57
|
5
|
governance.yml
|
222
|
5
|
0
|
refs/heads/main
|
68192ddd237389ed9c7bca797b2ff8a31e77b5f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9cc15150d067694c6a44837fe08ccbaf47d84767","after":"68192ddd237389ed9c7bca797b2ff8a31e77b5f0","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/9cc15150d067694c6a44837fe08ccbaf47d84767...68192ddd237389ed9c7bca797b2ff8a31e77b5f0","commits":[{"id":"68192ddd237389ed9c7bca797b2ff8a31e77b5f0","message":"docs(governance): record the verified ui-acceptance purge\n\nThe purge ran on the host while the heavy gates were executing. Verified\nafter the fact: ui-acceptance rows 3258 -\u003e 0, QUEUED RenderJob 39 -\u003e 0,\ndemo-tenant RenderJob unchanged at 387, total RenderJob 471 -\u003e 387 (exactly\nthe 84 rows those tenants held). \"Zero QUEUED RenderJob across the database\"\nis a meaningful invariant again.\n\nOnly the deploy remains; release.sh is blocked by the auto-mode classifier.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/68192ddd237389ed9c7bca797b2ff8a31e77b5f0","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-13T21:42:38-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-13-appearance-edit-queued-audit.md"]}],"total_commits":0,"head_commit":{"id":"68192ddd237389ed9c7bca797b2ff8a31e77b5f0","message":"docs(governance): record the verified ui-acceptance purge\n\nThe purge ran on the host while the heavy gates were executing. Verified\nafter the fact: ui-acceptance rows 3258 -\u003e 0, QUEUED RenderJob 39 -\u003e 0,\ndemo-tenant RenderJob unchanged at 387, total RenderJob 471 -\u003e 387 (exactly\nthe 84 rows those tenants held). \"Zero QUEUED RenderJob across the database\"\nis a meaningful invariant again.\n\nOnly the deploy remains; release.sh is blocked by the auto-mode classifier.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/68192ddd237389ed9c7bca797b2ff8a31e77b5f0","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-13T21:42:38-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-13-appearance-edit-queued-audit.md"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":969462,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":15,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-14T12:27:41+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"}}...
|
push
|
2
|
4
|
1789361027
|
1789361070
|
0
|
1789361014
|
1789361070
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23942
|
docs(releases): record the block-index1 deployment
|
57
|
5
|
governance.yml
|
223
|
5
|
0
|
refs/heads/main
|
03af8485a034617648b6ab8e8591683d7eab86ce
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"68192ddd237389ed9c7bca797b2ff8a31e77b5f0","after":"03af8485a034617648b6ab8e8591683d7eab86ce","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/68192ddd237389ed9c7bca797b2ff8a31e77b5f0...03af8485a034617648b6ab8e8591683d7eab86ce","commits":[{"id":"03af8485a034617648b6ab8e8591683d7eab86ce","message":"docs(releases): record the block-index1 deployment\n\nrelease-20260913-block-index1 is live on d3fbd406 (fingerprint\nf368d571…): five components healthy with restarts=0, 13 backups, no\nschema change, queue healthy before and after, and all 11 boundary\nprobes as expected. The record keeps the two aborted starts — a\nconcurrent second invocation hitting .release-lock, then the preflight\nrefusing on renderRunning=1 until a 15-hour-old wan3.0-video job settled\nSUCCEEDED through a normal poll-on-read. current.md also states that main\nhas since moved to 68192ddd, which is not deployed.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/03af8485a034617648b6ab8e8591683d7eab86ce","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-13T22:27:14-07:00","added":["docs/releases/2026-09-13-block-index1.md"],"removed":[],"modified":["docs/releases/current.md"]}],"total_commits":0,"head_commit":{"id":"03af8485a034617648b6ab8e8591683d7eab86ce","message":"docs(releases): record the block-index1 deployment\n\nrelease-20260913-block-index1 is live on d3fbd406 (fingerprint\nf368d571…): five components healthy with restarts=0, 13 backups, no\nschema change, queue healthy before and after, and all 11 boundary\nprobes as expected. The record keeps the two aborted starts — a\nconcurrent second invocation hitting .release-lock, then the preflight\nrefusing on renderRunning=1 until a 15-hour-old wan3.0-video job settled\nSUCCEEDED through a normal poll-on-read. current.md also states that main\nhas since moved to 68192ddd, which is not deployed.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/03af8485a034617648b6ab8e8591683d7eab86ce","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-13T22:27:14-07:00","added":["docs/releases/2026-09-13-block-index1.md"],"removed":[],"modified":["docs/releases/current.md"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":969477,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":15,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-14T12:43:34+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"}}...
|
push
|
2
|
4
|
1789363658
|
1789363748
|
0
|
1789363656
|
1789363748
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23943
|
docs(releases): record the drainability1 deploymen docs(releases): record the drainability1 deployment...
|
57
|
5
|
governance.yml
|
224
|
5
|
0
|
refs/heads/main
|
9b6c67138ce98d75ab96f8879b73cd3090825f1f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"03af8485a034617648b6ab8e8591683d7eab86ce","after":"9b6c67138ce98d75ab96f8879b73cd3090825f1f","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/03af8485a034617648b6ab8e8591683d7eab86ce...9b6c67138ce98d75ab96f8879b73cd3090825f1f","commits":[{"id":"9b6c67138ce98d75ab96f8879b73cd3090825f1f","message":"docs(releases): record the drainability1 deployment\n\nrelease-20260913-drainability1 is live on 03af8485 (fingerprint\nb9a349f9…), so the service and main now share one fingerprint. Five\ncomponents healthy with restarts=0, 13 backups, no schema change, queue\nhealthy before and after, 11 boundary probes as expected. Verified after\nthe switch that the retired instances/:id/render-jobs route is absent\nfrom the running api image and that the database holds no QUEUED or\nRUNNING RenderJob.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9b6c67138ce98d75ab96f8879b73cd3090825f1f","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-13T22:37:48-07:00","added":["docs/releases/2026-09-13-drainability1.md"],"removed":[],"modified":["docs/releases/current.md"]}],"total_commits":0,"head_commit":{"id":"9b6c67138ce98d75ab96f8879b73cd3090825f1f","message":"docs(releases): record the drainability1 deployment\n\nrelease-20260913-drainability1 is live on 03af8485 (fingerprint\nb9a349f9…), so the service and main now share one fingerprint. Five\ncomponents healthy with restarts=0, 13 backups, no schema change, queue\nhealthy before and after, 11 boundary probes as expected. Verified after\nthe switch that the retired instances/:id/render-jobs route is absent\nfrom the running api image and that the database holds no QUEUED or\nRUNNING RenderJob.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9b6c67138ce98d75ab96f8879b73cd3090825f1f","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-13T22:37:48-07:00","added":["docs/releases/2026-09-13-drainability1.md"],"removed":[],"modified":["docs/releases/current.md"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":969486,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":15,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-14T13:27:49+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"}}...
|
push
|
3
|
4
|
1789364329
|
1789364728
|
0
|
1789364329
|
1789364728
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23944
|
docs(ops): record the second service restart on 20 docs(ops): record the second service restart on 2026-09-13...
|
57
|
5
|
governance.yml
|
225
|
5
|
0
|
refs/heads/main
|
6d311a68c7d30ec257cc1316a3fb3cb57699ed00
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9b6c67138ce98d75ab96f8879b73cd3090825f1f","after":"6d311a68c7d30ec257cc1316a3fb3cb57699ed00","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/9b6c67138ce98d75ab96f8879b73cd3090825f1f...6d311a68c7d30ec257cc1316a3fb3cb57699ed00","commits":[{"id":"6d311a68c7d30ec257cc1316a3fb3cb57699ed00","message":"docs(ops): record the second service restart on 2026-09-13\n\nRestarted the six application containers in place on the user's request,\nkeeping release-20260913-drainability1, its images and every data volume.\nAll five components came back healthy within 30 seconds with the image\nrevision label still equal to the deployed fingerprint; workspace, gateway\nhealth with database and redis up, the three retired legacy routes at 404,\nsidecar healthz ok with paddle-ocr ready, and the creative queue at zero\nboth before and after.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6d311a68c7d30ec257cc1316a3fb3cb57699ed00","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-13T22:44:28-07:00","added":["docs/governance/log/2026-09-13-service-restart-2.md","reports/restart-2026-09-13/verification-2.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"6d311a68c7d30ec257cc1316a3fb3cb57699ed00","message":"docs(ops): record the second service restart on 2026-09-13\n\nRestarted the six application containers in place on the user's request,\nkeeping release-20260913-drainability1, its images and every data volume.\nAll five components came back healthy within 30 seconds with the image\nrevision label still equal to the deployed fingerprint; workspace, gateway\nhealth with database and redis up, the three retired legacy routes at 404,\nsidecar healthz ok with paddle-ocr ready, and the creative queue at zero\nboth before and after.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6d311a68c7d30ec257cc1316a3fb3cb57699ed00","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-13T22:44:28-07:00","added":["docs/governance/log/2026-09-13-service-restart-2.md","reports/restart-2026-09-13/verification-2.json"],"removed":[],"modified":[]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":969494,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":15,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-14T13:39:00+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"}}...
|
push
|
2
|
4
|
1789365364
|
1789365454
|
0
|
1789364728
|
1789365454
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23945
|
docs(ops): record the 2026-09-14 service restart
|
57
|
5
|
governance.yml
|
226
|
5
|
0
|
refs/heads/main
|
9f02b16c4968771143aee412b6f58291cbbe9dfb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6d311a68c7d30ec257cc1316a3fb3cb57699ed00","after":"9f02b16c4968771143aee412b6f58291cbbe9dfb","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/6d311a68c7d30ec257cc1316a3fb3cb57699ed00...9f02b16c4968771143aee412b6f58291cbbe9dfb","commits":[{"id":"9f02b16c4968771143aee412b6f58291cbbe9dfb","message":"docs(ops): record the 2026-09-14 service restart\n\nRestarted the six application containers in place on the user's request,\nkeeping release-20260913-drainability1, its images and every data volume.\nAll five components came back healthy within 12 seconds with the image\nrevision label still equal to the deployed fingerprint; all eleven release\nprobes pass, sidecar healthz ok with paddle-ocr ready, and the creative\nqueue is byte-identical before and after (one pre-existing isolated\nUNKNOWN operation, blockingUnknown=0) with zero QUEUED/RUNNING RenderJob.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9f02b16c4968771143aee412b6f58291cbbe9dfb","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-14T06:54:00-07:00","added":["docs/governance/log/2026-09-14-service-restart.md","reports/restart-2026-09-14/verification.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"9f02b16c4968771143aee412b6f58291cbbe9dfb","message":"docs(ops): record the 2026-09-14 service restart\n\nRestarted the six application containers in place on the user's request,\nkeeping release-20260913-drainability1, its images and every data volume.\nAll five components came back healthy within 12 seconds with the image\nrevision label still equal to the deployed fingerprint; all eleven release\nprobes pass, sidecar healthz ok with paddle-ocr ready, and the creative\nqueue is byte-identical before and after (one pre-existing isolated\nUNKNOWN operation, blockingUnknown=0) with zero QUEUED/RUNNING RenderJob.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9f02b16c4968771143aee412b6f58291cbbe9dfb","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-14T06:54:00-07:00","added":["docs/governance/log/2026-09-14-service-restart.md","reports/restart-2026-09-14/verification.json"],"removed":[],"modified":[]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":969513,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":15,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-14T13:46:17+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"}}...
|
push
|
2
|
4
|
1789394055
|
1789395088
|
0
|
1789394053
|
1789395088
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23946
|
fix(cost): record and cap online image generation fix(cost): record and cap online image generation invocations...
|
57
|
5
|
governance.yml
|
227
|
5
|
0
|
refs/heads/main
|
13fe1037486e5d393f986446219e457190ec1863
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9f02b16c4968771143aee412b6f58291cbbe9dfb","after":"13fe1037486e5d393f986446219e457190ec1863","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/9f02b16c4968771143aee412b6f58291cbbe9dfb...13fe1037486e5d393f986446219e457190ec1863","commits":[{"id":"13fe1037486e5d393f986446219e457190ec1863","message":"fix(cost): record and cap online image generation invocations\n\nAdversarial acceptance found that generateConnectedImage — the online\nimage path for DASHSCOPE_WAN and OpenAI-compatible connections — called\nthe provider directly via postJson without withRecordedModelCall, the\none place that both writes a ModelInvocation and enforces the per-task\nbudget cap before dispatch. A real Wan 2.7 Pro custom-image generation\n(kind IMAGE / DESIGN_MASTER) therefore produced a genuine paid image\n(providerRequestId, ~28s, real PNG) but left no cost record, and the\nbrand's maxCostMicrosPerTask never applied. Every recorded wan2.7-image\ninvocation in the live DB came from ROLE/STILL (sidecar path); none from\nIMAGE — matching the gap. Video (sidecar) and text (connector) were\nalready wrapped and unaffected.\n\nWrap the online image call in withRecordedModelCall via a new\nconnectorImageCallPlan (modality IMAGE, connector-direct, external), map\nModelCostLimitError to the same COST_LIMIT_BLOCKED channel the text path\nuses, and report usage.images = 1 so the realized cost is ESTIMATED at\nthe catalog price, matching ROLE/STILL. Without an invocation context the\nwrapper passes through unchanged, so bare unit calls are unaffected.\n\nRegression in model-connector.client.test.ts: with a scope the online\nWan call records one IMAGE invocation (RUNNING -\u003e SUCCEEDED, 500000\nmicros, ESTIMATED); a per-task cap below the catalog price blocks before\ndispatch (COST_LIMIT_BLOCKED), the request never leaves the host, and one\nBLOCKED row is written.\n\nEvidence: acceptance-artifacts/adversarial-acceptance-2026-09-13/.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/13fe1037486e5d393f986446219e457190ec1863","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-14T10:01:08-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/src/material-factory/model-connector.client.ts","apps/api-nestjs/test/model-connector.client.test.ts","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.check-report-desktop.png","reports/content-detail.description-candidates-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1135.png","reports/image-creation-1440.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-result.png","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/render-job-drainability.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.png","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]}],"total_commits":0,"head_commit":{"id":"13fe1037486e5d393f986446219e457190ec1863","message":"fix(cost): record and cap online image generation invocations\n\nAdversarial acceptance found that generateConnectedImage — the online\nimage path for DASHSCOPE_WAN and OpenAI-compatible connections — called\nthe provider directly via postJson without withRecordedModelCall, the\none place that both writes a ModelInvocation and enforces the per-task\nbudget cap before dispatch. A real Wan 2.7 Pro custom-image generation\n(kind IMAGE / DESIGN_MASTER) therefore produced a genuine paid image\n(providerRequestId, ~28s, real PNG) but left no cost record, and the\nbrand's maxCostMicrosPerTask never applied. Every recorded wan2.7-image\ninvocation in the live DB came from ROLE/STILL (sidecar path); none from\nIMAGE — matching the gap. Video (sidecar) and text (connector) were\nalready wrapped and unaffected.\n\nWrap the online image call in withRecordedModelCall via a new\nconnectorImageCallPlan (modality IMAGE, connector-direct, external), map\nModelCostLimitError to the same COST_LIMIT_BLOCKED channel the text path\nuses, and report usage.images = 1 so the realized cost is ESTIMATED at\nthe catalog price, matching ROLE/STILL. Without an invocation context the\nwrapper passes through unchanged, so bare unit calls are unaffected.\n\nRegression in model-connector.client.test.ts: with a scope the online\nWan call records one IMAGE invocation (RUNNING -\u003e SUCCEEDED, 500000\nmicros, ESTIMATED); a per-task cap below the catalog price blocks before\ndispatch (COST_LIMIT_BLOCKED), the request never leaves the host, and one\nBLOCKED row is written.\n\nEvidence: acceptance-artifacts/adversarial-acceptance-2026-09-13/.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/13fe1037486e5d393f986446219e457190ec1863","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-14T10:01:08-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/src/material-factory/model-connector.client.ts","apps/api-nestjs/test/model-connector.client.test.ts","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.check-report-desktop.png","reports/content-detail.description-candidates-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1135.png","reports/image-creation-1440.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-result.png","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/render-job-drainability.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.png","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":969533,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":15,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-14T21:54:13+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"}}...
|
push
|
3
|
4
|
1789405395
|
1789405669
|
0
|
1789405394
|
1789405669
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23947
|
docs(governance): record the adversarial cost-reco docs(governance): record the adversarial cost-recording fix round...
|
57
|
5
|
governance.yml
|
228
|
5
|
0
|
refs/heads/main
|
591c7732f49294e52a383f9b42d3bb0d4a595712
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"13fe1037486e5d393f986446219e457190ec1863","after":"591c7732f49294e52a383f9b42d3bb0d4a595712","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/13fe1037486e5d393f986446219e457190ec1863...591c7732f49294e52a383f9b42d3bb0d4a595712","commits":[{"id":"591c7732f49294e52a383f9b42d3bb0d4a595712","message":"docs(governance): record the adversarial cost-recording fix round\n\nPoint the twelve heavy baseline rows at the reverified fingerprint\n603541f5 (the F1 fix), and log the adversarial acceptance round: the\nonline-image cost-recording blind spot, its fix and regression, the live\npaid delivery proof, the boundary probes that held, and the video path\nconfirmed correct. Evidence under reports/adversarial-acceptance-2026-09-14/.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/591c7732f49294e52a383f9b42d3bb0d4a595712","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-14T10:07:22-07:00","added":["docs/governance/log/2026-09-14-adversarial-cost-fix.md","reports/adversarial-acceptance-2026-09-14/README.md","reports/adversarial-acceptance-2026-09-14/gates-rerun.jsonl","reports/adversarial-acceptance-2026-09-14/gates-round1.jsonl"],"removed":[],"modified":["CLAUDE.md","reports/governance-docs.latest.json"]}],"total_commits":0,"head_commit":{"id":"591c7732f49294e52a383f9b42d3bb0d4a595712","message":"docs(governance): record the adversarial cost-recording fix round\n\nPoint the twelve heavy baseline rows at the reverified fingerprint\n603541f5 (the F1 fix), and log the adversarial acceptance round: the\nonline-image cost-recording blind spot, its fix and regression, the live\npaid delivery proof, the boundary probes that held, and the video path\nconfirmed correct. Evidence under reports/adversarial-acceptance-2026-09-14/.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/591c7732f49294e52a383f9b42d3bb0d4a595712","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-14T10:07:22-07:00","added":["docs/governance/log/2026-09-14-adversarial-cost-fix.md","reports/adversarial-acceptance-2026-09-14/README.md","reports/adversarial-acceptance-2026-09-14/gates-rerun.jsonl","reports/adversarial-acceptance-2026-09-14/gates-round1.jsonl"],"removed":[],"modified":["CLAUDE.md","reports/governance-docs.latest.json"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":979562,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-15T01:04:54+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"}}...
|
push
|
2
|
4
|
1789406328
|
1789406418
|
0
|
1789405669
|
1789406418
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23949
|
docs(releases): record cost-fix1 deployment and vi docs(releases): record cost-fix1 deployment and video delivery probe...
|
57
|
5
|
governance.yml
|
229
|
5
|
0
|
refs/heads/main
|
0724820e7884688d0466bc74563122005bbac86e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"591c7732f49294e52a383f9b42d3bb0d4a595712","after":"0724820e7884688d0466bc74563122005bbac86e","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/591c7732f49294e52a383f9b42d3bb0d4a595712...0724820e7884688d0466bc74563122005bbac86e","commits":[{"id":"0724820e7884688d0466bc74563122005bbac86e","message":"docs(releases): record cost-fix1 deployment and video delivery probe\n\nThe F1 fix is live as release-20260914-cost-fix1 (commit 591c7732,\nfingerprint 603541f5): five components healthy, 11 probes, OCR ok. Post-\ndeploy adversarial recheck with real paid calls confirmed online image\ngeneration still produces real pixels and a real Wan 3.0 storyboard video\n(11.3MB MP4, ftypisom, 5s) records its cost honestly as UNKNOWN. current.md\nnow points at cost-fix1; the round log gains the video section.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0724820e7884688d0466bc74563122005bbac86e","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-14T10:24:52-07:00","added":["docs/releases/2026-09-14-cost-fix1.md"],"removed":[],"modified":["docs/governance/log/2026-09-14-adversarial-cost-fix.md","docs/releases/current.md"]}],"total_commits":0,"head_commit":{"id":"0724820e7884688d0466bc74563122005bbac86e","message":"docs(releases): record cost-fix1 deployment and video delivery probe\n\nThe F1 fix is live as release-20260914-cost-fix1 (commit 591c7732,\nfingerprint 603541f5): five components healthy, 11 probes, OCR ok. Post-\ndeploy adversarial recheck with real paid calls confirmed online image\ngeneration still produces real pixels and a real Wan 3.0 storyboard video\n(11.3MB MP4, ftypisom, 5s) records its cost honestly as UNKNOWN. current.md\nnow points at cost-fix1; the round log gains the video section.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0724820e7884688d0466bc74563122005bbac86e","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-14T10:24:52-07:00","added":["docs/releases/2026-09-14-cost-fix1.md"],"removed":[],"modified":["docs/governance/log/2026-09-14-adversarial-cost-fix.md","docs/releases/current.md"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":979615,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-15T01:08:00+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"}}...
|
push
|
2
|
4
|
1789407363
|
1789407407
|
0
|
1789406721
|
1789407407
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23950
|
docs(governance): 登记 C253 与 G25 闭合项,刷新锚点
|
76
|
5
|
governance.yml
|
48
|
5
|
0
|
refs/heads/main
|
070b9440b579a7662952fe817638313fadcf01bd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"18a1b036f3dbb3f51ac773862e0cafac278bb34e","after":"070b9440b579a7662952fe817638313fadcf01bd","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/18a1b036f3dbb3f51ac773862e0cafac278bb34e...070b9440b579a7662952fe817638313fadcf01bd","commits":[{"id":"070b9440b579a7662952fe817638313fadcf01bd","message":"docs(governance): 登记 C253 与 G25 闭合项,刷新锚点\n\nC253(新增闭合记录):三个基座门禁把实时频道订阅写死成基础频道,而 dispatcher 按 Redis 逻辑库分区发布——\n只有 db 0 能过,而 O1 纪律要求验收用独立逻辑库;三处失败信息还分别指向凭据隔离、依赖恢复与多进程领取,\n把门禁自己的假设伪装成被测对象的问题,并连带让静态链长期止步第 23 步。\n\nG25 同步:⑤ SDK 的 STALE 语义已闭合(rc.3 已发布、本仓已升级并删除边界翻译,判定回到 SDK 单源);\n新增 ⑥ 运行态证据已就位(clean HEAD runtime passed + 静态 27/27),并明确它**不改变** ①②④ 的未闭环判断。\n\n本轮静态 27/27 复跑通过;锚点按 C241 指向父提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/070b9440b579a7662952fe817638313fadcf01bd","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-14T10:24:34-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"c9d2f3acf72a2b36c581d7f44cc8eea0d2b91080","message":"chore(reports): 首次 clean SHA 绑定的三级证据(runtime passed + 静态 27/27)\n\n`6396f7f` clean 树上:\n- `pnpm check:runtime` **status=passed、worktreeDirty=false**——本仓 `reports/runtime-acceptance.latest.json`\n 第一次绑定 clean commit(733 tests / 0 failures、行为矩阵 204/204、十步全绿)。M0「reports 首次绑定\n clean SHA」与 OS-04 退出门要求的真实 DB 证据同时满足。\n- `pnpm check` **27/27 步骤全部通过**,23 份静态报告同样 `worktreeDirty:false`。\n\n动态区按本轮报告更新:静态证据行改写为 clean HEAD 27/27;锚点指向父提交(C241/C232)。\n边界:本地单机证据,未推送、远端 CI 未跑;G14 的远端拦截、试点 A 的 HR 端到端与目标环境签收仍 OPEN。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c9d2f3acf72a2b36c581d7f44cc8eea0d2b91080","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-14T10:22:15-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.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/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]},{"id":"6396f7f20f8e418463280f27609295d18666bb28","message":"docs(governance): 刷新快照锚点到 666f5e2(批次收尾)\n\nC241/C232:推送批次最后一个提交必须把锚点指向其父提交,纯报告刷新提交同样算提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/6396f7f20f8e418463280f27609295d18666bb28","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-14T10:00:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"666f5e2fee8caa849d6d44387e8d046aa898b02f","message":"chore(reports): clean SHA 上重跑 runtime,按已跟踪测试数校正动态区\n\n`7fb2dd6` clean 树整轮 runtime 只余 own-test-cases 漂移:新增的两份 Kafka 投递测试在提交后才计入\ngit 已跟踪集合(C70 口径),因此 90/730 → 92/736。本提交同步数字并带上本轮报告;\n锚点仍指向 `bc99e5b`(落后 2,超 +1 自指窗),由下一个提交刷新。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/666f5e2fee8caa849d6d44387e8d046aa898b02f","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-14T10:00:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/dual-backend-behavior.latest.json","reports/multi-instance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-sql-runtime.latest.json","reports/runtime-acceptance.latest.json","reports/tracing.latest.json","reports/write-capacity.latest.json"]},{"id":"7fb2dd6d376fdbe58e31bd99060c033c67bac808","message":"chore(reports): 首次整轮 runtime 绿盘 + 静态 27/27,刷新锚点\n\n本批次证据(本地 dirty 工作区,共享底座 PG 55470 + OS 专用 Redis 6404/3):\n- `pnpm check:runtime` status=passed、exit 0:733 tests / 0 failures、行为矩阵 204/204,\n 十步全绿(迁移 deploy/status、七包测试、auth-startup、db-credential-separation、tracing、\n dependency-resilience、capacity、write-capacity、multi-instance、docs-truth 复验)。\n- `pnpm check` **27/27 步骤全部通过**——此前长期止于第 23 步 `check:docs-truth` 的\n `governance-number-evidence-shape`(它要求一份 passed 的 runtime 报告,而整轮从未跑通)。\n 两件事同时闭合:门禁频道假设修复让 runtime 能跑完,动态数字随即可以按真实报告对齐。\n\n按 C241/C232:本批次最后一个提交把快照锚点指向父提交 `bc99e5b`(落后 HEAD 0,写锚点自占 +1 自指窗)。\n边界:这些报告绑定的是 **dirty 工作区指纹**,不是 clean commit;clean SHA 绑定需要在本提交之上重跑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/7fb2dd6d376fdbe58e31bd99060c033c67bac808","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-14T09:48:04-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.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/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json"]}],"total_commits":0,"head_commit":{"id":"070b9440b579a7662952fe817638313fadcf01bd","message":"docs(governance): 登记 C253 与 G25 闭合项,刷新锚点\n\nC253(新增闭合记录):三个基座门禁把实时频道订阅写死成基础频道,而 dispatcher 按 Redis 逻辑库分区发布——\n只有 db 0 能过,而 O1 纪律要求验收用独立逻辑库;三处失败信息还分别指向凭据隔离、依赖恢复与多进程领取,\n把门禁自己的假设伪装成被测对象的问题,并连带让静态链长期止步第 23 步。\n\nG25 同步:⑤ SDK 的 STALE 语义已闭合(rc.3 已发布、本仓已升级并删除边界翻译,判定回到 SDK 单源);\n新增 ⑥ 运行态证据已就位(clean HEAD runtime passed + 静态 27/27),并明确它**不改变** ①②④ 的未闭环判断。\n\n本轮静态 27/27 复跑通过;锚点按 C241 指向父提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/070b9440b579a7662952fe817638313fadcf01bd","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-14T10:24:34-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":84782,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-14T14:01:08+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"}}...
|
push
|
2
|
36
|
1789407407
|
1789407418
|
0
|
1789407027
|
1789407445
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23953
|
chore(reports): 27/27 静态门禁在 clean HEAD 全链通过
|
76
|
5
|
governance.yml
|
50
|
5
|
0
|
refs/heads/main
|
23d1b7ac7da6d8779bf29f8fabd126d9f7a15493
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"070b9440b579a7662952fe817638313fadcf01bd","after":"23d1b7ac7da6d8779bf29f8fabd126d9f7a15493","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/070b9440b579a7662952fe817638313fadcf01bd...23d1b7ac7da6d8779bf29f8fabd126d9f7a15493","commits":[{"id":"23d1b7ac7da6d8779bf29f8fabd126d9f7a15493","message":"chore(reports): 27/27 静态门禁在 clean HEAD 全链通过\n\n首次跑完整条 check-all:27/27 步骤 exit 0,含此前因 fail-fast 从未执行到的\ncheck:governance、lint、typecheck 与末位的 check:platform-provenance。\n\n解锁点是 runtime-acceptance 转 passed(c9d2f3a 的 clean SHA 三级证据):\ncheck:docs-truth 的 governance-number-evidence-shape 要求 runtime/governance/baseline\n三份数字真源都 passed,此前它是 failed,把整条链卡在第 23 步。\n\ncheck:platform-provenance 作为末位步骤首次被执行到并通过——@juhai/* 四个解析来源\n全部落在 .npmrc 声明的 registry 下,0 违规 / 0 登记偏差。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/23d1b7ac7da6d8779bf29f8fabd126d9f7a15493","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-14T19:02:12-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"23d1b7ac7da6d8779bf29f8fabd126d9f7a15493","message":"chore(reports): 27/27 静态门禁在 clean HEAD 全链通过\n\n首次跑完整条 check-all:27/27 步骤 exit 0,含此前因 fail-fast 从未执行到的\ncheck:governance、lint、typecheck 与末位的 check:platform-provenance。\n\n解锁点是 runtime-acceptance 转 passed(c9d2f3a 的 clean SHA 三级证据):\ncheck:docs-truth 的 governance-number-evidence-shape 要求 runtime/governance/baseline\n三份数字真源都 passed,此前它是 failed,把整条链卡在第 23 步。\n\ncheck:platform-provenance 作为末位步骤首次被执行到并通过——@juhai/* 四个解析来源\n全部落在 .npmrc 声明的 registry 下,0 违规 / 0 登记偏差。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/23d1b7ac7da6d8779bf29f8fabd126d9f7a15493","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-14T19:02:12-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":85178,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-15T10:02:43+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"}}...
|
push
|
2
|
36
|
1789438844
|
1789438855
|
0
|
1789438843
|
1789438938
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23958
|
feat(quotation): 接入公共文件平台并补齐 outbox 重放与通知投递
|
72
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"125c54d328d3da221b5d91c0a2dd0475712c6e96","after":"ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/125c54d328d3da221b5d91c0a2dd0475712c6e96...ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","commits":[{"id":"ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","message":"feat(quotation): 接入公共文件平台并补齐 outbox 重放与通知投递\n\n- 新增 packages/public-file,对象存储改走公共文件平台契约,\n 两端 object-storage 与 files 路由同步重构\n- 新增 outbox-operations 模块与路由,配套 outbox_replay_operations 迁移,\n 支持事件重放运维操作\n- 新增 notification-delivery 模块与 packages/notification-delivery,\n 配套 quotation_notification_delivery 迁移\n- packages/contracts 补 notification / outbox-operations 契约与测试\n- 刷新 reports 证据\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","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-14T19:52:39-07:00","added":["apps/api-fastify/prisma/migrations/20260831230000_outbox_replay_operations/migration.sql","apps/api-fastify/prisma/migrations/20260901120000_quotation_notification_delivery/migration.sql","apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-fastify/src/modules/outbox-operations/outbox-operations.service.ts","apps/api-fastify/src/routes/notification-delivery.ts","apps/api-fastify/src/routes/outbox-operations.ts","apps/api-fastify/test/notification-delivery.integration.test.ts","apps/api-fastify/test/outbox-operations.http.test.ts","apps/api-nestjs/prisma/migrations/20260831230000_outbox_replay_operations/migration.sql","apps/api-nestjs/prisma/migrations/20260901120000_quotation_notification_delivery/migration.sql","apps/api-nestjs/src/events/notification-delivery.controller.ts","apps/api-nestjs/src/events/notification-delivery.service.ts","apps/api-nestjs/src/events/outbox-operations.controller.ts","apps/api-nestjs/src/events/outbox-operations.service.ts","apps/api-nestjs/test/notification-delivery.integration.test.ts","apps/api-nestjs/test/outbox-operations.http.test.ts","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/contracts/src/outbox-operations.test.ts","packages/contracts/src/outbox-operations.ts","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","packages/public-file/README.md","packages/public-file/package.json","packages/public-file/src/index.test.ts","packages/public-file/src/index.ts","packages/public-file/src/infrastructure.integration.test.ts","packages/public-file/src/ref.test.ts","packages/public-file/src/ref.ts","packages/public-file/tsconfig.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/modules/storage/object-storage.ts","apps/api-fastify/src/routes/files.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/src/storage/files.controller.ts","apps/api-nestjs/src/storage/object-storage.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/login/page.tsx","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/enterprise-platform-architecture.md","docs/governance-experience.md","docs/module-test-matrix.md","docs/product-prd.md","docs/spatiotemporal-fact-model.md","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/storage.test.ts","packages/contracts/src/storage.ts","packages/contracts/src/user.ts","pnpm-lock.yaml","reports/api-route-contract.latest.json","reports/approval-payload-contract.latest.json","reports/baseline.json","reports/component-size.latest.json","reports/contract-consumers.latest.json","reports/design-tokens.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/queue-isolation.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/sites-governance.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json","reports/workspace-hygiene.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-module-integration.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/check-vm-deploy.mjs","scripts/lib/backend-parity-diff.mjs","scripts/lib/contract-integration.test.mjs","scripts/vm-deploy.sh","turbo.json"]}],"total_commits":0,"head_commit":{"id":"ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","message":"feat(quotation): 接入公共文件平台并补齐 outbox 重放与通知投递\n\n- 新增 packages/public-file,对象存储改走公共文件平台契约,\n 两端 object-storage 与 files 路由同步重构\n- 新增 outbox-operations 模块与路由,配套 outbox_replay_operations 迁移,\n 支持事件重放运维操作\n- 新增 notification-delivery 模块与 packages/notification-delivery,\n 配套 quotation_notification_delivery 迁移\n- packages/contracts 补 notification / outbox-operations 契约与测试\n- 刷新 reports 证据\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","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-14T19:52:39-07:00","added":["apps/api-fastify/prisma/migrations/20260831230000_outbox_replay_operations/migration.sql","apps/api-fastify/prisma/migrations/20260901120000_quotation_notification_delivery/migration.sql","apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-fastify/src/modules/outbox-operations/outbox-operations.service.ts","apps/api-fastify/src/routes/notification-delivery.ts","apps/api-fastify/src/routes/outbox-operations.ts","apps/api-fastify/test/notification-delivery.integration.test.ts","apps/api-fastify/test/outbox-operations.http.test.ts","apps/api-nestjs/prisma/migrations/20260831230000_outbox_replay_operations/migration.sql","apps/api-nestjs/prisma/migrations/20260901120000_quotation_notification_delivery/migration.sql","apps/api-nestjs/src/events/notification-delivery.controller.ts","apps/api-nestjs/src/events/notification-delivery.service.ts","apps/api-nestjs/src/events/outbox-operations.controller.ts","apps/api-nestjs/src/events/outbox-operations.service.ts","apps/api-nestjs/test/notification-delivery.integration.test.ts","apps/api-nestjs/test/outbox-operations.http.test.ts","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/contracts/src/outbox-operations.test.ts","packages/contracts/src/outbox-operations.ts","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","packages/public-file/README.md","packages/public-file/package.json","packages/public-file/src/index.test.ts","packages/public-file/src/index.ts","packages/public-file/src/infrastructure.integration.test.ts","packages/public-file/src/ref.test.ts","packages/public-file/src/ref.ts","packages/public-file/tsconfig.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/modules/storage/object-storage.ts","apps/api-fastify/src/routes/files.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/src/storage/files.controller.ts","apps/api-nestjs/src/storage/object-storage.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/login/page.tsx","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/enterprise-platform-architecture.md","docs/governance-experience.md","docs/module-test-matrix.md","docs/product-prd.md","docs/spatiotemporal-fact-model.md","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/storage.test.ts","packages/contracts/src/storage.ts","packages/contracts/src/user.ts","pnpm-lock.yaml","reports/api-route-contract.latest.json","reports/approval-payload-contract.latest.json","reports/baseline.json","reports/component-size.latest.json","reports/contract-consumers.latest.json","reports/design-tokens.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/queue-isolation.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/sites-governance.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json","reports/workspace-hygiene.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-module-integration.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/check-vm-deploy.mjs","scripts/lib/backend-parity-diff.mjs","scripts/lib/contract-integration.test.mjs","scripts/vm-deploy.sh","turbo.json"]},"repository":{"id":72,"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-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":35127,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":11,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-08-26T13:51:23+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"}}...
|
push
|
2
|
8
|
1789440998
|
1789441317
|
0
|
1789440856
|
1789441317
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23959
|
feat(service): add notification delivery and devic feat(service): add notification delivery and device reference projection...
|
81
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
2085f1a31a52687344dd74911761be941a185b3c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"466e9752ba0f670d790b5134ff2d12e5b0e974ea","after":"2085f1a31a52687344dd74911761be941a185b3c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/466e9752ba0f670d790b5134ff2d12e5b0e974ea...2085f1a31a52687344dd74911761be941a185b3c","commits":[{"id":"2085f1a31a52687344dd74911761be941a185b3c","message":"feat(service): add notification delivery and device reference projection\n\n- notification delivery: new service-operations delivery path with\n service_notification_intents migration and integration tests on both backends\n- device reference projection: consume device-cloud reference contract\n via new packages/contracts/src/device-cloud.ts and projection migration\n- publish juhai-service-os-product 0.3.0 and refresh product/manifest locks\n- extend check-dual-backend-parity gate; refresh reports evidence\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/2085f1a31a52687344dd74911761be941a185b3c","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-14T19:52:09-07:00","added":["apps/api-fastify/prisma/migrations/20260831120000_service_notification_intents/migration.sql","apps/api-fastify/prisma/migrations/20260901120000_device_reference_projection/migration.sql","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-fastify/test/notification-delivery.integration.test.ts","apps/api-nestjs/prisma/migrations/20260831120000_service_notification_intents/migration.sql","apps/api-nestjs/prisma/migrations/20260901120000_device_reference_projection/migration.sql","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","apps/api-nestjs/test/notification-delivery.integration.test.ts","artifacts/os-products/juhai-service-os-product-0.3.0.tgz","packages/contracts/src/device-cloud.test.ts","packages/contracts/src/device-cloud.ts","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/notification-delivery/README.md","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","scripts/lib/report-provenance.test.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/service-cases/service-cases.service.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/service-cases/service-cases.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/web/tsconfig.json","artifacts/os-products/juhai-service-os-product.lock.json","docs/domain/digital-employee-os-product-blueprint.md","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","docs/domain/service-operations-blueprint.md","docs/governance-experience.md","os-products/juhai.service/manifest.json","os-products/juhai.service/package.json","os-products/juhai.service/product.lock.json","package.json","packages/contracts/src/index.ts","packages/contracts/tsconfig.json","packages/service-contracts/src/service-case.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/mobile-delivery.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"2085f1a31a52687344dd74911761be941a185b3c","message":"feat(service): add notification delivery and device reference projection\n\n- notification delivery: new service-operations delivery path with\n service_notification_intents migration and integration tests on both backends\n- device reference projection: consume device-cloud reference contract\n via new packages/contracts/src/device-cloud.ts and projection migration\n- publish juhai-service-os-product 0.3.0 and refresh product/manifest locks\n- extend check-dual-backend-parity gate; refresh reports evidence\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/2085f1a31a52687344dd74911761be941a185b3c","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-14T19:52:09-07:00","added":["apps/api-fastify/prisma/migrations/20260831120000_service_notification_intents/migration.sql","apps/api-fastify/prisma/migrations/20260901120000_device_reference_projection/migration.sql","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-fastify/test/notification-delivery.integration.test.ts","apps/api-nestjs/prisma/migrations/20260831120000_service_notification_intents/migration.sql","apps/api-nestjs/prisma/migrations/20260901120000_device_reference_projection/migration.sql","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","apps/api-nestjs/test/notification-delivery.integration.test.ts","artifacts/os-products/juhai-service-os-product-0.3.0.tgz","packages/contracts/src/device-cloud.test.ts","packages/contracts/src/device-cloud.ts","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/notification-delivery/README.md","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","scripts/lib/report-provenance.test.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/service-cases/service-cases.service.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/service-cases/service-cases.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/web/tsconfig.json","artifacts/os-products/juhai-service-os-product.lock.json","docs/domain/digital-employee-os-product-blueprint.md","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","docs/domain/service-operations-blueprint.md","docs/governance-experience.md","os-products/juhai.service/manifest.json","os-products/juhai.service/package.json","os-products/juhai.service/product.lock.json","package.json","packages/contracts/src/index.ts","packages/contracts/tsconfig.json","packages/service-contracts/src/service-case.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/mobile-delivery.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]},"repository":{"id":81,"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-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3041,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.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-08-26T08:47:15+08:00","updated_at":"2026-08-27T16:51:27+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"}}...
|
push
|
2
|
6
|
1789441171
|
1789441179
|
0
|
1789440859
|
1789441181
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23960
|
feat(hr): emit canonical employment facts and hard feat(hr): emit canonical employment facts and harden database RLS...
|
83
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
a0ebf7769727344892ab96c1240bd809b5791430
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6823a38dc4626db9f396978663efbc2493a1276c","after":"a0ebf7769727344892ab96c1240bd809b5791430","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/6823a38dc4626db9f396978663efbc2493a1276c...a0ebf7769727344892ab96c1240bd809b5791430","commits":[{"id":"a0ebf7769727344892ab96c1240bd809b5791430","message":"feat(hr): emit canonical employment facts and harden database RLS\n\n- enterprise fact relay: new relay module/service on both backends with\n recovery migration, publishing canonical employment fact intents\n- packages/contracts: add enterprise-fact contract and tests\n- database RLS: role hardening migration plus greatly expanded\n database-rls and personnel integration coverage\n- products/juhai.hr: personnel-core migrations for fact intents and relay recovery\n- governance: add check-api-migration-safety and os-product / database-rls\n governance libs with tests\n- web: rework RecruitmentWorkspace and personnel directory views\n- refresh reports evidence and os-product bundles\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/a0ebf7769727344892ab96c1240bd809b5791430","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-14T19:52:55-07:00","added":["apps/api-fastify/prisma/migrations/20260830120000_employment_canonical_fact_intents/migration.sql","apps/api-fastify/prisma/migrations/20260830120500_database_rls_role_hardening/migration.sql","apps/api-fastify/prisma/migrations/20260830121000_employment_canonical_constraints/migration.sql","apps/api-fastify/prisma/migrations/20260830130000_enterprise_fact_relay_recovery/migration.sql","apps/api-fastify/src/modules/enterprise-fact-relay.ts","apps/api-fastify/test/enterprise-fact-relay.test.ts","apps/api-nestjs/prisma/migrations/20260830120000_employment_canonical_fact_intents/migration.sql","apps/api-nestjs/prisma/migrations/20260830120500_database_rls_role_hardening/migration.sql","apps/api-nestjs/prisma/migrations/20260830121000_employment_canonical_constraints/migration.sql","apps/api-nestjs/prisma/migrations/20260830130000_enterprise_fact_relay_recovery/migration.sql","apps/api-nestjs/src/events/enterprise-fact-relay.service.ts","apps/api-nestjs/test/enterprise-fact-relay.test.ts","packages/contracts/src/enterprise-fact.test.ts","packages/contracts/src/enterprise-fact.ts","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/fixtures.latest.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/bundle-index.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/distribution.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/manifest.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/bundle-index.json","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/distribution.json","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/manifest.json","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/bundle-index.json","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/distribution.json","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/manifest.json","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/bundle-index.json","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/distribution.json","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/manifest.json","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/web-workspace.mjs","scripts/check-api-migration-safety.mjs","scripts/lib/database-rls-history-governance.mjs","scripts/lib/database-rls-history-governance.test.mjs","scripts/lib/database-rls-role-governance.mjs","scripts/lib/database-rls-role-governance.test.mjs","scripts/lib/os-product-migration-governance.mjs","scripts/lib/os-product-migration-governance.test.mjs","scripts/lib/report-provenance.test.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/personnel/personnel.service.ts","apps/api-fastify/test/database-rls.integration.test.ts","apps/api-fastify/test/personnel.http.test.ts","apps/api-fastify/test/personnel.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/enterprise-identity/enterprise-identity.controller.ts","apps/api-nestjs/src/personnel/personnel.service.ts","apps/api-nestjs/test/database-rls.integration.test.ts","apps/api-nestjs/test/enterprise-identity.http.test.ts","apps/api-nestjs/test/personnel.http.test.ts","apps/api-nestjs/test/personnel.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/OrganizationWorkspace.tsx","apps/web/src/components/PersonnelDirectoryView.tsx","apps/web/src/components/RecruitmentWorkspace.tsx","apps/web/src/lib/api.ts","docs/domain/hr-v2-blueprint.md","docs/domain/os-product-layer-blueprint.md","docs/domain/owner-matrix.md","docs/domain/personnel-core-blueprint.md","docs/domain/recruitment-v2-blueprint.md","docs/governance-experience.md","governance.registry.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/personnel.test.ts","packages/contracts/src/personnel.ts","packages/contracts/tsconfig.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/manifest.json","products/juhai.hr/readiness.json","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-workbench.mjs","reports/baseline.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/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-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-privacy.latest.json","reports/os-product-sql-runtime.rejected.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-database-rls.mjs","scripts/check-migrations.mjs","scripts/check-os-product-layer.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"a0ebf7769727344892ab96c1240bd809b5791430","message":"feat(hr): emit canonical employment facts and harden database RLS\n\n- enterprise fact relay: new relay module/service on both backends with\n recovery migration, publishing canonical employment fact intents\n- packages/contracts: add enterprise-fact contract and tests\n- database RLS: role hardening migration plus greatly expanded\n database-rls and personnel integration coverage\n- products/juhai.hr: personnel-core migrations for fact intents and relay recovery\n- governance: add check-api-migration-safety and os-product / database-rls\n governance libs with tests\n- web: rework RecruitmentWorkspace and personnel directory views\n- refresh reports evidence and os-product bundles\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/a0ebf7769727344892ab96c1240bd809b5791430","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-14T19:52:55-07:00","added":["apps/api-fastify/prisma/migrations/20260830120000_employment_canonical_fact_intents/migration.sql","apps/api-fastify/prisma/migrations/20260830120500_database_rls_role_hardening/migration.sql","apps/api-fastify/prisma/migrations/20260830121000_employment_canonical_constraints/migration.sql","apps/api-fastify/prisma/migrations/20260830130000_enterprise_fact_relay_recovery/migration.sql","apps/api-fastify/src/modules/enterprise-fact-relay.ts","apps/api-fastify/test/enterprise-fact-relay.test.ts","apps/api-nestjs/prisma/migrations/20260830120000_employment_canonical_fact_intents/migration.sql","apps/api-nestjs/prisma/migrations/20260830120500_database_rls_role_hardening/migration.sql","apps/api-nestjs/prisma/migrations/20260830121000_employment_canonical_constraints/migration.sql","apps/api-nestjs/prisma/migrations/20260830130000_enterprise_fact_relay_recovery/migration.sql","apps/api-nestjs/src/events/enterprise-fact-relay.service.ts","apps/api-nestjs/test/enterprise-fact-relay.test.ts","packages/contracts/src/enterprise-fact.test.ts","packages/contracts/src/enterprise-fact.ts","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/fixtures.latest.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/bundle-index.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/distribution.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/manifest.json","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/24d09767e1fb9e555996471e4289af0ae3ed91c7b29c19d025b373b4fe34d7f3/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/bundle-index.json","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/distribution.json","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/manifest.json","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/4bacd7bb3cf2ebd61c5f4214adb394c7433b09f91be267731c25a274b82a7173/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/bundle-index.json","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/distribution.json","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/manifest.json","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/63f032c8f421c7bbfae040415eef04b602ac1c420dedb49c67eb2c192c7177f3/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/bundle-index.json","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/distribution.json","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/manifest.json","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/8b4b056faebe3948f3e8c80a104a50d3362951dc71896f0877f33a30ce38d078/products/juhai.hr/src/web-workspace.mjs","scripts/check-api-migration-safety.mjs","scripts/lib/database-rls-history-governance.mjs","scripts/lib/database-rls-history-governance.test.mjs","scripts/lib/database-rls-role-governance.mjs","scripts/lib/database-rls-role-governance.test.mjs","scripts/lib/os-product-migration-governance.mjs","scripts/lib/os-product-migration-governance.test.mjs","scripts/lib/report-provenance.test.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/personnel/personnel.service.ts","apps/api-fastify/test/database-rls.integration.test.ts","apps/api-fastify/test/personnel.http.test.ts","apps/api-fastify/test/personnel.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/enterprise-identity/enterprise-identity.controller.ts","apps/api-nestjs/src/personnel/personnel.service.ts","apps/api-nestjs/test/database-rls.integration.test.ts","apps/api-nestjs/test/enterprise-identity.http.test.ts","apps/api-nestjs/test/personnel.http.test.ts","apps/api-nestjs/test/personnel.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/OrganizationWorkspace.tsx","apps/web/src/components/PersonnelDirectoryView.tsx","apps/web/src/components/RecruitmentWorkspace.tsx","apps/web/src/lib/api.ts","docs/domain/hr-v2-blueprint.md","docs/domain/os-product-layer-blueprint.md","docs/domain/owner-matrix.md","docs/domain/personnel-core-blueprint.md","docs/domain/recruitment-v2-blueprint.md","docs/governance-experience.md","governance.registry.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/personnel.test.ts","packages/contracts/src/personnel.ts","packages/contracts/tsconfig.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/manifest.json","products/juhai.hr/readiness.json","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-workbench.mjs","reports/baseline.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/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-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-privacy.latest.json","reports/os-product-sql-runtime.rejected.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-database-rls.mjs","scripts/check-migrations.mjs","scripts/check-os-product-layer.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.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":4238,"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":1,"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-12T21:58:09+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"}}...
|
push
|
2
|
6
|
1789441179
|
1789441205
|
0
|
1789440861
|
1789441206
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23962
|
feat(ticket): govern automation configuration prov feat(ticket): govern automation configuration provenance...
|
82
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f78be17ac5fecb9cfa36e167b1e85ea26a48fa45","after":"ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/f78be17ac5fecb9cfa36e167b1e85ea26a48fa45...ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","commits":[{"id":"ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","message":"feat(ticket): govern automation configuration provenance\n\n- automation: record configuration provenance via new\n automation_configuration_provenance migration and configuration plugin\n- add packages/configuration-client and packages/notification-delivery\n- attachments: align service and package contracts, add package tests\n- web: rework UnifiedCalendarPanel and ticket page acceptance paths\n- add scripts/check-configuration-consumer gate and its evidence report\n- gitignore .codex/ alongside .codex-audit/ (local UX audit screenshots,\n not product source or governance input)\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","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-14T19:52:26-07:00","added":["apps/api-fastify/prisma/migrations/20260901180000_automation_configuration_provenance/migration.sql","apps/api-fastify/src/plugins/configuration.ts","apps/api-nestjs/prisma/migrations/20260901180000_automation_configuration_provenance/migration.sql","apps/api-nestjs/src/automation/automation-configuration.service.ts","design-qa.md","packages/attachments/README.md","packages/attachments/src/index.test.ts","packages/configuration-client/package.json","packages/configuration-client/src/index.test.ts","packages/configuration-client/src/index.ts","packages/configuration-client/tsconfig.json","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/notification-delivery/README.md","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","reports/configuration-consumer.latest.json","scripts/check-configuration-consumer.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/attachments/attachments.service.ts","apps/api-fastify/src/modules/automation/automation.service.ts","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/src/plugins/automation-worker.ts","apps/api-fastify/src/routes/automation.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/attachments/attachments.service.ts","apps/api-nestjs/src/automation/automation.module.ts","apps/api-nestjs/src/automation/automation.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/e2e/oidc.acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/UnifiedCalendarPanel.tsx","deploy/k8s/README.md","deploy/k8s/base/platform.yaml","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","docs/governance-experience.md","governance.registry.json","package.json","packages/attachments/src/index.ts","packages/attachments/src/infrastructure.integration.test.ts","packages/contracts/src/index.ts","packages/contracts/src/ticket.ts","pnpm-lock.yaml","reports/agent-workflow-parity.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.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","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]}],"total_commits":0,"head_commit":{"id":"ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","message":"feat(ticket): govern automation configuration provenance\n\n- automation: record configuration provenance via new\n automation_configuration_provenance migration and configuration plugin\n- add packages/configuration-client and packages/notification-delivery\n- attachments: align service and package contracts, add package tests\n- web: rework UnifiedCalendarPanel and ticket page acceptance paths\n- add scripts/check-configuration-consumer gate and its evidence report\n- gitignore .codex/ alongside .codex-audit/ (local UX audit screenshots,\n not product source or governance input)\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","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-14T19:52:26-07:00","added":["apps/api-fastify/prisma/migrations/20260901180000_automation_configuration_provenance/migration.sql","apps/api-fastify/src/plugins/configuration.ts","apps/api-nestjs/prisma/migrations/20260901180000_automation_configuration_provenance/migration.sql","apps/api-nestjs/src/automation/automation-configuration.service.ts","design-qa.md","packages/attachments/README.md","packages/attachments/src/index.test.ts","packages/configuration-client/package.json","packages/configuration-client/src/index.test.ts","packages/configuration-client/src/index.ts","packages/configuration-client/tsconfig.json","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/notification-delivery/README.md","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","reports/configuration-consumer.latest.json","scripts/check-configuration-consumer.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/attachments/attachments.service.ts","apps/api-fastify/src/modules/automation/automation.service.ts","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/src/plugins/automation-worker.ts","apps/api-fastify/src/routes/automation.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/attachments/attachments.service.ts","apps/api-nestjs/src/automation/automation.module.ts","apps/api-nestjs/src/automation/automation.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/e2e/oidc.acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/UnifiedCalendarPanel.tsx","deploy/k8s/README.md","deploy/k8s/base/platform.yaml","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","docs/governance-experience.md","governance.registry.json","package.json","packages/attachments/src/index.ts","packages/attachments/src/infrastructure.integration.test.ts","packages/contracts/src/index.ts","packages/contracts/src/ticket.ts","pnpm-lock.yaml","reports/agent-workflow-parity.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.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","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.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":true,"fork":false,"template":false,"mirror":false,"size":1421,"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":1,"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-08-28T18:46:30+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"}}...
|
push
|
2
|
6
|
1789441222
|
1789441251
|
0
|
1789440864
|
1789441252
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23963
|
feat(knowledge): harden auth and knowledge indexin feat(knowledge): harden auth and knowledge indexing retry path...
|
84
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
558e30bac2666ebe08fed4d2649e433638ead6c6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","after":"558e30bac2666ebe08fed4d2649e433638ead6c6","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d...558e30bac2666ebe08fed4d2649e433638ead6c6","commits":[{"id":"558e30bac2666ebe08fed4d2649e433638ead6c6","message":"feat(knowledge): harden auth and knowledge indexing retry path\n\n- packages/auth: expand JWT verification and trust-boundary handling\n with matching acceptance tests on both fastify and nestjs backends\n- knowledge indexing: add retry/backoff handling across\n knowledge-indexer, knowledge-retrieval and products/juhai.knowledgecloud\n- governance: tighten check-auth-governance, check-knowledge-index-governance,\n check-os-product and check-ui-acceptance gates\n- refresh reports/*.latest.json evidence\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/558e30bac2666ebe08fed4d2649e433638ead6c6","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-14T19:51:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/knowledge/knowledge-indexer.ts","apps/api-fastify/test/auth.jwt.acceptance.test.ts","apps/api-fastify/test/knowledge-index.retry.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/knowledge/knowledge-index.service.ts","apps/api-nestjs/test/auth.jwt.acceptance.test.ts","apps/api-nestjs/test/knowledge-index.retry.test.ts","compose.production.yml","docs/domain/knowledge-cloud-blueprint.md","docs/governance-experience.md","docs/production-operations.md","package.json","packages/auth/src/auth.test.ts","packages/auth/src/index.ts","packages/contracts/src/knowledge-index.test.ts","packages/contracts/src/knowledge.ts","packages/knowledge-retrieval/src/indexing.test.ts","packages/knowledge-retrieval/src/indexing.ts","products/juhai.knowledgecloud/src/indexing.ts","reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/baseline.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.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.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-auth-governance.mjs","scripts/check-container-acceptance.mjs","scripts/check-knowledge-index-governance.mjs","scripts/check-os-product.mjs","scripts/check-ui-acceptance.mjs","turbo.json"]}],"total_commits":0,"head_commit":{"id":"558e30bac2666ebe08fed4d2649e433638ead6c6","message":"feat(knowledge): harden auth and knowledge indexing retry path\n\n- packages/auth: expand JWT verification and trust-boundary handling\n with matching acceptance tests on both fastify and nestjs backends\n- knowledge indexing: add retry/backoff handling across\n knowledge-indexer, knowledge-retrieval and products/juhai.knowledgecloud\n- governance: tighten check-auth-governance, check-knowledge-index-governance,\n check-os-product and check-ui-acceptance gates\n- refresh reports/*.latest.json evidence\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/558e30bac2666ebe08fed4d2649e433638ead6c6","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-14T19:51:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/knowledge/knowledge-indexer.ts","apps/api-fastify/test/auth.jwt.acceptance.test.ts","apps/api-fastify/test/knowledge-index.retry.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/knowledge/knowledge-index.service.ts","apps/api-nestjs/test/auth.jwt.acceptance.test.ts","apps/api-nestjs/test/knowledge-index.retry.test.ts","compose.production.yml","docs/domain/knowledge-cloud-blueprint.md","docs/governance-experience.md","docs/production-operations.md","package.json","packages/auth/src/auth.test.ts","packages/auth/src/index.ts","packages/contracts/src/knowledge-index.test.ts","packages/contracts/src/knowledge.ts","packages/knowledge-retrieval/src/indexing.test.ts","packages/knowledge-retrieval/src/indexing.ts","products/juhai.knowledgecloud/src/indexing.ts","reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/baseline.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.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.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-auth-governance.mjs","scripts/check-container-acceptance.mjs","scripts/check-knowledge-index-governance.mjs","scripts/check-os-product.mjs","scripts/check-ui-acceptance.mjs","turbo.json"]},"repository":{"id":84,"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-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1320,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.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-08-26T09:45:53+08:00","updated_at":"2026-08-27T21:17:16+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"}}...
|
push
|
2
|
6
|
1789441251
|
1789441278
|
0
|
1789440865
|
1789441280
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23964
|
chore: refresh governance evidence reports
|
80
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
bda8349f3440331dc74da6a4a41880607201d63d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7307924582aa9ace4042b51463833ebd9bc9d17e","after":"bda8349f3440331dc74da6a4a41880607201d63d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/compare/7307924582aa9ace4042b51463833ebd9bc9d17e...bda8349f3440331dc74da6a4a41880607201d63d","commits":[{"id":"bda8349f3440331dc74da6a4a41880607201d63d","message":"chore: refresh governance evidence reports\n\nRegenerate reports/*.latest.json from the latest local gate run\n(contract-consumers, device-boundaries, dual-backend-parity,\nmigrations, naming, os-product-compat, schema-sync,\nstatemachine-write-guard, validation-source, evidence-current).\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/bda8349f3440331dc74da6a4a41880607201d63d","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-14T19:51:44-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"bda8349f3440331dc74da6a4a41880607201d63d","message":"chore: refresh governance evidence reports\n\nRegenerate reports/*.latest.json from the latest local gate run\n(contract-consumers, device-boundaries, dual-backend-parity,\nmigrations, naming, os-product-compat, schema-sync,\nstatemachine-write-guard, validation-source, evidence-current).\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/bda8349f3440331dc74da6a4a41880607201d63d","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-14T19:51:44-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":80,"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-device-cloud","full_name":"luoanwu/juhai-device-cloud","description":"巨嗨设备云:永久设备身份、激活调拨、可信换板与授权治理","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":893,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-device-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud.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-08-25T23:52:33+08:00","updated_at":"2026-08-26T09:08:13+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"}}...
|
push
|
2
|
6
|
1789441278
|
1789441286
|
0
|
1789440869
|
1789441287
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23969
|
docs: 同步同步计划文档的新路径
|
54
|
5
|
governance.yml
|
39
|
5
|
0
|
refs/heads/main
|
9690ba98673547cb338309cd66f41ff6dbcaf61b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"023d78883392f389eef8363b752fcd2c86813fc1","after":"9690ba98673547cb338309cd66f41ff6dbcaf61b","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/023d78883392f389eef8363b752fcd2c86813fc1...9690ba98673547cb338309cd66f41ff6dbcaf61b","commits":[{"id":"9690ba98673547cb338309cd66f41ff6dbcaf61b","message":"docs: 同步同步计划文档的新路径\n\n2026-09-14 应用群迁入新根后,治理文档移至 平台治理/基础/。\nCOMPATIBILITY.md 的 0.1.0-pre 行引用 `基础/框架新版本同步计划.md`,\n改为 `平台治理/基础/框架新版本同步计划.md`(目标已核实存在)。\n\n改动本身是迁移当天路径替换的一部分,当时未随其他仓一并入库,\n导致本仓工作树长期 dirty,基础审计据此把框架资产判为 worktreeClean=false。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/9690ba98673547cb338309cd66f41ff6dbcaf61b","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-14T22:24:34-07:00","added":[],"removed":[],"modified":["COMPATIBILITY.md"]}],"total_commits":0,"head_commit":{"id":"9690ba98673547cb338309cd66f41ff6dbcaf61b","message":"docs: 同步同步计划文档的新路径\n\n2026-09-14 应用群迁入新根后,治理文档移至 平台治理/基础/。\nCOMPATIBILITY.md 的 0.1.0-pre 行引用 `基础/框架新版本同步计划.md`,\n改为 `平台治理/基础/框架新版本同步计划.md`(目标已核实存在)。\n\n改动本身是迁移当天路径替换的一部分,当时未随其他仓一并入库,\n导致本仓工作树长期 dirty,基础审计据此把框架资产判为 worktreeClean=false。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/9690ba98673547cb338309cd66f41ff6dbcaf61b","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-14T22:24:34-07:00","added":[],"removed":[],"modified":["COMPATIBILITY.md"]},"repository":{"id":54,"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":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5338,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-12T15:26:57+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"}}...
|
push
|
2
|
10
|
1789451375
|
1789452408
|
0
|
1789451258
|
1789452447
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23970
|
docs: 文档链接改为仓内相对路径,修复迁移后失效
|
76
|
5
|
governance.yml
|
52
|
5
|
0
|
refs/heads/main
|
c433d57b4aae2249bd19a085d1c520bf6baedf55
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"23d1b7ac7da6d8779bf29f8fabd126d9f7a15493","after":"c433d57b4aae2249bd19a085d1c520bf6baedf55","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/23d1b7ac7da6d8779bf29f8fabd126d9f7a15493...c433d57b4aae2249bd19a085d1c520bf6baedf55","commits":[{"id":"c433d57b4aae2249bd19a085d1c520bf6baedf55","message":"docs: 文档链接改为仓内相对路径,修复迁移后失效\n\n2026-09-14 应用群迁入新根 企业AI应用开发群/,本仓路径由\n企业产品/企业/企业应用/基础/AI数字员工/ 变为 数字员工OS/。\n\n- development-blueprint-2026-09-04.md:33 处链接写的是旧根绝对路径\n (/Users/hillao/AI产品/企业产品/企业/基础/AI数字员工/digital-employee-os/…),\n 迁移后全部失效。改为仓内相对路径 ../../,行号锚点保留;\n 逐条校验替换后的目标文件均存在。相对路径也让链接不再受未来目录调整影响\n- employment-projection-blueprint.md:上位文档引用 基础/AI数字员工/开发计划.md\n 改为 数字员工OS/开发计划.md\n\ndocs/operations/local-restart-2026-09-13.md 里的旧路径是当时的运维记述,\n属历史事实,保留未改。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c433d57b4aae2249bd19a085d1c520bf6baedf55","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-14T22:20:56-07:00","added":[],"removed":[],"modified":["docs/domain/employment-projection-blueprint.md","docs/planning/development-blueprint-2026-09-04.md"]}],"total_commits":0,"head_commit":{"id":"c433d57b4aae2249bd19a085d1c520bf6baedf55","message":"docs: 文档链接改为仓内相对路径,修复迁移后失效\n\n2026-09-14 应用群迁入新根 企业AI应用开发群/,本仓路径由\n企业产品/企业/企业应用/基础/AI数字员工/ 变为 数字员工OS/。\n\n- development-blueprint-2026-09-04.md:33 处链接写的是旧根绝对路径\n (/Users/hillao/AI产品/企业产品/企业/基础/AI数字员工/digital-employee-os/…),\n 迁移后全部失效。改为仓内相对路径 ../../,行号锚点保留;\n 逐条校验替换后的目标文件均存在。相对路径也让链接不再受未来目录调整影响\n- employment-projection-blueprint.md:上位文档引用 基础/AI数字员工/开发计划.md\n 改为 数字员工OS/开发计划.md\n\ndocs/operations/local-restart-2026-09-13.md 里的旧路径是当时的运维记述,\n属历史事实,保留未改。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c433d57b4aae2249bd19a085d1c520bf6baedf55","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-14T22:20:56-07:00","added":[],"removed":[],"modified":["docs/domain/employment-projection-blueprint.md","docs/planning/development-blueprint-2026-09-04.md"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":85178,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-15T10:20:43+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"}}...
|
push
|
2
|
36
|
1789452408
|
1789452418
|
0
|
1789451260
|
1789452453
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23972
|
chore(governance): 接真实 DB 重跑,13→15 通过,并暴露 outbox 多 chore(governance): 接真实 DB 重跑,13→15 通过,并暴露 outbox 多实例的可复现失败...
|
83
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
3c9f6df78f540226554cb4ecc6115741fe478c41
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a0ebf7769727344892ab96c1240bd809b5791430","after":"3c9f6df78f540226554cb4ecc6115741fe478c41","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/a0ebf7769727344892ab96c1240bd809b5791430...3c9f6df78f540226554cb4ecc6115741fe478c41","commits":[{"id":"3c9f6df78f540226554cb4ecc6115741fe478c41","message":"chore(governance): 接真实 DB 重跑,13→15 通过,并暴露 outbox 多实例的可复现失败\n\n按本目录\"每轮新建空验收库\"的口径建独立库:\n juhai_ai_hr_system_parity_20260915(prisma migrate deploy 后为空库)\n REDIS_URL 用 /14 号逻辑库\n\n库名前缀不是随便起的——G15 守卫按 package.json 的 name 推导(juhai_ai_hr_system),\n首次用 juhai_hr_parity_* 被三条门禁正确拒绝:\"Database … does not belong to …\"。\n守卫工作正常,是库名起错了。\n\n接上实例后两条转绿:check-dual-backend-behavior、check-health-dependency-failure。\n\n**新暴露一条可复现失败:check-outbox-multi-instance**\n nestjs / fastify 双侧同样结果:dispatched=120, observed=0, subscriberStatus=ready\n连跑两次一致。门禁本身跑完了全程,不是\"缺环境变量跑不起来\"那一类。根因未定——\n可能是缺少未文档化的 relay / worker 配置(本仓 .env 里没有任何 REDIS/DATABASE 项),\n也可能是真实缺陷。不在此下结论,交仓 Owner;报告如实记录该结果。\n\n仍失败的另外 4 条:api-migration-safety 需 MIGRATION_TEST_ADMIN_URL;\nos-product-host-ui 需浏览器;os-product-layer 与 os-product-registration 分别级联于\nhost-ui 报告与 target OS checkout / runtime 验收证据。\n\n18 份报告 provenance 全部绑定 d970541 且 worktreeDirty=false;连接串中口令已按仓内\n既有口径脱敏为 app:***,仅余本机地址与库名。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/3c9f6df78f540226554cb4ecc6115741fe478c41","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-15T00:50:03-07:00","added":[],"removed":[],"modified":["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/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-privacy.latest.json","reports/os-product-registration-verification.latest.json","reports/outbox-multi-instance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d970541bd56e5f82659322c8f738d2f5d49c1770","message":"chore(governance): 命名门禁修复后在新 HEAD 上重跑,静态面由 12 通过升为 13\n\n上一提交(8d74d4d)改了 scripts/ 下四个治理模块,按证据纪律旧报告随即失效——\n本提交只动 reports/,绑定 8d74d4d,与源码内容一一对应。\n\n静态门禁 13 通过 / 7 失败。7 条里没有一条是本仓代码质量问题:\n- 4 条缺实例:dual-backend-behavior / health-dependency-failure /\n outbox-multi-instance 需 DATABASE_URL,api-migration-safety 需\n MIGRATION_TEST_ADMIN_URL(这三份报告刻意不提交,见上一轮说明)\n- 1 条崩栈:os-product-host-ui\n- 2 条级联:os-product-layer 卡在 host-ui 报告,\n os-product-registration-verification 卡在 target OS checkout 与 runtime 验收证据\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/d970541bd56e5f82659322c8f738d2f5d49c1770","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-15T00:41:17-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-privacy.latest.json","reports/os-product-registration-verification.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"8d74d4d814aad8e2df43f867e1dd61baf59b9075","message":"fix(governance): 命名门禁 32 条违规逐行豁免 —— 治理脚本里的 terminal 是终态不是终端\n\na0ebf77(当前 HEAD 的前一提交)引入 scripts/lib/database-rls-*-governance.mjs 与\nos-product-migration-governance.mjs 时,命名门禁没跑过——提交后 naming 由 0 条变\n32 条,而 reports/naming.latest.json 停在 09-01 的 violations: 0,没人看得见。\n这正是\"无一份证据绑定当前 HEAD\"的实际后果。\n\n32 条全部是误报类:\n- 31 × terminal:`employment-terminal-late-authority-revoke` 这类指的是**迁移序列\n 与 RLS 的终态**,业务词典要求改成 device(设备)在这里是错的\n- 1 × business:`shared business database` 是 PostgreSQL 术语,不是业务方\n\n扫描面与词典自 2026-08-25 bootstrap 起未变,所以不是门禁改严了,是新代码撞上了\n一直存在的词表。\n\n用门禁自带的逐行 `// naming-ignore` 机制,并逐条写明理由——不收窄 SCAN_DIRS:\n治理脚本里同样会出现业务概念名,去掉 scripts/ 会让真的违规漏网。豁免要作者写明,\n不能按路径猜,与工作区一致性门禁的 `\u003c!-- 一致性门禁豁免 --\u003e` 同一口径。\n\n改动只在行尾追加注释,5 处含模板字符串的行已逐一核对反引号在同行闭合。\n三份治理模块的自有测试 311/311 通过,四个文件 node --check 通过。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/8d74d4d814aad8e2df43f867e1dd61baf59b9075","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-15T00:40:57-07:00","added":[],"removed":[],"modified":["scripts/check-api-migration-safety.mjs","scripts/lib/database-rls-history-governance.mjs","scripts/lib/database-rls-history-governance.test.mjs","scripts/lib/database-rls-role-governance.mjs","scripts/lib/database-rls-role-governance.test.mjs","scripts/lib/os-product-migration-governance.mjs","scripts/lib/os-product-migration-governance.test.mjs"]},{"id":"7d14ff2472a4204046b7d6bbea1a4d84f408e7f3","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,并记下 naming 的 32 条真实违规\n\n迁移后本仓 37 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于脏树,其中\n15 份正文还带着 /Users/ailaoluo/ 的两代前绝对根——那是另一台机器。所以此前既不能\n说\"当前 HEAD 是绿的\",也不能说\"是红的\",它一直是未知数。\n\n本次在 clean HEAD (a0ebf77) 上重跑全部静态门禁:12 通过 / 8 失败,提交其中 15 份\n(provenance 全部 gitSha=a0ebf77 且 worktreeDirty=false)。\n\n**一条真实失败:check-naming 32 条违规。** 上一份报告(09-01)记的是 violations: 0。\n命中全部落在门禁脚本自己身上——scripts/lib/database-rls-history-governance.mjs 的\n`terminal`(RLS 终态)被业务词典判成应改为 device,check-api-migration-safety.mjs 的\n`business database` 判成应改为 merchant。业务词典的扫描面覆盖到了治理脚本,而那里的\n词是技术义不是业务义。这是扫描面扩大后出现的误报类失败,词典或扫描面需收敛。\n\n**刻意不提交 3 份**:dual-backend-behavior / health-dependency-failure /\noutbox-multi-instance 因缺 DATABASE_URL 写出 failed——那是跑不起来,不是判定失败,\n记进去会把环境缺失伪装成质量问题。\n\n**保留两份 OS 产品的失败报告**:os-product-layer 与 os-product-registration-verification\n这次的失败理由是当前的(前者卡 host-ui 报告、后者卡 target OS checkout 与 runtime\n验收证据),且不再含两代前的绝对根——比它们替换掉的旧报告更可用。\n\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/7d14ff2472a4204046b7d6bbea1a4d84f408e7f3","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-15T00:35:28-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/database-rls.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-privacy.latest.json","reports/os-product-registration-verification.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"3c9f6df78f540226554cb4ecc6115741fe478c41","message":"chore(governance): 接真实 DB 重跑,13→15 通过,并暴露 outbox 多实例的可复现失败\n\n按本目录\"每轮新建空验收库\"的口径建独立库:\n juhai_ai_hr_system_parity_20260915(prisma migrate deploy 后为空库)\n REDIS_URL 用 /14 号逻辑库\n\n库名前缀不是随便起的——G15 守卫按 package.json 的 name 推导(juhai_ai_hr_system),\n首次用 juhai_hr_parity_* 被三条门禁正确拒绝:\"Database … does not belong to …\"。\n守卫工作正常,是库名起错了。\n\n接上实例后两条转绿:check-dual-backend-behavior、check-health-dependency-failure。\n\n**新暴露一条可复现失败:check-outbox-multi-instance**\n nestjs / fastify 双侧同样结果:dispatched=120, observed=0, subscriberStatus=ready\n连跑两次一致。门禁本身跑完了全程,不是\"缺环境变量跑不起来\"那一类。根因未定——\n可能是缺少未文档化的 relay / worker 配置(本仓 .env 里没有任何 REDIS/DATABASE 项),\n也可能是真实缺陷。不在此下结论,交仓 Owner;报告如实记录该结果。\n\n仍失败的另外 4 条:api-migration-safety 需 MIGRATION_TEST_ADMIN_URL;\nos-product-host-ui 需浏览器;os-product-layer 与 os-product-registration 分别级联于\nhost-ui 报告与 target OS checkout / runtime 验收证据。\n\n18 份报告 provenance 全部绑定 d970541 且 worktreeDirty=false;连接串中口令已按仓内\n既有口径脱敏为 app:***,仅余本机地址与库名。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/3c9f6df78f540226554cb4ecc6115741fe478c41","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-15T00:50:03-07:00","added":[],"removed":[],"modified":["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/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/health-dependency-failure.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-distribution.latest.json","reports/os-product-layer.latest.json","reports/os-product-privacy.latest.json","reports/os-product-registration-verification.latest.json","reports/outbox-multi-instance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"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":5038,"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-15T12:10:42+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"}}...
|
push
|
2
|
6
|
1789458920
|
1789458978
|
0
|
1789458920
|
1789458979
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23974
|
chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提 chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交...
|
82
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
7c4b197f018b02f5ed675758af3f5be5dbd1de02
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","after":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7...7c4b197f018b02f5ed675758af3f5be5dbd1de02","commits":[{"id":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 22 份 reports/*.latest.json 无一绑定当前 HEAD,21 份还生成于脏树,\n按证据纪律一律 STALE——当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (ab2e7f1) 上逐条重跑:15 通过 / 3 失败,16 份报告 provenance\n全部 gitSha=ab2e7f1 且 worktreeDirty=false。\n\n三条失败**不是判定失败,是跑不起来**——缺环境变量,属需实例门禁:\n- check-capacity CAPACITY_FASTIFY_URL\n- check-dual-backend-behavior DATABASE_URL + REDIS_URL\n- check-outbox-operations DATABASE_URL\n\n也就是说本仓静态面 15/15 全绿。按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升\n到静态一级;需实例那三条要另起一轮。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7c4b197f018b02f5ed675758af3f5be5dbd1de02","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-15T00:34:15-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/capacity.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/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]}],"total_commits":0,"head_commit":{"id":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 22 份 reports/*.latest.json 无一绑定当前 HEAD,21 份还生成于脏树,\n按证据纪律一律 STALE——当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (ab2e7f1) 上逐条重跑:15 通过 / 3 失败,16 份报告 provenance\n全部 gitSha=ab2e7f1 且 worktreeDirty=false。\n\n三条失败**不是判定失败,是跑不起来**——缺环境变量,属需实例门禁:\n- check-capacity CAPACITY_FASTIFY_URL\n- check-dual-backend-behavior DATABASE_URL + REDIS_URL\n- check-outbox-operations DATABASE_URL\n\n也就是说本仓静态面 15/15 全绿。按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升\n到静态一级;需实例那三条要另起一轮。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7c4b197f018b02f5ed675758af3f5be5dbd1de02","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-15T00:34:15-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/capacity.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/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.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":true,"fork":false,"template":false,"mirror":false,"size":1857,"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":1,"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-09-15T10:54:24+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"}}...
|
push
|
2
|
6
|
1789458993
|
1789459020
|
0
|
1789458921
|
1789459022
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23975
|
chore(governance): 接真实 DB 重跑,19/19 全绿,并证实 3 处" chore(governance): 接真实 DB 重跑,19/19 全绿,并证实 3 处"文档漂移"是级联假象...
|
84
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"558e30bac2666ebe08fed4d2649e433638ead6c6","after":"cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/558e30bac2666ebe08fed4d2649e433638ead6c6...cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","commits":[{"id":"cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","message":"chore(governance): 接真实 DB 重跑,19/19 全绿,并证实 3 处\"文档漂移\"是级联假象\n\n上一轮只提交了静态面 17 份,刻意留下 backend-behavior-parity 与 docs-truth——\n前者无实例时会把\"跑不起来\"写成\"0 例通过\",后者被这个 0 带塌(CLAUDE.md 记 28 例\nvs 机器真源 0)。本轮补上实例把这条链跑通。\n\n按本目录\"每轮新建空验收库\"的口径,建独立库而不是用 dev 库:\n juhai_knowledge_cloud_parity_20260915(prisma migrate deploy 后为空库)\n REDIS_URL 用 /13 号逻辑库,避开 .env 的 /12\n\n结果:\n- backend-behavior-parity 28 个 HTTP/DB/outbox 黑盒检查一致,负向探针 3/3\n ——28 正是 CLAUDE.md 记的数字,证实那个 0 纯粹是\"跑不起来\"的产物(U-36)\n- docs-truth 由 3 处漂移变为通过,**且数字负向探针由 7/9 升为 9/9**——此前它自己\n 报的\"门禁可能是假绿\"成立:parity 数字为 0 时两条探针是哑的,现在才真正有效\n- 静态 + 真实 DB 合计 19/19 全绿,19 份报告 provenance 全部绑定 558e30b 且\n worktreeDirty=false\n\n证据等级由\"静态\"提升到\"真实 DB\"(浏览器一级仍未做)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","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-15T00:45:32-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.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/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f77022f4abb4c9de6fc4d7214432480dc3a2cd6e","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 27 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于脏树,按证据\n纪律一律 STALE——当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (558e30b) 上重跑:静态面 17/17 全绿,17 份报告 provenance 全部\ngitSha=558e30b 且 worktreeDirty=false。\n\n刻意**不**提交两份:\n- backend-behavior-parity:实跑证实它需要 DATABASE_URL + REDIS_URL\n (test/backend.behavior.parity.test.ts:385 直接抛),属需实例门禁。无实例时它会\n 写出\"0 例\"的报告——把\"跑不起来\"记成\"0 例通过\",比留着旧报告更坏。\n- docs-truth:它的失败是上一条的级联——CLAUDE.md 记的 parity 是 28 例,而机器真源\n 被上一条写成 0,于是判文档漂移。根因消除前这份报告没有意义。\n\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级;那两条与 runtime / UI\n一起要另起一轮带实例的。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/f77022f4abb4c9de6fc4d7214432480dc3a2cd6e","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-15T00:34:57-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","message":"chore(governance): 接真实 DB 重跑,19/19 全绿,并证实 3 处\"文档漂移\"是级联假象\n\n上一轮只提交了静态面 17 份,刻意留下 backend-behavior-parity 与 docs-truth——\n前者无实例时会把\"跑不起来\"写成\"0 例通过\",后者被这个 0 带塌(CLAUDE.md 记 28 例\nvs 机器真源 0)。本轮补上实例把这条链跑通。\n\n按本目录\"每轮新建空验收库\"的口径,建独立库而不是用 dev 库:\n juhai_knowledge_cloud_parity_20260915(prisma migrate deploy 后为空库)\n REDIS_URL 用 /13 号逻辑库,避开 .env 的 /12\n\n结果:\n- backend-behavior-parity 28 个 HTTP/DB/outbox 黑盒检查一致,负向探针 3/3\n ——28 正是 CLAUDE.md 记的数字,证实那个 0 纯粹是\"跑不起来\"的产物(U-36)\n- docs-truth 由 3 处漂移变为通过,**且数字负向探针由 7/9 升为 9/9**——此前它自己\n 报的\"门禁可能是假绿\"成立:parity 数字为 0 时两条探针是哑的,现在才真正有效\n- 静态 + 真实 DB 合计 19/19 全绿,19 份报告 provenance 全部绑定 558e30b 且\n worktreeDirty=false\n\n证据等级由\"静态\"提升到\"真实 DB\"(浏览器一级仍未做)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","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-15T00:45:32-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.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/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":84,"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-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1512,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.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-08-26T09:45:53+08:00","updated_at":"2026-09-15T10:54: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"}}...
|
push
|
2
|
6
|
1789459021
|
1789459046
|
0
|
1789458923
|
1789459047
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23976
|
chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提 chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交...
|
80
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bda8349f3440331dc74da6a4a41880607201d63d","after":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/compare/bda8349f3440331dc74da6a4a41880607201d63d...50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","commits":[{"id":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 19 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于 2026-08-26 /\n09-10 的旧树,按证据纪律一律按 STALE 对待——也就是说当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (bda8349) 上逐条重跑全部静态门禁:12 通过 / 2 失败,14 份报告\nprovenance 全部 gitSha=bda8349 且 worktreeDirty=false。\n\n两条失败都是跨仓耦合,不是本仓静态问题:\n- check-evidence-current:os-product-runtime 的 upstream 指向基座 checkout 状态\n- check-os-product-compat:产品兼容性需要基座侧路径\n\n不跑需实例的门禁(runtime / UI / 容器 / 灾备),那些要 DATABASE_URL 与浏览器,\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","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-15T00:34:03-07:00","added":[],"removed":[],"modified":["reports/ci-evidence.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 19 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于 2026-08-26 /\n09-10 的旧树,按证据纪律一律按 STALE 对待——也就是说当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (bda8349) 上逐条重跑全部静态门禁:12 通过 / 2 失败,14 份报告\nprovenance 全部 gitSha=bda8349 且 worktreeDirty=false。\n\n两条失败都是跨仓耦合,不是本仓静态问题:\n- check-evidence-current:os-product-runtime 的 upstream 指向基座 checkout 状态\n- check-os-product-compat:产品兼容性需要基座侧路径\n\n不跑需实例的门禁(runtime / UI / 容器 / 灾备),那些要 DATABASE_URL 与浏览器,\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","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-15T00:34:03-07:00","added":[],"removed":[],"modified":["reports/ci-evidence.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":80,"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-device-cloud","full_name":"luoanwu/juhai-device-cloud","description":"巨嗨设备云:永久设备身份、激活调拨、可信换板与授权治理","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":900,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-device-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud.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-08-25T23:52:33+08:00","updated_at":"2026-09-15T10:54:29+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"}}...
|
push
|
2
|
6
|
1789459046
|
1789459053
|
0
|
1789458924
|
1789459054
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23978
|
fix(docs): 2026-09-05 治理日志的五条本地链接改为相对本文件的路径
|
57
|
5
|
governance.yml
|
230
|
5
|
0
|
refs/heads/main
|
7340f6472014bec4a3f1b148bc9b8c34507f69bf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0724820e7884688d0466bc74563122005bbac86e","after":"7340f6472014bec4a3f1b148bc9b8c34507f69bf","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/0724820e7884688d0466bc74563122005bbac86e...7340f6472014bec4a3f1b148bc9b8c34507f69bf","commits":[{"id":"7340f6472014bec4a3f1b148bc9b8c34507f69bf","message":"fix(docs): 2026-09-05 治理日志的五条本地链接改为相对本文件的路径\n\n工作区一致性门禁 L4 在本仓报出五条失效链接,全在这一份文件。五个目标文件都在,\n问题是链接写成了仓根相对路径(docs/product/x.md),而本文件在 docs/governance/log/\n下,解析成 docs/governance/log/docs/product/x.md。\n\n改为相对本文件:docs/product|design/* → ../../product|design/*,docs/README.md →\n../../README.md,reports/* → ../../../reports/*。日志正文一字未动。\n\n核验:node 平台治理/基础/scripts/check-workspace-consistency.mjs --only L4 由 5 条\n降为 0(扫描面 33 个仓 / 5372 条本地链接)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7340f6472014bec4a3f1b148bc9b8c34507f69bf","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-15T03:06:34-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-05.md"]}],"total_commits":0,"head_commit":{"id":"7340f6472014bec4a3f1b148bc9b8c34507f69bf","message":"fix(docs): 2026-09-05 治理日志的五条本地链接改为相对本文件的路径\n\n工作区一致性门禁 L4 在本仓报出五条失效链接,全在这一份文件。五个目标文件都在,\n问题是链接写成了仓根相对路径(docs/product/x.md),而本文件在 docs/governance/log/\n下,解析成 docs/governance/log/docs/product/x.md。\n\n改为相对本文件:docs/product|design/* → ../../product|design/*,docs/README.md →\n../../README.md,reports/* → ../../../reports/*。日志正文一字未动。\n\n核验:node 平台治理/基础/scripts/check-workspace-consistency.mjs --only L4 由 5 条\n降为 0(扫描面 33 个仓 / 5372 条本地链接)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7340f6472014bec4a3f1b148bc9b8c34507f69bf","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-15T03:06:34-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-05.md"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":979637,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":42,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-15T12:09: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"}}...
|
push
|
2
|
4
|
1789468069
|
1789468113
|
0
|
1789468038
|
1789468113
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23979
|
chore(reports): refresh clean static evidence @ 2c chore(reports): refresh clean static evidence @ 2ceb5d8(v0.22.0 记录提交;45 文件 / 314 静态用例)...
|
54
|
5
|
governance.yml
|
40
|
5
|
0
|
refs/heads/main
|
23c6960de45354e3ea524f9d81ce8b9d2d2fc7af
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9690ba98673547cb338309cd66f41ff6dbcaf61b","after":"23c6960de45354e3ea524f9d81ce8b9d2d2fc7af","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/9690ba98673547cb338309cd66f41ff6dbcaf61b...23c6960de45354e3ea524f9d81ce8b9d2d2fc7af","commits":[{"id":"23c6960de45354e3ea524f9d81ce8b9d2d2fc7af","message":"chore(reports): refresh clean static evidence @ 2ceb5d8(v0.22.0 记录提交;45 文件 / 314 静态用例)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/23c6960de45354e3ea524f9d81ce8b9d2d2fc7af","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-15T03:57:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/conformance-matrix.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-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"2ceb5d88c1b36c1e5bb92608054e6503bedcc292","message":"docs: record clean commit acceptance @ 6443380(v0.22.0:四级证据同 SHA——runtime 325 / 差分 10×2 / tenantRlsEnforced=1;UI 4×11;部署 13 步 + 回滚演练;生产 14 步 + 故障注入 + 恢复演练)\n\n- CLAUDE.md 动态区四级条目全部改为 clean `6443380`;tests-passing 地板 320 → 325;framework-version 行钉 v0.22.0@6443380\n- reports/baseline.json testsPassed 325\n- registry 实测仍为 0.16.1:0.17.0–0.22.0 未发布,发布动作留给框架 Owner(本轮 publish 未获执行许可)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/2ceb5d88c1b36c1e5bb92608054e6503bedcc292","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-15T03:56:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md","COMPATIBILITY.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/deployment-acceptance.latest.json","reports/docs-truth.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"]},{"id":"64433802b34d1780402486d61a9b6dbf911ac0f7","message":"docs(release): 0.22.0 版本轴收口——录入 C39 告警生产方、证据新鲜度四级断言与地板收紧\n\n- CHANGELOG 0.22.0 补第四项(C39:作业重试耗尽 / Redis 连接异常两个告警生产方,18fba1c 只提交了实现与门禁)\n- CLAUDE.md:C39 处置行、G20 仍缺清单去掉已补的两个生产方、own-tests 45 / own-test-cases 314(此前表内仍写 42 / 286)\n- reports/baseline.json:ownTestCases 311 → 314(棘轮只收紧)\n- COMPATIBILITY.md 0.22.0 小节补告警生产方的派生仓动作\n- check-docs-truth:freshness-sha-* 判定收紧为声明形式(另一会话在途改动,随本提交一并落地)\n- reports/ 为本轮 dirty 运行的中间产物,随后在 clean 提交上重跑刷新\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/64433802b34d1780402486d61a9b6dbf911ac0f7","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-15T03:50:54-07:00","added":[],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","COMPATIBILITY.md","reports/agent-adapters.latest.json","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/production-acceptance.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/validation-source.latest.json","scripts/check-docs-truth.mjs"]},{"id":"18fba1c6dc228a6b2cf425bd003892e5cfc6feaa","message":"feat(observability): 补两个告警生产方——作业重试耗尽与 Redis 连接异常(G20,C39)\n\nG20 此前只有两个生产方(outbox 死信、流阻断)。另外两类同样该让值班知道的事件此前是静音的:\n\n- 作业重试耗尽:只广播 job.failed 实时事件 + 一行日志——**没人订阅实时事件时它就是静音的**,\n 而\"作业彻底失败\"恰恰最需要有人知道\n- Redis 连接异常:Redis 一断,实时投递与作业队列同时失效,此前只有一行 error 日志\n\n实现:\n- 内核 alert.ts 新增两个码与两个构造函数 buildJobRetryExhaustedAlert / buildRedisConnectionLostAlert\n (两后端共用同一份构造;各写一套会让同一事件在两个后端推出 severity/fingerprint 不同的告警,\n 值班侧无法按同一规则路由与去重)\n- 去重口径:作业按 jobId、Redis 按连接角色(重连风暴压成一条,投递器自带 TTL)\n- 两后端四处接线;Redis 告警失败不再触发告警,避免连接异常时自激\n- 内核 3 个单测(形状/去重/租户维度)+ check:dual-backend C39 绊网,负向已验证\n (把任一侧的构造函数改名即 exit 1)\n\n注:本轮只提交实现与门禁。CHANGELOG / CLAUDE.md 的录入与地板收紧留给正在并行做记录的会话——\n另:先前的 4f45161 因用了 git add -A,把该会话在途的 check-docs-truth.mjs 改动一并提交了,\n本轮起只暂存自己碰过的文件。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/18fba1c6dc228a6b2cf425bd003892e5cfc6feaa","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-15T03:04:54-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/redis/redis.module.ts","packages/kernel/src/alert.test.ts","packages/kernel/src/alert.ts","scripts/check-dual-backend-parity.mjs"]},{"id":"db5e2c0b9e1523e5db3b74b143fae3e6725d640a","message":"feat(gates): 治理聚合报告必须声明结论(0.22.0,受理结论字段 FR-1/FR-2;C38)\n\n兄弟报告(runtime/ui)都写 status,唯独 governance.latest.json 不写:成败只由退出码表达,而退出码\n不进报告、不进证据链。工作区实测 20 份无一携带 status,消费侧两条 blocker 恒红且重跑一千次也不会变。\n更尖锐的一半是写入时机——三处失败关闭都在写入之后,指标 schema 挂了、棘轮回退了,磁盘上留下的仍是\n一份与成功运行无法区分的报告。看起来通过是彻底的静音,比永远红更坏。\n\n- 报告增 status(running → passed/failed)与 failures[{kind,detail}];先落 running,进程被杀也不会\n 留下 passed\n- 单点 finish():四条失败分支(状态清单生成失败、来源绑定违规、指标 schema 缺失、棘轮回退)与两条\n 成功分支(基线初始化、--update-baseline)全部经它定稿后才 exit;将来新增分支走 finish() 即不会漏\n- 负向实做:临时让子门禁少写一个预期指标 key → 退出码 1、磁盘 status=failed、failures 原因可读;\n 恢复后转绿。注入点必须是子门禁脚本而非子报告文件——聚合器每轮重跑子门禁会覆盖报告\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/db5e2c0b9e1523e5db3b74b143fae3e6725d640a","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-15T02:23:17-07:00","added":[],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","COMPATIBILITY.md","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"23c6960de45354e3ea524f9d81ce8b9d2d2fc7af","message":"chore(reports): refresh clean static evidence @ 2ceb5d8(v0.22.0 记录提交;45 文件 / 314 静态用例)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/23c6960de45354e3ea524f9d81ce8b9d2d2fc7af","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-15T03:57:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/conformance-matrix.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-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":54,"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":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5346,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-15T13:47:38+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"}}...
|
push
|
2
|
10
|
1789469863
|
1789469911
|
0
|
1789469862
|
1789469924
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23980
|
docs: 远端与 CI 状态回灌——两端已对齐 23c6960、tag v0.9.0–v0.22. docs: 远端与 CI 状态回灌——两端已对齐 23c6960、tag v0.9.0–v0.22.0 齐;GitHub run 34960704560 因账户计费未启动,G14 仍不得 GREEN...
|
54
|
5
|
governance.yml
|
41
|
5
|
0
|
refs/heads/main
|
c358bd2a5db604566b840c6dfb1ade93feeaf558
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"23c6960de45354e3ea524f9d81ce8b9d2d2fc7af","after":"c358bd2a5db604566b840c6dfb1ade93feeaf558","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/23c6960de45354e3ea524f9d81ce8b9d2d2fc7af...c358bd2a5db604566b840c6dfb1ade93feeaf558","commits":[{"id":"c358bd2a5db604566b840c6dfb1ade93feeaf558","message":"docs: 远端与 CI 状态回灌——两端已对齐 23c6960、tag v0.9.0–v0.22.0 齐;GitHub run 34960704560 因账户计费未启动,G14 仍不得 GREEN\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/c358bd2a5db604566b840c6dfb1ade93feeaf558","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-15T03:59:19-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]}],"total_commits":0,"head_commit":{"id":"c358bd2a5db604566b840c6dfb1ade93feeaf558","message":"docs: 远端与 CI 状态回灌——两端已对齐 23c6960、tag v0.9.0–v0.22.0 齐;GitHub run 34960704560 因账户计费未启动,G14 仍不得 GREEN\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/c358bd2a5db604566b840c6dfb1ade93feeaf558","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-15T03:59:19-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":54,"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":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5756,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-15T18:57:42+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"}}...
|
push
|
2
|
10
|
1789469962
|
1789470008
|
0
|
1789469962
|
1789470019
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23981
|
chore(reports): refresh clean static evidence @ ac chore(reports): refresh clean static evidence @ acf6482(G31 登记提交)...
|
54
|
5
|
governance.yml
|
42
|
5
|
0
|
refs/heads/main
|
d6747e3462dad1329a0d99ed090c658cd7a42bed
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c358bd2a5db604566b840c6dfb1ade93feeaf558","after":"d6747e3462dad1329a0d99ed090c658cd7a42bed","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/c358bd2a5db604566b840c6dfb1ade93feeaf558...d6747e3462dad1329a0d99ed090c658cd7a42bed","commits":[{"id":"d6747e3462dad1329a0d99ed090c658cd7a42bed","message":"chore(reports): refresh clean static evidence @ acf6482(G31 登记提交)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/d6747e3462dad1329a0d99ed090c658cd7a42bed","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-15T05:53:44-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.latest.json","reports/conformance-matrix.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-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"acf6482326e030965a080b792d3e90490e790aa9","message":"feat(gates): 依赖安全审计门禁 pnpm check:dependencies(G31)——按运行时/工具链路径分类,首跑即红 28 条阻断\n\n- scripts/check-dependency-audit.mjs:pnpm audit --json → reports/dependency-audit.latest.json(带 provenance、status 三值 passed/failed/unrunnable)\n- critical 任意路径 / high 运行时路径未豁免即红;工具链(vitest、@nestjs/cli、@capacitor/cli、prisma CLI、eslint 家族、autoprefixer…)只记录\n- dependency-audit.allowlist.json:豁免必须带 reason + expires,过期失效;缺字段即红\n- 需要网络,不进 pnpm check(G9);CLAUDE.md 登记 G31 与基线表 RED 行,CHANGELOG [Unreleased]\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/acf6482326e030965a080b792d3e90490e790aa9","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-15T05:53:36-07:00","added":["dependency-audit.allowlist.json","reports/dependency-audit.latest.json","scripts/check-dependency-audit.mjs"],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","package.json","reports/agent-adapters.latest.json","reports/conformance-matrix.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-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"d6747e3462dad1329a0d99ed090c658cd7a42bed","message":"chore(reports): refresh clean static evidence @ acf6482(G31 登记提交)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/d6747e3462dad1329a0d99ed090c658cd7a42bed","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-15T05:53:44-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.latest.json","reports/conformance-matrix.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-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":54,"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":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5816,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-15T18:59:22+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"}}...
|
push
|
2
|
10
|
1789476827
|
1789476917
|
0
|
1789476826
|
1789476950
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23982
|
chore(dev): .claude/launch.json 基座端口对齐本机口径 5432/63 chore(dev): .claude/launch.json 基座端口对齐本机口径 5432/6379(原 55432/6382 是旧机器)...
|
54
|
5
|
governance.yml
|
43
|
5
|
0
|
refs/heads/main
|
df53867debc4df305454a4132edebe44819e5445
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d6747e3462dad1329a0d99ed090c658cd7a42bed","after":"df53867debc4df305454a4132edebe44819e5445","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/d6747e3462dad1329a0d99ed090c658cd7a42bed...df53867debc4df305454a4132edebe44819e5445","commits":[{"id":"df53867debc4df305454a4132edebe44819e5445","message":"chore(dev): .claude/launch.json 基座端口对齐本机口径 5432/6379(原 55432/6382 是旧机器)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/df53867debc4df305454a4132edebe44819e5445","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-15T23:02:06-07:00","added":[],"removed":[],"modified":[".claude/launch.json"]}],"total_commits":0,"head_commit":{"id":"df53867debc4df305454a4132edebe44819e5445","message":"chore(dev): .claude/launch.json 基座端口对齐本机口径 5432/6379(原 55432/6382 是旧机器)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/df53867debc4df305454a4132edebe44819e5445","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-15T23:02:06-07:00","added":[],"removed":[],"modified":[".claude/launch.json"]},"repository":{"id":54,"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":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5942,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-15T20:53:47+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"}}...
|
push
|
2
|
10
|
1789538531
|
1789538622
|
0
|
1789538530
|
1789538654
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23983
|
docs: scope-snapshot-blueprint 把 DEC-001—005 从" docs: scope-snapshot-blueprint 把 DEC-001—005 从"仍待裁决"改为"已裁定、权威 Resolver 未实现"...
|
106
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
f978ade7e90469ee1a0a8992c1073d4275b00b51
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11","after":"f978ade7e90469ee1a0a8992c1073d4275b00b51","compare_url":"https://gitea.g-hi.com/luoanwu/tenant-scope/compare/0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11...f978ade7e90469ee1a0a8992c1073d4275b00b51","commits":[{"id":"f978ade7e90469ee1a0a8992c1073d4275b00b51","message":"docs: scope-snapshot-blueprint 把 DEC-001—005 从\"仍待裁决\"改为\"已裁定、权威 Resolver 未实现\"\n\n治理层 check-workspace-consistency L10 最后一条命中:DEC-001—005 已于 2026-09-12 批准,本文仍写作未决前置。\n改为\"卡在没做\"而不是\"卡在裁决\"(真源仓 runtime/modules/scope 仍 state=shape)。清扫后 L10 归零,工作区一致性 4 → 3 条。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/f978ade7e90469ee1a0a8992c1073d4275b00b51","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-15T05:53:28-07:00","added":[],"removed":[],"modified":["docs/domain/scope-snapshot-blueprint.md"]}],"total_commits":0,"head_commit":{"id":"f978ade7e90469ee1a0a8992c1073d4275b00b51","message":"docs: scope-snapshot-blueprint 把 DEC-001—005 从\"仍待裁决\"改为\"已裁定、权威 Resolver 未实现\"\n\n治理层 check-workspace-consistency L10 最后一条命中:DEC-001—005 已于 2026-09-12 批准,本文仍写作未决前置。\n改为\"卡在没做\"而不是\"卡在裁决\"(真源仓 runtime/modules/scope 仍 state=shape)。清扫后 L10 归零,工作区一致性 4 → 3 条。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/f978ade7e90469ee1a0a8992c1073d4275b00b51","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-15T05:53:28-07:00","added":[],"removed":[],"modified":["docs/domain/scope-snapshot-blueprint.md"]},"repository":{"id":106,"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":"tenant-scope","full_name":"luoanwu/tenant-scope","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3291,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope/languages","html_url":"https://gitea.g-hi.com/luoanwu/tenant-scope","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/tenant-scope.git","clone_url":"https://gitea.g-hi.com/luoanwu/tenant-scope.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:13+08:00","updated_at":"2026-09-15T12:11:05+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"}}...
|
push
|
2
|
10
|
1789539964
|
1789539986
|
0
|
1789539963
|
1789539996
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
24005
|
docs: record service restart and relocated model p docs: record service restart and relocated model path recovery...
|
57
|
5
|
governance.yml
|
231
|
5
|
0
|
refs/heads/main
|
c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7340f6472014bec4a3f1b148bc9b8c34507f69bf","after":"c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/7340f6472014bec4a3f1b148bc9b8c34507f69bf...c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5","commits":[{"id":"c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5","message":"docs: record service restart and relocated model path recovery\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5","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-16T22:38:59-07:00","added":["docs/governance/log/2026-09-17-service-restart.md","reports/restart-2026-09-17/verification.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5","message":"docs: record service restart and relocated model path recovery\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5","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-16T22:38:59-07:00","added":["docs/governance/log/2026-09-17-service-restart.md","reports/restart-2026-09-17/verification.json"],"removed":[],"modified":[]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":979685,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":42,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-15T18:27:18+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"}}...
|
push
|
2
|
4
|
1789623562
|
1789623611
|
0
|
1789623561
|
1789623611
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24093
|
chore(reports): 内核准入门禁首轮 8 处诚实红 回绑 @ ee6d5a9
|
76
|
5
|
governance.yml
|
54
|
5
|
0
|
refs/heads/main
|
ea965ed902a9807d07d7d89fc173668804c6294c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c433d57b4aae2249bd19a085d1c520bf6baedf55","after":"ea965ed902a9807d07d7d89fc173668804c6294c","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/c433d57b4aae2249bd19a085d1c520bf6baedf55...ea965ed902a9807d07d7d89fc173668804c6294c","commits":[{"id":"ea965ed902a9807d07d7d89fc173668804c6294c","message":"chore(reports): 内核准入门禁首轮 8 处诚实红 回绑 @ ee6d5a9\n\nclean 绑定(worktreeDirty:false)——工作区里三份 reports/ui-*.latest.json 的改动\n早于本批次,且 report-provenance 按设计忽略 latest 报告,不影响本次绑定。\n\nK4 七处(声明为 true,evidenceSources 无机器回执):\n- kernel.digital-employee-core.industryIndependent ← 只有 scripts/check-kernel-boundaries.mjs\n- kernel.digital-employee-core.crossProductRequired ← 只有下游夹具 .ts\n- kernel.digital-employee-core.dualBackendGoverned ← 一份 ADR + 两个脚本\n- pack.generative-ai 的 industryIndependent / dualBackendGoverned ← 源码文件与目录\n- pack.enterprise-fact-consumer 的两项同上\n\nK3 一处:tests/kernel-downstream-fixture/src/index.ts 只有命名空间导入。\n\n未一并修 evidenceSources。改指某份已存在的报告能立刻转绿,但只有当那份报告确实判过\n该条时才是真修:dual-backend-parity 是全仓级判定、不按组件出结论,改指它等于把自证\n换个地方做。哪份报告承接哪一条属 Owner 裁定,不随本次实现一并决定。\n\nK5 观测(不计红):跨产品具名消费面 5 个符号——ProductManifestInput、\nProductManifestComposition、ProductRuntimeContractCatalog、\nProductDataContractImplementation、ProductEventContractImplementation,\n全部来自 product-manifest.ts;33/38 个模块零跨产品消费,含 tenant.ts 的 65 个导出与\ntool.ts 的 99 个。该数字只作边界收缩决策的输入,不构成「应移出 CORE」的判定。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/ea965ed902a9807d07d7d89fc173668804c6294c","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-18T00:52:16-07:00","added":["reports/kernel-admission.latest.json"],"removed":[],"modified":[]},{"id":"ee6d5a98aa6d372d2fc2ea81f328d55cc15511f9","message":"feat(governance): 内核准入证据门禁 K1—K5,判据从声明下沉到导出清单与证据形态\n\nkernel.boundaries.json 的 admissionEvidence 是四个手写 true,evidenceSources\n只列了路径,没有「该判据确实被机器判过」的回执。实测两处后果:\n\n- CORE 声明 crossProductRequired: true,其证据源 tests/kernel-downstream-fixture/\n src/index.ts 是 10 个 import * as + 判非空 + 一个 typeof === \"function\" 的\n 命名空间冒烟测试——28 个契约模块全空它也照样通过。它能证明包可安装可加载,\n 不能证明任何一个模块跨产品必需\n- 归属粒度是文件:owns.contractModules 是文件名清单,于是\n packages/contracts/src/tenant.ts 一个 1075 行 / 65 导出的文件,把租户策略、\n JWT 验签、自建权限、work 域业务判定四类一起带进了 CORE\n\n手法同 check:platform-provenance(那一条把判据从 package.json 的声明下沉到\npnpm-lock.yaml 的解析结果)。五条判据:\n\n K1 EXPORT_LOCK_DRIFT 组件所辖契约模块的直接导出集合须与\n kernel.exports.lock.json 一致。只认直接声明,\n barrel 的再导出不算拥有——否则 index.ts 会「拥有」全仓\n K2 EXPORT_OWNERSHIP_AMBIGUOUS 同一导出名不得被两个组件同时拥有。拆分契约模块时\n 最容易「复制一份留在原处」,这条守住它\n K3 EVIDENCE_NAMESPACE_ONLY crossProductRequired 的证据源若只有命名空间导入、\n 无任何具名导入,按构造无法证明符号级必需性\n K4 EVIDENCE_NOT_BACKED 声明为 true 的每项须至少有一份机器回执\n (reports/*.json 或 *.lock.json)。脚本路径与文档路径\n 不是回执:只证明文件存在,不证明该判据被判过。\n 声明为 false 的项不要求回执\n K5 CROSS_PRODUCT_UNCONSUMED observed,不计红。CORE 模块未被产品消费不等于不该在\n CORE(OS 自己的两个后端在用);把观测项当红盘会逼出\n 「为了绿而乱改归属」的反向激励\n\n自检 pnpm check:kernel-admission:self-test 共 10 条,含 1 条基线正例与 2 条防过度\n判红(声明 false 不因无回执计红、零跨产品消费只出 observed)——对照组是为了防\n「只会红的假门禁」。\n\n锁基线 38 个模块 / 779 个导出(CORE 30 + generative-ai 7 + fact-consumer 1)。\n首次签发只固化「现在是什么」,不代表归属正确。\n\ncheck-all 末位注册,理由同 check:platform-provenance:本门禁自引入起即为已知诚实红,\nfail-fast 语义下排前面会让其余门禁全部不执行。pnpm check 因此从 27 步变 28 步且末步红,\n前 27 步照常产出证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/ee6d5a98aa6d372d2fc2ea81f328d55cc15511f9","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-18T00:52:01-07:00","added":["kernel.exports.lock.json","scripts/check-kernel-admission.mjs"],"removed":[],"modified":["package.json","scripts/check-all.mjs"]}],"total_commits":0,"head_commit":{"id":"ea965ed902a9807d07d7d89fc173668804c6294c","message":"chore(reports): 内核准入门禁首轮 8 处诚实红 回绑 @ ee6d5a9\n\nclean 绑定(worktreeDirty:false)——工作区里三份 reports/ui-*.latest.json 的改动\n早于本批次,且 report-provenance 按设计忽略 latest 报告,不影响本次绑定。\n\nK4 七处(声明为 true,evidenceSources 无机器回执):\n- kernel.digital-employee-core.industryIndependent ← 只有 scripts/check-kernel-boundaries.mjs\n- kernel.digital-employee-core.crossProductRequired ← 只有下游夹具 .ts\n- kernel.digital-employee-core.dualBackendGoverned ← 一份 ADR + 两个脚本\n- pack.generative-ai 的 industryIndependent / dualBackendGoverned ← 源码文件与目录\n- pack.enterprise-fact-consumer 的两项同上\n\nK3 一处:tests/kernel-downstream-fixture/src/index.ts 只有命名空间导入。\n\n未一并修 evidenceSources。改指某份已存在的报告能立刻转绿,但只有当那份报告确实判过\n该条时才是真修:dual-backend-parity 是全仓级判定、不按组件出结论,改指它等于把自证\n换个地方做。哪份报告承接哪一条属 Owner 裁定,不随本次实现一并决定。\n\nK5 观测(不计红):跨产品具名消费面 5 个符号——ProductManifestInput、\nProductManifestComposition、ProductRuntimeContractCatalog、\nProductDataContractImplementation、ProductEventContractImplementation,\n全部来自 product-manifest.ts;33/38 个模块零跨产品消费,含 tenant.ts 的 65 个导出与\ntool.ts 的 99 个。该数字只作边界收缩决策的输入,不构成「应移出 CORE」的判定。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/ea965ed902a9807d07d7d89fc173668804c6294c","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-18T00:52:16-07:00","added":["reports/kernel-admission.latest.json"],"removed":[],"modified":[]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":85205,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-15T13:47:40+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"}}...
|
push
|
2
|
36
|
1789718113
|
1789718128
|
0
|
1789718112
|
1789718143
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24098
|
chore(reports): tenant.ts 拆分第一步的八份静态门禁证据 回绑 @ 53be chore(reports): tenant.ts 拆分第一步的八份静态门禁证据 回绑 @ 53be2c3...
|
76
|
5
|
governance.yml
|
56
|
5
|
0
|
refs/heads/main
|
614681e6e78d0385bbf043ef964bd444d8e5958b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ea965ed902a9807d07d7d89fc173668804c6294c","after":"614681e6e78d0385bbf043ef964bd444d8e5958b","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/ea965ed902a9807d07d7d89fc173668804c6294c...614681e6e78d0385bbf043ef964bd444d8e5958b","commits":[{"id":"614681e6e78d0385bbf043ef964bd444d8e5958b","message":"chore(reports): tenant.ts 拆分第一步的八份静态门禁证据 回绑 @ 53be2c3\n\n八份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages 七绿,\nkernel-admission 仍是引入时那 8 处(K3 一处 + K4 七处),与拆分前逐条一致——\n本次未引入新红,也未消除旧红。\n\nkernel-admission 的 K1 在重签前如实报出本次变更:task.ts / outcome.ts 各新增、\ntenant.ts 消失 21 个(17 个降私有 + 4 个迁出)。kernel.exports.lock.json 已随实现提交\n重签为 762 个导出。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/614681e6e78d0385bbf043ef964bd444d8e5958b","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-18T01:00:33-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-packages.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},{"id":"53be2c3dd5e52e0392225f359296ef250447bc56","message":"refactor(contracts): tenant.ts 拆分第一步——work 域判定迁出、17 个零引用导出降私有\n\ntenant.ts 与框架 @juhai/kernel 的同名文件共有导出 0 个:它不是「改过的内核」,是绕过\n内核另写的一份,1075 行 / 65 导出里混着四类东西(租户策略、JWT 验签、自建权限、\nwork 域业务判定)。本次只做两件行为中性的事,不改任何实现。\n\n一、work 域判定迁出(不满足 kernel.boundaries.json 的 CORE 准入证据 crossProductRequired)\n\n requiredPermissionForTaskEvent / canApproveTask / canTransitionTask → task.ts\n canResolveOutcome → outcome.ts\n\n「哪些任务事件是特权事件」只对本 OS 的 work 域成立,不是跨产品必需的内核契约。\n角色与权限的定义仍留在 tenant.ts,后续随自建权限一并迁往 authorization.ts。\n\n二、17 个全仓零引用的导出降为模块内私有\n\n RsaSha256Verify verifyJwtRs256 JwksKeyStoreDeps browserJwtIdentitySchema\n BrowserJwtIdentity PermissionOverrideLike PermissionAuditEventData RoleAuditEventData\n TENANT_AUTH_STARTUP_MODES TenantAuthStartupMode TenantAuthStartupDecision\n TenantAuthEnvironment TenantAuthInput TenantAuthPosture RealtimeAuthExpiryDecision\n TenantAuthOptions AuditActorBinding\n\n前五个与 RsaSha256Verify / verifyJwtRs256 是 resolveTenantAuth 的内部实现,后端注入的是\nnode:crypto 的 createHmac / createVerify,从不按名字引用这些类型。\nPermissionAuditEventData / RoleAuditEventData 模块内也不使用,是纯死代码;本次只降可见性,\n删除留给后续。\n\ntenant.ts 65 → 44 导出。应用侧零改动——都经 @repo/contracts 根 barrel 导入,模块间搬移\n不可见;只有 contracts.test.ts 的直接 ./tenant 导入需要切分(保留 21、迁出 4)。\n\n验证:@repo/contracts 24 文件 312/312(与变更前基线逐个一致,行为中性);typecheck 13/13;\ncheck:dual-backend / naming / schema / validation / contract-consumers / kernel-boundaries 全绿。\ncheck-dual-backend-parity.mjs 对 tenant.ts 有 5 处内容位置断言(C51/C52/C73/C181),本次\n涉及的标识符全部仍在该文件内,故未触发;C 组迁往 authorization.ts 时这 5 处必须同步改路径。\n\n顺带一处发现:check:kernel-packages 对本次 21 个符号的公开面收缩完全无感——它的 apiDigest\n只覆盖导出子路径,不覆盖符号集合。真正抓到本次变更的是 check:kernel-admission 的 K1\n(task.ts/outcome.ts 3 处新增、tenant.ts 21 处消失)。kernel.exports.lock.json 随本提交重签\n779 → 762 个导出;重签是 K1「变更即复核」的设计意图,不是绕过。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/53be2c3dd5e52e0392225f359296ef250447bc56","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-18T00:59:59-07:00","added":[],"removed":[],"modified":["kernel.exports.lock.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/outcome.ts","packages/contracts/src/task.ts","packages/contracts/src/tenant.ts"]}],"total_commits":0,"head_commit":{"id":"614681e6e78d0385bbf043ef964bd444d8e5958b","message":"chore(reports): tenant.ts 拆分第一步的八份静态门禁证据 回绑 @ 53be2c3\n\n八份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages 七绿,\nkernel-admission 仍是引入时那 8 处(K3 一处 + K4 七处),与拆分前逐条一致——\n本次未引入新红,也未消除旧红。\n\nkernel-admission 的 K1 在重签前如实报出本次变更:task.ts / outcome.ts 各新增、\ntenant.ts 消失 21 个(17 个降私有 + 4 个迁出)。kernel.exports.lock.json 已随实现提交\n重签为 762 个导出。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/614681e6e78d0385bbf043ef964bd444d8e5958b","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-18T01:00:33-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-packages.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":85234,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T15:55:12+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"}}...
|
push
|
2
|
36
|
1789718533
|
1789718542
|
0
|
1789718531
|
1789718556
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24102
|
chore(reports): tenant.ts 拆分第三步的十三份静态门禁证据 回绑 @ a0a chore(reports): tenant.ts 拆分第三步的十三份静态门禁证据 回绑 @ a0a9f1a...
|
76
|
5
|
governance.yml
|
58
|
5
|
0
|
refs/heads/main
|
832f9b2e5ab646a48adbf37b80db1d41092f2f7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"614681e6e78d0385bbf043ef964bd444d8e5958b","after":"832f9b2e5ab646a48adbf37b80db1d41092f2f7e","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/614681e6e78d0385bbf043ef964bd444d8e5958b...832f9b2e5ab646a48adbf37b80db1d41092f2f7e","commits":[{"id":"832f9b2e5ab646a48adbf37b80db1d41092f2f7e","message":"chore(reports): tenant.ts 拆分第三步的十三份静态门禁证据 回绑 @ a0a9f1a\n\n十三份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages /\nkernel-downstream / kernel-extensions / statemachine-write-guard / list-bounds /\nfork-readiness 十二绿;kernel-admission 仍是引入时那 8 处(K3 一处 + K4 七处),\n与三步拆分前逐条一致——全程未引入新红,也未消除旧红。\n\n三步各自撞到的门禁都如实红过再修,没有一处是先改门禁再做变更:\n第一步 K1(导出归属漂移);第二步 K1 + kernel-packages P7(公开面变更须伴随版本上调)\n+ kernel-downstream D1(下游安装版本随之重签);第三步同上两处 P7 / D1。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/832f9b2e5ab646a48adbf37b80db1d41092f2f7e","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-18T01:12:22-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a0a9f1aa5d77ac7d1c9b74a3e445a323a205f5b6","message":"refactor(contracts): tenant.ts 拆分第三步——自建权限改名 authorization.ts,tenant 之名腾空\n\n第一步迁出 work 域判定、第二步迁出自建身份之后,tenant.ts 剩下的 22 个导出整体就是\n「自建权限」一类。因此第三步不是搬符号,是给文件正名。\n\n packages/contracts/src/tenant.ts → packages/contracts/src/authorization.ts\n\n改名本身的价值不只是可读性:OS 的 tenant.ts 与框架 @juhai/kernel 的同名文件**共有导出 0 个**,\n框架那份是租户解析策略(normalizeTenantId / tenantIdFromClaims / decideTenantResolution /\nresolveAuthMode / AUTH_MODES),OS 一个都没有。两个同名不同义的文件是「形似而神不同」漂移\n最典型的载体。改名之后 tenant.ts 这个名字腾空,留给内核退回 pin 时由 @juhai/kernel 提供的\n真正租户原语——顺带补上 OS 现在缺的 tenantId 形状与长度校验(当前主口径是无上限的\nz.string().min(1),另有两处 .max(128) 与 employment-projection.ts 的 ^ten_.+$,三套并存)。\n\n同步改动:\n\n- 六处 import 改指:identity.ts / outcome.ts / task.ts / index.ts / kernel.ts / contracts.test.ts。\n- check-dual-backend-parity.mjs 的 C52 两条断言(权限目录与角色默认值、ALLOW/DENY 优先级)\n 改指 authorization.ts。C52 没有专用负向探针,但 expectSource 对缺失文件计 missing file\n 违规(fail-closed),门禁绿即证明两条断言在新路径上真实命中,不是指向不存在文件的假绿。\n- kernel.boundaries.json:CORE 的 contractModules 由 tenant.ts 改为 authorization.ts。\n- check-kernel-admission.mjs 头部叙述里的 tenant.ts 改为历史表述,不再指向已不存在的路径。\n- @repo/contracts 1.17.0 → 1.18.0(根与 kernel 两个 barrel 的 export 行都变了,P7 要求公开面\n 变更伴随版本上调);kernel.packages.lock.json / kernel.downstream.lock.json /\n kernel.exports.lock.json 三把锁随之重签。\n\n本步**未**把自建权限移出 @repo/contracts/kernel 子路径。按同一套理由(铁律三:平台拥有规则)\n它和自建身份一样不属于跨产品必需的内核契约,但从已声明的稳定子路径上摘除符号是**破坏性\n收窄**,应单独裁定并走主版本号,不随改名夹带。实测当前 kernel 子路径的唯一消费者是下游夹具\n的命名空间导入,产品侧零具名消费——真要摘,成本主要在版本语义而非调用方。\n\n三步累计:tenant.ts 1075 行 / 65 导出 → authorization.ts 273 行 / 22 导出\n+ identity.ts 818 行 / 23 导出 + task.ts / outcome.ts 各收 3 / 1 个 + 17 个降私有。\n\n验证:@repo/contracts 24 文件 312/312(三步前后四次逐次一致,行为中性);typecheck 13/13;\nnaming / schema / validation / contract-consumers / dual-backend / kernel-boundaries /\nkernel-packages / kernel-downstream / kernel-extensions / write-guard / list-bounds /\nfork-readiness 十二门全绿;kernel-admission 仍是引入时那 8 处,未引入新红。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/a0a9f1aa5d77ac7d1c9b74a3e445a323a205f5b6","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-18T01:11:37-07:00","added":["packages/contracts/src/authorization.ts"],"removed":["packages/contracts/src/tenant.ts"],"modified":["kernel.boundaries.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/identity.ts","packages/contracts/src/index.ts","packages/contracts/src/kernel.ts","packages/contracts/src/outcome.ts","packages/contracts/src/task.ts","scripts/check-dual-backend-parity.mjs","scripts/check-kernel-admission.mjs"]},{"id":"d7c932b537561ae02bcc860d506fea7c1d878b30","message":"chore(reports): tenant.ts 拆分第二步的十份静态门禁证据 回绑 @ 439c6f7\n\n十份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages /\nkernel-downstream / kernel-extensions 九绿;kernel-admission 仍是引入时那 8 处\n(K3 一处 + K4 七处),与两步拆分前逐条一致——未引入新红,也未消除旧红。\n\n本步中 kernel-packages 的 P7 与 kernel-downstream 的 D1 都如实报过红:前者要求根 barrel\n新增导出必须伴随版本上调(@repo/contracts 1.16.0 → 1.17.0),后者要求下游夹具的安装版本\n随之重签。两处都是设计内的「变更即复核」,不是绕过。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d7c932b537561ae02bcc860d506fea7c1d878b30","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-18T01:08:09-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},{"id":"439c6f7e34f48f718f18479aa1dd2e9a9e3fcfe1","message":"refactor(contracts): tenant.ts 拆分第二步——自建身份迁出 identity.ts\n\n框架 @juhai/kernel 的 tenant.ts 在 0.4.0—0.7.0 之间把边界写死为「本文件只做策略,\n不做验签」:验签需要密钥/JWKS,而契约包被 web 直接 import,密钥语义不能泄漏进浏览器包。\nOS 分叉于框架 0.1.0,没见过这条边界,于是策略、验签、自建权限、work 域判定四类长进了\n同一个文件。第一步已迁出 work 域判定,本步迁出身份一类。\n\n packages/contracts/src/identity.ts(新增,818 行 / 23 导出)\n 验签原语(注入式,契约包自身不 import node:crypto)、JWKS 密钥库、\n 浏览器身份与会话、OIDC PKCE 三组 schema、启动姿态门、实时连接过期、\n 鉴权入口 resolveTenantAuth,以及 token 解码/比对等私有管道\n\n packages/contracts/src/tenant.ts(273 行 / 22 导出,原 1042 行 / 44 导出)\n 只剩自建权限一类:角色与权限词汇表、ALLOW/DENY 判定、授权 DTO、审计载荷\n\n两处归属判断值得记下:\n\n- bindAuditActorSubject / AuditActorBinding 一并迁入 identity.ts。它绑定的是**已验签的\n sub**,属身份来源而非授权判定;留在 tenant.ts 会让授权侧反向依赖 TenantAuthPosture,\n identity ↔ tenant 成环。\n- roleFromClaim 留在 tenant.ts 并升为导出。它是角色词汇表的一部分(claim → 合法角色),\n 两侧都要用;反过来把它搬进 identity 会让 resolveEffectiveRole 反向依赖,同样成环。\n\n依赖方向单向:identity → tenant(借 TENANT_ROLES / TenantRole / roleFromClaim),\ntenant 不反向依赖 identity。切分前已用脚本枚举 75 个顶层声明的引用图逐条验证无反向边。\n\nidentity.ts **不进 @repo/contracts/kernel 子路径**,只经根 barrel 导出:自建身份不是跨产品\n必需的内核契约,后续应换成企业 IdP 的 client-identity。\n\n同步改动:\n\n- check-dual-backend-parity.mjs 三处按路径钉在 tenant.ts 的断言改指 identity.ts——\n C51(启动姿态判定与断言)、C181(实时过期策略)、C73(已验签 sub 的审计主体绑定)。\n 改完用门禁自带负向探针验活:DUAL_BACKEND_NEGATIVE_PROBE=missing-realtime-auth-expiry\n 与 =missing-audit-actor-binding 均如期转红,断言不是改成了指向不存在文件的假绿。\n C52 两条仍在 tenant.ts(权限目录与 ALLOW/DENY 优先级未动)。\n- kernel.boundaries.json:identity.ts 登记进 CORE 的 contractModules(30 → 31)。\n- @repo/contracts 1.16.0 → 1.17.0。check:kernel-packages 的 P7 要求公开面变更必须伴随\n 版本上调;根 barrel 新增一行 export * 是加法变更,取次版本。kernel.packages.json 与\n kernel.packages.lock.json / kernel.downstream.lock.json 随之重签(后者只改版本号一行)。\n\n顺带修正上一笔提交里的说法,方向不变但更准确:check:kernel-packages 的 apiDigest 只哈希\nrequiredExports 入口的 .d.ts,而入口就是 barrel——它看得见「根 barrel 多了一行 export *」,\n看不见任何具体符号的增删。上一步降私有 17 个符号它全绿,正是这个原因。\n\n验证:@repo/contracts 24 文件 312/312(三次拆分前后逐次一致,行为中性);typecheck 13/13;\nnaming / schema / validation / contract-consumers / dual-backend / kernel-boundaries /\nkernel-packages / kernel-downstream / kernel-extensions 九门全绿;kernel-admission 仍是\n引入时那 8 处(K3 一处 + K4 七处),未引入新红。kernel.exports.lock.json 重签为\n39 个模块 / 763 个导出。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/439c6f7e34f48f718f18479aa1dd2e9a9e3fcfe1","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-18T01:07:27-07:00","added":["packages/contracts/src/identity.ts"],"removed":[],"modified":["kernel.boundaries.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/tenant.ts","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"832f9b2e5ab646a48adbf37b80db1d41092f2f7e","message":"chore(reports): tenant.ts 拆分第三步的十三份静态门禁证据 回绑 @ a0a9f1a\n\n十三份全部 clean 绑定(worktreeDirty:false):naming / schema-sync / validation-source /\ncontract-consumers / dual-backend-parity / kernel-boundaries / kernel-packages /\nkernel-downstream / kernel-extensions / statemachine-write-guard / list-bounds /\nfork-readiness 十二绿;kernel-admission 仍是引入时那 8 处(K3 一处 + K4 七处),\n与三步拆分前逐条一致——全程未引入新红,也未消除旧红。\n\n三步各自撞到的门禁都如实红过再修,没有一处是先改门禁再做变更:\n第一步 K1(导出归属漂移);第二步 K1 + kernel-packages P7(公开面变更须伴随版本上调)\n+ kernel-downstream D1(下游安装版本随之重签);第三步同上两处 P7 / D1。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/832f9b2e5ab646a48adbf37b80db1d41092f2f7e","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-18T01:12:22-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":85288,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T16:02:12+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"}}...
|
push
|
2
|
36
|
1789719152
|
1789719160
|
0
|
1789719151
|
1789719175
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24106
|
chore(reports): 整轮 pnpm check 二十八份证据 回绑 @ 1994f3c, chore(reports): 整轮 pnpm check 二十八份证据 回绑 @ 1994f3c,刷新快照锚点...
|
76
|
5
|
governance.yml
|
60
|
5
|
0
|
refs/heads/main
|
dcd1c1486e63a7f67a0c548158823764a0b58b21
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"832f9b2e5ab646a48adbf37b80db1d41092f2f7e","after":"dcd1c1486e63a7f67a0c548158823764a0b58b21","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/832f9b2e5ab646a48adbf37b80db1d41092f2f7e...dcd1c1486e63a7f67a0c548158823764a0b58b21","commits":[{"id":"dcd1c1486e63a7f67a0c548158823764a0b58b21","message":"chore(reports): 整轮 pnpm check 二十八份证据 回绑 @ 1994f3c,刷新快照锚点\n\n本批次最后一个提交,按 C241 纪律同时刷新 CLAUDE.md 的快照基准提交锚点到 1994f3c\n(声明落后 0,本提交自身使实测落后 1,落在 C19 式 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=1994f3c、worktreeDirty:false)。\n整轮 28 步全部执行,前 27 步全绿,末步 check:kernel-admission 红 8 处——该门禁引入时即\n登记的已知诚实红(K3 一处:crossProductRequired 的证据源是命名空间冒烟测试;\nK4 七处:三个组件的 admissionEvidence 声明为 true 却无机器回执),链尾位置正是为了不连带\n抹掉前 27 步的证据。\n\n与上一次整轮绿盘(23d1b7a @ 6396f7f,27/27)相比,本轮是 28 步:新增的第 28 步\ncheck:kernel-admission 自身就是本批次引入的。因此「27/27 全绿」与「28 步 27 绿」不是退步,\n是多了一条此前不存在的判据,并且它一上来就报出了真实缺口。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次(check:ui 不在静态链内,本轮未跑),\n未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/dcd1c1486e63a7f67a0c548158823764a0b58b21","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-18T01:21:28-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"1994f3c74ee90e08df7f1b03afff9dd570fee87d","message":"docs(治理): 整轮 pnpm check 暴露的三处文档漂移——下游锁、边界数字、快照锚点\n\n本批次六个提交推送时没有刷新文档真相,整轮 pnpm check 的 check:docs-truth 如实报红 4 条\n(第 2 条是第 1 条的负向探针连带)。逐条修:\n\n- docs/product-extension-guide.md 的「当前下游兼容锁」行仍写 @repo/contracts@1.16.0,\n 实际已随两次公开面变更升到 1.18.0。该行要求与 kernel.downstream.lock.json **逐字**匹配。\n- CLAUDE.md 内核边界数字 142/142 → 143/143 受管面:identity.ts 迁入 CORE 的 contractModules\n 多了一个受管面。242/242 源码文件与 7/7 负向探针未变。\n (C152 那条历史教训行里的 136/136 是当时的实测记录,属历史事实,不改。)\n- 快照基准提交锚点 070b944 落后 HEAD 10 提交——其中 8 个是本批次的,另 2 个\n (23d1b7a / c433d57)在本批次之前就已漏刷。锚点随批次最后一个提交刷新,故不在本提交里改。\n\n整轮实测(28 步全部执行):前 27 步全绿——check:platform / naming / schema / validation /\ncontract-consumers / dual-backend / write-guard / list-bounds / fork-readiness /\nkernel-boundaries / kernel-packages / kernel-downstream / kernel-extensions /\nproduct-migrations / product-acceptance / agent-adapters / report-lock / operations /\nllm-eval / rls / migrations / governance-docs / docs-truth / governance / lint(5/5)/\ntypecheck(13/13)/ platform-provenance;末步 check:kernel-admission 红 8 处,\n是该门禁引入时即登记的已知诚实红(K3 一处 + K4 七处),位置在链尾正是为了不连带抹掉\n前 27 步的证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1994f3c74ee90e08df7f1b03afff9dd570fee87d","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-18T01:19:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/product-extension-guide.md"]}],"total_commits":0,"head_commit":{"id":"dcd1c1486e63a7f67a0c548158823764a0b58b21","message":"chore(reports): 整轮 pnpm check 二十八份证据 回绑 @ 1994f3c,刷新快照锚点\n\n本批次最后一个提交,按 C241 纪律同时刷新 CLAUDE.md 的快照基准提交锚点到 1994f3c\n(声明落后 0,本提交自身使实测落后 1,落在 C19 式 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=1994f3c、worktreeDirty:false)。\n整轮 28 步全部执行,前 27 步全绿,末步 check:kernel-admission 红 8 处——该门禁引入时即\n登记的已知诚实红(K3 一处:crossProductRequired 的证据源是命名空间冒烟测试;\nK4 七处:三个组件的 admissionEvidence 声明为 true 却无机器回执),链尾位置正是为了不连带\n抹掉前 27 步的证据。\n\n与上一次整轮绿盘(23d1b7a @ 6396f7f,27/27)相比,本轮是 28 步:新增的第 28 步\ncheck:kernel-admission 自身就是本批次引入的。因此「27/27 全绿」与「28 步 27 绿」不是退步,\n是多了一条此前不存在的判据,并且它一上来就报出了真实缺口。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次(check:ui 不在静态链内,本轮未跑),\n未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/dcd1c1486e63a7f67a0c548158823764a0b58b21","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-18T01:21:28-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":85463,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T16:12:31+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"}}...
|
push
|
2
|
36
|
1789719707
|
1789719715
|
0
|
1789719706
|
1789719730
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24109
|
chore(reports): runtime 验收在 clean HEAD 首次绑定 回绑 @ d chore(reports): runtime 验收在 clean HEAD 首次绑定 回绑 @ dcd1c14,刷新证据新鲜度与快照锚点...
|
76
|
5
|
governance.yml
|
62
|
5
|
0
|
refs/heads/main
|
1c8523a92bf32cb7257642251ad57e7a03ebf161
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dcd1c1486e63a7f67a0c548158823764a0b58b21","after":"1c8523a92bf32cb7257642251ad57e7a03ebf161","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/dcd1c1486e63a7f67a0c548158823764a0b58b21...1c8523a92bf32cb7257642251ad57e7a03ebf161","commits":[{"id":"1c8523a92bf32cb7257642251ad57e7a03ebf161","message":"chore(reports): runtime 验收在 clean HEAD 首次绑定 回绑 @ dcd1c14,刷新证据新鲜度与快照锚点\n\ntenant.ts 三步拆分的运行态复验。结果与拆分前基线**逐项持平**,行为中性在运行态得到证实:\n\n testsPassed 733(基线 733,地板 683)\n behaviorParityCases 204(地板 204,violations 0)\n 87 项指标零违规——迁移 deploy/status、七包串行测试、双管道竞争验收、行为矩阵、\n auth-startup、db-credential-separation(8 负例 + 2 进程隔离)、tracing(4 服务)、\n dependency-resilience(14 故障 + 14 恢复 + 半开 4)、capacity(480 请求 p95 20.0ms)、\n write-capacity(40 链路终态 + 80 派发)、multi-instance(4 进程)、\n 产品扩展 / 迁移 / SQL 运行时与产品验收(258 正 + 124 负)\n\n**首次在 clean HEAD 上绑定**:13 份运行态报告的 provenance 全部 gitSha=dcd1c14、\nworktreeDirty:false。此前那份(2026-09-14)绑的是 6396f7f 且工作区 dirty,按仓规矩只能\n绑定本地、不能作阶段门证据。\n\n基座刻意隔离,不沿用上次配置:\n- 新建独立验收库 digital_employee_os_acceptance_20260918 @127.0.0.1:55470(按 Owner 决定保留,\n 与工作区 enterprise_platform_acceptance_* 的带日期惯例一致,便于回查)\n- 新起专用 Redis 容器(redis://127.0.0.1:6404/3)——上次用的 6404 实例已不存在\n- 不用 digital_employee_os_dev_nestjs:那是 dev 库,跑验收会被测试数据反复清洗\n- 理由是 G15/O1:本机 41 个容器多仓共用端口,且实测另有并行会话正在跑 enterprise-platform\n 的 api-nestjs。上次 runtime 长期假红的根因正是共用逻辑库导致三处订阅端收不到信封\n\nCLAUDE.md 证据新鲜度两行同步刷新(三级分开陈述,不互相冒充):\n- 真实 DB:2026-09-14 🟡(dirty)→ 2026-09-18 ✅(clean dcd1c14)\n- 静态链:2026-09-14 ✅ 27/27 → 2026-09-18 🟡(clean 1994f3c 上 28 步全执行、前 27 绿,\n 末步 check:kernel-admission 诚实红 8 处)。「27/27」与「28 步 27 绿」不是退步,是多了一条\n 此前不存在的判据,且它一上来就报出真实缺口——该说明已写进文档行内,防止后来者误读为回归。\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 dcd1c14(声明落后 0,本提交自身使实测落后 1,\n落在 +1 自指窗内)。推送前已跑 check:docs-truth:assert 自检通过。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次(check:ui 不在 runtime 链内,未跑),\n未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1c8523a92bf32cb7257642251ad57e7a03ebf161","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-18T01:34:51-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/dual-backend-behavior.latest.json","reports/multi-instance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-sql-runtime.latest.json","reports/runtime-acceptance.latest.json","reports/tracing.latest.json","reports/write-capacity.latest.json"]}],"total_commits":0,"head_commit":{"id":"1c8523a92bf32cb7257642251ad57e7a03ebf161","message":"chore(reports): runtime 验收在 clean HEAD 首次绑定 回绑 @ dcd1c14,刷新证据新鲜度与快照锚点\n\ntenant.ts 三步拆分的运行态复验。结果与拆分前基线**逐项持平**,行为中性在运行态得到证实:\n\n testsPassed 733(基线 733,地板 683)\n behaviorParityCases 204(地板 204,violations 0)\n 87 项指标零违规——迁移 deploy/status、七包串行测试、双管道竞争验收、行为矩阵、\n auth-startup、db-credential-separation(8 负例 + 2 进程隔离)、tracing(4 服务)、\n dependency-resilience(14 故障 + 14 恢复 + 半开 4)、capacity(480 请求 p95 20.0ms)、\n write-capacity(40 链路终态 + 80 派发)、multi-instance(4 进程)、\n 产品扩展 / 迁移 / SQL 运行时与产品验收(258 正 + 124 负)\n\n**首次在 clean HEAD 上绑定**:13 份运行态报告的 provenance 全部 gitSha=dcd1c14、\nworktreeDirty:false。此前那份(2026-09-14)绑的是 6396f7f 且工作区 dirty,按仓规矩只能\n绑定本地、不能作阶段门证据。\n\n基座刻意隔离,不沿用上次配置:\n- 新建独立验收库 digital_employee_os_acceptance_20260918 @127.0.0.1:55470(按 Owner 决定保留,\n 与工作区 enterprise_platform_acceptance_* 的带日期惯例一致,便于回查)\n- 新起专用 Redis 容器(redis://127.0.0.1:6404/3)——上次用的 6404 实例已不存在\n- 不用 digital_employee_os_dev_nestjs:那是 dev 库,跑验收会被测试数据反复清洗\n- 理由是 G15/O1:本机 41 个容器多仓共用端口,且实测另有并行会话正在跑 enterprise-platform\n 的 api-nestjs。上次 runtime 长期假红的根因正是共用逻辑库导致三处订阅端收不到信封\n\nCLAUDE.md 证据新鲜度两行同步刷新(三级分开陈述,不互相冒充):\n- 真实 DB:2026-09-14 🟡(dirty)→ 2026-09-18 ✅(clean dcd1c14)\n- 静态链:2026-09-14 ✅ 27/27 → 2026-09-18 🟡(clean 1994f3c 上 28 步全执行、前 27 绿,\n 末步 check:kernel-admission 诚实红 8 处)。「27/27」与「28 步 27 绿」不是退步,是多了一条\n 此前不存在的判据,且它一上来就报出真实缺口——该说明已写进文档行内,防止后来者误读为回归。\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 dcd1c14(声明落后 0,本提交自身使实测落后 1,\n落在 +1 自指窗内)。推送前已跑 check:docs-truth:assert 自检通过。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次(check:ui 不在 runtime 链内,未跑),\n未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1c8523a92bf32cb7257642251ad57e7a03ebf161","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-18T01:34:51-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/dual-backend-behavior.latest.json","reports/multi-instance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-sql-runtime.latest.json","reports/runtime-acceptance.latest.json","reports/tracing.latest.json","reports/write-capacity.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":85709,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T16:21:47+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"}}...
|
push
|
2
|
36
|
1789720501
|
1789720510
|
0
|
1789720501
|
1789720524
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24111
|
chore(reports): G-3 二十八份静态门禁证据 回绑 @ b7585cf,刷新快照锚点
|
76
|
5
|
governance.yml
|
64
|
5
|
0
|
refs/heads/main
|
8f5cd7985999b41d324ba9c2216daf1ad49ca002
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1c8523a92bf32cb7257642251ad57e7a03ebf161","after":"8f5cd7985999b41d324ba9c2216daf1ad49ca002","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/1c8523a92bf32cb7257642251ad57e7a03ebf161...8f5cd7985999b41d324ba9c2216daf1ad49ca002","commits":[{"id":"8f5cd7985999b41d324ba9c2216daf1ad49ca002","message":"chore(reports): G-3 二十八份静态门禁证据 回绑 @ b7585cf,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 b7585cf(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=b7585cf、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是引入时那 8 处已知诚实红。\n\nfork-readiness 报告新增 frameworkCriteriaCoverage 字段:交叉核对 verified(从\n工程基础框架/base-framework 读到 14 条判据号)、declared 14、registeredMissing 3;\nmetrics 新增 frameworkCriteriaDeclared / frameworkCriteriaRegisteredMissing 两项,\n使「框架判据覆盖率」第一次成为可回归的机器数字,而不是读脚本才知道。\n\ncheck:rls 在角色名改为派生后复跑仍绿(67 张租户表 × tenant/system 双策略)。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/8f5cd7985999b41d324ba9c2216daf1ad49ca002","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-18T01:44:35-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"b7585cfab7b8130271fea714f464f5117db3733f","message":"feat(governance): fork-readiness 补齐框架判据覆盖——号段分家、F9/F12 落地、缺席不得静默\n\nG-3。本仓 check:fork-readiness 的 F1—F7 与框架逐条对应,**F8 起分叉**:本仓 F8 是自造的\n「验收 runner 自含 contracts 构建」,框架 F8 是「可执行迁移技能」——同号不同义。后果有两层:\n跨仓说「F8 红了」会指向两个判据;更要命的是同号**掩盖了框架 F8—F14 七条长期静默缺失**,\n而其中 F11 正是「内核退回 @juhai/kernel pin」的门禁前提。\n\n一、号段分家。自造判据一律 D 号段,F 号段只留给框架。原 F8 → D1。\n\n二、两条框架判据直接落地(落地优于登记):\n\n F9 工作区包内不得存在嵌套 lockfile —— 实测仅根一份,落地即绿\n F12 租户 RLS 组角色名必须派生自 package.json name —— **实体缺陷已修**:\n scripts/check-rls.mjs 此前把 digital_employee_os_tenant / _system 写死在 5 处\n (2 处字符串 + 3 处正则模板)。值虽然是对的,但派生仓会拿**源项目**的角色名去校验\n 自己的策略,而这个断言存在的唯一目的就是证明策略绑在本仓的角色上——\n 它会在最需要生效的场景(移植后)静默失效,与 F3 同型。改为由 package.json name 派生,\n 并加 F12 断言守住不回潮。check:rls 仍绿(67 张租户表 × 双策略)。\n\n三、缺席不得静默:新增覆盖登记 framework-criteria.json + D2—D4。\n\n D2 框架 14 条判据必须逐条登记,未登记即红;status 只能是\n implemented / implemented-elsewhere / not-applicable / missing\n D3 登记为 missing 须 reason/registeredAt/expiresAt/blockedBy/replacementPlan 五字段齐全\n 且未过期(同 platform-dependency-deviations 口径:半份登记不算登记,过期不再豁免)\n D4 登记为 implemented 必须指向本脚本真实存在的判据号——防「空口宣称已实现」,\n 与 kernel.boundaries.json 的 admissionEvidence 自证同型\n\n 门禁在框架检出可达时**交叉核对判据号快照**(实测从\n 工程基础框架/base-framework 读到 14 条,与登记表逐条吻合 → verified);不可达显式 SKIPPED\n 而非静默通过;BASE_FRAMEWORK_ROOT 显式指定却解析不到即红,不回落到工作区布局\n (首版写成了静默回落,实活探测发现后改为 fail-closed)。\n\n当前覆盖(实测):implemented 9(F1—F7、F9、F12)· implemented-elsewhere 1(F10 由\nkernel-boundaries + kernel-admission 两把锁承接,粒度严于框架)· not-applicable 1(F13 本仓\n已剥离示例域)· **missing 3**:\n F8 无迁移技能路由、无 reports/framework-migration.latest.json,frameworkVersion 全仓零命中\n F11 契约包可依赖形态——**内核退回 pin 的门禁前提**\n F14 apps/api-nestjs/docker-compose.yml 无顶层 name,即工作区 L9「27 仓共用 project\n api-nestjs」的本仓实证;deploy/production/compose.yml 默认值 deos-production 也不等于\n 包名派生身份\n三条均登记至 2026-12-18,报为 registered 警告不阻断——但期限到即转红。\n\n自检 pnpm check:fork-readiness:self-test 11 条(含 2 条基线正例);另做两次实活验证:\n删掉 F14 登记 → D2 红;BASE_FRAMEWORK_ROOT 指错 → D2 红。\n\nCLAUDE.md 同步:号段纪律段、判据表 +6 行、基线表行口径、C69 两处历史引用改「D1(原 F8)」。\n整轮 pnpm check 复跑:28 步全执行,仅末步 check:kernel-admission 已知 8 处红。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/b7585cfab7b8130271fea714f464f5117db3733f","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-18T01:40:25-07:00","added":["framework-criteria.json"],"removed":[],"modified":["CLAUDE.md","package.json","scripts/check-fork-readiness.mjs","scripts/check-rls.mjs"]}],"total_commits":0,"head_commit":{"id":"8f5cd7985999b41d324ba9c2216daf1ad49ca002","message":"chore(reports): G-3 二十八份静态门禁证据 回绑 @ b7585cf,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 b7585cf(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=b7585cf、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是引入时那 8 处已知诚实红。\n\nfork-readiness 报告新增 frameworkCriteriaCoverage 字段:交叉核对 verified(从\n工程基础框架/base-framework 读到 14 条判据号)、declared 14、registeredMissing 3;\nmetrics 新增 frameworkCriteriaDeclared / frameworkCriteriaRegisteredMissing 两项,\n使「框架判据覆盖率」第一次成为可回归的机器数字,而不是读脚本才知道。\n\ncheck:rls 在角色名改为派生后复跑仍绿(67 张租户表 × tenant/system 双策略)。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/8f5cd7985999b41d324ba9c2216daf1ad49ca002","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-18T01:44:35-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":85924,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T16:35:01+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"}}...
|
push
|
2
|
36
|
1789721079
|
1789721088
|
0
|
1789721078
|
1789721211
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24114
|
chore(reports): 内核退回 pin 立项的二十八份静态证据 回绑 @ 65b0b33, chore(reports): 内核退回 pin 立项的二十八份静态证据 回绑 @ 65b0b33,刷新快照锚点...
|
76
|
5
|
governance.yml
|
66
|
5
|
0
|
refs/heads/main
|
117a379da5e5d31ea07d5b61eb2dcdfce479d5db
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8f5cd7985999b41d324ba9c2216daf1ad49ca002","after":"117a379da5e5d31ea07d5b61eb2dcdfce479d5db","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/8f5cd7985999b41d324ba9c2216daf1ad49ca002...117a379da5e5d31ea07d5b61eb2dcdfce479d5db","commits":[{"id":"117a379da5e5d31ea07d5b61eb2dcdfce479d5db","message":"chore(reports): 内核退回 pin 立项的二十八份静态证据 回绑 @ 65b0b33,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 65b0b33(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=65b0b33、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次只立项、不动代码:内核仍是仓内 0.1.0 拷贝,F8 / F11 仍登记为 missing(期限\n2026-12-18 未变),replacementPlan 改为指向立项书。fork-readiness 的\nframeworkCriteriaCoverage 保持 declared 14 / registeredMissing 3 / 交叉核对 verified。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/117a379da5e5d31ea07d5b61eb2dcdfce479d5db","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-18T01:52:57-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"65b0b33923bcebdf42aed903963afe2ce4c0a2e1","message":"docs(planning): 内核退回 pin 立项——硬前提已验证,真正要判断的只有四个模块\n\nframework-criteria.json 里 F8 / F11 两条 missing 都指向同一件事:本仓持有一份框架 0.1.0 的\n内核拷贝,既不受任何来源门禁约束,也无法表达「落后几代」。本立项把它改为 exact pin\n@juhai/kernel。\n\n硬前提今天全部满足(实测):\n- @juhai/kernel 在 registry 上有 0.16.0 / 0.16.1 / 0.22.0;本仓 .npmrc 已声明 @juhai:registry\n- migration:plan --mode sync 实测 0.1.0 → 0.22.0 共 139 冲突,落在 packages/contracts 的只有 5 处\n- tenant.ts 三步拆分后 tenant 之名已腾空,同名不同义只剩 rls.ts 一处\n\n十五个内核模块四分类(按导出名集合求交):\n 直接 pin 5 statemachine 100% · replay 100% · realtime-stats 100% · realtime-command 90% · subscription 81%\n 需合并 3 realtime 57% · job 28% · health 25%\n 同名不相干 1 rls.ts ↔ 框架 tenant-rls.ts,重合 0%\n 净迁入 6 replay-buffer · tenant · api-error · request-context · platform-ports · alert\n\n**真正要做判断的只有 4 个模块**,其余是白拿或补齐。净迁入里 platform-ports(31 导出)\n是关键:写链前经权限端口决策 + 成功写入同事务 audit.append、生产未设 PLATFORM_PORTS_MODE\n即 fail-closed——本仓分叉于框架 0.1.0、从未见过这组端口,才各自造了一套 permission/audit。\n迁入后自建实现塞进本地实现位,将来换控制面 client 时接口不变:错层资产的迁移从「大手术」\n降为「接插座」。\n\n路径选 ②(pin)不选 ①(继续 sync):① 每次框架发版都要三方合并内核,而本仓已积压 22 个\n版本 / 139 冲突——那正是脱轨的形成机制;② 之后只需 bump 版本,且让内核来源进入\ncheck:platform-provenance 的判据面(今天内核是仓内源码,没有任何门禁能判定它是什么版本)。\n\n立项先挂一条待裁决:框架 F11 要求 pin 等于本仓 package.json.version(框架版本轴 = 内核\n版本轴),这对派生仓不成立——本仓 version 停在 0.1.0、0 个 tag。建议 A 案(本仓建版本轴,\nF11 改判「pin 等于迁移凭证里的 frameworkVersion」),顺带解掉缺失梳理 §4.4「产品仓只能按\ngitSha 钉 OS」;B 案(向框架提 FR 区分两种形态)可作回灌。\n\n分六批 B0—B5,逐批退出门写在 §5;风险五条写在 §6,其中 0.15.0 的作业 API 破坏性变更\n(job 重合仅 28%)与两套 RLS 二选一是最硬的两处。§7 显式登记本立项不做的事:不改自建\npermission/audit 的实现,替换另起一线且前置是控制面客户端发布**并有 CI 阶段门证据**。\n\n同步:framework-criteria.json 的 F8 / F11 replacementPlan 指向本立项;CLAUDE.md 可迁移性节\n加立项指针与要点。立项书内不做跨仓链接(c433d57 已清理过一轮仓外链接)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/65b0b33923bcebdf42aed903963afe2ce4c0a2e1","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-18T01:51:25-07:00","added":["docs/planning/内核退回pin立项-2026-09-18.md"],"removed":[],"modified":["CLAUDE.md","framework-criteria.json"]}],"total_commits":0,"head_commit":{"id":"117a379da5e5d31ea07d5b61eb2dcdfce479d5db","message":"chore(reports): 内核退回 pin 立项的二十八份静态证据 回绑 @ 65b0b33,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 65b0b33(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=65b0b33、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次只立项、不动代码:内核仍是仓内 0.1.0 拷贝,F8 / F11 仍登记为 missing(期限\n2026-12-18 未变),replacementPlan 改为指向立项书。fork-readiness 的\nframeworkCriteriaCoverage 保持 declared 14 / registeredMissing 3 / 交叉核对 verified。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/117a379da5e5d31ea07d5b61eb2dcdfce479d5db","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-18T01:52:57-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":86191,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T16:44:39+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"}}...
|
push
|
2
|
36
|
1789721583
|
1789721613
|
0
|
1789721581
|
1789721734
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24116
|
chore(reports): B0 裁决的二十八份静态证据 回绑 @ 1f74faa,刷新快照锚点
|
76
|
5
|
governance.yml
|
68
|
5
|
0
|
refs/heads/main
|
ee4bc06608d88515f025c3a2dcffacb9f47c5417
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"117a379da5e5d31ea07d5b61eb2dcdfce479d5db","after":"ee4bc06608d88515f025c3a2dcffacb9f47c5417","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/117a379da5e5d31ea07d5b61eb2dcdfce479d5db...ee4bc06608d88515f025c3a2dcffacb9f47c5417","commits":[{"id":"ee4bc06608d88515f025c3a2dcffacb9f47c5417","message":"chore(reports): B0 裁决的二十八份静态证据 回绑 @ 1f74faa,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 1f74faa(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=1f74faa、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\nB0 只落裁决未改代码,故 fork-readiness 的 frameworkCriteriaCoverage 不变:declared 14 /\nregisteredMissing 3(F8 / F11 / F14)/ 交叉核对 verified。F11 现挂 adjudication:\"B0\",\n但按 B0 口径实现的 F11 断言要到 B5 才落——在那之前 F11 仍是诚实的 missing。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/ee4bc06608d88515f025c3a2dcffacb9f47c5417","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-18T01:58:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"1f74faae838116a4d546b0edaf75f4fcba026cfc","message":"docs(决策): B0 裁决 A2——F11 对派生仓改判为「pin == 凭证 source.frameworkVersion」\n\n内核退回 pin 立项 §4 挂的那条口径已裁。框架 F11 断言「@juhai/kernel 的 pin 必须等于本仓\npackage.json.version」(框架版本轴 = 内核版本轴),这条对框架自身成立,对本仓不成立:\n本仓 version 停在 0.1.0、0 个 tag,而根版本同时要服务「产品仓钉 OS」。\n\n**裁为 A2:本仓建立自己的版本轴;F11 迁入时改判为**\n\n contracts 对 @juhai/kernel 的 exact pin 必须等于\n reports/framework-migration.latest.json 的 source.frameworkVersion\n\n三条理由:\n- F11 的意图是「pin 与所同步的框架版本一致、落后几代可判定」,用凭证里的\n source.frameworkVersion 表达同样成立,且不强求派生仓与框架共用版本号\n- 若照框架原文把根版本设成 0.22.0,产品仓钉的「OS 版本」其实是框架版本,\n 缺失梳理 §4.4 不但没解决,还被永久占用\n- **该字段凭证里已经有**(record-migration.mjs 从源仓 package.json 读取),本口径\n 不需要新增任何东西——这是选 A2 而非提 FR 阻塞的关键\n\n**不照控制面先例的原因是形态不同。** 企业控制面走的是拆根:runtime/package.json 版本\n直接设为框架版本 0.22.0,故 F11 原文成立;仓根 0.1.0 与 contracts/ 1.0.0-rc.3 各留自己的\n版本。本仓是单 pnpm 根,用不了这个办法;改多根(立项 §4 的 A3)会牵动 turbo 布局、\n13 个 typecheck 任务与所有门禁的路径假设,不在这条线上做。\n\n**版本轴起点同批裁为「留到 B5 定」**:版本号要到 B5 签凭证、真正对外表达兼容范围时才\n用得上,那时内核换源的实际破坏面已清楚,定起点更有依据;现在定等于凭空拍。\n\n落点:framework-criteria.json 新增 adjudications.B0(含 assertion / rationale / precedent /\ndeferred / upstreamFeedback 五段),F11 挂 adjudication:\"B0\" 引用;立项书 §4 标已裁决、\n§5 的 B0 行标完成。CLAUDE.md 可迁移性节同步。\n\nB5 退出门顺带补两项:① 定版本轴起点(B0 顺延项);② check:fork-readiness 按本裁决实现\nF11 断言时,同时加一条 adjudication 引用完整性判据——criteria.\u003cid\u003e.adjudication 指向的 key\n必须存在于 adjudications,防悬空引用,与 D4 防「空口宣称」同型。本批按立项 §5 不改代码,\n故该判据留到 B5 一并落。\n\n上游回灌(不阻塞):可向框架提 FR,让 F11 区分「框架仓」与「派生仓」两种形态。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1f74faae838116a4d546b0edaf75f4fcba026cfc","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-18T01:56:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/planning/内核退回pin立项-2026-09-18.md","framework-criteria.json"]}],"total_commits":0,"head_commit":{"id":"ee4bc06608d88515f025c3a2dcffacb9f47c5417","message":"chore(reports): B0 裁决的二十八份静态证据 回绑 @ 1f74faa,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 1f74faa(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=1f74faa、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\nB0 只落裁决未改代码,故 fork-readiness 的 frameworkCriteriaCoverage 不变:declared 14 /\nregisteredMissing 3(F8 / F11 / F14)/ 交叉核对 verified。F11 现挂 adjudication:\"B0\",\n但按 B0 口径实现的 F11 断言要到 B5 才落——在那之前 F11 仍是诚实的 missing。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/ee4bc06608d88515f025c3a2dcffacb9f47c5417","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-18T01:58:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":86443,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T16:53:02+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"}}...
|
push
|
2
|
36
|
1789721901
|
1789722070
|
0
|
1789721899
|
1789722085
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24120
|
chore(reports): B1 的二十八份静态证据 回绑 @ fb2fb1a,刷新快照锚点
|
76
|
5
|
governance.yml
|
70
|
5
|
0
|
refs/heads/main
|
fd3ba87ed111d9245012f0578178cccb4743ab20
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ee4bc06608d88515f025c3a2dcffacb9f47c5417","after":"fd3ba87ed111d9245012f0578178cccb4743ab20","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/ee4bc06608d88515f025c3a2dcffacb9f47c5417...fd3ba87ed111d9245012f0578178cccb4743ab20","commits":[{"id":"fd3ba87ed111d9245012f0578178cccb4743ab20","message":"chore(reports): B1 的二十八份静态证据 回绑 @ fb2fb1a,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 fb2fb1a(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=fb2fb1a、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次内两把锁各重签一次,都是「变更即复核」而非绕过:\n- kernel.exports.lock.json 763 → 755(statemachine 的 8 个导出归属转移给 @juhai/kernel)\n- check:kernel-downstream 的仓外夹具改为携带 scoped registry 后转绿;缺声明即 fail-closed\n 的分支已实活验证\n\n运行态未跑:B1 只动契约包的一个转发文件,contracts 312/312 与 typecheck 13/13 已覆盖;\n按仓规矩三级证据分开陈述,不用静态绿冒充运行态绿。runtime 报告仍绑在 dcd1c14,\n下次动到两后端(B3′ 采纳上游加固)时必须重跑。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fd3ba87ed111d9245012f0578178cccb4743ab20","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-18T02:08:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"fb2fb1a730a522c6210afc0223c84aaa6946194d","message":"feat(contracts): B1 内核首次 exact pin @juhai/kernel@0.22.0,statemachine 改为转发\n\nB1 的目的是**验证机制**,不是搬最多的代码:装包、转发、门禁、锁四条链路全走一遍,\n用唯一可证明零行为变化的模块做载体。\n\n- packages/contracts exact pin @juhai/kernel@0.22.0(registry 上有 0.16.0/0.16.1/0.22.0)\n- statemachine.ts 改为**具名**转发 8 个符号。不用 `export * from \"@juhai/kernel\"`:\n 收口前本仓还留着 10 个未迁内核模块,整体 re-export 会与它们的同名导出冲突\n- 机制验证结果:typecheck 13/13 · contracts 312/312(statemachine.test.ts 打的就是转发后的\n 实现)· 整轮 28 步前 27 绿 · **check:platform-provenance 接受新 pin**(lock 解析到 Gitea\n registry tarball)· 所有权锁 763 → 755,8 个导出的归属转移给内核包\n\n**开工即修正一处自己的判断。** 上一轮我把五个模块叫「白拿」,依据只到导出名重合率。\n逐文件 diff 后:**只有 statemachine 逐字一致**(104 行 diff 0),其余四个实现都不同,\n且方向一致——框架领先、本仓落后,落后的正好是加固:\n\n replay 框架有 maxSeq + 「游标超前于现存最大 seq ⇒ 报缺口(cursor-unknown)」,\n 本仓没有 ⇒ 伪造/串号游标被静默判成「已追平」,客户端永远收不到补发;\n 框架同时修了契约文件内部自相矛盾的 dispatchedAt 注释\n realtime-command 框架有 REALTIME_WS_MAX_PAYLOAD_BYTES,本仓 WS 载荷无上限\n subscription 框架有 REALTIME_MAX_SUBSCRIPTION_IDS/_TYPES,本仓订阅列表无上限\n realtime-stats 本仓是严格超集(多 10 个死信域导出),采纳时要保留\n\n前两类偏 DoS 面。这四个不是「白拿」而是「采纳上游加固」,要改两后端并重跑运行态,\n已从 B1 移入 B3′。立项 §2 加了修正块、§5 改了批次表。\n\n**两处实测新增风险(立项 §6):**\n\n一、跨层 peer 不一致。已发布的 @juhai/client-fact@1.0.0-rc.3 声明 peer @juhai/kernel: 0.16.1\n(lockfile 权威),而控制面仓里**同版本的源码**声明 0.22.0——控制面昨天做框架同步时改了\n源码却没重新发布。本仓 pin 0.22.0 后 pnpm install 报 unmet peer(警告,不阻断),\n**且现有门禁一条都抓不到**。三条出路(等平台重发 / 本仓退回 0.16.1 / 登记偏差并加 peer\n判据)本提交不代为决定,登记在立项 §6 等裁。\n\n二、pin 的下游代价,由 check:kernel-downstream 第一时间抓到:它在仓外装 contracts 以证明\n下游可消费,而仓外没有 .npmrc,@juhai/kernel 落到 npmjs.org 上 404。这不是门禁的毛病,\n是 pin 的真实代价——**任何消费方不配 @juhai scoped registry 就装不上**(框架 F11 原文同样\n这么声明)。处理:夹具复制仓内 .npmrc 的 scoped registry 行,把断言坐实为「配了 registry\n的消费者装得上」;并在「pin 了 @juhai/* 却无 registry 声明」时 **fail-closed**,绝不静默\n回落到公共 registry(实活验证:去掉声明即 D4 红)。新前提已写进接入手册,五个产品仓\n迁移时要同步配置。\n\n顺带一个可复用的性质:check:kernel-admission 的 K1 只计**直接声明**,所以每迁走一个模块,\n锁里的自有导出数就降一次——它天然成了这条线的进度计(763 → 755)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fb2fb1a730a522c6210afc0223c84aaa6946194d","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-18T02:06:23-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/planning/内核退回pin立项-2026-09-18.md","docs/product-extension-guide.md","kernel.exports.lock.json","packages/contracts/package.json","packages/contracts/src/statemachine.ts","pnpm-lock.yaml","scripts/check-kernel-downstream.mjs"]}],"total_commits":0,"head_commit":{"id":"fd3ba87ed111d9245012f0578178cccb4743ab20","message":"chore(reports): B1 的二十八份静态证据 回绑 @ fb2fb1a,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 fb2fb1a(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=fb2fb1a、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\n本批次内两把锁各重签一次,都是「变更即复核」而非绕过:\n- kernel.exports.lock.json 763 → 755(statemachine 的 8 个导出归属转移给 @juhai/kernel)\n- check:kernel-downstream 的仓外夹具改为携带 scoped registry 后转绿;缺声明即 fail-closed\n 的分支已实活验证\n\n运行态未跑:B1 只动契约包的一个转发文件,contracts 312/312 与 typecheck 13/13 已覆盖;\n按仓规矩三级证据分开陈述,不用静态绿冒充运行态绿。runtime 报告仍绑在 dcd1c14,\n下次动到两后端(B3′ 采纳上游加固)时必须重跑。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/fd3ba87ed111d9245012f0578178cccb4743ab20","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-18T02:08:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":86698,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T16:58:20+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"}}...
|
push
|
2
|
36
|
1789722485
|
1789722493
|
0
|
1789722483
|
1789722525
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24123
|
chore(reports): PEER_UNSATISFIED 判据的二十八份静态证据 回绑 @ chore(reports): PEER_UNSATISFIED 判据的二十八份静态证据 回绑 @ 8e5c633,刷新快照锚点...
|
76
|
5
|
governance.yml
|
72
|
5
|
0
|
refs/heads/main
|
3deb4ea37b83c2e2977c9c2b8e8166c101002860
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd3ba87ed111d9245012f0578178cccb4743ab20","after":"3deb4ea37b83c2e2977c9c2b8e8166c101002860","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/fd3ba87ed111d9245012f0578178cccb4743ab20...3deb4ea37b83c2e2977c9c2b8e8166c101002860","commits":[{"id":"3deb4ea37b83c2e2977c9c2b8e8166c101002860","message":"chore(reports): PEER_UNSATISFIED 判据的二十八份静态证据 回绑 @ 8e5c633,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 8e5c633(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=8e5c633、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\nplatform-dependency-provenance 报告新增一处 registered:PEER_UNSATISFIED(client-fact\nrc.3 的 peer 0.16.1 ↔ 本仓已解析 0.22.0),期限 2026-12-18。门禁整体仍绿——登记的作用是\n把「pnpm 只打 WARN、门禁零覆盖」变成「可见、有期限、到期转红」,不是让它消失。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3deb4ea37b83c2e2977c9c2b8e8166c101002860","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-18T02:38:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"8e5c633cbfbc16afc61c95b8cfcecb90a2f1aa88","message":"feat(governance): PEER_UNSATISFIED 判据——把 pnpm 只打 WARN 的跨包版本不一致变成可见可登记\n\nB1 pin @juhai/kernel@0.22.0 后 pnpm 报了一行 unmet peer 就继续装,**本仓原有门禁一条都\n抓不到**。按内核退回 pin 立项 §6 三条出路裁为 ③(登记偏差 + 加判据,不停等发布列车)。\n\n新判据 PEER_UNSATISFIED:lock 里 @juhai/* 之间声明的 peer 必须被已解析版本满足;\n未满足即红,可按既有五字段口径登记降级为 registered,过期转红。peer 指向本仓根本没装的\n包时不判(防过度判红)。自检从 7 条扩到 12 条,新增 5 条全覆盖上述分支。\n\n实测命中一条真问题,并顺带拆出更深的一层:\n\n- 已发布的 @juhai/client-fact@1.0.0-rc.3 声明 peer @juhai/kernel: 0.16.1(发布物自证),\n 而控制面仓里**同版本的源码**声明 0.22.0——2026-09-17 框架同步只改了 package.json 没重发\n- 把 registry 上的 rc.3 拆开看:dist 里**没有** Authorization 回查鉴权,而源码 reader.ts:31\n 发 Bearer ${token}。**同一个版本号,registry 与源码是两份不同的代码**\n- 该发布物 provenance.json 为 runner:\"local\" / reports:[] / **gitSha:\"\"**——空字符串。\n 任何消费者都无法验证装到的包出自哪次提交,上一条「同版本不同内容」因此无法被机器发现\n\n不兼容风险经 delta 分析可论证为极低:内核 v0.16.1 → v0.22.0 只改 health.ts(+126)、\nalert.ts(+53)、tenant.ts(+12) 三处纯增,client-fact 一个都不消费。故登记而非阻断,\n期限 2026-12-18,blockedBy 指向平台发布列车(G-12 计费阻塞)。\n\n为什么不选另两条路(立项 §6 已记):② 退回 pin 0.16.1 的当前代价几乎为零——三处加固\n(replay cursor-unknown、WS 载荷上限、订阅数上限)**实测都已在 v0.16.1 里**,我上一轮说\n「退回等于放弃 6 个版本加固」是错的——但它是伪解,B2 要迁 alert/tenant、B3 要迁 health 时\npeer 冲突原样回来;① 等平台重发会把本仓进度挂在不可控的跨仓列车上,且若仍走本地旁路,\nprovenance 依旧无 gitSha,只解决 peer 不解决可对账性。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/8e5c633cbfbc16afc61c95b8cfcecb90a2f1aa88","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-18T02:37:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","governance/platform-dependency-deviations.json","scripts/check-platform-dependency-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"3deb4ea37b83c2e2977c9c2b8e8166c101002860","message":"chore(reports): PEER_UNSATISFIED 判据的二十八份静态证据 回绑 @ 8e5c633,刷新快照锚点\n\n本批次最后一个提交,按 C241 同时刷新快照锚点到 8e5c633(声明落后 0,本提交自身使实测\n落后 1,在 +1 自指窗内)。\n\n二十八份 reports/*.latest.json 全部 clean 绑定(gitSha=8e5c633、worktreeDirty:false)。\n整轮 28 步全执行,前 27 步全绿,末步 check:kernel-admission 仍是那 8 处已知诚实红。\n\nplatform-dependency-provenance 报告新增一处 registered:PEER_UNSATISFIED(client-fact\nrc.3 的 peer 0.16.1 ↔ 本仓已解析 0.22.0),期限 2026-12-18。门禁整体仍绿——登记的作用是\n把「pnpm 只打 WARN、门禁零覆盖」变成「可见、有期限、到期转红」,不是让它消失。\n\n工作区内三份 reports/ui-*.latest.json 的改动早于本批次,未提交也未还原。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3deb4ea37b83c2e2977c9c2b8e8166c101002860","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-18T02:38:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/contract-consumers.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/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87099,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"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-20T14:46:28+08:00","updated_at":"2026-09-18T17:08:04+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"}}...
|
push
|
2
|
36
|
1789724337
|
1789724347
|
0
|
1789724335
|
1789724362
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|