|
26681
|
feat(eios): 入口读端口第二批,analytics 的 19 处跨组读改经端口
|
160
|
5
|
ci.yml
|
9
|
5
|
0
|
refs/heads/main
|
460bb565c89a5143746c757939c0d43fe15e999f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"35aeb2bcf9bc5aa42b398f61a4275e4b18b1f7ed","after":"460bb565c89a5143746c757939c0d43fe15e999f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/35aeb2bcf9bc5aa42b398f61a4275e4b18b1f7ed...460bb565c89a5143746c757939c0d43fe15e999f","commits":[{"id":"460bb565c89a5143746c757939c0d43fe15e999f","message":"feat(eios): 入口读端口第二批,analytics 的 19 处跨组读改经端口\n\n- 端口加可选创建时间窗口(两端都缺省不加条件,等于原 dateFilter 逻辑),\n 新增 countOpportunities、sumClosedWonAmount、countQuotes、countContracts,\n 以及两个窄投影:listLeadAttribution(线索 → 商机 → 报价 → 合同金额,\n 按原嵌套顺序展开,累加顺序不变)、listCampaignCosts(金额空值为 null)\n- analytics 的 getMetrics、getFunnelAnalysis、getROIOverview、getCampaignROI、\n getChannelROI 改调端口;活动成本改用 actualSpend ?? budgetAmount ?? 0,\n 与原 Decimal 真值判断(实际支出 0 不回落预算)结果相同;leads 没有\n campaign_id / source_id 列,原回退链实际只取 source,改为直接取 source\n- 棘轮下调 138 → 119;按请求参数动态取 prisma[dataSource] 的时间序列 / 分布\n 不在清单内,未端口化,lanes/entry-read.md §7 登记\n\n门禁:type-check 0 错误;lint 0 错误、3184 条警告(去掉 5 处 any);\n单测 9004/9020(17 项基线失败,新增 11 项全过);inventory all --check 一致\n(permissions 只刷新 04 HEAD 读数,资源数仍 39)。\n文档:lanes/entry-read.md、README、改造计划 P5.2 入口 K 行与 P1 状态。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/460bb565c89a5143746c757939c0d43fe15e999f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-30T19:40:46-07:00","added":["backend/src/modules/analytics/analytics.entry-read.test.ts"],"removed":[],"modified":["backend/src/modules/analytics/analytics.service.ts","backend/src/shared/entry-read/entry-read.local.ts","backend/src/shared/entry-read/entry-read.port.ts","backend/src/shared/entry-read/entry-read.test.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/cross-app-access.md","docs/eios-transformation/inventory/data/entry-read.json","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/entry-read.md","docs/eios-transformation/改造计划-2026-10-28.md"]}],"total_commits":0,"head_commit":{"id":"460bb565c89a5143746c757939c0d43fe15e999f","message":"feat(eios): 入口读端口第二批,analytics 的 19 处跨组读改经端口\n\n- 端口加可选创建时间窗口(两端都缺省不加条件,等于原 dateFilter 逻辑),\n 新增 countOpportunities、sumClosedWonAmount、countQuotes、countContracts,\n 以及两个窄投影:listLeadAttribution(线索 → 商机 → 报价 → 合同金额,\n 按原嵌套顺序展开,累加顺序不变)、listCampaignCosts(金额空值为 null)\n- analytics 的 getMetrics、getFunnelAnalysis、getROIOverview、getCampaignROI、\n getChannelROI 改调端口;活动成本改用 actualSpend ?? budgetAmount ?? 0,\n 与原 Decimal 真值判断(实际支出 0 不回落预算)结果相同;leads 没有\n campaign_id / source_id 列,原回退链实际只取 source,改为直接取 source\n- 棘轮下调 138 → 119;按请求参数动态取 prisma[dataSource] 的时间序列 / 分布\n 不在清单内,未端口化,lanes/entry-read.md §7 登记\n\n门禁:type-check 0 错误;lint 0 错误、3184 条警告(去掉 5 处 any);\n单测 9004/9020(17 项基线失败,新增 11 项全过);inventory all --check 一致\n(permissions 只刷新 04 HEAD 读数,资源数仍 39)。\n文档:lanes/entry-read.md、README、改造计划 P5.2 入口 K 行与 P1 状态。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/460bb565c89a5143746c757939c0d43fe15e999f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-30T19:40:46-07:00","added":["backend/src/modules/analytics/analytics.entry-read.test.ts"],"removed":[],"modified":["backend/src/modules/analytics/analytics.service.ts","backend/src/shared/entry-read/entry-read.local.ts","backend/src/shared/entry-read/entry-read.port.ts","backend/src/shared/entry-read/entry-read.test.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/cross-app-access.md","docs/eios-transformation/inventory/data/entry-read.json","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/entry-read.md","docs/eios-transformation/改造计划-2026-10-28.md"]},"repository":{"id":160,"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":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102641,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.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":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-30T21:40: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
|
20
|
1793414450
|
1793418824
|
0
|
1793414449
|
1793418824
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23420
|
分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)
|
60
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
05d910e9c48177e24723827b424c2f8919bde17d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"13be1d708476428e5788727ffd735f54b027cb9f","after":"05d910e9c48177e24723827b424c2f8919bde17d","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/13be1d708476428e5788727ffd735f54b027cb9f...05d910e9c48177e24723827b424c2f8919bde17d","commits":[{"id":"05d910e9c48177e24723827b424c2f8919bde17d","message":"分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/05d910e9c48177e24723827b424c2f8919bde17d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:16:23-07:00","added":["reports/model-evidence/alignment-imprecision-root-cause.latest.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"05d910e9c48177e24723827b424c2f8919bde17d","message":"分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/05d910e9c48177e24723827b424c2f8919bde17d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:16:23-07:00","added":["reports/model-evidence/alignment-imprecision-root-cause.latest.json"],"removed":[],"modified":[]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":4051,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T15:12: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
|
8
|
1784013389
|
1784013443
|
0
|
1784013389
|
1784013443
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23472
|
修复评价截图 OCR 兼容性
|
51
|
5
|
ci.yml
|
10
|
8
|
0
|
refs/heads/main
|
ead57a81e98d7f55797e6963b61e4847d9d9a96d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"092acb7eb779cf4d784a4aec60f834e797be7e46","after":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/092acb7eb779cf4d784a4aec60f834e797be7e46...ead57a81e98d7f55797e6963b61e4847d9d9a96d","commits":[{"id":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","message":"修复评价截图 OCR 兼容性\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ead57a81e98d7f55797e6963b61e4847d9d9a96d","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T16:21:17+08:00","added":[],"removed":[],"modified":["server/src/adapters/ocr/parse.ts","server/src/adapters/ocr/vision.ts","server/test/ocr-parse.test.ts","server/test/ocr-provider.unit.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/scripts/test-static.mjs"]}],"total_commits":0,"head_commit":{"id":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","message":"修复评价截图 OCR 兼容性\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ead57a81e98d7f55797e6963b61e4847d9d9a96d","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T16:21:17+08:00","added":[],"removed":[],"modified":["server/src/adapters/ocr/parse.ts","server/src/adapters/ocr/vision.ts","server/test/ocr-parse.test.ts","server/test/ocr-provider.unit.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/scripts/test-static.mjs"]},"repository":{"id":51,"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":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87461,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.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-07-02T16:02:07+08:00","updated_at":"2026-07-31T15:46:25+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":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"},"sender":{"id":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"}}...
|
push
|
2
|
8
|
1785486106
|
1785486233
|
0
|
1785486106
|
1785486233
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23489
|
Merge pull request #12 from laoluojuhai/fix/vm-doc Merge pull request #12 from laoluojuhai/fix/vm-dockerfile-build-path...
|
72
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
125c54d328d3da221b5d91c0a2dd0475712c6e96
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8ae98649e077fa188f8e9c1b0a11b78a2377c836","after":"125c54d328d3da221b5d91c0a2dd0475712c6e96","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/8ae98649e077fa188f8e9c1b0a11b78a2377c836...125c54d328d3da221b5d91c0a2dd0475712c6e96","commits":[{"id":"125c54d328d3da221b5d91c0a2dd0475712c6e96","message":"Merge pull request #12 from laoluojuhai/fix/vm-dockerfile-build-path\n\nfix(vm): 打通容器构建路径——保住 slim 运行镜像,不靠放宽红线换构建成功","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/125c54d328d3da221b5d91c0a2dd0475712c6e96","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-17T07:09:44-07:00","added":[],"removed":[],"modified":[".dockerignore","deploy/vm/.env.example","deploy/vm/Dockerfile","reports/api-route-contract.latest.json","reports/approval-payload-contract.latest.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-governance.latest.json","reports/schema-sync.latest.json","reports/sites-governance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json","reports/workspace-hygiene.latest.json","scripts/vm-deploy.sh"]},{"id":"6f13a78de9c02ae6a36fcebfb4bde63fbd092158","message":"fix(vm): 打通容器构建路径——保住 slim 运行镜像,不靠放宽红线换构建成功\n\n`deploy/vm/Dockerfile` 的构建路径从未真正跑通过(并发治理会话只用 pnpm/turbo 跑门禁,\n从不 docker build)。而 check:vm-deploy 一直是绿的——它查 Dockerfile 的**结构**\n(每个 stage 用哪个 FROM、有没有 fat runtime),不查它**能不能构建出来**。\n于是棘轮报告写着「镜像瘦身非 root、可回滚、备份可恢复」✅,而那个镜像根本产不出来。\n\n5 处构建 bug:\n1. contracts 的 `prepare`(tsc) 在只有 manifest 的依赖层里跑,找不到 tsconfig/src → TS5058。\n 先 COPY contracts 的 tsconfig + src 给它当输入。\n2. 新 workspace 包 @repo/password-auth(两后端 runtime 依赖)未进 manifest COPY、\n 也没被显式 build。\n3. `pnpm deploy --prod --legacy`:pnpm 9.15.9 不认 `--legacy`(Unknown option)。\n 旧注释称「未开启 inject-workspace-packages 时需要 --legacy」——实测在本仓版本上\n 不成立,去掉即可正常打平 workspace 包(sharp 这类 lockfile 原生依赖也照常带出)。\n4. `pnpm deploy` 只按 lockfile 物化依赖,而 .prisma/client(含平台相关 query engine)\n 是 `prisma generate` **生成**的、不在任何 lockfile 里,永远不会被带出去 →\n 新增一步从 build 树复制。路径由 @prisma/client 的解析结果反推,不硬编码 pnpm store\n 的哈希目录名;且必须从 app 目录解析(workspace 根 node_modules 里没有它)。\n5. web stage `COPY apps/web/public` 失败——git 未跟踪任何 public 资产。\n ⚠️ 本机可能有个空的 public/(git 不跟踪空目录),docker build 读本地上下文因而能过,\n CI 与全新 clone 上必挂,注释已写明这个陷阱。\n\n**刻意不采用**此前 `dockerfile-vm-deploy-fixes-ec411c0.patch` 的策略(放弃 slim、\n运行镜像改 FROM build):那会撞 4 条门禁红线(runtime-from-base-* / no-fat-runtime-*),\n而实测 slim 路径的两个阻塞点(3、4)都可解,「镜像瘦身作为后续项不阻塞」的前提不成立。\n体积实测:api-nestjs 741MB / api-fastify 695MB / web 546MB,\n对照 fat 方案 8.46GB、2026-08-06 实际部署的 2.69GB。非 root 由镜像层 USER node 保证,\n而非仅靠 compose 的 user: 覆盖。\n\n顺带两处断链(均为 MinIO 进 compose 后没人跟上):\n- .env.example 与 vm:init 都不认识 S3_*,而它们是 compose 的必填变量 → 新机器\n `vm:init` 后 `vm:up` 必然卡在变量插值。已补占位符 + 随机生成 + 存量 .env 自愈。\n- .dockerignore 只写 `**/.next`,匹配不到本仓工具链自建的 distDir\n (.next-ui-* / .next-dev-* / .next-manual-*),也没排除 sites/(G26 那套独立\n Cloudflare 系统,其 .sites-runtime 本机 1.0GB)→ COPY . . 层 3.79GB → 270MB。\n\n证据(作用域=本地工作区):\n- docker build 四个 target 全部 EXIT=0(api-nestjs / api-fastify / web / migrate)\n- 镜像内实测 @prisma/client 与原生模块 sharp 均可加载、dist 入口就位、uid=1000 非 root\n- Dockerfile 里那条「Prisma Client 缺失即构建失败」的断言**首次真正执行并通过**\n- pnpm vm:config EXIT=0(7 个服务解析通过)\n- pnpm check 22 项全绿 exit=0\n\n未验证:未跑 vm:up / vm:smoke(整栈起停与真实写链冒烟),故不得宣称「可部署」。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/6f13a78de9c02ae6a36fcebfb4bde63fbd092158","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T06:57:55-07:00","added":[],"removed":[],"modified":[".dockerignore","deploy/vm/.env.example","deploy/vm/Dockerfile","reports/api-route-contract.latest.json","reports/approval-payload-contract.latest.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-governance.latest.json","reports/schema-sync.latest.json","reports/sites-governance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json","reports/workspace-hygiene.latest.json","scripts/vm-deploy.sh"]}],"total_commits":0,"head_commit":{"id":"125c54d328d3da221b5d91c0a2dd0475712c6e96","message":"Merge pull request #12 from laoluojuhai/fix/vm-dockerfile-build-path\n\nfix(vm): 打通容器构建路径——保住 slim 运行镜像,不靠放宽红线换构建成功","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/125c54d328d3da221b5d91c0a2dd0475712c6e96","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-17T07:09:44-07:00","added":[],"removed":[],"modified":[".dockerignore","deploy/vm/.env.example","deploy/vm/Dockerfile","reports/api-route-contract.latest.json","reports/approval-payload-contract.latest.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-governance.latest.json","reports/schema-sync.latest.json","reports/sites-governance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json","reports/workspace-hygiene.latest.json","scripts/vm-deploy.sh"]},"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":33684,"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":0,"watchers_count":1,"branch_count":9,"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-17T19:18: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
|
1786975808
|
1786975899
|
0
|
1786975808
|
1786975900
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23496
|
fix(governance): 更正上一提交的证据绑定声明——静态那一级当时并非 clean-bo fix(governance): 更正上一提交的证据绑定声明——静态那一级当时并非 clean-bound...
|
74
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
c6049fee7c14933da0e4ff1e6a534eb44cfe1a03
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b33f650552dbc4adad6df5ee670b6d9eba8eb125","after":"c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/b33f650552dbc4adad6df5ee670b6d9eba8eb125...c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","commits":[{"id":"c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","message":"fix(governance): 更正上一提交的证据绑定声明——静态那一级当时并非 clean-bound\n\nb33f650 的提交信息与 CLAUDE.md 都写「三份报告均 worktreeDirty=false」,实测不成立:\n当时 17 份静态报告是 dirty=true,只有 runtime / UI 两份是 false。\n\n根因是执行顺序错了:先改 CLAUDE.md、再跑 pnpm check——那一刻工作区已因文档改动而脏,\n静态报告的 dirty 位被如实记成 true,而提交信息照抄了改动前的说法。\n\n本次在工作区 clean 状态下重跑静态门禁,现状态:\n- 静态 17 份:gitSha=b33f650 + worktreeDirty=false\n- runtime / UI 2 份:gitSha=5acf362 + worktreeDirty=false\n两个 SHA 是刻意如此:5acf362→b33f650 的差异只有 CLAUDE.md 一个文件\n(git diff --name-only 实测),不含任何 apps/ packages/ scripts/ 改动,\n因此 runtime / UI 证据仍绑定当前代码。\n\n已把这条教训写进 CLAUDE.md:报告的 dirty 位由**跑它那一刻的工作区**决定,\n不由你想宣称什么决定;正确顺序是代码与文档先提交干净,再跑门禁,再提交报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:36:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md","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/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","message":"fix(governance): 更正上一提交的证据绑定声明——静态那一级当时并非 clean-bound\n\nb33f650 的提交信息与 CLAUDE.md 都写「三份报告均 worktreeDirty=false」,实测不成立:\n当时 17 份静态报告是 dirty=true,只有 runtime / UI 两份是 false。\n\n根因是执行顺序错了:先改 CLAUDE.md、再跑 pnpm check——那一刻工作区已因文档改动而脏,\n静态报告的 dirty 位被如实记成 true,而提交信息照抄了改动前的说法。\n\n本次在工作区 clean 状态下重跑静态门禁,现状态:\n- 静态 17 份:gitSha=b33f650 + worktreeDirty=false\n- runtime / UI 2 份:gitSha=5acf362 + worktreeDirty=false\n两个 SHA 是刻意如此:5acf362→b33f650 的差异只有 CLAUDE.md 一个文件\n(git diff --name-only 实测),不含任何 apps/ packages/ scripts/ 改动,\n因此 runtime / UI 证据仍绑定当前代码。\n\n已把这条教训写进 CLAUDE.md:报告的 dirty 位由**跑它那一刻的工作区**决定,\n不由你想宣称什么决定;正确顺序是代码与文档先提交干净,再跑门禁,再提交报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:36:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md","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/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/validation-source.latest.json"]},"repository":{"id":74,"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":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5802,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.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-15T06:22:30+08:00","updated_at":"2026-08-18T08:35: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
|
1787013756
|
1787014203
|
0
|
1787013419
|
1787014204
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23498
|
docs(migration): 回灌 P9——文档内部数字自相矛盾
|
54
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
ccbc413eaf556c59a5c14707ce87d264c050180f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4d95adb2ebe583e4dddbd233cbb4ffb574b17862","after":"ccbc413eaf556c59a5c14707ce87d264c050180f","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/4d95adb2ebe583e4dddbd233cbb4ffb574b17862...ccbc413eaf556c59a5c14707ce87d264c050180f","commits":[{"id":"ccbc413eaf556c59a5c14707ce87d264c050180f","message":"docs(migration): 回灌 P9——文档内部数字自相矛盾\n\n下游 Digital Employee OS 移植时实测:只改了 CLAUDE.md 的「证据新鲜度」块\n(49 tests),漏了下方 GOVERNANCE-BASELINE 表(仍是源仓的 11/60/56),\n同一份文件里两个数字互相矛盾,而三级门禁全绿。\n\ncheck:docs-truth 是 targeted 断言集,不覆盖数字类事实,抓不到这类漂移。\n数字矛盾比数字过时更险:过时只是陈旧,矛盾意味着至少有一个是编的,\n而读者无从判断是哪个。\n\n按 §5 回灌纪律(「换个移植目标还会再踩吗」→ 会 → 回灌上游),三处同步补齐:\n- 踩坑档案新增 P9\n- 步骤 8 显式点名 GOVERNANCE-BASELINE 表每个数字与发布状态快照,\n 并加警告说明 check:docs-truth 的覆盖边界\n- 验收标准把「证据日期」扩为「证据日期 + 基线表每个数字」\n\n暂未机器化:数字类断言仍靠人工核对,属手册明记的已知缺口。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/ccbc413eaf556c59a5c14707ce87d264c050180f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T05:10:13-07:00","added":[],"removed":[],"modified":["docs/migration-playbook.md","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.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":"ccbc413eaf556c59a5c14707ce87d264c050180f","message":"docs(migration): 回灌 P9——文档内部数字自相矛盾\n\n下游 Digital Employee OS 移植时实测:只改了 CLAUDE.md 的「证据新鲜度」块\n(49 tests),漏了下方 GOVERNANCE-BASELINE 表(仍是源仓的 11/60/56),\n同一份文件里两个数字互相矛盾,而三级门禁全绿。\n\ncheck:docs-truth 是 targeted 断言集,不覆盖数字类事实,抓不到这类漂移。\n数字矛盾比数字过时更险:过时只是陈旧,矛盾意味着至少有一个是编的,\n而读者无从判断是哪个。\n\n按 §5 回灌纪律(「换个移植目标还会再踩吗」→ 会 → 回灌上游),三处同步补齐:\n- 踩坑档案新增 P9\n- 步骤 8 显式点名 GOVERNANCE-BASELINE 表每个数字与发布状态快照,\n 并加警告说明 check:docs-truth 的覆盖边界\n- 验收标准把「证据日期」扩为「证据日期 + 基线表每个数字」\n\n暂未机器化:数字类断言仍靠人工核对,属手册明记的已知缺口。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/ccbc413eaf556c59a5c14707ce87d264c050180f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T05:10:13-07:00","added":[],"removed":[],"modified":["docs/migration-playbook.md","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.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":1362,"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":1,"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-08-19T19:35:35+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
|
1787141425
|
1787141444
|
0
|
1787141425
|
1787141445
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23509
|
feat(governance): 三项拍板落地——HTTP jobs kind 值域收窄 + 结果 feat(governance): 三项拍板落地——HTTP jobs kind 值域收窄 + 结果裁决角色闸 + RoleAssignmentDto 接线 (#3)...
|
76
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
c0ed7540c137f2a6828d24503a4c396156996f33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e4b6a5e4925ba1a7234be9035af63c53fd77b945","after":"c0ed7540c137f2a6828d24503a4c396156996f33","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/e4b6a5e4925ba1a7234be9035af63c53fd77b945...c0ed7540c137f2a6828d24503a4c396156996f33","commits":[{"id":"c0ed7540c137f2a6828d24503a4c396156996f33","message":"feat(governance): 三项拍板落地——HTTP jobs kind 值域收窄 + 结果裁决角色闸 + RoleAssignmentDto 接线 (#3)\n\n三项 2026-08-20 拍板:① HTTP /api/jobs kind 值域收窄为 HTTP_ENQUEUEABLE_JOB_KINDS\n(内部作业 analysis/outcome.expire 入口即 400,消费门禁断言升级并负向验证);\n② 结果裁决角色闸 canResolveOutcome 单源(outcome confirm/dispute/attribution 收口\napprover/admin,判责矩阵与 approve 完全对等,G8 ⑥);③ /api/roles list/upsert 返回\n接线 contracts RoleAssignmentDto。另含发布快照推进 cf68476 与合并插坏段落修复。\n\n本地全链(2026-08-20):pnpm check exit 0 · check:runtime 378/378(地板 370→378)·\ncheck:ui 14/14。PR CI:头 cec3cd5 run 32375879119 两 job 全绿(2395bfb 的 run #16 红\n为 G18 已档收尾偶发——378 测试全过仅 Fastify auth.rs256 收尾 TCP 未处理拒绝,\n等价复跑即绿,判责档案见 CLAUDE.md G18)。","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c0ed7540c137f2a6828d24503a4c396156996f33","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-20T07:30:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/outcome.ts","packages/contracts/src/tenant.ts","reports/agent-adapters.latest.json","reports/baseline.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.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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs"]},{"id":"cf684760ca7c7d1580ffd27e4ab28726ab8a7636","message":"fix(build): 串行化双 app prisma:generate——U6 竞态在本仓 CI 首次实锤(run #13)(#2)\n\nturbo 包级依赖 api-fastify#prisma:generate → api-nestjs#prisma:generate 全局串行化,\n消除共享 .prisma/client 输出的并行写坏竞态(main run #13 红盘根因,playbook U6)。\nPR merge-ref CI 两 job 全绿(run 32372272135)。","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/cf684760ca7c7d1580ffd27e4ab28726ab8a7636","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-20T06:14:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/migration-playbook.md","reports/agent-adapters.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.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","turbo.json"]},{"id":"24eee9a94b903d2e24cf965a081eb8c38a0158e3","message":"fix(build): 串行化双 app prisma:generate——U6 竞态在本仓 CI 首次实锤(run #13)\n\nmerge 9f94390(PR #1)后的 main push run #13 红:两 app 的 prisma generate 被\nturbo 并行执行,共享输出 node_modules/.prisma/client/default.js 被写坏\n(default.js:5 SyntaxError: Unexpected token ')',NestJS 21 个测试套件加载即灭)。\n同一棵树半小时前在 PR merge-ref 全绿(run 32360248617)——纯概率性竞态,\n正是 playbook U6 预记的形态(上游实锤过,本仓 CI 首中)。\n\n修复(U6 自记的长期解法):turbo.json 增包级任务依赖\n api-fastify#prisma:generate dependsOn api-nestjs#prisma:generate\n全局串行化(CI / 本地 / 任何调用方同治),不改各包脚本与开发用法。\n\n验证:pnpm prisma:generate 连跑 3 次,两 generate 严格先后执行,\ndefault.js 每次 node --check 解析干净;pnpm check 静态全绿。\n回灌:playbook U6 补本仓实锤与已落地解法;CLAUDE.md 发布快照补 run #13 判责一笔。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01SPyuoU3B2ecKWLUDp1ogF4\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/24eee9a94b903d2e24cf965a081eb8c38a0158e3","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-08-20T13:04:20Z","added":[],"removed":[],"modified":["CLAUDE.md","docs/migration-playbook.md","reports/agent-adapters.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.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","turbo.json"]},{"id":"9f94390ac23dee9c3055f9d1d7ab4bca93f50ffa","message":"fix(governance): 全面治理修复——C25/C26/F8 + 文档真源回灌 + 对等修正与新断言 (#1)\n\n体检 → 修复 → 三轮与 main 汇合的完整治理轮。合并树实测:pnpm check exit 0 ·\ncheck:runtime 370/370 · check:ui 14/14;PR merge-ref CI 两 job 全绿(run 32360248617)。\n含 C26(棘轮地板采集只认 git 已跟踪文件)的唯一根因修复。详见 PR #1 描述与\ndocs/governance-experience.md C25/C26 战役记录。","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9f94390ac23dee9c3055f9d1d7ab4bca93f50ffa","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-20T05:53:19-07:00","added":[],"removed":["apps/api-fastify/pnpm-lock.yaml","apps/api-nestjs/pnpm-lock.yaml","apps/web/pnpm-lock.yaml"],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/store/useAppStore.ts","docs/README.md","docs/adr/README.md","docs/governance-experience.md","docs/migration-playbook.md","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/learning.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/tenant.ts","packages/contracts/tsconfig.json","reports/agent-adapters.latest.json","reports/baseline.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.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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"c22c7bcdbc589842e356b7a3ed3a7fc8fc9dc76b","message":"merge: 汇合 main 技能目录治理特性轮(5e00445..e4b6a5e)——三方合并全链绿\n\n冲突解决(并集原则):\n- 发布快照/证据行:取 main「第二次全绿 run 32355865911」事实 + 本轮「参数以 report\n 为准」纪律 + 补记 run #8 C26 判责;数字按合并树实测(54/363/370/14)\n- baseline 表:fork-readiness 取本轮 F8 版;agent-adapters(G21 闭环新门禁)取 main;\n own-tests/own-test-cases 取 C26 口径注记 + 合并树实测值\n- 缺口索引:C25/C26(本轮)与 G21(main)并集;G21 OPEN 段随 main 删除\n- 经验库:C25/C26 战役(本轮)+ G21 战役(main)并集\n- reports/baseline 合并后全链重跑再生成\n\n合并树验证(2026-08-20,基座重启后实跑):pnpm check exit 0(含 agent-adapters 新门禁 +\nC26 跟踪计数)· check:runtime 370/370(地板 368→370)· check:ui 14/14(地板 11→14)·\ngovernance 53→54/349→363 · 终检 exit 0\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01SPyuoU3B2ecKWLUDp1ogF4\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c22c7bcdbc589842e356b7a3ed3a7fc8fc9dc76b","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-08-20T10:42:36Z","added":[".agents/skills/business-module-intake/SKILL.md","apps/api-fastify/src/modules/work/skills.service.ts","apps/api-fastify/src/routes/skills.ts","apps/api-nestjs/src/work/skills.controller.ts","apps/api-nestjs/src/work/skills.service.ts","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/workbench/SkillPicker.tsx","packages/contracts/src/skill.test.ts","packages/contracts/src/skill.ts","reports/agent-adapters.latest.json","scripts/check-agent-adapters.mjs"],"removed":[],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/fullstack-7layer-react/SKILL.md","CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/errors.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/learning.concurrency.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/learning.concurrency.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/JobsPanel.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/StateBadge.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts","packages/contracts/src/realtime.ts","reports/baseline.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.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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"c0ed7540c137f2a6828d24503a4c396156996f33","message":"feat(governance): 三项拍板落地——HTTP jobs kind 值域收窄 + 结果裁决角色闸 + RoleAssignmentDto 接线 (#3)\n\n三项 2026-08-20 拍板:① HTTP /api/jobs kind 值域收窄为 HTTP_ENQUEUEABLE_JOB_KINDS\n(内部作业 analysis/outcome.expire 入口即 400,消费门禁断言升级并负向验证);\n② 结果裁决角色闸 canResolveOutcome 单源(outcome confirm/dispute/attribution 收口\napprover/admin,判责矩阵与 approve 完全对等,G8 ⑥);③ /api/roles list/upsert 返回\n接线 contracts RoleAssignmentDto。另含发布快照推进 cf68476 与合并插坏段落修复。\n\n本地全链(2026-08-20):pnpm check exit 0 · check:runtime 378/378(地板 370→378)·\ncheck:ui 14/14。PR CI:头 cec3cd5 run 32375879119 两 job 全绿(2395bfb 的 run #16 红\n为 G18 已档收尾偶发——378 测试全过仅 Fastify auth.rs256 收尾 TCP 未处理拒绝,\n等价复跑即绿,判责档案见 CLAUDE.md G18)。","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c0ed7540c137f2a6828d24503a4c396156996f33","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-20T07:30:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/outcome.ts","packages/contracts/src/tenant.ts","reports/agent-adapters.latest.json","reports/baseline.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.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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.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":1591,"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":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-08-20T14:46:28+08:00","updated_at":"2026-08-20T18:03: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
|
8
|
1787327001
|
1787327074
|
0
|
1787326999
|
1787327074
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23552
|
docs(governance): close G14 with remote CI green e docs(governance): close G14 with remote CI green evidence...
|
91
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
48c7ef665e210ef004970fc6f1fdc443a03b48a1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2235838932d2a3dd2f545bf0f33073983a45ae60","after":"48c7ef665e210ef004970fc6f1fdc443a03b48a1","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/2235838932d2a3dd2f545bf0f33073983a45ae60...48c7ef665e210ef004970fc6f1fdc443a03b48a1","commits":[{"id":"48c7ef665e210ef004970fc6f1fdc443a03b48a1","message":"docs(governance): close G14 with remote CI green evidence\n\nGitea Actions run #9(commit 2235838)双 job 全绿:Static 59s(12 门禁\n+ OS 供给链)+ Runtime/UI 2m47s(155 DB tests + 4 UI cases)。run #1-#8\n的红盘史各对应一类被拦截的真因,作为远端拦截实证一并归档;假绿五形态\n表「假生效门禁」行 🟡→✅。CI 架构要点(零 uses:/host 模式自备基座/\n镜像链/OS 钉版)写入动态区,完整战役进经验库。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/48c7ef665e210ef004970fc6f1fdc443a03b48a1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T19:41:38-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md"]}],"total_commits":0,"head_commit":{"id":"48c7ef665e210ef004970fc6f1fdc443a03b48a1","message":"docs(governance): close G14 with remote CI green evidence\n\nGitea Actions run #9(commit 2235838)双 job 全绿:Static 59s(12 门禁\n+ OS 供给链)+ Runtime/UI 2m47s(155 DB tests + 4 UI cases)。run #1-#8\n的红盘史各对应一类被拦截的真因,作为远端拦截实证一并归档;假绿五形态\n表「假生效门禁」行 🟡→✅。CI 架构要点(零 uses:/host 模式自备基座/\n镜像链/OS 钉版)写入动态区,完整战役进经验库。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/48c7ef665e210ef004970fc6f1fdc443a03b48a1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T19:41:38-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md"]},"repository":{"id":91,"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":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3011,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.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-30T09:20:06+08:00","updated_at":"2026-08-30T10:32:21+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
|
1
|
8
|
1788058397
|
1788058565
|
0
|
1788058396
|
1788058565
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23581
|
merge: integrate all remaining branches
|
57
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
b3a5c0dc690884729878b7f4cce1adbad046be14
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c16f03b05ec70a53ac99f27dc7901ad3ad99a45a","after":"b3a5c0dc690884729878b7f4cce1adbad046be14","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/c16f03b05ec70a53ac99f27dc7901ad3ad99a45a...b3a5c0dc690884729878b7f4cce1adbad046be14","commits":[{"id":"b3a5c0dc690884729878b7f4cce1adbad046be14","message":"merge: integrate all remaining branches\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b3a5c0dc690884729878b7f4cce1adbad046be14","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-31T20:19:35-07:00","added":["apps/api-fastify/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-fastify/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-nestjs/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/src/queue/lyric-scenes.processor.ts","apps/web/src/app/api/[...path]/route.ts","apps/web/src/components/material-factory/LyricsStudio.tsx","apps/web/src/lib/public-asset-url.ts","deploy/vm/sidecar-bailian-requirements.txt","deploy/vm/sidecar-ocr-requirements.txt","services/model-sidecar/dashscope_provider.py"],"removed":[],"modified":["apps/api-fastify/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/types.ts","apps/api-nestjs/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","deploy/vm/.env.example","deploy/vm/Caddyfile","deploy/vm/Dockerfile","deploy/vm/docker-compose.yml","deploy/vm/sidecar.Dockerfile","packages/contracts/src/material-ocr-gate.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","packages/contracts/tsconfig.json","reports/adversarial-acceptance-audit.latest.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.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-acceptance.latest.json","reports/production-security.latest.json","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/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/download-material-models.mjs","scripts/lib/source-fingerprint.mjs"]},{"id":"dc10d6356138564bf70fcfa6370ba66d99f0b0d7","message":"feat(material): 完成正式生产与导演交付链路\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/dc10d6356138564bf70fcfa6370ba66d99f0b0d7","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-08-27T14:12:06+08:00","added":[".github/workflows/governance.yml","apps/api-fastify/prisma/migrations/20260823170000_formal_material_production/migration.sql","apps/api-fastify/prisma/migrations/20260823174500_add_provider_callback_receipts/migration.sql","apps/api-fastify/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-fastify/prisma/migrations/20260823184500_normalize_model_connections/migration.sql","apps/api-fastify/prisma/migrations/20260823190000_persist_storyboards/migration.sql","apps/api-fastify/prisma/migrations/20260823200000_add_outbox_claim_leases/migration.sql","apps/api-fastify/prisma/migrations/20260823210000_add_model_resource_policies/migration.sql","apps/api-fastify/prisma/migrations/20260823211000_add_job_intent_queue_namespace/migration.sql","apps/api-fastify/prisma/migrations/20260823212000_add_storyboard_version_snapshots/migration.sql","apps/api-fastify/prisma/migrations/20260823220000_script_scenario_modes/migration.sql","apps/api-fastify/prisma/migrations/20260823230000_storyboard_video/migration.sql","apps/api-fastify/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","apps/api-fastify/prisma/migrations/20260825103000_creative_support_skills/migration.sql","apps/api-fastify/prisma/migrations/20260825130000_director_spec_qc/migration.sql","apps/api-fastify/prisma/migrations/20260825134500_storyboard_delivery_variants/migration.sql","apps/api-fastify/src/modules/material-factory/model-connector.client.ts","apps/api-fastify/src/modules/material-production/material-production.service.ts","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/material-review.integration.test.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-fastify/test/object-storage.integration.test.ts","apps/api-fastify/test/provider-callback.integration.test.ts","apps/api-nestjs/prisma/migrations/20260823170000_formal_material_production/migration.sql","apps/api-nestjs/prisma/migrations/20260823174500_add_provider_callback_receipts/migration.sql","apps/api-nestjs/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-nestjs/prisma/migrations/20260823184500_normalize_model_connections/migration.sql","apps/api-nestjs/prisma/migrations/20260823190000_persist_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/20260823200000_add_outbox_claim_leases/migration.sql","apps/api-nestjs/prisma/migrations/20260823210000_add_model_resource_policies/migration.sql","apps/api-nestjs/prisma/migrations/20260823211000_add_job_intent_queue_namespace/migration.sql","apps/api-nestjs/prisma/migrations/20260823212000_add_storyboard_version_snapshots/migration.sql","apps/api-nestjs/prisma/migrations/20260823220000_script_scenario_modes/migration.sql","apps/api-nestjs/prisma/migrations/20260823230000_storyboard_video/migration.sql","apps/api-nestjs/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","apps/api-nestjs/prisma/migrations/20260825103000_creative_support_skills/migration.sql","apps/api-nestjs/prisma/migrations/20260825130000_director_spec_qc/migration.sql","apps/api-nestjs/prisma/migrations/20260825134500_storyboard_delivery_variants/migration.sql","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/src/material-factory/model-connector.client.ts","apps/api-nestjs/src/material-production/job-intent-dispatcher.service.ts","apps/api-nestjs/src/material-production/material-production-worker.module.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.module.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/src/material-production/render-worker.service.ts","apps/api-nestjs/src/production-worker.ts","apps/api-nestjs/test/material-production-modes.integration.test.ts","apps/api-nestjs/test/material-production-worker.integration.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/material-review.integration.test.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/api-nestjs/test/object-storage.integration.test.ts","apps/api-nestjs/test/outbox-dispatcher.integration.test.ts","apps/api-nestjs/test/provider-callback.integration.test.ts","apps/web/public/material-factory/human-review-approved-stamp.png","apps/web/src/app/api/[...path]/route.ts","apps/web/src/components/material-factory/BlockedResolutionPanel.tsx","apps/web/src/components/material-factory/CreativeSupportSkills.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/ModelConnectionsStudio.tsx","apps/web/src/components/material-factory/ModelOperationsDashboard.tsx","apps/web/src/components/material-factory/PipelineFlow.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/QualityEvidencePanel.tsx","apps/web/src/components/material-factory/ReviewCenter.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/VersionCompare.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/storyboard-director.ts","deploy/vm/sidecar-ocr-requirements.txt","design-qa.md","docs/domain/material-production-blueprint.md","docs/domain/module-boundary.md","docs/domain/owner-matrix.md","packages/contracts/src/creative-support.test.ts","packages/contracts/src/creative-support.ts","packages/contracts/src/director-spec.test.ts","packages/contracts/src/director-spec.ts","packages/contracts/src/production.test.ts","packages/contracts/src/production.ts","packages/contracts/src/script-scenario.test.ts","packages/contracts/src/script-sidecar.test.ts","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/storyboard-video.test.ts","packages/contracts/src/storyboard.test.ts","packages/contracts/src/storyboard.ts","scripts/check-material-review-concurrency-guard.mjs","scripts/check-module-boundary.mjs","scripts/check-production-acceptance.mjs","scripts/check-production-security.mjs","scripts/check-storyboard-director-guard.mjs","scripts/lib/source-fingerprint.mjs","services/model-sidecar/test_mask_composite.py"],"removed":[],"modified":[".claude/launch.json",".github/pull_request_template.md",".gitignore","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-fastify/test/material-script.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/api-nestjs/test/material-script.acceptance.test.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/DemoExportModal.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/ExportModal.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/InstanceGallery.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/RoleConfirmPanel.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/ShotBoard.tsx","apps/web/src/components/material-factory/StillVersionBar.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx","apps/web/src/components/material-factory/brand.ts","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/procedural.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/components/material-factory/ui.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/public-asset-url.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","apps/web/tsconfig.json","deploy/vm/.env.example","deploy/vm/deploy.sh","deploy/vm/docker-compose.yml","deploy/vm/sidecar-bailian-requirements.txt","deploy/vm/sidecar.Dockerfile","docs/README.md","docs/deploy-vm.md","docs/product/controlled-ai-material-factory.md","package.json","packages/contracts/src/index.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","packages/contracts/src/realtime.ts","packages/contracts/src/script.ts","pnpm-lock.yaml","scripts/check-inference-acceptance.mjs","scripts/check-naming.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-script-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/download-material-models.mjs","scripts/governance-report.mjs","services/model-sidecar/README.md","services/model-sidecar/main.py"]},{"id":"5fbcad0bceea9e81914ae6b7e8bfb05265845598","message":"merge(main): 合并拍摄脚本与云端渲染能力\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5fbcad0bceea9e81914ae6b7e8bfb05265845598","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-08-18T16:58:46+08:00","added":[".gitattributes","apps/api-fastify/prisma/migrations/20260818042934_shooting_script_domain/migration.sql","apps/api-fastify/prisma/migrations/20260818053524_shot_still_versions/migration.sql","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/test/material-script.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260818042934_shooting_script_domain/migration.sql","apps/api-nestjs/prisma/migrations/20260818053524_shot_still_versions/migration.sql","apps/api-nestjs/src/material-factory/shooting-script.controller.ts","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/material-script.acceptance.test.ts","apps/web/src/components/material-factory/RoleConfirmPanel.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/ShotBoard.tsx","apps/web/src/components/material-factory/StillVersionBar.tsx","models/material-factory/manifest.json","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/.msc","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/.mv","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/README.md","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/config.json","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/inference.json","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/inference.pdiparams","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/inference.yml","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/img_textline180_demo_res.jpg","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/img_textline180_demo_res.json","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/inference.json","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/inference.pdiparams","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/inference.yml","models/material-factory/paddleocr/PP-OCRv6_medium_det_infer/inference.json","models/material-factory/paddleocr/PP-OCRv6_medium_det_infer/inference.pdiparams","models/material-factory/paddleocr/PP-OCRv6_medium_det_infer/inference.yml","models/material-factory/paddleocr/PP-OCRv6_medium_rec_infer/inference.json","models/material-factory/paddleocr/PP-OCRv6_medium_rec_infer/inference.pdiparams","models/material-factory/paddleocr/PP-OCRv6_medium_rec_infer/inference.yml","models/material-factory/paddleocr/UVDoc_infer/inference.json","models/material-factory/paddleocr/UVDoc_infer/inference.pdiparams","models/material-factory/paddleocr/UVDoc_infer/inference.yml","models/material-factory/paddleocr/archives/PP-LCNet_x1_0_doc_ori_infer.tar","models/material-factory/paddleocr/archives/PP-LCNet_x1_0_textline_ori_infer.tar","models/material-factory/paddleocr/archives/PP-OCRv6_medium_det_infer.tar","models/material-factory/paddleocr/archives/PP-OCRv6_medium_rec_infer.tar","models/material-factory/paddleocr/archives/UVDoc_infer.tar","models/material-factory/qwen-image-2512/.gitattributes","models/material-factory/qwen-image-2512/README.md","models/material-factory/qwen-image-2512/model_index.json","models/material-factory/qwen-image-2512/scheduler/scheduler_config.json","models/material-factory/qwen-image-2512/text_encoder/config.json","models/material-factory/qwen-image-2512/text_encoder/generation_config.json","models/material-factory/qwen-image-2512/text_encoder/model-00001-of-00004.safetensors","models/material-factory/qwen-image-2512/text_encoder/model-00002-of-00004.safetensors","models/material-factory/qwen-image-2512/text_encoder/model-00003-of-00004.safetensors","models/material-factory/qwen-image-2512/text_encoder/model-00004-of-00004.safetensors","models/material-factory/qwen-image-2512/text_encoder/model.safetensors.index.json","models/material-factory/qwen-image-2512/tokenizer/added_tokens.json","models/material-factory/qwen-image-2512/tokenizer/chat_template.jinja","models/material-factory/qwen-image-2512/tokenizer/merges.txt","models/material-factory/qwen-image-2512/tokenizer/special_tokens_map.json","models/material-factory/qwen-image-2512/tokenizer/tokenizer_config.json","models/material-factory/qwen-image-2512/tokenizer/vocab.json","models/material-factory/qwen-image-2512/transformer/config.json","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00001-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00002-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00003-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00004-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00005-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00006-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00007-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00008-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00009-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model.safetensors.index.json","models/material-factory/qwen-image-2512/vae/config.json","models/material-factory/qwen-image-2512/vae/diffusion_pytorch_model.safetensors","models/material-factory/qwen-image-edit-2511/.gitattributes","models/material-factory/qwen-image-edit-2511/README.md","models/material-factory/qwen-image-edit-2511/model_index.json","models/material-factory/qwen-image-edit-2511/processor/added_tokens.json","models/material-factory/qwen-image-edit-2511/processor/chat_template.jinja","models/material-factory/qwen-image-edit-2511/processor/merges.txt","models/material-factory/qwen-image-edit-2511/processor/preprocessor_config.json","models/material-factory/qwen-image-edit-2511/processor/special_tokens_map.json","models/material-factory/qwen-image-edit-2511/processor/tokenizer.json","models/material-factory/qwen-image-edit-2511/processor/tokenizer_config.json","models/material-factory/qwen-image-edit-2511/processor/video_preprocessor_config.json","models/material-factory/qwen-image-edit-2511/processor/vocab.json","models/material-factory/qwen-image-edit-2511/scheduler/scheduler_config.json","models/material-factory/qwen-image-edit-2511/text_encoder/config.json","models/material-factory/qwen-image-edit-2511/text_encoder/generation_config.json","models/material-factory/qwen-image-edit-2511/text_encoder/model-00001-of-00004.safetensors","models/material-factory/qwen-image-edit-2511/text_encoder/model-00002-of-00004.safetensors","models/material-factory/qwen-image-edit-2511/text_encoder/model-00003-of-00004.safetensors","models/material-factory/qwen-image-edit-2511/text_encoder/model-00004-of-00004.safetensors","models/material-factory/qwen-image-edit-2511/text_encoder/model.safetensors.index.json","models/material-factory/qwen-image-edit-2511/tokenizer/added_tokens.json","models/material-factory/qwen-image-edit-2511/tokenizer/chat_template.jinja","models/material-factory/qwen-image-edit-2511/tokenizer/merges.txt","models/material-factory/qwen-image-edit-2511/tokenizer/special_tokens_map.json","models/material-factory/qwen-image-edit-2511/tokenizer/tokenizer_config.json","models/material-factory/qwen-image-edit-2511/tokenizer/vocab.json","models/material-factory/qwen-image-edit-2511/transformer/config.json","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00001-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00002-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00003-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00004-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00005-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model.safetensors.index.json","models/material-factory/qwen-image-edit-2511/vae/config.json","models/material-factory/qwen-image-edit-2511/vae/diffusion_pytorch_model.safetensors","models/material-factory/z-image-turbo/.gitattributes","models/material-factory/z-image-turbo/README.md","models/material-factory/z-image-turbo/assets/DMDR.webp","models/material-factory/z-image-turbo/assets/Z-Image-Gallery.pdf","models/material-factory/z-image-turbo/assets/architecture.webp","models/material-factory/z-image-turbo/assets/decoupled-dmd.webp","models/material-factory/z-image-turbo/assets/leaderboard.png","models/material-factory/z-image-turbo/assets/leaderboard.webp","models/material-factory/z-image-turbo/assets/reasoning.png","models/material-factory/z-image-turbo/assets/showcase.jpg","models/material-factory/z-image-turbo/assets/showcase_editing.png","models/material-factory/z-image-turbo/assets/showcase_realistic.png","models/material-factory/z-image-turbo/assets/showcase_rendering.png","models/material-factory/z-image-turbo/model_index.json","models/material-factory/z-image-turbo/scheduler/scheduler_config.json","models/material-factory/z-image-turbo/text_encoder/config.json","models/material-factory/z-image-turbo/text_encoder/generation_config.json","models/material-factory/z-image-turbo/text_encoder/model-00001-of-00003.safetensors","models/material-factory/z-image-turbo/text_encoder/model-00002-of-00003.safetensors","models/material-factory/z-image-turbo/text_encoder/model-00003-of-00003.safetensors","models/material-factory/z-image-turbo/text_encoder/model.safetensors.index.json","models/material-factory/z-image-turbo/tokenizer/merges.txt","models/material-factory/z-image-turbo/tokenizer/tokenizer.json","models/material-factory/z-image-turbo/tokenizer/tokenizer_config.json","models/material-factory/z-image-turbo/tokenizer/vocab.json","models/material-factory/z-image-turbo/transformer/config.json","models/material-factory/z-image-turbo/transformer/diffusion_pytorch_model-00001-of-00003.safetensors","models/material-factory/z-image-turbo/transformer/diffusion_pytorch_model-00002-of-00003.safetensors","models/material-factory/z-image-turbo/transformer/diffusion_pytorch_model-00003-of-00003.safetensors","models/material-factory/z-image-turbo/transformer/diffusion_pytorch_model.safetensors.index.json","models/material-factory/z-image-turbo/vae/config.json","models/material-factory/z-image-turbo/vae/diffusion_pytorch_model.safetensors","packages/contracts/src/script-machine.test.ts","packages/contracts/src/script-role-gate.test.ts","packages/contracts/src/script-stale.test.ts","packages/contracts/src/script.ts","reports/script-acceptance.latest.json","scripts/check-script-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/brand.ts","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","package.json","packages/contracts/src/index.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/validation-source.latest.json","scripts/check-migrations.mjs","scripts/governance-report.mjs","services/model-sidecar/dashscope_provider.py","services/model-sidecar/main.py","services/model-sidecar/qwen.py"]},{"id":"549ea31448ec1e62e8f10039ed3f8c7d384e07f8","message":"feat(material-factory): 接入阿里云百炼真实生成链路\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/549ea31448ec1e62e8f10039ed3f8c7d384e07f8","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-08-17T17:34:04+08:00","added":["apps/api-fastify/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-fastify/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-nestjs/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/src/queue/lyric-scenes.processor.ts","apps/web/src/lib/public-asset-url.ts","deploy/vm/sidecar-bailian-requirements.txt","services/model-sidecar/dashscope_provider.py"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InstanceGallery.tsx","apps/web/src/components/material-factory/LyricsStudio.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/.env.example","deploy/vm/Caddyfile","deploy/vm/Dockerfile","deploy/vm/docker-compose.yml","deploy/vm/sidecar.Dockerfile","packages/contracts/src/material-ocr-gate.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","packages/contracts/tsconfig.json","services/model-sidecar/main.py"]}],"total_commits":0,"head_commit":{"id":"b3a5c0dc690884729878b7f4cce1adbad046be14","message":"merge: integrate all remaining branches\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b3a5c0dc690884729878b7f4cce1adbad046be14","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-31T20:19:35-07:00","added":["apps/api-fastify/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-fastify/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-nestjs/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/src/queue/lyric-scenes.processor.ts","apps/web/src/app/api/[...path]/route.ts","apps/web/src/components/material-factory/LyricsStudio.tsx","apps/web/src/lib/public-asset-url.ts","deploy/vm/sidecar-bailian-requirements.txt","deploy/vm/sidecar-ocr-requirements.txt","services/model-sidecar/dashscope_provider.py"],"removed":[],"modified":["apps/api-fastify/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/types.ts","apps/api-nestjs/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","deploy/vm/.env.example","deploy/vm/Caddyfile","deploy/vm/Dockerfile","deploy/vm/docker-compose.yml","deploy/vm/sidecar.Dockerfile","packages/contracts/src/material-ocr-gate.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","packages/contracts/tsconfig.json","reports/adversarial-acceptance-audit.latest.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.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-acceptance.latest.json","reports/production-security.latest.json","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/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/download-material-models.mjs","scripts/lib/source-fingerprint.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":47863,"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":5,"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-01T10:41: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
|
4
|
1788232800
|
1788232834
|
0
|
1788232799
|
1788232834
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23640
|
feat(voiceprint): harden recognition and add froze feat(voiceprint): harden recognition and add frozen evaluation workflow...
|
62
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
550f0c01417925fdf38c4bfe8b949a7fa3ef72e3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","after":"550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/ca134d5514b10ecb8b367c953c3284aaa5984f8a...550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","commits":[{"id":"550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","message":"feat(voiceprint): harden recognition and add frozen evaluation workflow\n\nKeep identity decisions independent of display topK, reject inconsistent\nenrollment, correct activity evidence, and rerank changed scoring weights.\nAdd frozen datasets, open-set evaluation, scoring experiments, and model,\ntemplate, policy and pipeline compatibility checks.\n\nInclude reviewed workspace improvements for tenant fallback rejection,\nbounded sidecar waits, VM Redis capacity and responsive recording workflows.\nUpdate contracts, regressions, documentation and machine evidence together.\nThe change spans the full recognition workflow and its governance assets.\n\nValidation: 84 backend/contracts tests, 83 Python tests, 9 browser tests;\nlint, typecheck, build and diff checks passed.\nGovernance remains blocked by two expired real-model/calibration reports.\nTarget-domain accuracy, model adaptation and production rollout remain open.\nNo production algorithm deployment or calibration activation performed.\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","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-05T02:04:57-07:00","added":["apps/api-fastify/test/sidecar-timeout.test.ts","apps/api-nestjs/test/sidecar-timeout.test.ts","configs/voiceprint-dataset.example.json","docs/analysis/voiceprint-accuracy-2026-09-05/evidence.json","docs/analysis/voiceprint-accuracy-2026-09-05/reproduce.py","docs/voiceprint-accuracy-implementation.md","docs/voiceprint-accuracy-improvement-plan.md","scripts/compare_voiceprint.py","scripts/evaluate_voiceprint.py","scripts/run-python.sh","scripts/validate_voiceprint_dataset.py","src/speaker_embedding/dataset.py","src/speaker_embedding/evaluation.py","src/speaker_embedding/experiments.py","src/speaker_embedding/quality.py","tests/test_accuracy.py"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/voiceprint/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/voiceprint/AudioPicker.tsx","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/SpeakersPanel.tsx","deploy/vm/.env.vm.example","deploy/vm/compose.yaml","docs/README.md","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","package.json","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/calibrate_voiceprint.py","scripts/check_voiceprint_real.py","src/speaker_embedding/calibration.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/singing_activity.py","src/speaker_embedding/speaker_db.py","tests/test_sidecar.py","tests/test_speaker_db.py"]}],"total_commits":0,"head_commit":{"id":"550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","message":"feat(voiceprint): harden recognition and add frozen evaluation workflow\n\nKeep identity decisions independent of display topK, reject inconsistent\nenrollment, correct activity evidence, and rerank changed scoring weights.\nAdd frozen datasets, open-set evaluation, scoring experiments, and model,\ntemplate, policy and pipeline compatibility checks.\n\nInclude reviewed workspace improvements for tenant fallback rejection,\nbounded sidecar waits, VM Redis capacity and responsive recording workflows.\nUpdate contracts, regressions, documentation and machine evidence together.\nThe change spans the full recognition workflow and its governance assets.\n\nValidation: 84 backend/contracts tests, 83 Python tests, 9 browser tests;\nlint, typecheck, build and diff checks passed.\nGovernance remains blocked by two expired real-model/calibration reports.\nTarget-domain accuracy, model adaptation and production rollout remain open.\nNo production algorithm deployment or calibration activation performed.\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","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-05T02:04:57-07:00","added":["apps/api-fastify/test/sidecar-timeout.test.ts","apps/api-nestjs/test/sidecar-timeout.test.ts","configs/voiceprint-dataset.example.json","docs/analysis/voiceprint-accuracy-2026-09-05/evidence.json","docs/analysis/voiceprint-accuracy-2026-09-05/reproduce.py","docs/voiceprint-accuracy-implementation.md","docs/voiceprint-accuracy-improvement-plan.md","scripts/compare_voiceprint.py","scripts/evaluate_voiceprint.py","scripts/run-python.sh","scripts/validate_voiceprint_dataset.py","src/speaker_embedding/dataset.py","src/speaker_embedding/evaluation.py","src/speaker_embedding/experiments.py","src/speaker_embedding/quality.py","tests/test_accuracy.py"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/voiceprint/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/voiceprint/AudioPicker.tsx","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/SpeakersPanel.tsx","deploy/vm/.env.vm.example","deploy/vm/compose.yaml","docs/README.md","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","package.json","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/calibrate_voiceprint.py","scripts/check_voiceprint_real.py","src/speaker_embedding/calibration.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/singing_activity.py","src/speaker_embedding/speaker_db.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"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":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1966,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-15T08:42:42+08:00","updated_at":"2026-09-05T17:05: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
|
1788599193
|
1788599219
|
0
|
1788599192
|
1788599220
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23875
|
docs(platform): 当前状态 runtime / 七模块两行改引当前机器证据(runti docs(platform): 当前状态 runtime / 七模块两行改引当前机器证据(runtime 346 / UI 5 @ 99cce60;静态 @ 4660ad5,报告 bc52a55)...
|
116
|
5
|
platform.yml
|
10
|
5
|
0
|
refs/heads/main
|
be7334ad46324e54bebe2397365086896b6ad42b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"99cce601d0afd37f556bc74e98d770ec1ed40271","after":"be7334ad46324e54bebe2397365086896b6ad42b","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/99cce601d0afd37f556bc74e98d770ec1ed40271...be7334ad46324e54bebe2397365086896b6ad42b","commits":[{"id":"be7334ad46324e54bebe2397365086896b6ad42b","message":"docs(platform): 当前状态 runtime / 七模块两行改引当前机器证据(runtime 346 / UI 5 @ 99cce60;静态 @ 4660ad5,报告 bc52a55)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/be7334ad46324e54bebe2397365086896b6ad42b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:50:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"bc52a554341f1a997ef05b1826f9424b73d16cff","message":"chore(reports): refresh clean static evidence @ 4660ad5(M3-4 / S-5 后:runtime 346 / UI 5 绑定 99cce60;地板 346 / 35 / 184)\n\n根 pnpm check(pins / modules / module-imports 201 源文件 0 违规 / catalog / catalog:drift / fixtures 33 / facts / migration-decs / caddy /\ngovernance 测试 / contracts check:local / runtime 静态 14 项 + lint + typecheck)与 release:manifest(仍 partial 缺 5 项)\n在 clean `4660ad5` 上重跑,24 份 latest 报告 provenance 同 SHA、worktreeDirty=false。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/bc52a554341f1a997ef05b1826f9424b73d16cff","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:50:50-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"4660ad5e771be4500d4d90b7ed6636f37e6c3ece","message":"docs(runtime): record clean commit acceptance @ 99cce60(M3-4 / S-5 单测修正后重跑:runtime 346 / UI 5)\n\n- 上一份验收记录(aa50624)绑定 98baa5a;其后 a95834d 修正单测(去掉静态 import 运行时模块),按纪律在 clean 树重跑:\n runtime 346 tests / 0 failures、UI 5/5、双后端差分 0 差异;DB `enterprise_platform_acceptance_m34b_20260912`。\n- 报告 provenance.gitSha = 99cce60(并行会话在验收中途合并 fc37805 → 99cce60,只改 governance / stack,未触及 runtime/;\n 差分报告仍绑定 a95834d);证据三行改引 99cce60 并注明与 a95834d 的关系。地板不变(346 / 5 / 35 / 184)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/4660ad5e771be4500d4d90b7ed6636f37e6c3ece","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:49:04-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]}],"total_commits":0,"head_commit":{"id":"be7334ad46324e54bebe2397365086896b6ad42b","message":"docs(platform): 当前状态 runtime / 七模块两行改引当前机器证据(runtime 346 / UI 5 @ 99cce60;静态 @ 4660ad5,报告 bc52a55)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/be7334ad46324e54bebe2397365086896b6ad42b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:50:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2505,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T15:48: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
|
3
|
8
|
0
|
1789199753
|
0
|
1789199626
|
1789199753
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
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
|
|
24012
|
docs(平台治理): 开发计划与总体计划登记四项交付、独立工作台与「分别发布」修订
|
117
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
61081e56e2b37ba5e77440b55ef576c366854dba
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f1ec550575bc3d6331824a3fb8378c5d4656c7ef","after":"61081e56e2b37ba5e77440b55ef576c366854dba","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/f1ec550575bc3d6331824a3fb8378c5d4656c7ef...61081e56e2b37ba5e77440b55ef576c366854dba","commits":[{"id":"61081e56e2b37ba5e77440b55ef576c366854dba","message":"docs(平台治理): 开发计划与总体计划登记四项交付、独立工作台与「分别发布」修订\n\n逐条对照对外交付设计方案后补齐三处外围文档:\n- 基础设施文档/开发计划.md:头部增 2026-09-17 增量段(五步领取顺序,① 文档部分已完成、②—⑤ 待实施,不新设 PF/MS),§8 变更记录增一行登记两仓提交与检查结果。\n- 基础/总体开发计划.md:v5.24 修订条目,把 v5.18 的「一次部署」改为「一个独立项目、分别发布」。\n- 基础/README.md:基础设施仓设计条目下加 2026-09-17 修订指针。\n仅设计登记;工作区一致性检查 L4 / L10 / L13 清零,余 L8 / L9 / L12 为既有问题。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/61081e56e2b37ba5e77440b55ef576c366854dba","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-17T05:18:02-07:00","added":[],"removed":[],"modified":["平台治理/基础/README.md","平台治理/基础/总体开发计划.md","平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"61081e56e2b37ba5e77440b55ef576c366854dba","message":"docs(平台治理): 开发计划与总体计划登记四项交付、独立工作台与「分别发布」修订\n\n逐条对照对外交付设计方案后补齐三处外围文档:\n- 基础设施文档/开发计划.md:头部增 2026-09-17 增量段(五步领取顺序,① 文档部分已完成、②—⑤ 待实施,不新设 PF/MS),§8 变更记录增一行登记两仓提交与检查结果。\n- 基础/总体开发计划.md:v5.24 修订条目,把 v5.18 的「一次部署」改为「一个独立项目、分别发布」。\n- 基础/README.md:基础设施仓设计条目下加 2026-09-17 修订指针。\n仅设计登记;工作区一致性检查 L4 / L10 / L13 清零,余 L8 / L9 / L12 为既有问题。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/61081e56e2b37ba5e77440b55ef576c366854dba","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-17T05:18:02-07:00","added":[],"removed":[],"modified":["平台治理/基础/README.md","平台治理/基础/总体开发计划.md","平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"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":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6915,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.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-15T11:53:24+08:00","updated_at":"2026-09-17T20:11: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
|
1
|
4
|
1789647516
|
1789647531
|
0
|
1789647486
|
1789647531
|
|
|
0
|
Edit
Delete
|
|
24404
|
feat(notification): add platform delivery consumer
|
81
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
066afd0a04f4765ee9a8aefae9f2eb8272bb88b2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","after":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd...066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","commits":[{"id":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","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-23T06:19:55-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/.env.example","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},{"id":"1cebe527600912193f7e672fb478ae39a84db7ae","message":"fix(compose): 开发基座补顶层 name,停止与另外六个仓共用 project `api-nestjs`\n\n本文件没有顶层 name,compose 便按**所在目录名**推导 project 名。它在每个仓里的路径都是\napps/api-nestjs/,于是 7 个仓推导出同一个 `api-nestjs`,共用 `api-nestjs_pgdata` /\n`_redisdata` 与同名容器——后 up 的那个直接接管先起者的容器与卷。这类冲突单仓内部永远\n判不出来,只有横着比多份 compose 才看得见,已经咬过一次(C-15)。\n\n现改为 `name: ${COMPOSE_PROJECT_NAME:-juhai-after-sales-service-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-after-sales-service-system_*`。\n\n数据风险已先核过再改:本机 260 个卷里**没有任何 `api-nestjs_*`**,\n`docker ps -a --filter label=com.docker.compose.project=api-nestjs` 零命中——\n这份 compose 在本机从未以默认推导名起过,没有旧卷需要迁移。(只证明本机;\n别的机器若直接 up 过,改名后首次 up 会建新空卷,旧卷需自行迁移。)\n\n工作区门禁 `平台治理/基础/scripts/check-workspace-consistency.mjs` 的\nL9 COMPOSE_PROJECT_COLLISION 在 7 个仓全部补齐后由 ISSUES 转 CLEAN(exit 0,0 issues)。\n处置依据:裁决 N-11 选项 ①。\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/1cebe527600912193f7e672fb478ae39a84db7ae","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-18T19:13:31-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","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-23T06:19:55-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/.env.example","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"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":3377,"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-09-19T07:07: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
|
1790170637
|
1790170645
|
0
|
1790170042
|
1790170647
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24655
|
Merge remote-tracking branch 'origin/main' Merge remote-tracking branch 'origin/main' into codex/task-core-context...
|
121
|
5
|
kernel-ci.yml
|
10
|
5
|
0
|
refs/heads/main
|
bc4d59f2822b56e8b97570d25cfd4d8b61cdde12
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3ba1a77bc465975ce829de1a44fb90623e01f069","after":"bc4d59f2822b56e8b97570d25cfd4d8b61cdde12","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/3ba1a77bc465975ce829de1a44fb90623e01f069...bc4d59f2822b56e8b97570d25cfd4d8b61cdde12","commits":[{"id":"bc4d59f2822b56e8b97570d25cfd4d8b61cdde12","message":"Merge remote-tracking branch 'origin/main' into codex/task-core-context\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/bc4d59f2822b56e8b97570d25cfd4d8b61cdde12","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-29T10:10:37-07:00","added":["ops/deployments/2026-09-29-v1-plan-ledger-gitea-ci-01061-candidate.md"],"removed":[],"modified":[]},{"id":"9d177c2bf08479c05a1e3c42c97aa7ddd4dc7c5c","message":"Extract Task core context\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/9d177c2bf08479c05a1e3c42c97aa7ddd4dc7c5c","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-29T10:10:37-07:00","added":["src/contexts/task-core.js","src/kernel/task-core-utils.js"],"removed":[],"modified":["README.md","docs/all-local-event-payload-contracts.md","docs/architecture.md","docs/roadmap.md","model/catalog.json","model/module-ratchet.json","ops/runbook.md","package.json","src/kernel.js","test/entity-ref-remaining.integration.test.js","test/entity-ref-work-human.integration.test.js"]}],"total_commits":0,"head_commit":{"id":"bc4d59f2822b56e8b97570d25cfd4d8b61cdde12","message":"Merge remote-tracking branch 'origin/main' into codex/task-core-context\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/bc4d59f2822b56e8b97570d25cfd4d8b61cdde12","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-29T10:10:37-07:00","added":["ops/deployments/2026-09-29-v1-plan-ledger-gitea-ci-01061-candidate.md"],"removed":[],"modified":[]},"repository":{"id":121,"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":"seven-domain-five-dimension-unified-model","full_name":"luoanwu/seven-domain-five-dimension-unified-model","description":"七域五维统一领域模型独立仓:领域内核、31章规范与运行记录","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":32296,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model/languages","html_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/seven-domain-five-dimension-unified-model.git","clone_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-29T05:06:56+08:00","updated_at":"2026-09-30T01:09:15+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
|
1790701881
|
1790701895
|
0
|
1790701880
|
1790701895
|
|
|
0
|
Edit
Delete
|
|
25671
|
Update package version
|
137
|
5
|
workflow.yml
|
10
|
5
|
0
|
refs/tags/v1.0.2
|
ea546c14bf2618d82e09407b899bcb32ed9ab992
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.2","bef {"ref":"refs/tags/v1.0.2","before":"0000000000000000000000000000000000000000","after":"ea546c14bf2618d82e09407b899bcb32ed9ab992","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...ea546c14bf2618d82e09407b899bcb32ed9ab992","commits":[],"total_commits":0,"head_commit":{"id":"ea546c14bf2618d82e09407b899bcb32ed9ab992","message":"Update package version\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/ea546c14bf2618d82e09407b899bcb32ed9ab992","author":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"committer":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"verification":null,"timestamp":"2019-08-05T15:42:48-04:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"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":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.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-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38: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
|
3
|
5
|
1791847085
|
1791950481
|
0
|
1791844722
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25688
|
Adding example of retention-days option. (#131)
|
138
|
5
|
codeql-analysis.yml
|
10
|
5
|
0
|
refs/tags/v2.2.1
|
726a6dcd0199f578459862705eed35cda05af50b
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.2.1","bef {"ref":"refs/tags/v2.2.1","before":"0000000000000000000000000000000000000000","after":"726a6dcd0199f578459862705eed35cda05af50b","compare_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/compare/0000000000000000000000000000000000000000...726a6dcd0199f578459862705eed35cda05af50b","commits":[],"total_commits":0,"head_commit":{"id":"726a6dcd0199f578459862705eed35cda05af50b","message":"Adding example of retention-days option. (#131)\n\n","url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/commit/726a6dcd0199f578459862705eed35cda05af50b","author":{"name":"Brian Westphal","email":"64272026+brian-keebo@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-11-13T12:25:13-05:00","added":[],"removed":[],"modified":["README.md"]},"repository":{"id":138,"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":"actions-upload-artifact","full_name":"luoanwu/actions-upload-artifact","description":"Mirror of github.com/actions/upload-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-upload-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact.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-10-13T06:37:06+08:00","updated_at":"2026-10-13T06:38: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
|
4
|
1791852633
|
1791852665
|
0
|
1791844729
|
1791852665
|
|
|
0
|
Edit
Delete
|
|
25700
|
Add support for tilde expansion (#50)
|
139
|
5
|
test.yml
|
10
|
5
|
0
|
refs/tags/v2.0.2
|
381af06b4268a1e0ad7b7c7e5a09f1894977120f
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.0.2","bef {"ref":"refs/tags/v2.0.2","before":"0000000000000000000000000000000000000000","after":"381af06b4268a1e0ad7b7c7e5a09f1894977120f","compare_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/compare/0000000000000000000000000000000000000000...381af06b4268a1e0ad7b7c7e5a09f1894977120f","commits":[],"total_commits":0,"head_commit":{"id":"381af06b4268a1e0ad7b7c7e5a09f1894977120f","message":"Add support for tilde expansion (#50)\n\n* Add support for tilde expansion\r\n\r\n* Print resolved path with debug\r\n\r\n* Update README\r\n\r\n* README\r\n\r\n* Only replace tilde in certain scenarios\r\n\r\n* Fix","url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/commit/381af06b4268a1e0ad7b7c7e5a09f1894977120f","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-30T12:01:38+02:00","added":[],"removed":[],"modified":[".github/workflows/test.yml","README.md","dist/index.js","src/download-artifact.ts"]},"repository":{"id":139,"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":"actions-download-artifact","full_name":"luoanwu/actions-download-artifact","description":"Mirror of github.com/actions/download-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-download-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact.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-10-13T06:37:23+08:00","updated_at":"2026-10-13T06:38:59+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
|
6
|
1791854352
|
1791950481
|
0
|
1791844740
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25821
|
feat(console): 重排工作台与平台、企业、应用三个概览页
|
125
|
16
|
verify.yml
|
10
|
16
|
0
|
refs/heads/feat/console-layout
|
695ea4d16f5066a81e3808b0ba4432b2a69cbd87
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/feat/console-layout {"ref":"refs/heads/feat/console-layout","before":"ff5ee33515b0a21b6ba738d00c52373fabfaa50d","after":"695ea4d16f5066a81e3808b0ba4432b2a69cbd87","compare_url":"https://gitea.g-hi.com/pengzhiyu/IAM/compare/ff5ee33515b0a21b6ba738d00c52373fabfaa50d...695ea4d16f5066a81e3808b0ba4432b2a69cbd87","commits":[{"id":"695ea4d16f5066a81e3808b0ba4432b2a69cbd87","message":"feat(console): 重排工作台与平台、企业、应用三个概览页\n\n四个概览页此前沿用早期布局:工作台只有两个入口,待办和应用用零散小卡片展示,功能入口不分组,与已改造的列表页风格不一致。本次按「上方状态卡片、下方两栏分组入口」统一四页布局。\n\n实现内容:\n- 工作台:三个并列入口「平台管理 / 应用 / 企业管理」,新增应用配色 entry--apps;应用管理员入口写明负责的应用,无身份的入口锁定并说明原因\n- 工作台新增「我的企业」可点表格(企业、你的身份,每次读取 10 条,满页时可加载更多),账号摘要放侧栏并链接个人中心,基本概念改为四格横排\n- 平台概览:「需要你关注」改为卡片,三类事项固定列出,没有内容时显示对勾与「目前没有。」,有内容时显示数量、最多 3 个名称与处理入口,读取失败只在该行重试\n- 企业概览:本企业的应用改为卡片内表格,停用的应用不可进入并注明原因;空状态改用公共 EmptyList\n- 应用概览:三步引导放进卡片,步骤之间用分隔线,右上角显示完成进度;任一步读取中或失败时不显示进度\n- 三个概览的功能入口统一用 overview-groups 两栏分组,窄屏改为上下排列;删除不再使用的待办卡片、应用卡片与一切正常提示条样式\n\n验证:\n- npm run typecheck、npm run lint、npm run format:check:通过\n- npm run test:27 个测试文件、234 项通过(同步修改平台、企业、应用概览单测,新增 home.test.tsx 4 项)\n- 浏览器检查 1280 宽、375 窄屏与暗色:四页无页面级横向溢出;待办与停用应用状态用页面内临时拦截 fetch 验证\n- 验收脚本未运行(脚本只依赖「工作台」标题与 .entry--locked,均已保留)\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/695ea4d16f5066a81e3808b0ba4432b2a69cbd87","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T06:50:19-07:00","added":["iam-admin-web/src/test/home.test.tsx"],"removed":[],"modified":["iam-admin-web/src/pages/AppOverview.tsx","iam-admin-web/src/pages/HomePage.tsx","iam-admin-web/src/pages/PlatformOverview.tsx","iam-admin-web/src/pages/TenantOverview.tsx","iam-admin-web/src/styles/pages.css","iam-admin-web/src/test/app-overview.test.tsx","iam-admin-web/src/test/platform-overview.test.tsx","iam-admin-web/src/test/tenant-overview.test.tsx"]},{"id":"ceb5884bba8e1274c550348e99226f46614e6511","message":"feat(console): 把应用定义独立成「应用」分组并统一权限相关命名\n\nIAM 面向多租户,一个应用登记后可由多家企业开通。原导航把应用的全局定义(登录客户端、受保护的服务、权限与资源规则)放在「平台管理」下,企业内的应用授权又叫「应用管理」,使用者难以分清权限为何不在应用层维护、改了会影响谁。\n\n实现内容:\n- 侧边栏改为「平台管理 / 应用 / 企业管理 / 应用授权」四组:平台管理只对平台管理员展示链接;新增「应用」分组(应用列表),平台管理员与应用管理员可见;原「应用管理」改名「应用授权」;网址保持不变\n- 应用详情网址仍在 /platform/applications 下,导航高亮、顶部上下文标识(「应用定义」)与面包屑(应用 › 应用列表)归入「应用」\n- 平台侧「应用接入」改为「应用列表」、「权限清单与资源规则」改为「权限定义与资源规则」,徽标改为「所有企业共用」,权限定义卡片与修改弹窗写明对所有开通企业生效\n- 企业侧「权限清单」改为「可用权限」,入口改为「修改权限定义」;工作台、平台概览、切换对话框、无权限说明、操作记录操作名称及相关提示同步新命名\n- 侧边栏测试改为可切换平台角色,新增平台管理员与应用管理员分组可见性用例;弹出面板测试先等待焦点进入面板再按 Esc,消除原有时序抖动\n- acceptance-t03、acceptance-p10-t02、acceptance-p10-t03 同步新的标签名称\n\n验证:\n- npm run format:check、npm run lint、npm run typecheck:通过\n- npm test:26 个测试文件、230 项通过;侧边栏测试单独连续运行 5 次均通过\n- 浏览器经 5173 连接演示后端,在 1280 宽、375 窄屏及亮/暗色下检查四个分组、应用详情、企业可用权限与跳转、修改弹窗影响说明:正常\n- 应用管理员视角仅有单元测试覆盖(演示环境无应用管理员账号);验收脚本未运行\n- 「已在 N 个企业开通」需后端提供按应用统计的接口,本次未实现\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/ceb5884bba8e1274c550348e99226f46614e6511","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T06:36:58-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p10-t02.mjs","iam-admin-web/scripts/acceptance-p10-t03.mjs","iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/src/data/pages.ts","iam-admin-web/src/lib/audit-actions.ts","iam-admin-web/src/pages/AppOverview.tsx","iam-admin-web/src/pages/HomePage.tsx","iam-admin-web/src/pages/PlatformOverview.tsx","iam-admin-web/src/pages/ScopePages.tsx","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/ApplicationsPage.tsx","iam-admin-web/src/pages/management/BindingScopes.tsx","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/pages/management/DecisionCallersPage.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/shell/ContextSwitcher.tsx","iam-admin-web/src/shell/ContextTrail.tsx","iam-admin-web/src/shell/NavRail.tsx","iam-admin-web/src/shell/scope.tsx","iam-admin-web/src/styles/layout.css","iam-admin-web/src/test/app-overview.test.tsx","iam-admin-web/src/test/sidebar.test.tsx"]},{"id":"7a1bd50d627fb56ebd548956a8a05c61fd306f64","message":"fix(console): 转义代码输入框 pattern 中的连字符\n\n浏览器按 v 模式编译 input 的 pattern,字符类末尾未转义的「-」会被判为非法正则,浏览器报错并直接跳过该格式校验。其余页面已使用转义写法,本次统一。\n\n实现内容:\n- 权限代码(新增权限、资源类型代码)、角色代码、程序身份代码、应用代码共 5 处 pattern 改为 \\- 转义,匹配规则不变\n\n验证:\n- 两种写法用 new RegExp(..., 'v') 编译通过\n- 浏览器中新增权限弹窗输入 Bad-Code 时 validity.patternMismatch 为 true\n- npm run format:check、npm run lint、npm run typecheck:通过;npm test:26 个测试文件、228 项通过\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/7a1bd50d627fb56ebd548956a8a05c61fd306f64","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T06:11:02-07:00","added":[],"removed":[],"modified":["iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/ApplicationsPage.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx"]},{"id":"54b1e1ee340da10ec01235cc9d1cf8d6ca22ca5c","message":"feat(console): 把权限清单的新增与修改拆开并支持按行修改\n\n平台权限清单原先只有一个「新增或修改权限」入口,要修改已有权限必须手输准确的代码,输错会误建一项不能删除的权限;企业侧只读权限清单也看不出该去哪里修改。\n\n实现内容:\n- 平台权限清单每行增加「修改」:代码只读展示,名称和说明预填,内容未变不能保存,修改不再要求勾选确认\n- 未设置名称的权限名称框留空且可留空,只改说明时名称保持原样;已停用的权限也可修改名称和说明\n- 顶部按钮改为「新增权限」:代码与已有权限重复时拦下并引导到列表「修改」,新增仍需勾选确认\n- 企业侧应用权限清单在平台管理员或该应用的应用管理员登录时,页头显示「去平台修改权限」入口\n- 操作记录中 authorization.group_changed 改称「创建用户组」(后端只在新建用户组时写入)\n- 表格行末操作按钮新增 management-actions--end 靠右排列\n- acceptance-t03 改用「新增权限」按钮,并把提交按钮限定在弹窗内\n\n验证:\n- npm run format:check、npm run lint、npm run typecheck:通过\n- npm test:26 个测试文件、228 项通过(新增修改模式与新增重复代码拦截用例)\n- 浏览器经 5173 连接演示后端实际保存:只填说明保存成功且名称保持原样、其余权限说明保留、清单版本逐次加 1;重复代码被拦下;企业侧入口跳转与说明显示正常\n- acceptance-t03 未运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/54b1e1ee340da10ec01235cc9d1cf8d6ca22ca5c","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T06:10:34-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/src/lib/audit-actions.ts","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/application-management.test.tsx"]}],"total_commits":0,"head_commit":{"id":"695ea4d16f5066a81e3808b0ba4432b2a69cbd87","message":"feat(console): 重排工作台与平台、企业、应用三个概览页\n\n四个概览页此前沿用早期布局:工作台只有两个入口,待办和应用用零散小卡片展示,功能入口不分组,与已改造的列表页风格不一致。本次按「上方状态卡片、下方两栏分组入口」统一四页布局。\n\n实现内容:\n- 工作台:三个并列入口「平台管理 / 应用 / 企业管理」,新增应用配色 entry--apps;应用管理员入口写明负责的应用,无身份的入口锁定并说明原因\n- 工作台新增「我的企业」可点表格(企业、你的身份,每次读取 10 条,满页时可加载更多),账号摘要放侧栏并链接个人中心,基本概念改为四格横排\n- 平台概览:「需要你关注」改为卡片,三类事项固定列出,没有内容时显示对勾与「目前没有。」,有内容时显示数量、最多 3 个名称与处理入口,读取失败只在该行重试\n- 企业概览:本企业的应用改为卡片内表格,停用的应用不可进入并注明原因;空状态改用公共 EmptyList\n- 应用概览:三步引导放进卡片,步骤之间用分隔线,右上角显示完成进度;任一步读取中或失败时不显示进度\n- 三个概览的功能入口统一用 overview-groups 两栏分组,窄屏改为上下排列;删除不再使用的待办卡片、应用卡片与一切正常提示条样式\n\n验证:\n- npm run typecheck、npm run lint、npm run format:check:通过\n- npm run test:27 个测试文件、234 项通过(同步修改平台、企业、应用概览单测,新增 home.test.tsx 4 项)\n- 浏览器检查 1280 宽、375 窄屏与暗色:四页无页面级横向溢出;待办与停用应用状态用页面内临时拦截 fetch 验证\n- 验收脚本未运行(脚本只依赖「工作台」标题与 .entry--locked,均已保留)\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/695ea4d16f5066a81e3808b0ba4432b2a69cbd87","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T06:50:19-07:00","added":["iam-admin-web/src/test/home.test.tsx"],"removed":[],"modified":["iam-admin-web/src/pages/AppOverview.tsx","iam-admin-web/src/pages/HomePage.tsx","iam-admin-web/src/pages/PlatformOverview.tsx","iam-admin-web/src/pages/TenantOverview.tsx","iam-admin-web/src/styles/pages.css","iam-admin-web/src/test/app-overview.test.tsx","iam-admin-web/src/test/platform-overview.test.tsx","iam-admin-web/src/test/tenant-overview.test.tsx"]},"repository":{"id":125,"owner":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"228834386@qq.com","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"name":"IAM","full_name":"pengzhiyu/IAM","description":"Identity and Access Management(身份识别与访问管理)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":102367,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM/languages","html_url":"https://gitea.g-hi.com/pengzhiyu/IAM","url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM","link":"","ssh_url":"git@gitea.g-hi.com:pengzhiyu/IAM.git","clone_url":"https://gitea.g-hi.com/pengzhiyu/IAM.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-10-08T17:04:24+08:00","updated_at":"2026-10-13T22:23: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":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"sender":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"}}...
|
push
|
2
|
4
|
1791901620
|
1791901831
|
0
|
1791901432
|
1791901831
|
|
|
0
|
Edit
Delete
|
|
26105
|
docs(governance): 修复迁仓后的失效链接,DEC-038 已批准的措辞(治理一致性 docs(governance): 修复迁仓后的失效链接,DEC-038 已批准的措辞(治理一致性 L4 / L10)...
|
135
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"82bc1aa0e448d79bcc3dbc3f9e0ecf618f9c37d8","after":"7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/82bc1aa0e448d79bcc3dbc3f9e0ecf618f9c37d8...7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a","commits":[{"id":"7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a","message":"docs(governance): 修复迁仓后的失效链接,DEC-038 已批准的措辞(治理一致性 L4 / L10)\n\n治理层门禁 2026-10-18 读数本仓 L4 17 条、L10 7 处(DEC-038 已于 10-15 批准)。\n\n- CHANGELOG.md、docs/migration-playbook.md、docs/platform-integration.md 里\n 随框架同步带来的 `../框架变更请求-*.md`、`../../../平台治理/基础/…` 相对链接\n 只在基础框架原位置成立,改指 platform-governance 固定提交 cc09b9cc 的\n Gitea 页面(工程基础框架/、平台治理/基础/)\n- docs/governance-gate-fixes-2026-10-11.md 的机器摘要在基础框架仓,改指\n base-framework 固定提交 083b36e9;docs/s2-device-loop.md 多写一层 `../`,\n 改到本仓 reports/s2-adversarial.latest.json\n- README、CLAUDE.md(AGENTS.md 为其链接)、客户服务蓝图、Owner 矩阵、\n 迁移准入与迁移方案:SupportCase 去向由「待 DEC-038」改为 DEC-038 已于\n 2026-10-15 批准 A-i(产品包整体迁智服仓、并入 ServiceCase,走 CHG,\n 尚未执行);CLAUDE.md 10-12 历史段落注明「当时未定」\n\n只改链接目标与状态措辞;migration-playbook 是弱指纹(只核 pinnedCommit),\n迁移凭证不受影响。check:quick 11/14(kernel-api、contract-consumers、\nfork-readiness 三项为 worktree 未装 @juhai/kernel),check:docs-truth 通过。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T09:46:51-07:00","added":[],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","README.md","docs/domain/customer-service-product-blueprint.md","docs/domain/owner-matrix.md","docs/domain/thing-cloud-migration-admission.md","docs/domain/thing-cloud-migration-plan.md","docs/governance-gate-fixes-2026-10-11.md","docs/migration-playbook.md","docs/platform-integration.md","docs/s2-device-loop.md"]}],"total_commits":0,"head_commit":{"id":"7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a","message":"docs(governance): 修复迁仓后的失效链接,DEC-038 已批准的措辞(治理一致性 L4 / L10)\n\n治理层门禁 2026-10-18 读数本仓 L4 17 条、L10 7 处(DEC-038 已于 10-15 批准)。\n\n- CHANGELOG.md、docs/migration-playbook.md、docs/platform-integration.md 里\n 随框架同步带来的 `../框架变更请求-*.md`、`../../../平台治理/基础/…` 相对链接\n 只在基础框架原位置成立,改指 platform-governance 固定提交 cc09b9cc 的\n Gitea 页面(工程基础框架/、平台治理/基础/)\n- docs/governance-gate-fixes-2026-10-11.md 的机器摘要在基础框架仓,改指\n base-framework 固定提交 083b36e9;docs/s2-device-loop.md 多写一层 `../`,\n 改到本仓 reports/s2-adversarial.latest.json\n- README、CLAUDE.md(AGENTS.md 为其链接)、客户服务蓝图、Owner 矩阵、\n 迁移准入与迁移方案:SupportCase 去向由「待 DEC-038」改为 DEC-038 已于\n 2026-10-15 批准 A-i(产品包整体迁智服仓、并入 ServiceCase,走 CHG,\n 尚未执行);CLAUDE.md 10-12 历史段落注明「当时未定」\n\n只改链接目标与状态措辞;migration-playbook 是弱指纹(只核 pinnedCommit),\n迁移凭证不受影响。check:quick 11/14(kernel-api、contract-consumers、\nfork-readiness 三项为 worktree 未装 @juhai/kernel),check:docs-truth 通过。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T09:46:51-07:00","added":[],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","README.md","docs/domain/customer-service-product-blueprint.md","docs/domain/owner-matrix.md","docs/domain/thing-cloud-migration-admission.md","docs/domain/thing-cloud-migration-plan.md","docs/governance-gate-fixes-2026-10-11.md","docs/migration-playbook.md","docs/platform-integration.md","docs/s2-device-loop.md"]},"repository":{"id":135,"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-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2580,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-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-10-12T21:14:44+08:00","updated_at":"2026-10-18T20:47:15+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
|
1792343159
|
1792343459
|
0
|
1792343044
|
1792343471
|
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
|
|
26251
|
fix(infra): resolve canonical workspace source and fix(infra): resolve canonical workspace source and record runtime provenance...
|
133
|
5
|
infra.yml
|
10
|
5
|
0
|
refs/heads/main
|
b94c9047462e5f24307a5ca6ce505f70a752bdcc
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"35be065ab5a6e8d53a93ceb81aec3595e73d28e6","after":"b94c9047462e5f24307a5ca6ce505f70a752bdcc","compare_url":"https://gitea.g-hi.com/luoanwu/infra/compare/35be065ab5a6e8d53a93ceb81aec3595e73d28e6...b94c9047462e5f24307a5ca6ce505f70a752bdcc","commits":[{"id":"b94c9047462e5f24307a5ca6ce505f70a752bdcc","message":"fix(infra): resolve canonical workspace source and record runtime provenance\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/b94c9047462e5f24307a5ca6ce505f70a752bdcc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T19:34:07-07:00","added":["docs/本地目录与真源-2026-10-20.md","reports/source-layout-2026-10-20/check-before-merge.txt","reports/source-layout-2026-10-20/check-final.txt","reports/source-layout-2026-10-20/check.txt","reports/source-layout-2026-10-20/parity-after.txt","reports/source-layout-2026-10-20/parity-before.txt","reports/source-layout-2026-10-20/replay-before.txt","reports/source-layout-2026-10-20/runtime-inventory.json","scripts/control-plane-root.mjs","test/control-plane-root.test.mjs"],"removed":[],"modified":[".env.example","README.md","declarations/README.md","docs/迁出方案.md","scripts/check.mjs","scripts/sync-declarations.mjs","test/declarations.test.mjs"]},{"id":"92ab599a646f4e787d4d4f0448bf69524c9db2e1","message":"Merge commit 'cfff185caae496dc10f939c1eb65e937e8a6d6a8' of /private/tmp/infra-source-sync-20261020/cp into codex/infra-source-layout-20261020\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/92ab599a646f4e787d4d4f0448bf69524c9db2e1","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T19:32:46-07:00","added":[],"removed":[],"modified":["compose.yaml"]},{"id":"cfff185caae496dc10f939c1eb65e937e8a6d6a8","message":"feat(workbench): add bounded personnel delivery metadata reads\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/cfff185caae496dc10f939c1eb65e937e8a6d6a8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T08:26:42-07:00","added":[],"removed":[],"modified":["compose.yaml"]},{"id":"bbc0b3d0d5a07540cd145fc360c04e34e626be37","message":"feat(ai): separate public model access from application configuration\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/bbc0b3d0d5a07540cd145fc360c04e34e626be37","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T02:16:51-07:00","added":[],"removed":[],"modified":["compose.yaml"]}],"total_commits":0,"head_commit":{"id":"b94c9047462e5f24307a5ca6ce505f70a752bdcc","message":"fix(infra): resolve canonical workspace source and record runtime provenance\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/b94c9047462e5f24307a5ca6ce505f70a752bdcc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T19:34:07-07:00","added":["docs/本地目录与真源-2026-10-20.md","reports/source-layout-2026-10-20/check-before-merge.txt","reports/source-layout-2026-10-20/check-final.txt","reports/source-layout-2026-10-20/check.txt","reports/source-layout-2026-10-20/parity-after.txt","reports/source-layout-2026-10-20/parity-before.txt","reports/source-layout-2026-10-20/replay-before.txt","reports/source-layout-2026-10-20/runtime-inventory.json","scripts/control-plane-root.mjs","test/control-plane-root.test.mjs"],"removed":[],"modified":[".env.example","README.md","declarations/README.md","docs/迁出方案.md","scripts/check.mjs","scripts/sync-declarations.mjs","test/declarations.test.mjs"]},"repository":{"id":133,"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":"infra","full_name":"luoanwu/infra","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":801,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra/languages","html_url":"https://gitea.g-hi.com/luoanwu/infra","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/infra.git","clone_url":"https://gitea.g-hi.com/luoanwu/infra.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-10-11T21:11:15+08:00","updated_at":"2026-10-20T12:03:46+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
|
1
|
6
|
1792550063
|
1792550096
|
0
|
1792550062
|
1792550096
|
|
|
0
|
Edit
Delete
|
|
26411
|
docs(governance): record full C16 351-case and 28- docs(governance): record full C16 351-case and 28-browser kernel 0.27 acceptance...
|
82
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
f799945209d1c8eff92a1e7f3b14b252b445d4df
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f66d2385a43e94bf571c676398600da2b910199a","after":"f799945209d1c8eff92a1e7f3b14b252b445d4df","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/f66d2385a43e94bf571c676398600da2b910199a...f799945209d1c8eff92a1e7f3b14b252b445d4df","commits":[{"id":"f799945209d1c8eff92a1e7f3b14b252b445d4df","message":"docs(governance): record full C16 351-case and 28-browser kernel 0.27 acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/f799945209d1c8eff92a1e7f3b14b252b445d4df","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T20:40:49-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/configuration-consumer.latest.json","reports/consumer-profile027.latest.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-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/kernel-consumer-migration.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},{"id":"f771d5b6124938c77b7ab9164a86e1d2f30216fc","message":"fix(c16-tests): use full native action identities for real sender grants\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/f771d5b6124938c77b7ab9164a86e1d2f30216fc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T20:22:40-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/real-platform-fixture.ts","docs/governance-kit-027-migration.md"]},{"id":"c0930b7cb72c95424ae7ba5a861c0e64728ac9e6","message":"test(c16): provision explicit short-lived sender grants in real isolated fixtures\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/c0930b7cb72c95424ae7ba5a861c0e64728ac9e6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T19:54:33-07:00","added":["apps/api-nestjs/test/real-platform-fixture.ts"],"removed":[],"modified":["apps/api-nestjs/test/ticket-discussion.platform-real.test.ts","apps/web/e2e/acceptance.spec.ts","docs/governance-kit-027-migration.md","governance.env.json","governance/framework-consumer.json","turbo.json"]},{"id":"397f9a5172b56df9279791ed7c6cb65471257445","message":"test(governance): record native 0.27 tool adoption and five image builds\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/397f9a5172b56df9279791ed7c6cb65471257445","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T19:23:14-07:00","added":["reports/consumer-profile027.latest.json","reports/governance-kit.latest.json","reports/kernel-consumer-migration.latest.json"],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/configuration-consumer.latest.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"]},{"id":"9be4ba1ff868b0753708ab6ba12586e6ffa43291","message":"chore(governance): adopt exact tool-only kit 0.27 with private build support\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/9be4ba1ff868b0753708ab6ba12586e6ffa43291","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T18:50:52-07:00","added":[".npmrc","docs/governance-kit-027-migration.md","governance.env.json","governance/framework-consumer.json","scripts/check-governance-kit.mjs","scripts/lib/acceptance-source.test.mjs","scripts/lib/governance-kit.test.mjs","scripts/lib/prepare-ci-npmrc.test.mjs","scripts/prepare-ci-npmrc.mjs"],"removed":[],"modified":[".dockerignore",".github/workflows/governance.yml",".github/workflows/release-images.yml","CLAUDE.md","Dockerfile","package.json","pnpm-lock.yaml","reports/baseline.json","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"f799945209d1c8eff92a1e7f3b14b252b445d4df","message":"docs(governance): record full C16 351-case and 28-browser kernel 0.27 acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/f799945209d1c8eff92a1e7f3b14b252b445d4df","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-23T20:40:49-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/configuration-consumer.latest.json","reports/consumer-profile027.latest.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-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/kernel-consumer-migration.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3010,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-10-20T14:21: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
|
6
|
1792813919
|
1792813949
|
0
|
1792813299
|
1792813951
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26584
|
chore(evidence): record C50/C51 seven native level chore(evidence): record C50/C51 seven native levels on clean 0013cd2...
|
84
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
883a3e660c313ea02daba8067ed6bb9208d31a25
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"12e7bad5413b6ba9b725e4967914e357320ccc40","after":"883a3e660c313ea02daba8067ed6bb9208d31a25","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/12e7bad5413b6ba9b725e4967914e357320ccc40...883a3e660c313ea02daba8067ed6bb9208d31a25","commits":[{"id":"883a3e660c313ea02daba8067ed6bb9208d31a25","message":"chore(evidence): record C50/C51 seven native levels on clean 0013cd2\n\nRuntime, UI, backend parity, containers (3 targets non-root, read-only\nrootfs), DR (11 tables, restore DB dropped), deployment 13 steps with\nrollback, production 14 steps, static. Isolated PG/Redis torn down.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/883a3e660c313ea02daba8067ed6bb9208d31a25","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-27T18:15:26-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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-kit.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-acceptance.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"]},{"id":"0013cd2839658e98e710a0f6688535a2e7a7a009","message":"fix(security): adopt framework C50/C51 loopback defaults for listen host and dev data stores\n\nFrom base-framework main 4a50469 (2026-10-27):\n- API defaults to 127.0.0.1 when HOST is unset or empty (the Dockerfile\n api-nestjs target already sets ENV HOST=0.0.0.0; production compose\n already binds the API to 127.0.0.1 by default).\n- Dev base binds PostgreSQL/Redis to 127.0.0.1; Redis host port becomes\n overridable.\n- check:dual-backend gains the listen-default and data-store loopback\n checks (this repo has no F14; port parsing reuses the framework's\n compose-ports module byte-for-byte, its tests join test:governance-kit).\n\nNegative: entry back to `?? \"0.0.0.0\"`, entry using `??`, Dockerfile\nwithout ENV HOST, PG without loopback each exit 1; green after restore.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/0013cd2839658e98e710a0f6688535a2e7a7a009","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-27T17:56:38-07:00","added":["scripts/lib/compose-ports.mjs","scripts/lib/compose-ports.test.mjs"],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml","apps/api-nestjs/src/main.ts","docs/nestjs-convergence.md","docs/standards/backend-standard.md","package.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"883a3e660c313ea02daba8067ed6bb9208d31a25","message":"chore(evidence): record C50/C51 seven native levels on clean 0013cd2\n\nRuntime, UI, backend parity, containers (3 targets non-root, read-only\nrootfs), DR (11 tables, restore DB dropped), deployment 13 steps with\nrollback, production 14 steps, static. Isolated PG/Redis torn down.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/883a3e660c313ea02daba8067ed6bb9208d31a25","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-27T18:15:26-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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-kit.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-acceptance.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"]},"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":2736,"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-10-25T16:16: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
|
8
|
1793150175
|
1793150248
|
0
|
1793150174
|
1793150248
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26688
|
feat(eios): 入口读端口第三批,tob-toc-gateway 的 26 处跨组读改经端口
|
160
|
5
|
ci.yml
|
10
|
5
|
0
|
refs/heads/main
|
7f8bee552b064a0f56dc500f9fa3487f698a7c0a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"460bb565c89a5143746c757939c0d43fe15e999f","after":"7f8bee552b064a0f56dc500f9fa3487f698a7c0a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/460bb565c89a5143746c757939c0d43fe15e999f...7f8bee552b064a0f56dc500f9fa3487f698a7c0a","commits":[{"id":"7f8bee552b064a0f56dc500f9fa3487f698a7c0a","message":"feat(eios): 入口读端口第三批,tob-toc-gateway 的 26 处跨组读改经端口\n\n- 新增 A07(团购活动 / 核销)与 D-THG(门店)两组端口,A02 / D-CUS 补\n 客户合同、订单、合同金额、客户档案 / 名称 / 价值与最近更新时间等窄投影\n- getUnifiedCustomerView、getCustomerStoreMapping、getSyncStatus、\n getCrossBusinessInsights、getConversionFunnel 改调端口,模块内不再有 Prisma 调用\n- 客户视图的核销原取全租户再在内存按门店过滤,现按 redeem_store_id in (门店)\n 查询,结果集相同,无门店不查库;客户档案与洞察只取用到的列\n- 最近更新时间写成显式 client.\u003c表\u003e.findFirst,清单 §5 可见\n- 棘轮下调 119 → 93\n\n核对:新测试在改造前的服务上只有核销查询形状 2 项、客户查询列 1 项断言不同,\n去掉列断言后洞察输出一致;原有服务测试 5 项经真实本地端口仍通过。\n门禁:type-check 0 错误;lint 0 错误、3184 条警告;单测 9010/9026(17 项\n基线失败,新增 6 项全过);inventory all --check 一致(permissions 只刷新 04\nHEAD 读数,资源数仍 39)。\n文档:lanes/entry-read.md、README、改造计划 P5.2 入口 K 行与 P1 状态、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/7f8bee552b064a0f56dc500f9fa3487f698a7c0a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-30T21:06:32-07:00","added":["backend/src/modules/tob-toc-gateway/tob-toc-gateway.entry-read.test.ts"],"removed":[],"modified":[".env.eios.example","backend/src/config/eios/entry-read.test.ts","backend/src/config/eios/entry-read.ts","backend/src/modules/tob-toc-gateway/tob-toc-gateway.service.ts","backend/src/shared/entry-read/entry-read.local.ts","backend/src/shared/entry-read/entry-read.port.ts","backend/src/shared/entry-read/entry-read.test.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/cross-app-access.md","docs/eios-transformation/inventory/data/entry-read.json","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/entry-read.md","docs/eios-transformation/改造计划-2026-10-28.md"]}],"total_commits":0,"head_commit":{"id":"7f8bee552b064a0f56dc500f9fa3487f698a7c0a","message":"feat(eios): 入口读端口第三批,tob-toc-gateway 的 26 处跨组读改经端口\n\n- 新增 A07(团购活动 / 核销)与 D-THG(门店)两组端口,A02 / D-CUS 补\n 客户合同、订单、合同金额、客户档案 / 名称 / 价值与最近更新时间等窄投影\n- getUnifiedCustomerView、getCustomerStoreMapping、getSyncStatus、\n getCrossBusinessInsights、getConversionFunnel 改调端口,模块内不再有 Prisma 调用\n- 客户视图的核销原取全租户再在内存按门店过滤,现按 redeem_store_id in (门店)\n 查询,结果集相同,无门店不查库;客户档案与洞察只取用到的列\n- 最近更新时间写成显式 client.\u003c表\u003e.findFirst,清单 §5 可见\n- 棘轮下调 119 → 93\n\n核对:新测试在改造前的服务上只有核销查询形状 2 项、客户查询列 1 项断言不同,\n去掉列断言后洞察输出一致;原有服务测试 5 项经真实本地端口仍通过。\n门禁:type-check 0 错误;lint 0 错误、3184 条警告;单测 9010/9026(17 项\n基线失败,新增 6 项全过);inventory all --check 一致(permissions 只刷新 04\nHEAD 读数,资源数仍 39)。\n文档:lanes/entry-read.md、README、改造计划 P5.2 入口 K 行与 P1 状态、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/7f8bee552b064a0f56dc500f9fa3487f698a7c0a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-30T21:06:32-07:00","added":["backend/src/modules/tob-toc-gateway/tob-toc-gateway.entry-read.test.ts"],"removed":[],"modified":[".env.eios.example","backend/src/config/eios/entry-read.test.ts","backend/src/config/eios/entry-read.ts","backend/src/modules/tob-toc-gateway/tob-toc-gateway.service.ts","backend/src/shared/entry-read/entry-read.local.ts","backend/src/shared/entry-read/entry-read.port.ts","backend/src/shared/entry-read/entry-read.test.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/cross-app-access.md","docs/eios-transformation/inventory/data/entry-read.json","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/entry-read.md","docs/eios-transformation/改造计划-2026-10-28.md"]},"repository":{"id":160,"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":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102757,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.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":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-31T10:40: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
|
2
|
20
|
1793419596
|
1793423933
|
0
|
1793419596
|
1793423933
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
15838
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
11
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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"}}...
|
schedule
|
2
|
4
|
1776654052
|
1776655070
|
0
|
1776654050
|
1776655070
|
|
|
0
|
Edit
Delete
|
|
23422
|
真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)
|
60
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
226033fd7f9e6266a679a585a26dfb935d56b1e2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"05d910e9c48177e24723827b424c2f8919bde17d","after":"226033fd7f9e6266a679a585a26dfb935d56b1e2","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/05d910e9c48177e24723827b424c2f8919bde17d...226033fd7f9e6266a679a585a26dfb935d56b1e2","commits":[{"id":"226033fd7f9e6266a679a585a26dfb935d56b1e2","message":"真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)\n\n- 用户提供的人工听感纠正 v2 登记进曲库 assets(check:library 绿);\n 补齐 v1 缺失的 4 行真值 + 12 行几十毫秒级精修\n- 全链复评(73/73 覆盖):拼接链行级 median 181/p90 531/≤500ms 89.0%,\n 切片基线 189/750/74.0%——C61 优势保持;SOFA 推算 median 64ms、\n 逐行判胜 41:21——根因分析结论(HubertFA 歌唱边界质量为主因)在\n 精修真值下全部稳定,排除真值口径伪影\n- 证据 reports/model-evidence/qingtian-precision-truth-v2.latest.json\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/226033fd7f9e6266a679a585a26dfb935d56b1e2","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T03:48:35-07:00","added":["reports/model-evidence/qingtian-precision-truth-v2.latest.json"],"removed":[],"modified":["曲库/library.latest.json"]}],"total_commits":0,"head_commit":{"id":"226033fd7f9e6266a679a585a26dfb935d56b1e2","message":"真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)\n\n- 用户提供的人工听感纠正 v2 登记进曲库 assets(check:library 绿);\n 补齐 v1 缺失的 4 行真值 + 12 行几十毫秒级精修\n- 全链复评(73/73 覆盖):拼接链行级 median 181/p90 531/≤500ms 89.0%,\n 切片基线 189/750/74.0%——C61 优势保持;SOFA 推算 median 64ms、\n 逐行判胜 41:21——根因分析结论(HubertFA 歌唱边界质量为主因)在\n 精修真值下全部稳定,排除真值口径伪影\n- 证据 reports/model-evidence/qingtian-precision-truth-v2.latest.json\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/226033fd7f9e6266a679a585a26dfb935d56b1e2","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T03:48:35-07:00","added":["reports/model-evidence/qingtian-precision-truth-v2.latest.json"],"removed":[],"modified":["曲库/library.latest.json"]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":4057,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T15:16: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
|
1784026122
|
1784026213
|
0
|
1784026121
|
1784026213
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23473
|
接入阿里模型
|
51
|
5
|
ci.yml
|
11
|
8
|
0
|
refs/heads/main
|
d230fd6dfb8fdba731ca1356263d1ec584d734be
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","after":"d230fd6dfb8fdba731ca1356263d1ec584d734be","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ead57a81e98d7f55797e6963b61e4847d9d9a96d...d230fd6dfb8fdba731ca1356263d1ec584d734be","commits":[{"id":"d230fd6dfb8fdba731ca1356263d1ec584d734be","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d230fd6dfb8fdba731ca1356263d1ec584d734be","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T17:31:49+08:00","added":[],"removed":["团购本地生活AI运营App/nginx.conf"],"modified":["COLIMA.md","docker-compose.colima.yml","scripts/colima-start.sh","团购本地生活AI运营App/Dockerfile","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/docker-entrypoint.d/40-yggdrasil-runtime-config.sh"]}],"total_commits":0,"head_commit":{"id":"d230fd6dfb8fdba731ca1356263d1ec584d734be","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d230fd6dfb8fdba731ca1356263d1ec584d734be","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T17:31:49+08:00","added":[],"removed":["团购本地生活AI运营App/nginx.conf"],"modified":["COLIMA.md","docker-compose.colima.yml","scripts/colima-start.sh","团购本地生活AI运营App/Dockerfile","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/docker-entrypoint.d/40-yggdrasil-runtime-config.sh"]},"repository":{"id":51,"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":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87491,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.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-07-02T16:02:07+08:00","updated_at":"2026-07-31T16:21:46+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":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"},"sender":{"id":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"}}...
|
push
|
2
|
8
|
1785490315
|
1785490466
|
0
|
1785490315
|
1785490466
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23499
|
chore(reports): 刷新静态门禁证据至 e15fa81
|
54
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
9513a941af257b779d7d2c095dff71172edcefaf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ccbc413eaf556c59a5c14707ce87d264c050180f","after":"9513a941af257b779d7d2c095dff71172edcefaf","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/ccbc413eaf556c59a5c14707ce87d264c050180f...9513a941af257b779d7d2c095dff71172edcefaf","commits":[{"id":"9513a941af257b779d7d2c095dff71172edcefaf","message":"chore(reports): 刷新静态门禁证据至 e15fa81\n\nCLAUDE.md 改动后静态子报告的 provenance 仍指向 ccbc413,与当前 checkout\n不一致(report-provenance 门禁会红)。在 clean commit 上重跑 pnpm check,\n14 份静态报告统一记为 gitSha=e15fa81 / worktreeDirty=false。\n\nruntime/ui 报告未重跑:本轮为纯文档改动,未触碰任何被它们覆盖的代码,\n其证据仍诚实绑定 c223f35 的实跑,不做无意义刷新。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/9513a941af257b779d7d2c095dff71172edcefaf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:53:15-07:00","added":[],"removed":[],"modified":["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.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":"e15fa814108637f2484a5be50900fd35a0f05d9d","message":"docs(claude): 补齐常用命令与运行时拓扑,收敛验证命令双源\n\n对照 /init 的两条标准补齐本文件的实际缺口,治理正文一字未动(纯增量)。\n\n1) 新增「常用命令」小节\n原先只有文件最末尾一个块(install / generate / 三级门禁),缺三类信息:\n- 开发入口与端口(web:3000 / NestJS:3001 / Fastify:3002)\n- 单个测试怎么跑(单文件 / -t 按用例名 / watch)\n- 13 个 check:* 子门禁只写了聚合入口,未说明可单独执行\n同时记入两条本机实证的判责提示:\n- pnpm 锁定 9.15.9,被 pnpm 10 装过会写 store v11,须全量重装 + prisma:generate\n- G15 基座守卫只校验库名前缀、**不校验端口**,故「端口连得上」推不出\n 「基座正确」(2026-08-19 在下游 Digital Employee OS 实际踩到:误用上游\n 容器 PG:55432/Redis:6382 通过守卫,共用 Redis 导致两次时序偶发红)\n\n2) 新增「运行时拓扑」小节\n「真源地图」回答的是「哪份文件说了算」,不回答「请求怎么流」。补一条从\nHTTP 写请求到前端缓存失效的完整事件通路,以及两条读单个文件发现不了的约定:\nNestJS 全局前缀 /api 但 GET /sse/events 被 exclude;WS 用原生 ws 而非\nsocket.io,故协议与 Fastify 侧兼容。\n\n3) 收敛验证命令双源\n文末旧「验证命令」块与新章节重复——同一事实两处维护正是 P1 禁止的漂移温床。\n改为指回顶部,只保留各级门禁的覆盖范围差异(含 check:ui 不覆盖 Fastify\n链路这条 G17 事实)。\n\nAGENTS.md 符号链接完好,check:governance-docs / check:docs-truth 均绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/e15fa814108637f2484a5be50900fd35a0f05d9d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:52:41-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"9513a941af257b779d7d2c095dff71172edcefaf","message":"chore(reports): 刷新静态门禁证据至 e15fa81\n\nCLAUDE.md 改动后静态子报告的 provenance 仍指向 ccbc413,与当前 checkout\n不一致(report-provenance 门禁会红)。在 clean commit 上重跑 pnpm check,\n14 份静态报告统一记为 gitSha=e15fa81 / worktreeDirty=false。\n\nruntime/ui 报告未重跑:本轮为纯文档改动,未触碰任何被它们覆盖的代码,\n其证据仍诚实绑定 c223f35 的实跑,不做无意义刷新。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/9513a941af257b779d7d2c095dff71172edcefaf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:53:15-07:00","added":[],"removed":[],"modified":["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.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":1375,"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":1,"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-08-19T20:10:25+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
|
1787154808
|
1787154828
|
0
|
1787154807
|
1787154829
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23510
|
merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次...
|
76
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
55b9c2a0af78b6998bac3614dedc7187e37057ea
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c0ed7540c137f2a6828d24503a4c396156996f33","after":"55b9c2a0af78b6998bac3614dedc7187e37057ea","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/c0ed7540c137f2a6828d24503a4c396156996f33...55b9c2a0af78b6998bac3614dedc7187e37057ea","commits":[{"id":"55b9c2a0af78b6998bac3614dedc7187e37057ea","message":"merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次\n\n冲突决议(24 文件):\n- reports/baseline:取本地 08-22 棘轮(458 tests / 66 files / 456 cases / 19×2 UI,为远端严格超集)\n- jobs.processor / work.module / queue.ts(fastify):取本地 C26 JobIntent 同事务链(远端 commit 后 queue.add + defaultJobOptions 兜底已被结构性取代;嫁接远端 Redis db NaN 守卫到 Fastify 侧保持双后端对等)\n- roles.service ×2:取本地 C42 审计事务版 + 嫁接远端 RoleAssignmentDto 返回类型接线(PR #3 拍板资产)\n- page.tsx:取本地 C53 会话身份(auth-identity testid,Playwright 依赖)\n- check-ui-acceptance:本地 OIDC 编排 + 远端 F8 注释并集\n- CLAUDE.md:本地 C45–C68 动态区为基底,嫁接远端 F8 行、五层 CI 假红叙事、结果裁决角色闸(G8 ⑫)、own-tests git-tracked 口径注记,快照更新为两远端对齐 c0ed754(run 32380591807 绿)\n\n编号撞号收口:两条时间线独立分配了 C25/C26/C1——远端线三个战役重编号为 C69(runner 自含 contracts 构建 + F8)/ C70(地板采集只认 git 已跟踪)/ C71(队列双注册策略显式化),经验库标题、脚本注释、测试注释同步改引;本地 C25(迟到成功)/C26(JobIntent)/C1(check-naming)编号不变。\n\n合并树证据:静态 pnpm check 全绿(Node 22,本地 dirty 工作区 2026-08-22);双后端 UI 聚合 38/38 绿(伙伴会话实跑,指纹绑定本合并内容)。合并提交自身的远端 CI 以 headSha 定位的 run 为准。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/55b9c2a0af78b6998bac3614dedc7187e37057ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:10:56-07:00","added":[],"removed":["apps/api-fastify/pnpm-lock.yaml","apps/api-nestjs/pnpm-lock.yaml","apps/web/pnpm-lock.yaml"],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/web/src/app/layout.tsx","apps/web/src/store/useAppStore.ts","docs/README.md","docs/adr/README.md","docs/governance-experience.md","docs/migration-playbook.md","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/learning.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/tenant.ts","packages/contracts/tsconfig.json","scripts/check-contract-consumers.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"f79d0b0b172086ad5ae0954bd2f27a4e640398a1","message":"feat(security)+feat(ops)+feat(mobile): 生产安全与运维深水区大波次——权限/OIDC/RLS/凭据隔离/追踪/韧性/容量/移动端双平台\n\n- 权限与身份:C52 PermissionAssignment 细粒度权限(ALLOW/DENY 覆盖 + 迁移 CHECK)+ C53 Web OIDC PKCE 真实登录态(mock IdP + BFF code exchange + 会话复核)+ C51 生产启动 fail-closed(check:auth-startup)\n- 数据库纵深:C54 22 租户表 FORCE RLS 双策略与 ALS Prisma bridge + C55/C56 migration/API/dispatcher 三凭据分离、独立 dispatcher 入口(check:db-credentials / check:rls)\n- 可观测与韧性:C57 OTLP/W3C 四进程分布式追踪(packages/observability tracing + otel-collector/tempo 参考编排)+ C58/C63/C64/C65 依赖断链/半开黑洞/超时延迟/池饱和 14 fault 恢复(check:dependency-resilience)\n- 容量包络:C61 双 API 真实依赖探测 480 次(check:capacity)+ C66 双后端业务写链 40 主链持久积压无损排空(check:write-capacity)\n- 多实例与 Redis:C49 四 OS 进程真实竞争领取(check:multi-instance)+ C50 requirepass/非零 DB live 认证链(check:redis-auth)\n- 数字员工体验:C46 Actor 入职状态机与六步配置 + C45 health 单源 + C47 SSE 浏览器验收 + 工作台响应式设计收口(design-qa 验收记录 + PageMetricStrip + 头像资产)\n- 移动端:C59/C60 Capacitor 8 Android/iOS 双平台受版本控制工程 + 静态导出 runner(check:mobile)+ Android debug APK/emulator 验收 + 移动 runbook\n- 治理回灌:CLAUDE.md/AGENTS.md 动态区 C45–C67 战役索引、baseline 棘轮(458 tests / 127 行为对比点 / 19×2 UI 用例)、全量 reports 证据刷新\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f79d0b0b172086ad5ae0954bd2f27a4e640398a1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T07:42:56-07:00","added":["apps/api-fastify/prisma/migrations/20260826000000_actor_lifecycle/migration.sql","apps/api-fastify/prisma/migrations/20260827000000_permission_assignments/migration.sql","apps/api-fastify/prisma/migrations/20260828000000_tenant_rls/migration.sql","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/modules/permissions.service.ts","apps/api-fastify/src/plugins/rls-context.ts","apps/api-fastify/src/plugins/rls-prisma.ts","apps/api-fastify/src/routes/permissions.ts","apps/api-fastify/test/auth.permissions.acceptance.test.ts","apps/api-fastify/test/rls.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260826000000_actor_lifecycle/migration.sql","apps/api-nestjs/prisma/migrations/20260827000000_permission_assignments/migration.sql","apps/api-nestjs/prisma/migrations/20260828000000_tenant_rls/migration.sql","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/permissions/permissions.controller.ts","apps/api-nestjs/src/permissions/permissions.module.ts","apps/api-nestjs/src/permissions/permissions.service.ts","apps/api-nestjs/src/prisma/rls-context.ts","apps/api-nestjs/src/prisma/rls-prisma.ts","apps/api-nestjs/test/auth.permissions.acceptance.test.ts","apps/api-nestjs/test/rls.acceptance.test.ts","apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/debug/AndroidManifest.xml","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/highpraise/digitalemployeeos/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/ios/.gitignore","apps/web/ios/App/App.xcodeproj/project.pbxproj","apps/web/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","apps/web/ios/App/App/AppDelegate.swift","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","apps/web/ios/App/App/Base.lproj/LaunchScreen.storyboard","apps/web/ios/App/App/Base.lproj/Main.storyboard","apps/web/ios/App/App/Info.plist","apps/web/ios/App/CapApp-SPM/.gitignore","apps/web/ios/App/CapApp-SPM/Package.swift","apps/web/ios/App/CapApp-SPM/README.md","apps/web/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift","apps/web/ios/debug.xcconfig","apps/web/public/assets/digital-employees/operations-specialist.png","apps/web/src/app/api/auth/config/route.ts","apps/web/src/app/api/auth/exchange/route.ts","apps/web/src/components/workbench/PageMetricStrip.tsx","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actor-mutations.ts","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/auth/api/auth-api.ts","apps/web/src/features/auth/components/AuthGate.tsx","apps/web/src/features/auth/lib/oidc.ts","apps/web/src/features/permissions/api/permissions-api.ts","apps/web/src/features/permissions/components/PermissionAssignmentsPanel.tsx","apps/web/src/features/permissions/hooks/use-permissions.ts","apps/web/src/store/useAuthStore.ts","deploy/production/otel-collector.yml","deploy/production/tempo.yml","design-qa.md","docs/operations/mobile-android-runbook.md","packages/contracts/src/actor.test.ts","packages/contracts/src/health.test.ts","packages/contracts/src/health.ts","packages/contracts/src/rls.test.ts","packages/contracts/src/rls.ts","packages/observability/src/http-route.ts","packages/observability/src/tracing.test.ts","packages/observability/src/tracing.ts","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/mobile-android.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/redis-auth-live.latest.json","reports/rls.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/write-capacity.latest.json","scripts/build-mobile-export.mjs","scripts/check-auth-startup.mjs","scripts/check-capacity-envelope.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dependency-resilience.mjs","scripts/check-mobile-export.mjs","scripts/check-multi-instance.mjs","scripts/check-redis-auth-live.mjs","scripts/check-rls.mjs","scripts/check-trace-backend.mjs","scripts/check-tracing.mjs","scripts/check-write-capacity.mjs","scripts/lib/db-runtime-role.mjs","scripts/mock-oidc-idp.mjs","scripts/provision-runtime-role.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/actors.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/src/plugins/operations.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/trigger-engine.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/roles.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/scripts/behavior-parity-snapshot.mjs","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.service.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/operations/operations.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/roles/roles.controller.ts","apps/api-nestjs/src/roles/roles.module.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/page.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","apps/web/src/store/realtime.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/prometheus.yml","docs/adr/0009-dual-backend-governance-parity.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","output/pdf/任务驱动的数字员工执行闭环.pdf","package.json","packages/contracts/src/actor.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/realtime.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","pnpm-lock.yaml","reports/agent-adapters.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/migrations.latest.json","reports/naming.latest.json","reports/operations.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/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-operations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/scan-ignore.mjs","tmp/pdfs/generate_task_loop_pdf.py"]},{"id":"4f2e17b9c3aa4745c5acebadabdd979e0a7ee7f4","message":"Harden governance runtime and acceptance coverage\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4f2e17b9c3aa4745c5acebadabdd979e0a7ee7f4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-21T08:36:22-07:00","added":[".dockerignore","apps/api-fastify/prisma/migrations/20260825030000_skill_activation/migration.sql","apps/api-fastify/src/plugins/operations.ts","apps/api-nestjs/prisma/migrations/20260825030000_skill_activation/migration.sql","apps/api-nestjs/scripts/behavior-parity-snapshot.mjs","apps/api-nestjs/src/common/api-http-exception.filter.ts","apps/api-nestjs/src/operations/operations.module.ts","apps/web/src/features/skills/api/skills-api.ts","apps/web/src/features/skills/components/SkillManagementPanel.tsx","apps/web/src/features/skills/hooks/use-skills.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alertmanager.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/nginx.conf.template","deploy/production/prometheus.yml","docs/operations/production-runbook.md","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","packages/observability/tsconfig.json","packages/skill-runtime/package.json","packages/skill-runtime/src/implementations/analysis-v1.ts","packages/skill-runtime/src/implementations/customer-research-v1.ts","packages/skill-runtime/src/implementations/knowledge-synthesis-v1-1.ts","packages/skill-runtime/src/implementations/knowledge-synthesis-v1-2.ts","packages/skill-runtime/src/implementations/reporting-v1.ts","packages/skill-runtime/src/implementations/reporting-v2.ts","packages/skill-runtime/src/index.test.ts","packages/skill-runtime/src/index.ts","packages/skill-runtime/src/prompt.ts","packages/skill-runtime/src/types.ts","packages/skill-runtime/tsconfig.json","reports/dual-backend-behavior.latest.json","reports/operations.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","scripts/check-dual-backend-behavior.mjs","scripts/check-operations.mjs","scripts/check-ui-all.mjs","scripts/ops/backup.sh","scripts/ops/paging-relay.mjs","scripts/ops/restore.sh","scripts/replay-dead-letter.mjs","tmp/deploy-probe-nestjs/.env.example","tmp/deploy-probe-nestjs/docker-compose.yml","tmp/deploy-probe-nestjs/nest-cli.json","tmp/deploy-probe-nestjs/package.json","tmp/deploy-probe-nestjs/prisma/migrations/20260818000000_init/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260819000000_outbox_replay_cursor/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260820000000_work_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260821000000_learning_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260822000000_trigger_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260823000000_outcome_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260824000000_attribution_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825000000_role_assignment/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825010000_workgraph_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825020000_job_intent/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825030000_skill_activation/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/migration_lock.toml","tmp/deploy-probe-nestjs/prisma/schema.prisma","tmp/deploy-probe-nestjs/prisma/seed.ts","tmp/deploy-probe-nestjs/scripts/behavior-parity-snapshot.mjs","tmp/deploy-probe-nestjs/src/actors/actor-events.service.ts","tmp/deploy-probe-nestjs/src/actors/actors.controller.ts","tmp/deploy-probe-nestjs/src/actors/actors.module.ts","tmp/deploy-probe-nestjs/src/actors/actors.service.ts","tmp/deploy-probe-nestjs/src/app.module.ts","tmp/deploy-probe-nestjs/src/common/api-http-exception.filter.ts","tmp/deploy-probe-nestjs/src/common/envelope.ts","tmp/deploy-probe-nestjs/src/common/tenant.decorator.ts","tmp/deploy-probe-nestjs/src/common/zod-validation.pipe.ts","tmp/deploy-probe-nestjs/src/create-app.ts","tmp/deploy-probe-nestjs/src/events/connection-registry.service.ts","tmp/deploy-probe-nestjs/src/events/event-bus.service.ts","tmp/deploy-probe-nestjs/src/events/events.gateway.ts","tmp/deploy-probe-nestjs/src/events/events.module.ts","tmp/deploy-probe-nestjs/src/events/fanout.service.ts","tmp/deploy-probe-nestjs/src/events/outbox-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/events/realtime-stats.controller.ts","tmp/deploy-probe-nestjs/src/events/replay.service.ts","tmp/deploy-probe-nestjs/src/health/health.controller.ts","tmp/deploy-probe-nestjs/src/health/health.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.service.ts","tmp/deploy-probe-nestjs/src/main.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.controller.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.module.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.service.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.module.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.service.ts","tmp/deploy-probe-nestjs/src/queue/job-intent-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/queue/jobs.controller.ts","tmp/deploy-probe-nestjs/src/queue/jobs.processor.ts","tmp/deploy-probe-nestjs/src/queue/queue.module.ts","tmp/deploy-probe-nestjs/src/queue/queue.types.ts","tmp/deploy-probe-nestjs/src/redis/redis.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.controller.ts","tmp/deploy-probe-nestjs/src/roles/roles.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.service.ts","tmp/deploy-probe-nestjs/src/sse/sse.controller.ts","tmp/deploy-probe-nestjs/src/sse/sse.module.ts","tmp/deploy-probe-nestjs/src/statemachine/index.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.engine.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.types.ts","tmp/deploy-probe-nestjs/src/triggers/trigger-engine.service.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.controller.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.module.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.service.ts","tmp/deploy-probe-nestjs/src/users/users.controller.ts","tmp/deploy-probe-nestjs/src/users/users.module.ts","tmp/deploy-probe-nestjs/src/users/users.service.ts","tmp/deploy-probe-nestjs/src/work/grants.service.ts","tmp/deploy-probe-nestjs/src/work/projects.controller.ts","tmp/deploy-probe-nestjs/src/work/projects.service.ts","tmp/deploy-probe-nestjs/src/work/runtimes.service.ts","tmp/deploy-probe-nestjs/src/work/skills.controller.ts","tmp/deploy-probe-nestjs/src/work/skills.service.ts","tmp/deploy-probe-nestjs/src/work/task-events.service.ts","tmp/deploy-probe-nestjs/src/work/tasks.controller.ts","tmp/deploy-probe-nestjs/src/work/tasks.service.ts","tmp/deploy-probe-nestjs/src/work/work.module.ts","tmp/deploy-probe-nestjs/test/actor-events.integration.test.ts","tmp/deploy-probe-nestjs/test/auth.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.jwks.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.roles.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.rs256.acceptance.test.ts","tmp/deploy-probe-nestjs/test/dead-letters.integration.test.ts","tmp/deploy-probe-nestjs/test/http.acceptance.test.ts","tmp/deploy-probe-nestjs/test/job-intent.dispatcher.test.ts","tmp/deploy-probe-nestjs/test/learning.concurrency.test.ts","tmp/deploy-probe-nestjs/test/llm.acceptance.test.ts","tmp/deploy-probe-nestjs/test/llm.anthropic.acceptance.test.ts","tmp/deploy-probe-nestjs/test/outbox.concurrency.test.ts","tmp/deploy-probe-nestjs/test/outbox.deadletter.test.ts","tmp/deploy-probe-nestjs/test/outcomes.integration.test.ts","tmp/deploy-probe-nestjs/test/realtime.command.test.ts","tmp/deploy-probe-nestjs/test/realtime.replay.test.ts","tmp/deploy-probe-nestjs/test/realtime.stats.test.ts","tmp/deploy-probe-nestjs/test/realtime.subscription.test.ts","tmp/deploy-probe-nestjs/test/realtime.tenant.test.ts","tmp/deploy-probe-nestjs/test/task-events.integration.test.ts","tmp/deploy-probe-nestjs/test/triggers.integration.test.ts","tmp/deploy-probe-nestjs/test/work.integration.test.ts","tmp/deploy-probe-nestjs/tsconfig.build.json","tmp/deploy-probe-nestjs/tsconfig.json","tmp/deploy-probe-nestjs/vitest.config.ts","tmp/ops-config/.env.production","tmp/ops-config/metrics-token.txt","tmp/pdfs/generate_task_loop_pdf.py","tmp/pdfs/task-loop-qa-v2/page-01.png","tmp/pdfs/task-loop-qa-v2/page-02.png","tmp/pdfs/task-loop-qa-v2/page-03.png","tmp/pdfs/task-loop-qa-v2/page-04.png","tmp/pdfs/task-loop-qa-v2/page-05.png","tmp/pdfs/task-loop-qa-v2/page-06.png","tmp/pdfs/task-loop-qa-v2/page-07.png","tmp/pdfs/task-loop-qa-v2/page-08.png","tmp/pdfs/task-loop-qa-v2/page-09.png","tmp/pdfs/task-loop-qa-v2/page-10.png","tmp/pdfs/task-loop-qa-v2/page-11.png","tmp/pdfs/task-loop-qa-v2/page-12.png","tmp/pdfs/task-loop-qa-v2/page-13.png","tmp/pdfs/task-loop-qa-v2/page-14.png","tmp/pdfs/task-loop-qa-v2/page-15.png","tmp/pdfs/task-loop-qa-v3/contact-sheet.png","tmp/pdfs/task-loop-qa-v3/delivery-01.png","tmp/pdfs/task-loop-qa-v3/delivery-02.png","tmp/pdfs/task-loop-qa-v3/delivery-03.png","tmp/pdfs/task-loop-qa-v3/delivery-04.png","tmp/pdfs/task-loop-qa-v3/delivery-05.png","tmp/pdfs/task-loop-qa-v3/delivery-06.png","tmp/pdfs/task-loop-qa-v3/delivery-07.png","tmp/pdfs/task-loop-qa-v3/delivery-08.png","tmp/pdfs/task-loop-qa-v3/delivery-09.png","tmp/pdfs/task-loop-qa-v3/delivery-10.png","tmp/pdfs/task-loop-qa-v3/delivery-11.png","tmp/pdfs/task-loop-qa-v3/delivery-12.png","tmp/pdfs/task-loop-qa-v3/delivery-13.png","tmp/pdfs/task-loop-qa-v3/delivery-14.png","tmp/pdfs/task-loop-qa-v3/delivery-15.png","tmp/pdfs/task-loop-qa-v3/delivery-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-01.png","tmp/pdfs/task-loop-qa-v3/final-02.png","tmp/pdfs/task-loop-qa-v3/final-03.png","tmp/pdfs/task-loop-qa-v3/final-04.png","tmp/pdfs/task-loop-qa-v3/final-05.png","tmp/pdfs/task-loop-qa-v3/final-06.png","tmp/pdfs/task-loop-qa-v3/final-07.png","tmp/pdfs/task-loop-qa-v3/final-08.png","tmp/pdfs/task-loop-qa-v3/final-09.png","tmp/pdfs/task-loop-qa-v3/final-10.png","tmp/pdfs/task-loop-qa-v3/final-11.png","tmp/pdfs/task-loop-qa-v3/final-12.png","tmp/pdfs/task-loop-qa-v3/final-13.png","tmp/pdfs/task-loop-qa-v3/final-14.png","tmp/pdfs/task-loop-qa-v3/final-15.png","tmp/pdfs/task-loop-qa-v3/final-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-page-13.png","tmp/pdfs/task-loop-qa-v3/page-01.png","tmp/pdfs/task-loop-qa-v3/page-02.png","tmp/pdfs/task-loop-qa-v3/page-03.png","tmp/pdfs/task-loop-qa-v3/page-04.png","tmp/pdfs/task-loop-qa-v3/page-05.png","tmp/pdfs/task-loop-qa-v3/page-06.png","tmp/pdfs/task-loop-qa-v3/page-07.png","tmp/pdfs/task-loop-qa-v3/page-08.png","tmp/pdfs/task-loop-qa-v3/page-09.png","tmp/pdfs/task-loop-qa-v3/page-10.png","tmp/pdfs/task-loop-qa-v3/page-11.png","tmp/pdfs/task-loop-qa-v3/page-12.png","tmp/pdfs/task-loop-qa-v3/page-13.png","tmp/pdfs/task-loop-qa-v3/page-14.png","tmp/pdfs/task-loop-qa-v3/page-15.png","tmp/pdfs/task-loop-qa/page-01.png","tmp/pdfs/task-loop-qa/page-02.png","tmp/pdfs/task-loop-qa/page-03.png","tmp/pdfs/task-loop-qa/page-04.png","tmp/pdfs/task-loop-qa/page-05.png","tmp/pdfs/task-loop-qa/page-06.png","tmp/pdfs/task-loop-qa/page-07.png","tmp/pdfs/task-loop-qa/page-08.png","tmp/pdfs/task-loop-qa/page-09.png","tmp/pdfs/task-loop-qa/page-10.png","tmp/pdfs/task-loop-qa/page-11.png","tmp/pdfs/task-loop-qa/page-12.png","tmp/pdfs/task-loop-qa/page-13.png"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/skills.service.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/trigger-engine.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/roles.ts","apps/api-fastify/src/routes/skills.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/dead-letters.integration.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/roles/roles.controller.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/skills.controller.ts","apps/api-nestjs/src/work/skills.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/dead-letters.integration.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","docs/adr/0009-dual-backend-governance-parity.md","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","governance.registry.schema.json","output/pdf/任务驱动的数字员工执行闭环.pdf","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/learning.test.ts","packages/contracts/src/learning.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/skill.test.ts","packages/contracts/src/skill.ts","packages/contracts/src/tenant.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/baseline.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.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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"f6ea2efbccafe9df16c29fd2f3ee80cedd159338","message":"feat: 完善可靠作业交接与产品手册\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f6ea2efbccafe9df16c29fd2f3ee80cedd159338","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T06:47:23-07:00","added":["apps/api-fastify/prisma/migrations/20260825020000_job_intent/migration.sql","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-nestjs/prisma/migrations/20260825020000_job_intent/migration.sql","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","output/pdf/任务驱动的数字员工执行闭环.pdf","outputs/Digital_Employee_OS_产品使用手册_V1.0.docx","outputs/Digital_Employee_OS_产品说明书_V1.0.docx","work/product-manual/build_user_manual.py","work/product-manual/render-final/page-1.png","work/product-manual/render-final/page-10.png","work/product-manual/render-final/page-11.png","work/product-manual/render-final/page-12.png","work/product-manual/render-final/page-13.png","work/product-manual/render-final/page-14.png","work/product-manual/render-final/page-15.png","work/product-manual/render-final/page-16.png","work/product-manual/render-final/page-17.png","work/product-manual/render-final/page-18.png","work/product-manual/render-final/page-19.png","work/product-manual/render-final/page-2.png","work/product-manual/render-final/page-20.png","work/product-manual/render-final/page-21.png","work/product-manual/render-final/page-22.png","work/product-manual/render-final/page-23.png","work/product-manual/render-final/page-24.png","work/product-manual/render-final/page-25.png","work/product-manual/render-final/page-26.png","work/product-manual/render-final/page-3.png","work/product-manual/render-final/page-4.png","work/product-manual/render-final/page-5.png","work/product-manual/render-final/page-6.png","work/product-manual/render-final/page-7.png","work/product-manual/render-final/page-8.png","work/product-manual/render-final/page-9.png","work/product-manual/render-v1/Digital_Employee_OS_产品使用手册_V1.0.pdf","work/product-manual/render-v1/page-1.png","work/product-manual/render-v1/page-10.png","work/product-manual/render-v1/page-11.png","work/product-manual/render-v1/page-12.png","work/product-manual/render-v1/page-13.png","work/product-manual/render-v1/page-14.png","work/product-manual/render-v1/page-15.png","work/product-manual/render-v1/page-16.png","work/product-manual/render-v1/page-17.png","work/product-manual/render-v1/page-18.png","work/product-manual/render-v1/page-19.png","work/product-manual/render-v1/page-2.png","work/product-manual/render-v1/page-20.png","work/product-manual/render-v1/page-21.png","work/product-manual/render-v1/page-22.png","work/product-manual/render-v1/page-23.png","work/product-manual/render-v1/page-24.png","work/product-manual/render-v1/page-25.png","work/product-manual/render-v1/page-26.png","work/product-manual/render-v1/page-27.png","work/product-manual/render-v1/page-28.png","work/product-manual/render-v1/page-29.png","work/product-manual/render-v1/page-3.png","work/product-manual/render-v1/page-30.png","work/product-manual/render-v1/page-31.png","work/product-manual/render-v1/page-4.png","work/product-manual/render-v1/page-5.png","work/product-manual/render-v1/page-6.png","work/product-manual/render-v1/page-7.png","work/product-manual/render-v1/page-8.png","work/product-manual/render-v1/page-9.png","work/product-manual/render-v2/Digital_Employee_OS_产品使用手册_V1.0.pdf","work/product-manual/render-v2/page-1.png","work/product-manual/render-v2/page-10.png","work/product-manual/render-v2/page-11.png","work/product-manual/render-v2/page-12.png","work/product-manual/render-v2/page-13.png","work/product-manual/render-v2/page-14.png","work/product-manual/render-v2/page-15.png","work/product-manual/render-v2/page-16.png","work/product-manual/render-v2/page-17.png","work/product-manual/render-v2/page-18.png","work/product-manual/render-v2/page-19.png","work/product-manual/render-v2/page-2.png","work/product-manual/render-v2/page-20.png","work/product-manual/render-v2/page-21.png","work/product-manual/render-v2/page-22.png","work/product-manual/render-v2/page-23.png","work/product-manual/render-v2/page-24.png","work/product-manual/render-v2/page-25.png","work/product-manual/render-v2/page-3.png","work/product-manual/render-v2/page-4.png","work/product-manual/render-v2/page-5.png","work/product-manual/render-v2/page-6.png","work/product-manual/render-v2/page-7.png","work/product-manual/render-v2/page-8.png","work/product-manual/render-v2/page-9.png","work/product-manual/render-v3/page-1.png","work/product-manual/render-v3/page-10.png","work/product-manual/render-v3/page-11.png","work/product-manual/render-v3/page-12.png","work/product-manual/render-v3/page-13.png","work/product-manual/render-v3/page-14.png","work/product-manual/render-v3/page-15.png","work/product-manual/render-v3/page-16.png","work/product-manual/render-v3/page-17.png","work/product-manual/render-v3/page-18.png","work/product-manual/render-v3/page-19.png","work/product-manual/render-v3/page-2.png","work/product-manual/render-v3/page-20.png","work/product-manual/render-v3/page-21.png","work/product-manual/render-v3/page-22.png","work/product-manual/render-v3/page-23.png","work/product-manual/render-v3/page-24.png","work/product-manual/render-v3/page-25.png","work/product-manual/render-v3/page-26.png","work/product-manual/render-v3/page-27.png","work/product-manual/render-v3/page-28.png","work/product-manual/render-v3/page-29.png","work/product-manual/render-v3/page-3.png","work/product-manual/render-v3/page-4.png","work/product-manual/render-v3/page-5.png","work/product-manual/render-v3/page-6.png","work/product-manual/render-v3/page-7.png","work/product-manual/render-v3/page-8.png","work/product-manual/render-v3/page-9.png","work/product-manual/render-v4/page-1.png","work/product-manual/render-v4/page-10.png","work/product-manual/render-v4/page-11.png","work/product-manual/render-v4/page-12.png","work/product-manual/render-v4/page-13.png","work/product-manual/render-v4/page-14.png","work/product-manual/render-v4/page-15.png","work/product-manual/render-v4/page-16.png","work/product-manual/render-v4/page-17.png","work/product-manual/render-v4/page-18.png","work/product-manual/render-v4/page-19.png","work/product-manual/render-v4/page-2.png","work/product-manual/render-v4/page-20.png","work/product-manual/render-v4/page-21.png","work/product-manual/render-v4/page-22.png","work/product-manual/render-v4/page-23.png","work/product-manual/render-v4/page-24.png","work/product-manual/render-v4/page-25.png","work/product-manual/render-v4/page-26.png","work/product-manual/render-v4/page-27.png","work/product-manual/render-v4/page-28.png","work/product-manual/render-v4/page-3.png","work/product-manual/render-v4/page-4.png","work/product-manual/render-v4/page-5.png","work/product-manual/render-v4/page-6.png","work/product-manual/render-v4/page-7.png","work/product-manual/render-v4/page-8.png","work/product-manual/render-v4/page-9.png","work/product-manual/render-v5/page-1.png","work/product-manual/render-v5/page-10.png","work/product-manual/render-v5/page-11.png","work/product-manual/render-v5/page-12.png","work/product-manual/render-v5/page-13.png","work/product-manual/render-v5/page-14.png","work/product-manual/render-v5/page-15.png","work/product-manual/render-v5/page-16.png","work/product-manual/render-v5/page-17.png","work/product-manual/render-v5/page-18.png","work/product-manual/render-v5/page-19.png","work/product-manual/render-v5/page-2.png","work/product-manual/render-v5/page-20.png","work/product-manual/render-v5/page-21.png","work/product-manual/render-v5/page-22.png","work/product-manual/render-v5/page-23.png","work/product-manual/render-v5/page-24.png","work/product-manual/render-v5/page-25.png","work/product-manual/render-v5/page-26.png","work/product-manual/render-v5/page-3.png","work/product-manual/render-v5/page-4.png","work/product-manual/render-v5/page-5.png","work/product-manual/render-v5/page-6.png","work/product-manual/render-v5/page-7.png","work/product-manual/render-v5/page-8.png","work/product-manual/render-v5/page-9.png","work/product-manual/screenshots/01-workbench.png","work/product-manual/screenshots/02-team.png","work/product-manual/screenshots/03-automation.png","work/product-manual/screenshots/04-system.png","work/product-manual/screenshots/05-task-detail-crop.png","work/product-manual/screenshots/05-task-detail.png","work/product-manual/screenshots/06-execution-records-crop.png","work/product-manual/screenshots/06-execution-records.png","work/product-manual/screenshots/07-task-create.png","work/product-manual/screenshots/08-task-more-options.png","work/product-manual/screenshots/09-mobile-workbench.png","work/product_manual/__pycache__/build_product_manual.cpython-312.pyc","work/product_manual/build_product_manual.py","work/product_manual/figure_closed_loop.png","work/product_manual/figure_product_ia.png","work/product_manual/figure_technical_layers.png","work/product_manual/qa_v1/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v1/page-1.png","work/product_manual/qa_v1/page-10.png","work/product_manual/qa_v1/page-11.png","work/product_manual/qa_v1/page-12.png","work/product_manual/qa_v1/page-13.png","work/product_manual/qa_v1/page-14.png","work/product_manual/qa_v1/page-15.png","work/product_manual/qa_v1/page-16.png","work/product_manual/qa_v1/page-17.png","work/product_manual/qa_v1/page-18.png","work/product_manual/qa_v1/page-19.png","work/product_manual/qa_v1/page-2.png","work/product_manual/qa_v1/page-3.png","work/product_manual/qa_v1/page-4.png","work/product_manual/qa_v1/page-5.png","work/product_manual/qa_v1/page-6.png","work/product_manual/qa_v1/page-7.png","work/product_manual/qa_v1/page-8.png","work/product_manual/qa_v1/page-9.png","work/product_manual/qa_v10/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v10/page-1.png","work/product_manual/qa_v10/page-10.png","work/product_manual/qa_v10/page-11.png","work/product_manual/qa_v10/page-12.png","work/product_manual/qa_v10/page-13.png","work/product_manual/qa_v10/page-14.png","work/product_manual/qa_v10/page-15.png","work/product_manual/qa_v10/page-16.png","work/product_manual/qa_v10/page-17.png","work/product_manual/qa_v10/page-18.png","work/product_manual/qa_v10/page-19.png","work/product_manual/qa_v10/page-2.png","work/product_manual/qa_v10/page-20.png","work/product_manual/qa_v10/page-21.png","work/product_manual/qa_v10/page-22.png","work/product_manual/qa_v10/page-23.png","work/product_manual/qa_v10/page-24.png","work/product_manual/qa_v10/page-25.png","work/product_manual/qa_v10/page-26.png","work/product_manual/qa_v10/page-27.png","work/product_manual/qa_v10/page-28.png","work/product_manual/qa_v10/page-3.png","work/product_manual/qa_v10/page-4.png","work/product_manual/qa_v10/page-5.png","work/product_manual/qa_v10/page-6.png","work/product_manual/qa_v10/page-7.png","work/product_manual/qa_v10/page-8.png","work/product_manual/qa_v10/page-9.png","work/product_manual/qa_v11/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v11/a11y.json","work/product_manual/qa_v11/page-1.png","work/product_manual/qa_v11/page-10.png","work/product_manual/qa_v11/page-11.png","work/product_manual/qa_v11/page-12.png","work/product_manual/qa_v11/page-13.png","work/product_manual/qa_v11/page-14.png","work/product_manual/qa_v11/page-15.png","work/product_manual/qa_v11/page-16.png","work/product_manual/qa_v11/page-17.png","work/product_manual/qa_v11/page-18.png","work/product_manual/qa_v11/page-19.png","work/product_manual/qa_v11/page-2.png","work/product_manual/qa_v11/page-20.png","work/product_manual/qa_v11/page-21.png","work/product_manual/qa_v11/page-22.png","work/product_manual/qa_v11/page-23.png","work/product_manual/qa_v11/page-24.png","work/product_manual/qa_v11/page-25.png","work/product_manual/qa_v11/page-26.png","work/product_manual/qa_v11/page-27.png","work/product_manual/qa_v11/page-28.png","work/product_manual/qa_v11/page-29.png","work/product_manual/qa_v11/page-3.png","work/product_manual/qa_v11/page-4.png","work/product_manual/qa_v11/page-5.png","work/product_manual/qa_v11/page-6.png","work/product_manual/qa_v11/page-7.png","work/product_manual/qa_v11/page-8.png","work/product_manual/qa_v11/page-9.png","work/product_manual/qa_v11/style-lint.json","work/product_manual/qa_v2/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v2/page-1.png","work/product_manual/qa_v2/page-10.png","work/product_manual/qa_v2/page-11.png","work/product_manual/qa_v2/page-12.png","work/product_manual/qa_v2/page-13.png","work/product_manual/qa_v2/page-14.png","work/product_manual/qa_v2/page-15.png","work/product_manual/qa_v2/page-16.png","work/product_manual/qa_v2/page-17.png","work/product_manual/qa_v2/page-18.png","work/product_manual/qa_v2/page-19.png","work/product_manual/qa_v2/page-2.png","work/product_manual/qa_v2/page-3.png","work/product_manual/qa_v2/page-4.png","work/product_manual/qa_v2/page-5.png","work/product_manual/qa_v2/page-6.png","work/product_manual/qa_v2/page-7.png","work/product_manual/qa_v2/page-8.png","work/product_manual/qa_v2/page-9.png","work/product_manual/qa_v3/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v3/page-1.png","work/product_manual/qa_v3/page-10.png","work/product_manual/qa_v3/page-11.png","work/product_manual/qa_v3/page-12.png","work/product_manual/qa_v3/page-13.png","work/product_manual/qa_v3/page-14.png","work/product_manual/qa_v3/page-15.png","work/product_manual/qa_v3/page-16.png","work/product_manual/qa_v3/page-17.png","work/product_manual/qa_v3/page-18.png","work/product_manual/qa_v3/page-19.png","work/product_manual/qa_v3/page-2.png","work/product_manual/qa_v3/page-3.png","work/product_manual/qa_v3/page-4.png","work/product_manual/qa_v3/page-5.png","work/product_manual/qa_v3/page-6.png","work/product_manual/qa_v3/page-7.png","work/product_manual/qa_v3/page-8.png","work/product_manual/qa_v3/page-9.png","work/product_manual/qa_v4/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v4/page-1.png","work/product_manual/qa_v4/page-10.png","work/product_manual/qa_v4/page-11.png","work/product_manual/qa_v4/page-12.png","work/product_manual/qa_v4/page-13.png","work/product_manual/qa_v4/page-14.png","work/product_manual/qa_v4/page-15.png","work/product_manual/qa_v4/page-16.png","work/product_manual/qa_v4/page-17.png","work/product_manual/qa_v4/page-18.png","work/product_manual/qa_v4/page-19.png","work/product_manual/qa_v4/page-2.png","work/product_manual/qa_v4/page-3.png","work/product_manual/qa_v4/page-4.png","work/product_manual/qa_v4/page-5.png","work/product_manual/qa_v4/page-6.png","work/product_manual/qa_v4/page-7.png","work/product_manual/qa_v4/page-8.png","work/product_manual/qa_v4/page-9.png","work/product_manual/qa_v5/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v5/page-1.png","work/product_manual/qa_v5/page-10.png","work/product_manual/qa_v5/page-11.png","work/product_manual/qa_v5/page-12.png","work/product_manual/qa_v5/page-13.png","work/product_manual/qa_v5/page-14.png","work/product_manual/qa_v5/page-15.png","work/product_manual/qa_v5/page-16.png","work/product_manual/qa_v5/page-17.png","work/product_manual/qa_v5/page-18.png","work/product_manual/qa_v5/page-19.png","work/product_manual/qa_v5/page-2.png","work/product_manual/qa_v5/page-20.png","work/product_manual/qa_v5/page-21.png","work/product_manual/qa_v5/page-22.png","work/product_manual/qa_v5/page-23.png","work/product_manual/qa_v5/page-24.png","work/product_manual/qa_v5/page-25.png","work/product_manual/qa_v5/page-26.png","work/product_manual/qa_v5/page-27.png","work/product_manual/qa_v5/page-28.png","work/product_manual/qa_v5/page-3.png","work/product_manual/qa_v5/page-4.png","work/product_manual/qa_v5/page-5.png","work/product_manual/qa_v5/page-6.png","work/product_manual/qa_v5/page-7.png","work/product_manual/qa_v5/page-8.png","work/product_manual/qa_v5/page-9.png","work/product_manual/qa_v6/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v6/page-1.png","work/product_manual/qa_v6/page-10.png","work/product_manual/qa_v6/page-11.png","work/product_manual/qa_v6/page-12.png","work/product_manual/qa_v6/page-13.png","work/product_manual/qa_v6/page-14.png","work/product_manual/qa_v6/page-15.png","work/product_manual/qa_v6/page-16.png","work/product_manual/qa_v6/page-17.png","work/product_manual/qa_v6/page-18.png","work/product_manual/qa_v6/page-19.png","work/product_manual/qa_v6/page-2.png","work/product_manual/qa_v6/page-20.png","work/product_manual/qa_v6/page-21.png","work/product_manual/qa_v6/page-22.png","work/product_manual/qa_v6/page-23.png","work/product_manual/qa_v6/page-24.png","work/product_manual/qa_v6/page-25.png","work/product_manual/qa_v6/page-26.png","work/product_manual/qa_v6/page-27.png","work/product_manual/qa_v6/page-28.png","work/product_manual/qa_v6/page-3.png","work/product_manual/qa_v6/page-4.png","work/product_manual/qa_v6/page-5.png","work/product_manual/qa_v6/page-6.png","work/product_manual/qa_v6/page-7.png","work/product_manual/qa_v6/page-8.png","work/product_manual/qa_v6/page-9.png","work/product_manual/qa_v7/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v7/page-1.png","work/product_manual/qa_v7/page-10.png","work/product_manual/qa_v7/page-11.png","work/product_manual/qa_v7/page-12.png","work/product_manual/qa_v7/page-13.png","work/product_manual/qa_v7/page-14.png","work/product_manual/qa_v7/page-15.png","work/product_manual/qa_v7/page-16.png","work/product_manual/qa_v7/page-17.png","work/product_manual/qa_v7/page-18.png","work/product_manual/qa_v7/page-19.png","work/product_manual/qa_v7/page-2.png","work/product_manual/qa_v7/page-20.png","work/product_manual/qa_v7/page-21.png","work/product_manual/qa_v7/page-22.png","work/product_manual/qa_v7/page-23.png","work/product_manual/qa_v7/page-24.png","work/product_manual/qa_v7/page-25.png","work/product_manual/qa_v7/page-26.png","work/product_manual/qa_v7/page-27.png","work/product_manual/qa_v7/page-28.png","work/product_manual/qa_v7/page-3.png","work/product_manual/qa_v7/page-4.png","work/product_manual/qa_v7/page-5.png","work/product_manual/qa_v7/page-6.png","work/product_manual/qa_v7/page-7.png","work/product_manual/qa_v7/page-8.png","work/product_manual/qa_v7/page-9.png","work/product_manual/qa_v8/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v8/page-1.png","work/product_manual/qa_v8/page-10.png","work/product_manual/qa_v8/page-11.png","work/product_manual/qa_v8/page-12.png","work/product_manual/qa_v8/page-13.png","work/product_manual/qa_v8/page-14.png","work/product_manual/qa_v8/page-15.png","work/product_manual/qa_v8/page-16.png","work/product_manual/qa_v8/page-17.png","work/product_manual/qa_v8/page-18.png","work/product_manual/qa_v8/page-19.png","work/product_manual/qa_v8/page-2.png","work/product_manual/qa_v8/page-20.png","work/product_manual/qa_v8/page-21.png","work/product_manual/qa_v8/page-22.png","work/product_manual/qa_v8/page-23.png","work/product_manual/qa_v8/page-24.png","work/product_manual/qa_v8/page-25.png","work/product_manual/qa_v8/page-26.png","work/product_manual/qa_v8/page-27.png","work/product_manual/qa_v8/page-28.png","work/product_manual/qa_v8/page-3.png","work/product_manual/qa_v8/page-4.png","work/product_manual/qa_v8/page-5.png","work/product_manual/qa_v8/page-6.png","work/product_manual/qa_v8/page-7.png","work/product_manual/qa_v8/page-8.png","work/product_manual/qa_v8/page-9.png","work/product_manual/qa_v9/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v9/page-1.png","work/product_manual/qa_v9/page-10.png","work/product_manual/qa_v9/page-11.png","work/product_manual/qa_v9/page-12.png","work/product_manual/qa_v9/page-13.png","work/product_manual/qa_v9/page-14.png","work/product_manual/qa_v9/page-15.png","work/product_manual/qa_v9/page-16.png","work/product_manual/qa_v9/page-17.png","work/product_manual/qa_v9/page-18.png","work/product_manual/qa_v9/page-19.png","work/product_manual/qa_v9/page-2.png","work/product_manual/qa_v9/page-20.png","work/product_manual/qa_v9/page-21.png","work/product_manual/qa_v9/page-22.png","work/product_manual/qa_v9/page-23.png","work/product_manual/qa_v9/page-24.png","work/product_manual/qa_v9/page-25.png","work/product_manual/qa_v9/page-26.png","work/product_manual/qa_v9/page-27.png","work/product_manual/qa_v9/page-28.png","work/product_manual/qa_v9/page-29.png","work/product_manual/qa_v9/page-3.png","work/product_manual/qa_v9/page-30.png","work/product_manual/qa_v9/page-4.png","work/product_manual/qa_v9/page-5.png","work/product_manual/qa_v9/page-6.png","work/product_manual/qa_v9/page-7.png","work/product_manual/qa_v9/page-8.png","work/product_manual/qa_v9/page-9.png","work/product_manual/render_with_cjk_font.py"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/runtime.ts","packages/contracts/src/work.test.ts","reports/agent-adapters.latest.json","reports/baseline.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.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/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"55b9c2a0af78b6998bac3614dedc7187e37057ea","message":"merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次\n\n冲突决议(24 文件):\n- reports/baseline:取本地 08-22 棘轮(458 tests / 66 files / 456 cases / 19×2 UI,为远端严格超集)\n- jobs.processor / work.module / queue.ts(fastify):取本地 C26 JobIntent 同事务链(远端 commit 后 queue.add + defaultJobOptions 兜底已被结构性取代;嫁接远端 Redis db NaN 守卫到 Fastify 侧保持双后端对等)\n- roles.service ×2:取本地 C42 审计事务版 + 嫁接远端 RoleAssignmentDto 返回类型接线(PR #3 拍板资产)\n- page.tsx:取本地 C53 会话身份(auth-identity testid,Playwright 依赖)\n- check-ui-acceptance:本地 OIDC 编排 + 远端 F8 注释并集\n- CLAUDE.md:本地 C45–C68 动态区为基底,嫁接远端 F8 行、五层 CI 假红叙事、结果裁决角色闸(G8 ⑫)、own-tests git-tracked 口径注记,快照更新为两远端对齐 c0ed754(run 32380591807 绿)\n\n编号撞号收口:两条时间线独立分配了 C25/C26/C1——远端线三个战役重编号为 C69(runner 自含 contracts 构建 + F8)/ C70(地板采集只认 git 已跟踪)/ C71(队列双注册策略显式化),经验库标题、脚本注释、测试注释同步改引;本地 C25(迟到成功)/C26(JobIntent)/C1(check-naming)编号不变。\n\n合并树证据:静态 pnpm check 全绿(Node 22,本地 dirty 工作区 2026-08-22);双后端 UI 聚合 38/38 绿(伙伴会话实跑,指纹绑定本合并内容)。合并提交自身的远端 CI 以 headSha 定位的 run 为准。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/55b9c2a0af78b6998bac3614dedc7187e37057ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:10:56-07:00","added":[],"removed":["apps/api-fastify/pnpm-lock.yaml","apps/api-nestjs/pnpm-lock.yaml","apps/web/pnpm-lock.yaml"],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/web/src/app/layout.tsx","apps/web/src/store/useAppStore.ts","docs/README.md","docs/adr/README.md","docs/governance-experience.md","docs/migration-playbook.md","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/learning.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/tenant.ts","packages/contracts/tsconfig.json","scripts/check-contract-consumers.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.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":1901,"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":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-08-20T14:46:28+08:00","updated_at":"2026-08-21T23:43: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
|
3
|
5
|
1787411590
|
1787411987
|
0
|
1787411590
|
1787411987
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23557
|
chore(governance): refresh acceptance evidence for chore(governance): refresh acceptance evidence for settings panel commit...
|
91
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
c1d59277c1c321407babdaf3ad6fe26c73e7cb55
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"48c7ef665e210ef004970fc6f1fdc443a03b48a1","after":"c1d59277c1c321407babdaf3ad6fe26c73e7cb55","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/48c7ef665e210ef004970fc6f1fdc443a03b48a1...c1d59277c1c321407babdaf3ad6fe26c73e7cb55","commits":[{"id":"c1d59277c1c321407babdaf3ad6fe26c73e7cb55","message":"chore(governance): refresh acceptance evidence for settings panel commit\n\n三级门禁在 clean tree(92b5c75)实跑全绿:静态 12 门禁、真实 DB 155\ntests、浏览器 4 cases;16 份报告 provenance 全部 gitSha=92b5c75 /\nworktreeDirty=false。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/c1d59277c1c321407babdaf3ad6fe26c73e7cb55","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T20:16:38-07:00","added":[],"removed":[],"modified":["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.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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"]},{"id":"92b5c754bb4c98f3473f4e445c41b59a76d21b7a","message":"feat(web): workspace settings panel\n\n侧栏「设置」现在打开真实设置面板(模态,Esc/遮罩可关,aria-modal):\n- 对话默认值:联网搜索/本地工具开关、推理强度三档分段控件,\n 持久化走 chat-ui-store(新增 resetPreferences 恢复默认)\n- 本地运行时:展示真实探测结果(引擎/连接延迟/模型文件)+ 手动重检\n- 本机数据:会话与知识库计数、清除全部本机会话(confirm +\n localStorage 容错),明示清除不影响模型与知识库\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/92b5c754bb4c98f3473f4e445c41b59a76d21b7a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T20:15:02-07:00","added":[],"removed":[],"modified":["apps/web/src/app/globals.css","apps/web/src/features/chat/components/ChatWorkspace.tsx","apps/web/src/stores/chat-ui-store.ts"]}],"total_commits":0,"head_commit":{"id":"c1d59277c1c321407babdaf3ad6fe26c73e7cb55","message":"chore(governance): refresh acceptance evidence for settings panel commit\n\n三级门禁在 clean tree(92b5c75)实跑全绿:静态 12 门禁、真实 DB 155\ntests、浏览器 4 cases;16 份报告 provenance 全部 gitSha=92b5c75 /\nworktreeDirty=false。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/c1d59277c1c321407babdaf3ad6fe26c73e7cb55","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T20:16:38-07:00","added":[],"removed":[],"modified":["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.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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"]},"repository":{"id":91,"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":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3062,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.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-30T09:20:06+08:00","updated_at":"2026-08-30T10:53: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
|
1
|
8
|
1788059969
|
1788060812
|
0
|
1788059801
|
1788060812
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23636
|
chore(dev): derive local DB credentials from deplo chore(dev): derive local DB credentials from deploy/vm/.env in launch.json...
|
57
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
a228915e1a104c81591ac55a929061b082e8d7e6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b3a5c0dc690884729878b7f4cce1adbad046be14","after":"a228915e1a104c81591ac55a929061b082e8d7e6","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/b3a5c0dc690884729878b7f4cce1adbad046be14...a228915e1a104c81591ac55a929061b082e8d7e6","commits":[{"id":"a228915e1a104c81591ac55a929061b082e8d7e6","message":"chore(dev): derive local DB credentials from deploy/vm/.env in launch.json\n\nThe api-fastify launch config hard-coded app:app@127.0.0.1:55434, but that port\nis now served by the deploy/vm Compose stack whose password lives in\ndeploy/vm/.env, so the dev API crashed with P1000 at startup. Derive\nDATABASE_URL/REDIS_URL/MODEL_SIDECAR_URL from that file (fallbacks unchanged),\nrun the web dev server with an empty basePath like check:ui does, and lock the\nproxy target to 127.0.0.1.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a228915e1a104c81591ac55a929061b082e8d7e6","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-04T08:32:53-07:00","added":[],"removed":[],"modified":[".claude/launch.json"]},{"id":"cee456d14fb8a0a9491a439c02ff8e1b43f92a0b","message":"feat(identity): consume enterprise IdP access tokens on formal material routes\n\n- Add @hi-atelier/enterprise-identity (jose): RS256 verification against a\n tenant-level issuer allowlist with fixed JWKS, audience/expiry/claim checks,\n material.* scope requirement, tenant derived from the signed tenant_id, and\n HUMAN actor id/permissions bound to sub/scope.\n- NestJS material-runtime guard and Fastify runtime-trust preHandler both run\n the shared-secret check and then the IdP verification; misconfiguration stays\n 503, forged identities return 401/403; acceptance bypass still needs the run id.\n- Config: MATERIAL_IDP_AUDIENCE + MATERIAL_IDP_TRUSTED_ISSUERS_JSON in\n deploy/vm/.env.example, docker-compose and turbo globalEnv.\n- Docs: ADR-0011, material-production blueprint, owner matrix, deploy runbook,\n CLAUDE.md G8 status; production-security and UI acceptance scripts updated.\n- Regenerated governance reports. Heavy acceptance reports still carry the\n pre-hljTest-merge source fingerprint (sha256:8d6f5dab...), so check:governance\n reports heavyGateDocDrift=6 until runtime/ui/inference/production/public-file\n acceptance are rerun on the merged tree.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cee456d14fb8a0a9491a439c02ff8e1b43f92a0b","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-04T08:32:53-07:00","added":["docs/adr/0011-consume-enterprise-idp-access-tokens.md","packages/enterprise-identity/package.json","packages/enterprise-identity/src/index.test.ts","packages/enterprise-identity/src/index.ts","packages/enterprise-identity/tsconfig.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/adr/README.md","docs/deploy-vm.md","docs/domain/material-production-blueprint.md","docs/domain/owner-matrix.md","packages/contracts/src/storyboard.ts","pnpm-lock.yaml","reports/adversarial-acceptance-audit.latest.md","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.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-acceptance.latest.json","reports/production-security.latest.json","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/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-production-security.mjs","scripts/check-ui-acceptance.mjs","turbo.json"]},{"id":"b8a9672a43a850e5c96ca3808cdc1a5b8446b098","message":"merge: origin/hljTest into main\n\nhljTest and main had each merged the same branches independently (criss-cross,\nmerge bases c16f03b + dc10d63), so git reported conflicts in FactoryShell.tsx and\n21 generated reports/* evidence files. Resolution: keep main's tree (main's later\nintegration b3a5c0d already carried everything on hljTest except one commit) and\napply hljTest's only new commit acf98e3: build @hi-atelier/public-file declarations\nin the deploy image and drop composite/incremental tsc output.\n\nNot taken from hljTest's merge resolution: hiding the 歌词 nav item, and deleting\noutput/hi-atelier-posters-4k, reports/login-redesign.*, .playwright-cli/* and\nreports/full-transformation-completion-audit.latest.md (still referenced by CLAUDE.md).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b8a9672a43a850e5c96ca3808cdc1a5b8446b098","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-04T08:15:27-07:00","added":[],"removed":[],"modified":["deploy/vm/Dockerfile","packages/public-file/package.json","packages/public-file/tsconfig.json"]},{"id":"acf98e305c9119899658833425da4ec0e240eb81","message":"fix(deploy): build public file declarations in containers\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/acf98e305c9119899658833425da4ec0e240eb81","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-09-01T12:37:46+08:00","added":[],"removed":[],"modified":["deploy/vm/Dockerfile","packages/public-file/package.json","packages/public-file/tsconfig.json"]},{"id":"4f9e26991be55cebd9581ee270d986def4c2eb17","message":"Merge remote-tracking branch 'origin/main' into hljTest\n\n# Conflicts:\n#\tapps/web/src/components/material-factory/FactoryShell.tsx\n#\tdeploy/vm/sidecar.Dockerfile\n#\tmodels/material-factory/manifest.json\n#\treports/adversarial-acceptance-audit.latest.md\n#\treports/baseline.json\n#\treports/contract-consumers.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/inference-acceptance.latest.json\n#\treports/material-models.latest.json\n#\treports/material-review-concurrency-guard.latest.json\n#\treports/migrations.latest.json\n#\treports/module-boundary.latest.json\n#\treports/naming.latest.json\n#\treports/order-concurrency-guard.latest.json\n#\treports/production-acceptance.latest.json\n#\treports/production-security.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/startup-acceptance.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/ui-acceptance.desktop.png\n#\treports/ui-acceptance.latest.json\n#\treports/ui-acceptance.mobile.png\n#\treports/ui-acceptance.production.png\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4f9e26991be55cebd9581ee270d986def4c2eb17","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-09-01T11:13:05+08:00","added":["docs/product/creative-workflow-analysis.md","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","reports/adversarial-acceptance-audit.latest.md","reports/creative-workflow-audit/01-entry.png","reports/creative-workflow-audit/02-workspace-empty.png","reports/creative-workflow-audit/03-script-start.png","reports/creative-workflow-audit/README.md","reports/full-ux-audit-2026-08-28/01-entry-desktop.png","reports/full-ux-audit-2026-08-28/02-brand-empty-desktop.png","reports/full-ux-audit-2026-08-28/03-image-create-desktop.png","reports/full-ux-audit-2026-08-28/04-storyboard-desktop.png","reports/full-ux-audit-2026-08-28/05-production-tasks-desktop.png","reports/full-ux-audit-2026-08-28/06-production-tasks-mobile.png","reports/full-ux-audit-2026-08-28/07-image-create-mobile.png","reports/full-ux-audit-2026-08-28/08-script-mobile.png","reports/full-ux-audit-2026-08-28/README.md","reports/material-review-concurrency-guard.latest.json","reports/module-boundary.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.production.png","scripts/check-public-file-acceptance.mjs","scripts/check-public-file-integration.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/test/object-storage.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/test/object-storage.integration.test.ts","apps/web/src/app/globals.css","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/PipelineFlow.tsx","apps/web/src/components/material-factory/ReviewCenter.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/ui.tsx","apps/web/src/store/useFactoryStore.ts","deploy/vm/.env.example","deploy/vm/Caddyfile","deploy/vm/docker-compose.yml","deploy/vm/sidecar.Dockerfile","docs/domain/material-production-blueprint.md","docs/domain/owner-matrix.md","models/material-factory/manifest.json","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/README.md","package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-models.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/startup-acceptance.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","services/model-sidecar/main.py","turbo.json"]}],"total_commits":0,"head_commit":{"id":"a228915e1a104c81591ac55a929061b082e8d7e6","message":"chore(dev): derive local DB credentials from deploy/vm/.env in launch.json\n\nThe api-fastify launch config hard-coded app:app@127.0.0.1:55434, but that port\nis now served by the deploy/vm Compose stack whose password lives in\ndeploy/vm/.env, so the dev API crashed with P1000 at startup. Derive\nDATABASE_URL/REDIS_URL/MODEL_SIDECAR_URL from that file (fallbacks unchanged),\nrun the web dev server with an empty basePath like check:ui does, and lock the\nproxy target to 127.0.0.1.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a228915e1a104c81591ac55a929061b082e8d7e6","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-04T08:32:53-07:00","added":[],"removed":[],"modified":[".claude/launch.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":49341,"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":5,"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-01T12:38:11+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
|
1788535983
|
1788536927
|
0
|
1788535982
|
1788536927
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23876
|
merge: complete MS-1 publication preparation and b merge: complete MS-1 publication preparation and backup evidence...
|
116
|
5
|
platform.yml
|
11
|
5
|
0
|
refs/heads/main
|
0bceefc14d66a2f3544ff1036cbf467d80e2a9ec
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"be7334ad46324e54bebe2397365086896b6ad42b","after":"0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/be7334ad46324e54bebe2397365086896b6ad42b...0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","commits":[{"id":"0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","message":"merge: complete MS-1 publication preparation and backup evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:55:48-07:00","added":["docs/MS-1建仓与接入执行记录-2026-09-12.md","reports/ms1-consumer-preparation.2026-09-12/hr.patch","reports/ms1-consumer-preparation.2026-09-12/os.patch","reports/ms1-integration.2026-09-12.json","reports/ms1-validation.2026-09-12.json","stack/reports/pg-dump.2026-09-12.enterprise_platform_acceptance_stack20260911.json","stack/reports/pg-dump.2026-09-12.json","stack/reports/restore-drill.2026-09-12.json"],"removed":[],"modified":[".github/workflows/platform.yml","README.md","governance/test/verify-candidate.test.mjs","stack/README.md"]},{"id":"6b82290b2e815cba777a960f150ac9d8e78b013e","message":"docs(ms1): attach clean validation and current rollout boundary\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/6b82290b2e815cba777a960f150ac9d8e78b013e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:55:18-07:00","added":["reports/ms1-validation.2026-09-12.json"],"removed":[],"modified":["README.md","docs/MS-1建仓与接入执行记录-2026-09-12.md","stack/README.md"]},{"id":"d7c68c327f13c89f1dbfbe336f64dc1153e416f4","message":"docs(ms1): record verified backups and pending consumer rollout\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/d7c68c327f13c89f1dbfbe336f64dc1153e416f4","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:54:13-07:00","added":["docs/MS-1建仓与接入执行记录-2026-09-12.md","reports/ms1-consumer-preparation.2026-09-12/hr.patch","reports/ms1-consumer-preparation.2026-09-12/os.patch","reports/ms1-integration.2026-09-12.json","stack/reports/pg-dump.2026-09-12.enterprise_platform_acceptance_stack20260911.json","stack/reports/pg-dump.2026-09-12.json","stack/reports/restore-drill.2026-09-12.json"],"removed":[],"modified":[]},{"id":"3df2e060ea2a6573d4f849095a7a9a47bd1ab1a5","message":"fix(ci): restore report paths when downloading candidate artifacts\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/3df2e060ea2a6573d4f849095a7a9a47bd1ab1a5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:52:11-07:00","added":[],"removed":[],"modified":[".github/workflows/platform.yml","governance/test/verify-candidate.test.mjs"]}],"total_commits":0,"head_commit":{"id":"0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","message":"merge: complete MS-1 publication preparation and backup evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:55:48-07:00","added":["docs/MS-1建仓与接入执行记录-2026-09-12.md","reports/ms1-consumer-preparation.2026-09-12/hr.patch","reports/ms1-consumer-preparation.2026-09-12/os.patch","reports/ms1-integration.2026-09-12.json","reports/ms1-validation.2026-09-12.json","stack/reports/pg-dump.2026-09-12.enterprise_platform_acceptance_stack20260911.json","stack/reports/pg-dump.2026-09-12.json","stack/reports/restore-drill.2026-09-12.json"],"removed":[],"modified":[".github/workflows/platform.yml","README.md","governance/test/verify-candidate.test.mjs","stack/README.md"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2595,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T15:53:46+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
|
22
|
1789200172
|
1789200198
|
0
|
1789199753
|
1789200219
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
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
|
|
23961
|
feat(hr): emit canonical employment facts and hard feat(hr): emit canonical employment facts and harden database RLS...
|
83
|
5
|
platform-governance.yml
|
11
|
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
|
1
|
8
|
1789441205
|
1789441317
|
0
|
1789440861
|
1789441317
|
|
|
0
|
Edit
Delete
|
|
24014
|
docs(决策): CHG-018 材料——修正决策批次 C-9「不建第二个 Portal」,平台工 docs(决策): CHG-018 材料——修正决策批次 C-9「不建第二个 Portal」,平台工作台同仓独立建设(待签署后应用)...
|
117
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
d18826fbfe37c9974ac1f075942efd38cd8d1f07
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"61081e56e2b37ba5e77440b55ef576c366854dba","after":"d18826fbfe37c9974ac1f075942efd38cd8d1f07","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/61081e56e2b37ba5e77440b55ef576c366854dba...d18826fbfe37c9974ac1f075942efd38cd8d1f07","commits":[{"id":"d18826fbfe37c9974ac1f075942efd38cd8d1f07","message":"docs(决策): CHG-018 材料——修正决策批次 C-9「不建第二个 Portal」,平台工作台同仓独立建设(待签署后应用)\n\nC-9(2026-09-16 签署)裁定一套 Shell 归基座、本仓不建第二个 Portal;09-17 用户确认另建同仓独立工作台,设计文档已改写但裁决记录未改。本包按 CHG-016/017 格式起修正材料:企业业务 Shell 仍归基座、多 Owner Provider 与同一回执不变,只把「不建第二个 Portal」细分为「不建企业业务 Portal;平台自身入口由本仓独立工作台承载」;Catalog enterprise-experience 不动,不建目录、不改 CODEOWNERS。\n\n同步登记:待裁决架构事项 §8A 增 N-10(待签署);决策批次 §3 增 09-17 增补段;开发计划 09-17 增量段把阶段 ② 开工前置改为「CHG-018 签署」;收纳表 doc/ 计数 144→145、CHG 范围补至 018。一致性检查 L4 / L10 / L13 清零。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/d18826fbfe37c9974ac1f075942efd38cd8d1f07","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-17T05:25:28-07:00","added":["平台治理/doc/decisions/CHG-018-材料/README.md"],"removed":[],"modified":["平台治理/README.md","平台治理/doc/decisions/决策批次-2026-09-16.md","平台治理/doc/decisions/待裁决架构事项.md","平台治理/基础设施文档/开发计划.md"]}],"total_commits":0,"head_commit":{"id":"d18826fbfe37c9974ac1f075942efd38cd8d1f07","message":"docs(决策): CHG-018 材料——修正决策批次 C-9「不建第二个 Portal」,平台工作台同仓独立建设(待签署后应用)\n\nC-9(2026-09-16 签署)裁定一套 Shell 归基座、本仓不建第二个 Portal;09-17 用户确认另建同仓独立工作台,设计文档已改写但裁决记录未改。本包按 CHG-016/017 格式起修正材料:企业业务 Shell 仍归基座、多 Owner Provider 与同一回执不变,只把「不建第二个 Portal」细分为「不建企业业务 Portal;平台自身入口由本仓独立工作台承载」;Catalog enterprise-experience 不动,不建目录、不改 CODEOWNERS。\n\n同步登记:待裁决架构事项 §8A 增 N-10(待签署);决策批次 §3 增 09-17 增补段;开发计划 09-17 增量段把阶段 ② 开工前置改为「CHG-018 签署」;收纳表 doc/ 计数 144→145、CHG 范围补至 018。一致性检查 L4 / L10 / L13 清零。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/d18826fbfe37c9974ac1f075942efd38cd8d1f07","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-17T05:25:28-07:00","added":["平台治理/doc/decisions/CHG-018-材料/README.md"],"removed":[],"modified":["平台治理/README.md","平台治理/doc/decisions/决策批次-2026-09-16.md","平台治理/doc/decisions/待裁决架构事项.md","平台治理/基础设施文档/开发计划.md"]},"repository":{"id":117,"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":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":7052,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.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-15T11:53:24+08:00","updated_at":"2026-09-17T20:18:06+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
|
1
|
4
|
1789648105
|
1789648121
|
0
|
1789647931
|
1789648121
|
|
|
0
|
Edit
Delete
|
|
24408
|
docs(notification): record real platform acceptanc docs(notification): record real platform acceptance...
|
81
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
3ece79dcc83c32531df95129cd9d687bb66fe66b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","after":"3ece79dcc83c32531df95129cd9d687bb66fe66b","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/066afd0a04f4765ee9a8aefae9f2eb8272bb88b2...3ece79dcc83c32531df95129cd9d687bb66fe66b","commits":[{"id":"3ece79dcc83c32531df95129cd9d687bb66fe66b","message":"docs(notification): record real platform acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/3ece79dcc83c32531df95129cd9d687bb66fe66b","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-23T07:00:29-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-23-platform-notification-consumer.md"]}],"total_commits":0,"head_commit":{"id":"3ece79dcc83c32531df95129cd9d687bb66fe66b","message":"docs(notification): record real platform acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/3ece79dcc83c32531df95129cd9d687bb66fe66b","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-23T07:00:29-07:00","added":[],"removed":[],"modified":["docs/deployment-record-2026-09-23-platform-notification-consumer.md"]},"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":3409,"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-09-23T21:27: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
|
6
|
1790172106
|
1790172115
|
0
|
1790172104
|
1790172115
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24656
|
Record verified Task core rollout
|
121
|
5
|
kernel-ci.yml
|
11
|
5
|
0
|
refs/heads/main
|
8bb41429437f46d37678921b75ffcaff1ed78841
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bc4d59f2822b56e8b97570d25cfd4d8b61cdde12","after":"8bb41429437f46d37678921b75ffcaff1ed78841","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/bc4d59f2822b56e8b97570d25cfd4d8b61cdde12...8bb41429437f46d37678921b75ffcaff1ed78841","commits":[{"id":"8bb41429437f46d37678921b75ffcaff1ed78841","message":"Record verified Task core rollout\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/8bb41429437f46d37678921b75ffcaff1ed78841","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-29T10:14:01-07:00","added":["ops/deployments/2026-09-29-task-core-context-01080-local.md"],"removed":[],"modified":["model/plan-ledger.json"]}],"total_commits":0,"head_commit":{"id":"8bb41429437f46d37678921b75ffcaff1ed78841","message":"Record verified Task core rollout\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/8bb41429437f46d37678921b75ffcaff1ed78841","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-29T10:14:01-07:00","added":["ops/deployments/2026-09-29-task-core-context-01080-local.md"],"removed":[],"modified":["model/plan-ledger.json"]},"repository":{"id":121,"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":"seven-domain-five-dimension-unified-model","full_name":"luoanwu/seven-domain-five-dimension-unified-model","description":"七域五维统一领域模型独立仓:领域内核、31章规范与运行记录","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":32861,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model/languages","html_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/seven-domain-five-dimension-unified-model.git","clone_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-29T05:06:56+08:00","updated_at":"2026-09-30T01:11: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
|
4
|
1790702047
|
1790702062
|
0
|
1790702045
|
1790702062
|
|
|
0
|
Edit
Delete
|
|
25672
|
Update to 1.0.3
|
137
|
5
|
workflow.yml
|
11
|
5
|
0
|
refs/tags/v1.0.3
|
401832ee6450765bf6640e4179c200c79deb4856
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v1.0.3","bef {"ref":"refs/tags/v1.0.3","before":"0000000000000000000000000000000000000000","after":"401832ee6450765bf6640e4179c200c79deb4856","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/0000000000000000000000000000000000000000...401832ee6450765bf6640e4179c200c79deb4856","commits":[],"total_commits":0,"head_commit":{"id":"401832ee6450765bf6640e4179c200c79deb4856","message":"Update to 1.0.3\n","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/401832ee6450765bf6640e4179c200c79deb4856","author":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"committer":{"name":"Danny McCormick","email":"damccorm@microsoft.com","username":""},"verification":null,"timestamp":"2019-08-05T16:51:20-04:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"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":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.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-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38: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
|
3
|
5
|
1791847120
|
1791950481
|
0
|
1791844722
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25689
|
Add retries to all HTTP calls + resolve dependabot Add retries to all HTTP calls + resolve dependabot alerts (#160)...
|
138
|
5
|
codeql-analysis.yml
|
11
|
5
|
0
|
refs/tags/v2.2.2
|
e448a9b857ee2131e752b06002bf0e093c65e571
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.2.2","bef {"ref":"refs/tags/v2.2.2","before":"0000000000000000000000000000000000000000","after":"e448a9b857ee2131e752b06002bf0e093c65e571","compare_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/compare/0000000000000000000000000000000000000000...e448a9b857ee2131e752b06002bf0e093c65e571","commits":[],"total_commits":0,"head_commit":{"id":"e448a9b857ee2131e752b06002bf0e093c65e571","message":"Add retries to all HTTP calls + resolve dependabot alerts (#160)\n\n* Bump @actions/artifact to version 0.5.0\r\n\r\n* Resolve dependabot alert for node-notifier\r\n\r\n* Resolve dependabot alert for node-fetch\r\n\r\n* Bump artifact.dep.yml\r\n\r\n* Update http-client.dep.yml","url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/commit/e448a9b857ee2131e752b06002bf0e093c65e571","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2021-01-04T15:48:10+01:00","added":[],"removed":[],"modified":[".licenses/npm/@actions/artifact.dep.yml",".licenses/npm/@actions/http-client.dep.yml","dist/index.js","package-lock.json","package.json"]},"repository":{"id":138,"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":"actions-upload-artifact","full_name":"luoanwu/actions-upload-artifact","description":"Mirror of github.com/actions/upload-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-upload-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact.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-10-13T06:37:06+08:00","updated_at":"2026-10-13T06:38: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
|
4
|
1791852666
|
1791852697
|
0
|
1791844729
|
1791852697
|
|
|
0
|
Edit
Delete
|
|
25701
|
Document Artifact Limitations + Bump actions/artif Document Artifact Limitations + Bump actions/artifact package version (#51)...
|
139
|
5
|
codeql-analysis.yml
|
11
|
5
|
0
|
refs/tags/v2.0.3
|
80d2d4023c185001eacb50e37afd7dd667ba8044
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.0.3","bef {"ref":"refs/tags/v2.0.3","before":"0000000000000000000000000000000000000000","after":"80d2d4023c185001eacb50e37afd7dd667ba8044","compare_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/compare/0000000000000000000000000000000000000000...80d2d4023c185001eacb50e37afd7dd667ba8044","commits":[],"total_commits":0,"head_commit":{"id":"80d2d4023c185001eacb50e37afd7dd667ba8044","message":"Document Artifact Limitations + Bump actions/artifact package version (#51)\n\n* Document Artifact Limitations\r\n\r\n* README Updates\r\n\r\n* Restructure README","url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/commit/80d2d4023c185001eacb50e37afd7dd667ba8044","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-31T17:16:59+02:00","added":[],"removed":[],"modified":["README.md","dist/index.js","package-lock.json","package.json"]},"repository":{"id":139,"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":"actions-download-artifact","full_name":"luoanwu/actions-download-artifact","description":"Mirror of github.com/actions/download-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-download-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact.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-10-13T06:37:23+08:00","updated_at":"2026-10-13T06:38:59+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
|
1791854387
|
1791854418
|
0
|
1791844740
|
1791854418
|
|
|
0
|
Edit
Delete
|
|
26204
|
chore(reports): bind retirement documentation chec chore(reports): bind retirement documentation checks at 18e4902...
|
135
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
6d4dd1aab352d05d4049a7098fdec8443188ded5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a","after":"6d4dd1aab352d05d4049a7098fdec8443188ded5","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/7e79d0fd34a9318d56c8e6cb27e93565e8dcfc7a...6d4dd1aab352d05d4049a7098fdec8443188ded5","commits":[{"id":"6d4dd1aab352d05d4049a7098fdec8443188ded5","message":"chore(reports): bind retirement documentation checks at 18e4902\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/6d4dd1aab352d05d4049a7098fdec8443188ded5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T04:35:04-07:00","added":[],"removed":[],"modified":["reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},{"id":"18e49027ca858042a8c3b353d3e2cefb27442f52","message":"docs: retire device cloud source and fix historical recovery references\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/18e49027ca858042a8c3b353d3e2cefb27442f52","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T04:32:39-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docs/domain/owner-matrix.md","docs/domain/thing-cloud-migration-plan.md"]}],"total_commits":0,"head_commit":{"id":"6d4dd1aab352d05d4049a7098fdec8443188ded5","message":"chore(reports): bind retirement documentation checks at 18e4902\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/6d4dd1aab352d05d4049a7098fdec8443188ded5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T04:35:04-07:00","added":[],"removed":[],"modified":["reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":135,"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-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2721,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-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-10-12T21:14:44+08:00","updated_at":"2026-10-19T01:04: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
|
10
|
1792496111
|
1792496201
|
0
|
1792496108
|
1792496234
|
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
|
|
26252
|
docs(infra): diagnose ClamAV daemon loss and plan docs(infra): diagnose ClamAV daemon loss and plan window recovery acceptance...
|
133
|
5
|
infra.yml
|
11
|
5
|
0
|
refs/heads/main
|
00ba65bb9f9f7402a944101819e7ab7d629c0984
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b94c9047462e5f24307a5ca6ce505f70a752bdcc","after":"00ba65bb9f9f7402a944101819e7ab7d629c0984","compare_url":"https://gitea.g-hi.com/luoanwu/infra/compare/b94c9047462e5f24307a5ca6ce505f70a752bdcc...00ba65bb9f9f7402a944101819e7ab7d629c0984","commits":[{"id":"00ba65bb9f9f7402a944101819e7ab7d629c0984","message":"docs(infra): diagnose ClamAV daemon loss and plan window recovery acceptance\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/00ba65bb9f9f7402a944101819e7ab7d629c0984","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T20:14:52-07:00","added":["docs/ClamAV只读诊断与修复验收-2026-10-20.md","reports/clamav-readonly-2026-10-20/observations.json","reports/clamav-readonly-2026-10-20/vm-oom-excerpts.json"],"removed":[],"modified":["README.md"]}],"total_commits":0,"head_commit":{"id":"00ba65bb9f9f7402a944101819e7ab7d629c0984","message":"docs(infra): diagnose ClamAV daemon loss and plan window recovery acceptance\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/00ba65bb9f9f7402a944101819e7ab7d629c0984","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T20:14:52-07:00","added":["docs/ClamAV只读诊断与修复验收-2026-10-20.md","reports/clamav-readonly-2026-10-20/observations.json","reports/clamav-readonly-2026-10-20/vm-oom-excerpts.json"],"removed":[],"modified":["README.md"]},"repository":{"id":133,"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":"infra","full_name":"luoanwu/infra","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":884,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra/languages","html_url":"https://gitea.g-hi.com/luoanwu/infra","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/infra.git","clone_url":"https://gitea.g-hi.com/luoanwu/infra.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-10-11T21:11:15+08:00","updated_at":"2026-10-21T10:34: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
|
1
|
6
|
1792552516
|
1792552549
|
0
|
1792552516
|
1792552549
|
|
|
0
|
Edit
Delete
|
|
26460
|
test: record final D3 271-case and 14-browser acce test: record final D3 271-case and 14-browser acceptance...
|
82
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
828715cf53fe6925982bca85c6a1a36515f9807a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f799945209d1c8eff92a1e7f3b14b252b445d4df","after":"828715cf53fe6925982bca85c6a1a36515f9807a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/f799945209d1c8eff92a1e7f3b14b252b445d4df...828715cf53fe6925982bca85c6a1a36515f9807a","commits":[{"id":"828715cf53fe6925982bca85c6a1a36515f9807a","message":"test: record final D3 271-case and 14-browser acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/828715cf53fe6925982bca85c6a1a36515f9807a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T03:47:34-07:00","added":["reports/d3-delivery.latest.json","reports/d3-fixture-cleanup.latest.json","reports/d3-independent-review.latest.json","reports/d3-retirement.latest.json","reports/ui-attempts.latest.json"],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/backend-behavior-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.latest.json","reports/deployment-attempts.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-target.latest.json","reports/statemachine-write-guard.latest.json","reports/static-acceptance.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},{"id":"23b2eb9b9b5222549bf785fd7de3bf5cc5ab260c","message":"fix: close D3 review gaps and pin patched Nest HTTP runtime\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/23b2eb9b9b5222549bf785fd7de3bf5cc5ab260c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T03:27:59-07:00","added":["reports/d3-baseline-2026-10-25/security-review-red-green.json","reports/d3-ratchet-verification.latest.json","reports/production-acceptance.latest.json","reports/static-acceptance.latest.json"],"removed":[],"modified":["README.md","apps/api-nestjs/package.json","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/test/http-adapter.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","docs/nestjs-convergence.md","governance/d3-test-scope.json","package.json","pnpm-lock.yaml","reports/agent-workflow-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.latest.json","reports/deployment-attempts.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.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","scripts/check-d3-delivery.mjs","scripts/lib/artifact-acceptance.mjs","scripts/lib/backend-profile.test.mjs","scripts/lib/governance-baseline.mjs","scripts/lib/governance-baseline.test.mjs"]},{"id":"ce45e84a9652f5dac8bbd8268926ca6eddbf915c","message":"fix: preserve monotonic D3 ratchet updates and verify fixture cleanup\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/ce45e84a9652f5dac8bbd8268926ca6eddbf915c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T02:58:50-07:00","added":[],"removed":[],"modified":["docs/nestjs-convergence.md","reports/agent-workflow-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.latest.json","reports/deployment-attempts.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.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","scripts/check-d3-delivery.mjs","scripts/governance-report.mjs","scripts/lib/artifact-acceptance.mjs","scripts/lib/governance-baseline.mjs","scripts/lib/governance-baseline.test.mjs"]},{"id":"d065e0f1486854b85eeca3c44a0ed580f835bdcb","message":"test: supply contract-complete ticket artifact inputs\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/d065e0f1486854b85eeca3c44a0ed580f835bdcb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T02:38:55-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.latest.json","reports/deployment-attempts.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.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","scripts/check-schema-sync.mjs","scripts/lib/artifact-acceptance.mjs"]},{"id":"ad94e1be1ffc40d22c3ea5307cfc3e468516150c","message":"test: validate ticket artifacts with owned HTTPS storage fixtures\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/ad94e1be1ffc40d22c3ea5307cfc3e468516150c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T02:27:49-07:00","added":["reports/backend-behavior-parity.latest.json","reports/deployment-acceptance.latest.json","reports/deployment-attempts.latest.json","reports/service-target.latest.json","scripts/check-d3-delivery.mjs","scripts/check-static-acceptance.mjs","scripts/lib/attachment-tls-fixture.mjs"],"removed":[],"modified":["README.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/nestjs-convergence.md","package.json","reports/agent-workflow-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json","scripts/check-backend-behavior-parity.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/artifact-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"828715cf53fe6925982bca85c6a1a36515f9807a","message":"test: record final D3 271-case and 14-browser acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/828715cf53fe6925982bca85c6a1a36515f9807a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-25T03:47:34-07:00","added":["reports/d3-delivery.latest.json","reports/d3-fixture-cleanup.latest.json","reports/d3-independent-review.latest.json","reports/d3-retirement.latest.json","reports/ui-attempts.latest.json"],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/backend-behavior-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.latest.json","reports/deployment-attempts.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-target.latest.json","reports/statemachine-write-guard.latest.json","reports/static-acceptance.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3274,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-10-24T11:41: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
|
6
|
1792925287
|
1792925294
|
0
|
1792925285
|
1792925294
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26622
|
chore(evidence): rebind seven native levels to doc chore(evidence): rebind seven native levels to docs-only commit 6ab5636 (KC-SR-V4-F10)...
|
84
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
a4f30da58c8016b72afc8fe44d54723abd5266c0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"883a3e660c313ea02daba8067ed6bb9208d31a25","after":"a4f30da58c8016b72afc8fe44d54723abd5266c0","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/883a3e660c313ea02daba8067ed6bb9208d31a25...a4f30da58c8016b72afc8fe44d54723abd5266c0","commits":[{"id":"a4f30da58c8016b72afc8fe44d54723abd5266c0","message":"chore(evidence): rebind seven native levels to docs-only commit 6ab5636 (KC-SR-V4-F10)\n\nThe doc change in 6ab5636 is a provenance input and evidence is inherited\nonly across report-only commits, so pnpm check went red with 7 stale\nreports. Reran on clean 6ab5636: runtime 276/0, parity 28/0, UI 5/5,\nDR 11 tables, containers, deployment 13 steps, production acceptance 14\nsteps all exit 0; pnpm check exit 0 (0 stale / 0 failed); lint+typecheck\n--force exit 0. Image levels used a zero-byte npm config (no credentials)\nand the local BuildKit cache. No source changed versus 39dd298.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/a4f30da58c8016b72afc8fe44d54723abd5266c0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T09:59:08-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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-kit.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-acceptance.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/session-revalidation.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"6ab563608644cb458237bdeffa8a8e8e9fd9911c","message":"docs(realtime): fix JWKS cache TTL statement and register forged-kid JWKS amplification (KC-SR-V4-F10)\n\nDocs only. The batch section no longer claims AUTH_JWKS_CACHE_TTL_MS only\naffects HTTP and the handshake: since KC-SR-V3-F9 the periodic revalidation\nshares the same cache rule during an IdP outage. The \"未覆盖与后续\" section\nnow actually registers the pre-existing issue (claimed but missing in the\nprevious round): an unknown kid forces one JWKS fetch per handshake / HTTP\nrequest with no single-flight or rate limit, amplifying IdP load; suggested\nfollow-up is a separate @repo/auth slice (single-flight + minimum interval).\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/6ab563608644cb458237bdeffa8a8e8e9fd9911c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T09:51:23-07:00","added":[],"removed":[],"modified":["docs/realtime-session-revalidation.md"]},{"id":"9d75e2a6b50943c283f80b15c43f8a80fdad57ca","message":"chore(evidence): session revalidation round 4 — seven native levels on clean 39dd298\n\nReport-only successor of 39dd298 (verifier finding KC-SR-V3-F9).\nRuntime 276/0 (floor 207), parity 28/0, UI 5/5, DR 11 tables, containers,\ndeployment 13 steps, production acceptance 14 steps all exit 0; pnpm check\nexit 0 with 0 stale / 0 failed; lint+typecheck --force exit 0. Image levels\nused a zero-byte npm config (no credentials) and the local BuildKit cache.\nReceipt: reports/session-revalidation.latest.json (round 4; rounds 1-3 kept).\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/9d75e2a6b50943c283f80b15c43f8a80fdad57ca","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T09:19:28-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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-kit.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-acceptance.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/session-revalidation.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"39dd2985bf54b7a2ccc7019dc2f3516f5aef5d07","message":"fix(realtime): one outage rule for revalidation and handshake; no backoff reset on brief opens (KC-SR-V3-F9)\n\nDuring a persistent JWKS outage the batch revalidation closed every\nconnection 1013 while the handshake still accepted cached-kid tokens for up\nto AUTH_JWKS_CACHE_TTL_MS, so clients churned connect -\u003e 1013 -\u003e reconnect.\nNow @repo/auth refreshSigningKeys({ tolerateCachedOnFailure }) keeps a\ncached key set that is still within its TTL (returns \"cached\"), and\nfetchKeys:false treats an expired cache as unavailable. Revalidation uses\nit: while the cache is valid connections stay open (same rule as HTTP and\nthe handshake); after expiry WS closes 1013 / SSE ends without a named\nevent and new handshakes are also 1013. The web client's backoff no longer\nresets on open: only a stable open of \u003e= 30 s followed by a non-outage close\nresets it (contracts realtimeReconnectAttempt / realtimeReconnectDelayMs).\nDoc records the outage behaviour and registers the pre-existing unthrottled\nJWKS fetch on forged kids (not fixed here).\n\nRed first on 19989d2: contracts 3, auth 1, integration 1 failed.\nOwn round-1 demo assertion updated: refreshSigningKeys now reports \"fresh\".\nDirty-tree feedback: runtime 276/0, docs-truth/auth gates and\nlint/typecheck --force green; native levels follow on this commit.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/39dd2985bf54b7a2ccc7019dc2f3516f5aef5d07","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T09:11:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/src/auth/auth.service.ts","apps/api-nestjs/src/events/realtime-session.service.ts","apps/api-nestjs/test/realtime.session-revalidation.test.ts","apps/web/src/hooks/useRealtime.ts","docs/realtime-session-revalidation.md","packages/auth/src/auth.test.ts","packages/auth/src/index.ts","packages/contracts/src/realtime-session.test.ts","packages/contracts/src/realtime-session.ts"]},{"id":"19989d2ec5c008128c1ed29e9cbf36cf11e538fd","message":"chore(evidence): session revalidation round 3 — seven native levels on clean 1a0a8bb\n\nReport-only successor of 1a0a8bb (verifier findings KC-SR-V2-F7/F8).\nRuntime 272/0 (floor 207), parity 28/0, UI 5/5, DR 11 tables, containers,\ndeployment 13 steps, production acceptance 14 steps all exit 0; pnpm check\nexit 0 with 0 stale / 0 failed; lint+typecheck --force exit 0. Image levels\nused a zero-byte npm config (no credentials) and the local BuildKit cache.\nReceipt: reports/session-revalidation.latest.json (round 3; rounds 1-2 kept).\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/19989d2ec5c008128c1ed29e9cbf36cf11e538fd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T08:29:03-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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-kit.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-acceptance.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/session-revalidation.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"a4f30da58c8016b72afc8fe44d54723abd5266c0","message":"chore(evidence): rebind seven native levels to docs-only commit 6ab5636 (KC-SR-V4-F10)\n\nThe doc change in 6ab5636 is a provenance input and evidence is inherited\nonly across report-only commits, so pnpm check went red with 7 stale\nreports. Reran on clean 6ab5636: runtime 276/0, parity 28/0, UI 5/5,\nDR 11 tables, containers, deployment 13 steps, production acceptance 14\nsteps all exit 0; pnpm check exit 0 (0 stale / 0 failed); lint+typecheck\n--force exit 0. Image levels used a zero-byte npm config (no credentials)\nand the local BuildKit cache. No source changed versus 39dd298.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/a4f30da58c8016b72afc8fe44d54723abd5266c0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-28T09:59:08-07:00","added":[],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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-kit.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-acceptance.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/session-revalidation.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.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":false,"fork":false,"template":false,"mirror":false,"size":2799,"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-10-28T09:16:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1793207226
|
1793207317
|
0
|
1793207225
|
1793207318
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26699
|
feat(eios): 入口读端口第四批,dashboard 的 66 处跨组读改经端口
|
160
|
5
|
ci.yml
|
11
|
5
|
0
|
refs/heads/main
|
fd8a34a77318843de7ee267e319287effc91f0ea
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7f8bee552b064a0f56dc500f9fa3487f698a7c0a","after":"fd8a34a77318843de7ee267e319287effc91f0ea","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/7f8bee552b064a0f56dc500f9fa3487f698a7c0a...fd8a34a77318843de7ee267e319287effc91f0ea","commits":[{"id":"fd8a34a77318843de7ee267e319287effc91f0ea","message":"feat(eios): 入口读端口第四批,dashboard 的 66 处跨组读改经端口\n\n- 新增 A03(服务工单 / SLA 时钟)、D-COM(SKU)、M-IDN(用户)三组端口,\n A01 / A02 / D-CUS 补齐看板所需方法;端口共 10 组 61 个方法\n- 时间窗口加半开上界 lt;新增金额方法以十进制字符串(Decimal.toString)\n 返回,调用方仍用 money-wire 做 Decimal 全链路运算\n- dashboard.service 的统计、漏斗、SLA、趋势、利润、排行、动态、待办、\n 个人 / 团队与 omni-roi 的订单 / 线索读取改调端口;两文件不再有 Prisma 调用\n- getActivities 的 crm_activities 运行时补列随读取移入 A01 本地实现\n- 棘轮下调 93 → 27(余下全在 store-performance)\n- permissions 重生成:04 主线已为 40 个资源(CHG-069 新增),复用 / 新增\n 计数不变;改造计划 P2-07 同步\n\n核对:新测试只断言 where / take / orderBy 与输出,在改造前的两个服务上\n也全部通过;端口「未装配拒绝」用例改为遍历全部方法并核对方法表一致。\n门禁:type-check 0 错误;lint 0 错误、3183 条警告;单测 9028/9044\n(17 项基线失败,新增 18 项全过);inventory all --check 一致。\n文档:lanes/entry-read.md、README、改造计划 P5.2 入口 K 行 / P1 状态 / P2-07、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/fd8a34a77318843de7ee267e319287effc91f0ea","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-31T00:35:51-07:00","added":["backend/src/modules/dashboard/dashboard.entry-read.test.ts","backend/src/modules/dashboard/omni-roi.entry-read.test.ts"],"removed":[],"modified":[".env.eios.example","backend/src/config/eios/entry-read.test.ts","backend/src/config/eios/entry-read.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/dashboard/omni-roi.service.ts","backend/src/shared/entry-read/entry-read.local.ts","backend/src/shared/entry-read/entry-read.port.ts","backend/src/shared/entry-read/entry-read.test.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/cross-app-access.md","docs/eios-transformation/inventory/data/entry-read.json","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/entry-read.md","docs/eios-transformation/改造计划-2026-10-28.md"]}],"total_commits":0,"head_commit":{"id":"fd8a34a77318843de7ee267e319287effc91f0ea","message":"feat(eios): 入口读端口第四批,dashboard 的 66 处跨组读改经端口\n\n- 新增 A03(服务工单 / SLA 时钟)、D-COM(SKU)、M-IDN(用户)三组端口,\n A01 / A02 / D-CUS 补齐看板所需方法;端口共 10 组 61 个方法\n- 时间窗口加半开上界 lt;新增金额方法以十进制字符串(Decimal.toString)\n 返回,调用方仍用 money-wire 做 Decimal 全链路运算\n- dashboard.service 的统计、漏斗、SLA、趋势、利润、排行、动态、待办、\n 个人 / 团队与 omni-roi 的订单 / 线索读取改调端口;两文件不再有 Prisma 调用\n- getActivities 的 crm_activities 运行时补列随读取移入 A01 本地实现\n- 棘轮下调 93 → 27(余下全在 store-performance)\n- permissions 重生成:04 主线已为 40 个资源(CHG-069 新增),复用 / 新增\n 计数不变;改造计划 P2-07 同步\n\n核对:新测试只断言 where / take / orderBy 与输出,在改造前的两个服务上\n也全部通过;端口「未装配拒绝」用例改为遍历全部方法并核对方法表一致。\n门禁:type-check 0 错误;lint 0 错误、3183 条警告;单测 9028/9044\n(17 项基线失败,新增 18 项全过);inventory all --check 一致。\n文档:lanes/entry-read.md、README、改造计划 P5.2 入口 K 行 / P1 状态 / P2-07、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/fd8a34a77318843de7ee267e319287effc91f0ea","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-31T00:35:51-07:00","added":["backend/src/modules/dashboard/dashboard.entry-read.test.ts","backend/src/modules/dashboard/omni-roi.entry-read.test.ts"],"removed":[],"modified":[".env.eios.example","backend/src/config/eios/entry-read.test.ts","backend/src/config/eios/entry-read.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/dashboard/omni-roi.service.ts","backend/src/shared/entry-read/entry-read.local.ts","backend/src/shared/entry-read/entry-read.port.ts","backend/src/shared/entry-read/entry-read.test.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/cross-app-access.md","docs/eios-transformation/inventory/data/entry-read.json","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/entry-read.md","docs/eios-transformation/改造计划-2026-10-28.md"]},"repository":{"id":160,"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":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102878,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.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":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-31T12:06:36+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
|
20
|
1793432155
|
1793436468
|
0
|
1793432153
|
1793436468
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
17942
|
build: 完善Release版本构建配置
|
13
|
5
|
codeql-analysis.yml
|
12
|
-2
|
46
|
refs/heads/main
|
6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","compare_url":"https://gitea.g-hi.com/luoanwu/printer-server/compare/c254333cc45c082124d3d4fd01a4a3fc3fda7296...6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","commits":[{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},{"id":"b44b6415c67f54b2d1bcd688757fec2aaf1686f4","message":"fix: 修复PrintJob状态转换和数据库初始化崩溃问题\n\n1. PrinterDatabase.optimizeDatabase()\n - 将PRAGMA命令从execSQL改为query()方法\n - Room的SupportSQLiteDatabase对PRAGMA有限制\n - 添加异常处理确保数据库优化失败不影响启动\n\n2. PrinterService.onTaskFailed()\n - 添加状态检查逻辑,根据当前状态决定处理方式\n - FAILED状态:执行重试逻辑\n - PRINTING状态:先转换为FAILED再重试\n - 其他状态:直接重新调度执行\n\n3. PrintingApplicationService.executePrintJob()\n - 新增prepareJobForPrinting()确保状态正确转换\n - CREATED -\u003e QUEUED -\u003e PRINTING 状态流转\n - 新增handleJobFailure()安全处理失败\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/b44b6415c67f54b2d1bcd688757fec2aaf1686f4","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:54:24+08:00","added":[],"removed":[],"modified":["printer-redesign/application/service/PrinterService.java","printer-redesign/application/service/PrintingApplicationService.java","printer-redesign/infrastructure/database/PrinterDatabase.java","printer-redesign/scripts/build-release.sh"]},{"id":"d2d0385e8b5c1b06d7e59f108c6e9f845905c841","message":"fix: 修复编译错误并成功构建APK\n\n修复内容:\n- PrintTestActivity: 重写以修复API兼容性问题\n - observeEnabled()替代getEnabledPrinters()\n - 移除PrinterApplication依赖\n - 修复Priority/PrintType方法调用\n - 修复rawContent类型(String→byte[])\n- OrderFormatterService: 补充shouldBeep()方法闭合括号\n- TemplateRenderEngine: 修复方法调用\n - getSummary()→toString()\n - setFontSize()→setSize()\n - setWidth()→setLength()\n- PrintJobDao: 添加getActiveJobs()方法\n- QueueViewModel: 修复RxJava包装和cancel()参数\n- MainViewModel: 移除totalCount()调用\n- PrinterConfigDTO: 修复fromEntity()方法兼容性\n\n构建结果:APK 7.8MB\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/d2d0385e8b5c1b06d7e59f108c6e9f845905c841","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:38:29+08:00","added":[],"removed":[],"modified":["printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/domain/service/OrderFormatterService.java","printer-redesign/infrastructure/database/dao/PrintJobDao.java","printer-redesign/infrastructure/device/EscPosExecutor.java","printer-redesign/infrastructure/device/PrinterCommandExecutor.java","printer-redesign/infrastructure/device/TsplExecutor.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java"]},{"id":"f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","message":"feat: 增强应用架构与测试功能\n\n- 新增 CQRS 模式支持 (command/query/dto)\n- 添加 PrintTestActivity 测试界面\n- 新增 MainViewModel 和 QueueViewModel\n- 完善 build.gradle 配置与签名设置\n- 优化 MainActivity 功能与交互\n- 增强 PrintTaskAdapter 适配逻辑\n- 添加 proguard 混淆规则和构建脚本\n- 更新 UI 资源文件\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/f8bc615170b4f10a4c9e1ec5261191268d6b7f0a","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:28:57+08:00","added":["printer-redesign/application/command/ConfigurePrinterCommand.java","printer-redesign/application/command/RecoverDeadLetterCommand.java","printer-redesign/application/command/SubmitPrintJobCommand.java","printer-redesign/application/dto/PrintJobDTO.java","printer-redesign/application/dto/PrinterConfigDTO.java","printer-redesign/application/dto/QueueStatsDTO.java","printer-redesign/application/query/GetPrintJobsQuery.java","printer-redesign/application/query/GetQueueStatsQuery.java","printer-redesign/keystore.properties.template","printer-redesign/presentation/PrintTestActivity.java","printer-redesign/presentation/viewmodel/MainViewModel.java","printer-redesign/presentation/viewmodel/QueueViewModel.java","printer-redesign/proguard-rules.pro","printer-redesign/scripts/build-release.sh","printer-redesign/scripts/generate-keystore.sh","printer-redesign/src/main/res/drawable/ic_help.xml","printer-redesign/src/main/res/layout/activity_print_test.xml"],"removed":[],"modified":[".gitignore","printer-redesign/build.gradle","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/migration/BillStyleAdapter.java","printer-redesign/migration/PrintTaskAdapter.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/values/colors.xml","printer-redesign/src/main/res/values/strings.xml"]},{"id":"4052be41183584c726cd84d2f9d9cb5c371da83b","message":"feat: 完善模板引擎系统与UI优化\n\n模板引擎增强:\n- 新增 ExpressionEvaluator 表达式求值器,支持复杂条件判断\n- 新增 FormatPipeline 格式化管道,支持货币/日期/截断等格式化\n- 新增 ContextDataEnhanced 增强上下文,支持嵌套路径和管道\n- 新增 GroupElement 分组元素,支持条件渲染和循环渲染\n- 新增 TableElementEnhanced 增强表格,支持分组/小计/合计\n- 新增 ImageElement 图片元素,支持URL/Base64/本地文件\n- 新增 TemplateValidator 模板验证器\n- 新增 TemplateRenderEngineEnhanced 增强渲染引擎\n- 完善 TemplateManager 模板管理器\n\nUI和功能优化:\n- 新增 HealthCheckActivity 健康检查详情页\n- 新增 LogViewerActivity 日志查看页面\n- 新增 QueueDetailActivity 队列详情页面\n- 优化 MainActivity 界面布局和状态显示\n- 精简 SystemPrintDriver 代码结构\n- 新增相关资源文件和菜单\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/4052be41183584c726cd84d2f9d9cb5c371da83b","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-20T23:12:50+08:00","added":["printer-redesign/application/engine/TemplateRenderEngineEnhanced.java","printer-redesign/application/engine/TemplateValidator.java","printer-redesign/docs/TEMPLATE_ENHANCEMENT_GUIDE.md","printer-redesign/domain/expression/ExpressionEvaluator.java","printer-redesign/domain/service/formatter/StrategyRegistry.java","printer-redesign/domain/template/ContextDataEnhanced.java","printer-redesign/domain/template/CutElement.java","printer-redesign/domain/template/FormatPipeline.java","printer-redesign/domain/template/GroupElement.java","printer-redesign/domain/template/ImageElement.java","printer-redesign/domain/template/QRCodeElement.java","printer-redesign/domain/template/SpacerElement.java","printer-redesign/domain/template/TableElementEnhanced.java","printer-redesign/infrastructure/device/utils/BitmapToEscPosUtil.java","printer-redesign/presentation/HealthCheckActivity.java","printer-redesign/presentation/LogViewerActivity.java","printer-redesign/presentation/QueueDetailActivity.java","printer-redesign/src/main/res/drawable/bg_error_message.xml","printer-redesign/src/main/res/drawable/bg_status_chip.xml","printer-redesign/src/main/res/drawable/ic_check_circle.xml","printer-redesign/src/main/res/drawable/ic_error.xml","printer-redesign/src/main/res/drawable/ic_print_type.xml","printer-redesign/src/main/res/drawable/ic_recover.xml","printer-redesign/src/main/res/drawable/ic_warning.xml","printer-redesign/src/main/res/layout/activity_health_check.xml","printer-redesign/src/main/res/layout/activity_log_viewer.xml","printer-redesign/src/main/res/layout/activity_queue_detail.xml","printer-redesign/src/main/res/layout/item_health_component.xml","printer-redesign/src/main/res/layout/item_print_log.xml","printer-redesign/src/main/res/layout/item_queue_job.xml","printer-redesign/src/main/res/menu/menu_log_viewer.xml","printer-redesign/src/main/res/menu/menu_queue_detail.xml"],"removed":[],"modified":["ARCHITECTURE_COMPARISON.md","CLAUDE.md","printer-redesign/ARCHITECTURE.md","printer-redesign/application/engine/TemplateManager.java","printer-redesign/application/engine/TemplateRenderEngine.java","printer-redesign/build.gradle","printer-redesign/domain/template/BarcodeElement.java","printer-redesign/domain/template/BaseElement.java","printer-redesign/domain/template/ContextData.java","printer-redesign/domain/template/LineElement.java","printer-redesign/domain/template/PrintElement.java","printer-redesign/domain/template/TableElement.java","printer-redesign/domain/template/TextElement.java","printer-redesign/infrastructure/device/driver/SystemPrintDriver.java","printer-redesign/presentation/MainActivity.java","printer-redesign/src/main/AndroidManifest.xml","printer-redesign/src/main/res/layout/activity_main.xml","printer-redesign/src/main/res/values/colors.xml"]}],"total_commits":0,"head_commit":{"id":"6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","message":"build: 完善Release版本构建配置\n\n变更内容:\n- 优化版本管理: 使用语义化版本号 (versionMajor.versionMinor.versionPatch)\n- 修复签名配置路径: 使用相对路径读取keystore.properties\n- 添加V1+V2签名: 兼容Android 7+设备\n- 添加getBuildNumber()函数: 基于日期生成构建号\n- 重构测试目录: 迁移至标准src/test/java结构\n\n构建优化效果:\n- Debug版本: 8.1 MB\n- Release版本: 4.1 MB (优化48%)\n- ProGuard混淆 + 资源压缩生效\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/printer-server/commit/6c80c00976d1c5ac4aaa5f76d10cf1e7b4f59448","author":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"committer":{"name":"hi.laoluo","email":"hi.laoluo@hilaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-01-21T00:05:33+08:00","added":["printer-redesign/src/test/java/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/src/test/java/com/juhai/printer/domain/service/PrinterSelectorTest.java","printer-redesign/src/test/java/com/juhai/printer/test/AllTestsRunner.java","printer-redesign/src/test/java/com/juhai/printer/test/BillDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/OrderDomainTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintApiTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintFunctionTest.java","printer-redesign/src/test/java/com/juhai/printer/test/PrintReliabilityTest.java","printer-redesign/src/test/java/com/juhai/printer/test/TemplateEngineTest.java","printer-redesign/src/test/java/com/juhai/printer/test/WebSocketCommunicationTest.java"],"removed":["printer-redesign/test/AllTestsRunner.java","printer-redesign/test/BillDomainTest.java","printer-redesign/test/OrderDomainTest.java","printer-redesign/test/PrintApiTest.java","printer-redesign/test/PrintFunctionTest.java","printer-redesign/test/PrintReliabilityTest.java","printer-redesign/test/TemplateEngineTest.java","printer-redesign/test/WebSocketCommunicationTest.java","printer-redesign/test/com/juhai/printer/application/service/PrintTaskProcessorTest.java","printer-redesign/test/com/juhai/printer/domain/service/OrderFormatterServiceTest.java","printer-redesign/test/com/juhai/printer/domain/service/PrinterSelectorTest.java"],"modified":["printer-redesign/build.gradle"]},"repository":{"id":13,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/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":"printer-server","full_name":"luoanwu/printer-server","description":"KTV打印服务器 - DDD架构重构","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server/languages","html_url":"https://gitea.g-hi.com/luoanwu/printer-server","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/printer-server","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/printer-server.git","clone_url":"https://gitea.g-hi.com/luoanwu/printer-server.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-28T11:06:40+08:00","updated_at":"2026-02-28T11:06:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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"}}...
|
schedule
|
2
|
4
|
1777258852
|
1777258943
|
0
|
1777258850
|
1777258943
|
|
|
0
|
Edit
Delete
|
|
23423
|
C68:未接线主对齐器 fail-closed——修复 STARS/mms_fa 挂名造假调度陷阱
|
60
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
d4524b485b6859714b59ff6e265c6d3cc79941c6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"226033fd7f9e6266a679a585a26dfb935d56b1e2","after":"d4524b485b6859714b59ff6e265c6d3cc79941c6","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/226033fd7f9e6266a679a585a26dfb935d56b1e2...d4524b485b6859714b59ff6e265c6d3cc79941c6","commits":[{"id":"d4524b485b6859714b59ff6e265c6d3cc79941c6","message":"C68:未接线主对齐器 fail-closed——修复 STARS/mms_fa 挂名造假调度陷阱\n\n调度层曾对无 local_align 生产者的主对齐器(STARS/mms_fa)静默回退\nHubertFA CLI:产物挂着所选模型的名字实际是 HubertFA 对齐的。四层收口:\n- contracts:LOCAL_ALIGN_WIRED_MAIN_ALIGNER_IDS 单源 + hasWiredLocalAlignProducer\n + 契约测试锁(默认主对齐器必须已接线)\n- 执行器:resolvePipelineCommand 对未接线 id 抛 SPAWN_FAILED(桩注入不受影响)\n- 双后端:assertPipelineReady 先于状态判责返回 409\n MAIN_ALIGNER_PRODUCER_NOT_WIRED(逐字节对等 + 各 +1 判责用例)\n- UI:LoadModal 未接线模型禁选 + 琥珀徽标「生产者未接线 · 仅 CLI 研究直跑」\n (浏览器实测研究环境 5 模型清单灰显禁选)\n证据:check:runtime 324/324(floor 320→324)、check:ui 34/34、pnpm check 全绿\n\n本提交同时包含并行会话的 C65-C67 工作树改动(SOFA 校验洗绿修复/KAS 校准\n判责治理/HubertFA 直对齐路由)与 alignment-quality 新门禁。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/d4524b485b6859714b59ff6e265c6d3cc79941c6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T04:50:36-07:00","added":["reports/alignment-quality-governance.latest.json","reports/model-evidence/qingtian-human-kas-calibration.artifact.json","reports/model-evidence/qingtian-human-kas-calibration.latest.json","reports/model-evidence/qingtian-human-kas-calibration.report.html","scripts/check-alignment-quality-governance.mjs","workers/pipeline/analyze_kas_calibration.py","workers/pipeline/build_kas_calibration_artifact.py"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/alignment/alignment-pipeline.ts","apps/api-fastify/src/modules/alignment/alignment-scoring.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/test/alignment.pipeline.test.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/test/alignment.pipeline.test.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","apps/web/e2e/lyra-studio.spec.ts","apps/web/src/features/lyra-studio/components/modals/LoadModal.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/runMapping.ts","docs/domain/lyric-alignment-production-blueprint.md","package.json","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","reports/alignment-models.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-project-truth.mjs","scripts/governance-report.mjs","workers/pipeline/run_pipeline.py"]}],"total_commits":0,"head_commit":{"id":"d4524b485b6859714b59ff6e265c6d3cc79941c6","message":"C68:未接线主对齐器 fail-closed——修复 STARS/mms_fa 挂名造假调度陷阱\n\n调度层曾对无 local_align 生产者的主对齐器(STARS/mms_fa)静默回退\nHubertFA CLI:产物挂着所选模型的名字实际是 HubertFA 对齐的。四层收口:\n- contracts:LOCAL_ALIGN_WIRED_MAIN_ALIGNER_IDS 单源 + hasWiredLocalAlignProducer\n + 契约测试锁(默认主对齐器必须已接线)\n- 执行器:resolvePipelineCommand 对未接线 id 抛 SPAWN_FAILED(桩注入不受影响)\n- 双后端:assertPipelineReady 先于状态判责返回 409\n MAIN_ALIGNER_PRODUCER_NOT_WIRED(逐字节对等 + 各 +1 判责用例)\n- UI:LoadModal 未接线模型禁选 + 琥珀徽标「生产者未接线 · 仅 CLI 研究直跑」\n (浏览器实测研究环境 5 模型清单灰显禁选)\n证据:check:runtime 324/324(floor 320→324)、check:ui 34/34、pnpm check 全绿\n\n本提交同时包含并行会话的 C65-C67 工作树改动(SOFA 校验洗绿修复/KAS 校准\n判责治理/HubertFA 直对齐路由)与 alignment-quality 新门禁。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/d4524b485b6859714b59ff6e265c6d3cc79941c6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T04:50:36-07:00","added":["reports/alignment-quality-governance.latest.json","reports/model-evidence/qingtian-human-kas-calibration.artifact.json","reports/model-evidence/qingtian-human-kas-calibration.latest.json","reports/model-evidence/qingtian-human-kas-calibration.report.html","scripts/check-alignment-quality-governance.mjs","workers/pipeline/analyze_kas_calibration.py","workers/pipeline/build_kas_calibration_artifact.py"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/alignment/alignment-pipeline.ts","apps/api-fastify/src/modules/alignment/alignment-scoring.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/test/alignment.pipeline.test.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/test/alignment.pipeline.test.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","apps/web/e2e/lyra-studio.spec.ts","apps/web/src/features/lyra-studio/components/modals/LoadModal.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/runMapping.ts","docs/domain/lyric-alignment-production-blueprint.md","package.json","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","reports/alignment-models.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-project-truth.mjs","scripts/governance-report.mjs","workers/pipeline/run_pipeline.py"]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":4063,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T18:48: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
|
6
|
1784029847
|
1784029937
|
0
|
1784029846
|
1784029937
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23474
|
接入阿里模型
|
51
|
5
|
ci.yml
|
12
|
8
|
0
|
refs/heads/main
|
88fb2aa68377d24865992a812dc9dfb5f200569c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d230fd6dfb8fdba731ca1356263d1ec584d734be","after":"88fb2aa68377d24865992a812dc9dfb5f200569c","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/d230fd6dfb8fdba731ca1356263d1ec584d734be...88fb2aa68377d24865992a812dc9dfb5f200569c","commits":[{"id":"88fb2aa68377d24865992a812dc9dfb5f200569c","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/88fb2aa68377d24865992a812dc9dfb5f200569c","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T17:58:13+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html"]}],"total_commits":0,"head_commit":{"id":"88fb2aa68377d24865992a812dc9dfb5f200569c","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/88fb2aa68377d24865992a812dc9dfb5f200569c","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T17:58:13+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html"]},"repository":{"id":51,"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":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87503,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.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-07-02T16:02:07+08:00","updated_at":"2026-07-31T17:31:55+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":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"},"sender":{"id":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"}}...
|
push
|
2
|
8
|
1785491899
|
1785493049
|
0
|
1785491898
|
1785493049
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23511
|
fix(governance): mobile export runner 自含 contracts fix(governance): mobile export runner 自含 contracts 构建——C69 的 mobile 化身在首轮合并推送 CI 实锤...
|
76
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
28ea42cca5364bd425358f803436ae5c8f9bc687
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"55b9c2a0af78b6998bac3614dedc7187e37057ea","after":"28ea42cca5364bd425358f803436ae5c8f9bc687","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/55b9c2a0af78b6998bac3614dedc7187e37057ea...28ea42cca5364bd425358f803436ae5c8f9bc687","commits":[{"id":"28ea42cca5364bd425358f803436ae5c8f9bc687","message":"fix(governance): mobile export runner 自含 contracts 构建——C69 的 mobile 化身在首轮合并推送 CI 实锤\n\nrun 32580980619 静态 job 红判责:check-mobile-export 的正向静态导出直跑 next build,\nweb 运行时入口依赖 @repo/contracts dist;干净 checkout 无残留构建产物即秒崩\n(violations 1 / staticFiles 0 / synced 0),本机因开发期残留 dist 恒绿——与 C69\n「本机恒绿 ≠ 干净环境能跑」同构,是该教训的第三次现身(runtime → UI → mobile)。\n\n- check-mobile-export.mjs:正向导出前自含 `pnpm --filter @repo/contracts build` +\n dist/index.js 存在性断言(M9,防 tsbuildinfo 静默空转),与两验收 runner 同款\n- check-fork-readiness.mjs:F8 绊网从两 runner 扩至三 runner(含 mobile export);\n 负向已验证(拆掉 mobile 构建步 → F8 精确 1 红 → 恢复复绿)\n- CLAUDE.md/AGENTS.md:C69 行与 G14 ② 叙事回灌三 runner 口径与本次实锤\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/28ea42cca5364bd425358f803436ae5c8f9bc687","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:19:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/check-fork-readiness.mjs","scripts/check-mobile-export.mjs"]}],"total_commits":0,"head_commit":{"id":"28ea42cca5364bd425358f803436ae5c8f9bc687","message":"fix(governance): mobile export runner 自含 contracts 构建——C69 的 mobile 化身在首轮合并推送 CI 实锤\n\nrun 32580980619 静态 job 红判责:check-mobile-export 的正向静态导出直跑 next build,\nweb 运行时入口依赖 @repo/contracts dist;干净 checkout 无残留构建产物即秒崩\n(violations 1 / staticFiles 0 / synced 0),本机因开发期残留 dist 恒绿——与 C69\n「本机恒绿 ≠ 干净环境能跑」同构,是该教训的第三次现身(runtime → UI → mobile)。\n\n- check-mobile-export.mjs:正向导出前自含 `pnpm --filter @repo/contracts build` +\n dist/index.js 存在性断言(M9,防 tsbuildinfo 静默空转),与两验收 runner 同款\n- check-fork-readiness.mjs:F8 绊网从两 runner 扩至三 runner(含 mobile export);\n 负向已验证(拆掉 mobile 构建步 → F8 精确 1 红 → 恢复复绿)\n- CLAUDE.md/AGENTS.md:C69 行与 G14 ② 叙事回灌三 runner 口径与本次实锤\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/28ea42cca5364bd425358f803436ae5c8f9bc687","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:19:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/check-fork-readiness.mjs","scripts/check-mobile-export.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":51118,"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":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-08-20T14:46:28+08:00","updated_at":"2026-08-22T23:13:10+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
|
5
|
1787411988
|
1787412510
|
0
|
1787411987
|
1787412510
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23536
|
chore(reports): 刷新 OS 产品验收证据
|
54
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
53991090b821b76dff11eee3a2e92806ed3ab173
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9513a941af257b779d7d2c095dff71172edcefaf","after":"53991090b821b76dff11eee3a2e92806ed3ab173","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/9513a941af257b779d7d2c095dff71172edcefaf...53991090b821b76dff11eee3a2e92806ed3ab173","commits":[{"id":"53991090b821b76dff11eee3a2e92806ed3ab173","message":"chore(reports): 刷新 OS 产品验收证据\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/53991090b821b76dff11eee3a2e92806ed3ab173","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-26T16:22:27-07:00","added":["reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"removed":[],"modified":["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.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":"71e6ef64d1ee41cb39ffae15a73f049c42fb82b1","message":"feat(os): 增加可装载基础框架产品\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/71e6ef64d1ee41cb39ffae15a73f049c42fb82b1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-26T16:20:54-07:00","added":[".agents/skills/derived-project-framework-sync/SKILL.md",".agents/skills/derived-project-framework-sync/assets/framework-migration.template.md",".agents/skills/derived-project-framework-sync/references/experience-catalog.md",".agents/skills/derived-project-framework-sync/references/migration-protocol.md",".agents/skills/derived-project-framework-sync/scripts/plan-migration.mjs",".agents/skills/derived-project-framework-sync/scripts/record-migration.mjs","docs/os-product-extension.md","kernel.products.json","products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","scripts/check-os-product-compat.mjs","scripts/check-os-product-runtime.mjs"],"removed":[],"modified":["CLAUDE.md","docs/README.md","docs/governance-experience.md","docs/migration-playbook.md","package.json","reports/baseline.json","scripts/check-fork-readiness.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"53991090b821b76dff11eee3a2e92806ed3ab173","message":"chore(reports): 刷新 OS 产品验收证据\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/53991090b821b76dff11eee3a2e92806ed3ab173","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-26T16:22:27-07:00","added":["reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"removed":[],"modified":["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.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":1408,"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":1,"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-08-19T23:53: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
|
1787787572
|
1787787593
|
0
|
1787787571
|
1787787593
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|