|
23397
|
fix(auth): enforce refresh token single-use
|
51
|
5
|
ci.yml
|
1
|
5
|
0
|
refs/heads/main
|
6c1f58f4c1c7dce5c443bbe14d34521de581cbf6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6c1f58f4c1c7dce5c443bbe14d34521de581cbf6","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/2ab8a33db6a5502c09b6b494d5e4d5ddf1e9379b...6c1f58f4c1c7dce5c443bbe14d34521de581cbf6","commits":[{"id":"6c1f58f4c1c7dce5c443bbe14d34521de581cbf6","message":"fix(auth): enforce refresh token single-use\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/6c1f58f4c1c7dce5c443bbe14d34521de581cbf6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T19:52:00-07:00","added":[],"removed":[],"modified":["server/src/modules/auth/service.ts"]},{"id":"757fc19dca988dd04267e33145f1856f840992ab","message":"docs: 项目进展分析(完成/未完成/待优化/待修BUG) + README 分析文档索引\n\n进展分析:六步闭环通4.5步、automation 4孤岛未接、真AI/平台/支付均Mock、\n安全运维层空白;确认真BUG:refresh竞态无事务、revokeAll死代码损坏、JWT min(8)。\nREADME 加 2026-07-01 四份分析文档索引(治理/技术体检/进展/商业)交叉导航。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/757fc19dca988dd04267e33145f1856f840992ab","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T17:40:12-07:00","added":["项目进展分析_2026-07-01.md"],"removed":[],"modified":["README.md"]},{"id":"0e5d32056f62c86524f780fc97e189f276ea9e5d","message":"fix(caliber): 前后端字段口径全量收口 — 平台大写泄漏×2 + 手写/100×6 清零,棘轮门禁上线\n\n后端:metrics getPlatforms / merchant 概览 platform 出口补 toId() 小写(前端 PLATFORMS 查表不再渲染空);\ngroupbuy/audit/booking/platforms 手写 Cents/100 统一走 lib/money.ts centsToYuan。\n前端:新增 caliber.js(window.Caliber:centsToYuan/fmtCents/platformId,先于 screens 加载);\nscreens-member 私有 yuan()、screens-more OCR /100、screens-data ×2 toLowerCase 兜底全部收口。\n门禁:scripts/field-caliber-audit.mjs 四类不变式(金额命名诚实/禁手写除法/平台 toId 出口/端点双向对账)\n棘轮基线全 0,挂进前端 npm test 链(CI frontend-static 自动执行)。\n文档:治理经验库 G-010/G-011;CLAUDE.md 红线段同步;分析报告附第二轮收口记录。\n\n验证:tsc 0 错 · 单测 36/36 · 全量集成 235/235 绿 · 前端静态+治理+口径审计+AOT 构建全绿。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/0e5d32056f62c86524f780fc97e189f276ea9e5d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T17:02:53-07:00","added":["scripts/field-caliber-audit.mjs","scripts/field-caliber.baseline.json","团购本地生活AI运营App/caliber.js"],"removed":[],"modified":["CLAUDE.md","server/src/modules/audit/service.ts","server/src/modules/booking/service.ts","server/src/modules/groupbuy/service.ts","server/src/modules/merchant/service.ts","server/src/modules/metrics/service.ts","server/src/modules/platforms/service.ts","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screens-data.jsx","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-more.jsx","治理经验库.md","项目深挖分析与完善建议_2026-07-01.md"]},{"id":"46eb4e5d004553fff2c36ce1ff2f8e923f904d87","message":"fix(test): r16/r22 时间炸弹拆除 — startAt 写死 2026-06-05 致凭证 6/12 起全体过期翻红\n\n凭证 validUntil = startAt + 7 天,固定日期写下当天即注定翻红;改相对 Date.now() 生成(futureAt helper)。\n主分支集成门禁已红近三周(停摆连带伤害),非近期改动引入。教训沉淀治理经验库 G-011。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/46eb4e5d004553fff2c36ce1ff2f8e923f904d87","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T17:02:38-07:00","added":[],"removed":[],"modified":["server/test/r16-booking.test.ts","server/test/r22-booking-settle.test.ts"]},{"id":"f9bf497a5ea0da0da007d09b8370a5f4bf898f83","message":"docs(governance): 2026-07-01 深挖对账收口 — 数字机器对账 + 判定刷新 + 经验库补全\n\n- 新增 scripts/docs-metrics.mjs(G-006 落地):端点153/模块32/model64/迁移22/用例235/屏40,README+CLAUDE.md 全量对齐并标快照 SHA\n- README 归因口径纠偏:三处「置信区间」→「启发式参考区间」(对齐 CLAUDE.md 诚实边界红线)\n- 开发计划 v1.4 状态对齐块置顶;v1.1 过期误判就地标注;过时「未提交」状态更新\n- 阻塞点分析 v1.3:B1-B6 刷新 + 补 B7/B8/B9;最大发现=停摆4周,新排序置顶「重启节奏」\n- 治理经验库补 G-006~G-009 + G-005 复发记录\n- 新增深挖分析报告(矛盾裁定/缺口分类/owner 决策清单)\n\n验证:server test:unit 36/36 绿;screen-governance verify 40 屏绿。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/f9bf497a5ea0da0da007d09b8370a5f4bf898f83","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T16:39:40-07:00","added":["scripts/docs-metrics.mjs","项目深挖分析与完善建议_2026-07-01.md"],"removed":[],"modified":["CLAUDE.md","README.md","开发计划.md","治理经验库.md","项目阻塞点分析.md"]}],"total_commits":0,"head_commit":{"id":"6c1f58f4c1c7dce5c443bbe14d34521de581cbf6","message":"fix(auth): enforce refresh token single-use\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/6c1f58f4c1c7dce5c443bbe14d34521de581cbf6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T19:52:00-07:00","added":[],"removed":[],"modified":["server/src/modules/auth/service.ts"]},"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":true,"fork":false,"template":false,"mirror":false,"size":27,"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-02T16:02: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":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
|
1782979376
|
1782979588
|
0
|
1782979375
|
1782979588
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23398
|
chore(models): track model weights with lfs
|
50
|
5
|
lyra-production-governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/compare/dc908e7f6ad95ec3d1714681645cb710e622941b...87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","commits":[{"id":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","message":"chore(models): track model weights with lfs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T01:00:28-07:00","added":[".gitattributes","models/BTC-ISMIR19/test/btc_model.pt","models/BTC-ISMIR19/test/btc_model_large_voca.pt","models/DeepChorus/model/Deepchorus_2021.h5","models/EDGE/checkpoint.pt","models/SongFormer/model.safetensors","models/audio-separator/model_bs_roformer_ep_317_sdr_12.9755.ckpt","models/hf-home/models--OpenMuQ--MuQ-MuLan-large/blobs/d42ae3f7cb9b66759ee0089ddc70e2f28b130c2d8ba621457358272d32dd0444","models/larsnet/pretrained_larsnet_models/cymbals/pretrained_cymbals_unet.pth","models/larsnet/pretrained_larsnet_models/hihat/pretrained_hihat_unet.pth","models/larsnet/pretrained_larsnet_models/kick/pretrained_kick_unet.pth","models/larsnet/pretrained_larsnet_models/snare/pretrained_snare_unet.pth","models/larsnet/pretrained_larsnet_models/toms/pretrained_toms_unet.pth","models/singing-alignment/hubertfa/1218_hfa_model_new_dict/model.onnx","models/torch-home/hub/checkpoints/955717e8-8726e21a.th","models/torch-home/hub/checkpoints/beat_this-final0.ckpt"],"removed":[],"modified":[]},{"id":"b7aa37d866f7d33bedbd680cabc5cfd0038e359e","message":"feat(lyra): harden validation queue acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/b7aa37d866f7d33bedbd680cabc5cfd0038e359e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T00:37:29-07:00","added":["apps/api-fastify/src/modules/alignment/alignment-validation.ts","apps/api-fastify/test/alignment-validation.test.ts","apps/api-fastify/test/cors.test.ts","packages/contracts/src/alignment-validation.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/plugins/alignment-queue.ts","apps/api-fastify/test/alignment-queue.test.ts","apps/web/src/components/lyra/LyraWorkstation.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/lyra-data.ts","packages/contracts/src/alignment-run.ts","packages/contracts/src/alignment.ts","packages/contracts/src/index.ts","reports/analysis-artifacts.latest.json","reports/deployment-readiness.latest.json","reports/experience-enhancements.latest.json","reports/frontend-contracts-sync.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/http-ui-acceptance.latest.json","reports/lyra-domain.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/muq-mulan-artifacts.latest.json","reports/naming.latest.json","reports/production-readiness.latest.json","reports/project-gap-analysis.latest.md","reports/project-independence.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-deployment.latest.json","reports/stem-assets.latest.json","reports/ui-click-acceptance.latest.json","reports/validation-source.latest.json","reports/vtc.latest.json","scripts/check-http-ui-acceptance.mjs","scripts/check-service-deployment.mjs","scripts/check-ui-click-acceptance.mjs","scripts/start-independent-stack.mjs","曲库/Codex-点击导入验收/song.manifest.json","曲库/Codex-点击导入验收/stem-comparison.latest.json","曲库/Codex-点击导入验收/拆解音轨/bs_polarformer/stem-manifest.json","曲库/Codex-点击导入验收/拆解音轨/bs_roformer/stem-manifest.json","曲库/Codex-点击导入验收/拆解音轨/htdemucs/stem-manifest.json","曲库/周杰伦-晴天(mtv)/song.manifest.json","曲库/周杰伦-晴天(mtv)/stem-comparison.latest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/bs_polarformer/stem-manifest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/bs_roformer/stem-manifest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/htdemucs/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/song.manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/stem-comparison.latest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/bs_polarformer/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/bs_roformer/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/htdemucs/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/song.manifest.json","曲库/魏翔--时差(音乐缘计划)/stem-comparison.latest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/bs_polarformer/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/bs_roformer/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/htdemucs/stem-manifest.json"]},{"id":"d650b66cb8913288b66b796d00c13751802588e3","message":"chore: media-sync lag 平滑 + 门禁/文档/报告快照同步(工作树聚合提交)\n\n非本轮 Track A/B 作者的并发在制改动 + 报告/曲库 manifest churn,聚合提交上传:\n- LyraWorkstation.tsx / lyra-data.ts:媒体同步 lag 平滑(normalizeMediaSyncLagMs +\n 节流 + 仅暂停态回读),降低抖动\n- scripts/check-{experience,http-ui,lyra-business,ui-clicks}.mjs:门禁模式微调\n- docs/product-prd.md、reports/*.latest.json、reports/product-audit-prd-20260701、\n 曲库 stem-manifest:快照/文案同步(含 project-gap-analysis P1-2 BS-RoFormer qingtian ready)\n\n验证:web+api tsc 0 错、check:governance-docs 通过、check:{lyra-business,experience,\nfrontend-contracts,analysis} 静态门禁全绿。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/d650b66cb8913288b66b796d00c13751802588e3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T19:48:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/lyra/LyraWorkstation.tsx","apps/web/src/lib/lyra-data.ts","docs/product-prd.md","reports/analysis-artifacts.latest.json","reports/deployment-readiness.latest.json","reports/experience-enhancements.latest.json","reports/frontend-contracts-sync.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-domain.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/muq-mulan-artifacts.latest.json","reports/naming.latest.json","reports/product-audit-prd-20260701/audit-report.md","reports/production-readiness.latest.json","reports/project-gap-analysis.latest.md","reports/project-independence.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/stem-assets.latest.json","reports/validation-source.latest.json","reports/vtc.latest.json","scripts/check-experience-enhancements.mjs","scripts/check-http-ui-acceptance.mjs","scripts/check-lyra-business.mjs","scripts/check-ui-click-acceptance.mjs","曲库/Codex-点击导入验收/song.manifest.json","曲库/Codex-点击导入验收/stem-comparison.latest.json","曲库/Codex-点击导入验收/拆解音轨/bs_polarformer/stem-manifest.json","曲库/Codex-点击导入验收/拆解音轨/bs_roformer/stem-manifest.json","曲库/Codex-点击导入验收/拆解音轨/htdemucs/stem-manifest.json","曲库/周杰伦-晴天(mtv)/song.manifest.json","曲库/周杰伦-晴天(mtv)/stem-comparison.latest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/bs_polarformer/stem-manifest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/bs_roformer/stem-manifest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/htdemucs/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/song.manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/stem-comparison.latest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/bs_polarformer/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/bs_roformer/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/htdemucs/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/song.manifest.json","曲库/魏翔--时差(音乐缘计划)/stem-comparison.latest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/bs_polarformer/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/bs_roformer/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/htdemucs/stem-manifest.json"]},{"id":"ab7d6c4bf6431eb83fe45443edb7cd60757973aa","message":"test(ui-clicks): 稳定鼓件 console 测试竞态 + 补 analysis-runs gitignore + 治理回灌\n\n- check-ui-click-acceptance.mjs:console 测试在断言初始窗口鼓件状态前,先 waitForFunction\n 等鼓件 lane 段渲染出任一 cue/跳转/间隙 marker(lane 在 stem 就绪徽标之后挂载,Track A\n mount 成本放大了这个 latent race)。修后 check:ui-clicks 稳定 14/14\n- .gitignore 补 reports/analysis-runs/(analysis/run 每次运行产物,不入库)\n- CLAUDE.md 回灌 DD-步骤-fix 关闭记录(Track A 七步真实操作+重置 + Track B producer 翻转),\n 含活体 /analysis/run 424 blocked 冒烟与 check:ui-clicks 14/14 证据、producer runtime\n spawnSync 残留登记\n\n验证:check:ui-clicks 14/14(JUHI_WEB_URL=3000 + 当前代码全栈)、check:governance-docs 通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/ab7d6c4bf6431eb83fe45443edb7cd60757973aa","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T18:50:17-07:00","added":[],"removed":[],"modified":[".gitignore","CLAUDE.md","reports/governance-docs.latest.json","reports/ui-click-acceptance.latest.json","scripts/check-ui-click-acceptance.mjs"]},{"id":"ae55256379c94671172dad140d495e999bacf3b4","message":"feat(analysis): 步骤3 本仓真跑 beat/chord/structure producer + 门禁翻转(Track B)\n\n翻转 A1 import-only 边界:本仓接入真实整轨分析 producer(runtime 需用户显式批准安装,\n未装诚实 blocked,绝不假绿)。\n\n- workers/{beat-this,btc-chords,songformer}/scripts/run_*.py:调本机 models/{SongFormer,\n BTC-ISMIR19} + beat_this-final0.ckpt 做真实推理,输出合 contracts 消费 schema\n (songformer.sections / beat-this.report / btc-chords,秒制)。全部 guarded import:\n 缺依赖时 --smoke / 真跑诚实报 {status:blocked, issues},不抛未捕获异常\n- POST /library/songs/:id/analysis/run(tenant-scoped)+ contracts analysisRunRequest/Result;\n 子进程执行集中在 apps/api-fastify/src/modules/analysis-producers(library.service 不直接\n 起子进程,守住 check:experience 的 EDGE/library 请求路径规则);覆盖写 曲库/\u003csong\u003e/分析/*.json\n- check-analysis-artifacts.mjs 翻转:移除「禁止 producer 文件」红守卫,改为「producer 脚本\n 必须存在 + --smoke 可运行(缺失/崩溃/输出不可解析即红;blocked=runtime 未装是诚实态)+\n 触发端点接线」;report 加 producerRuntime 段(当前 ready 0 / blocked 3)\n- 前端步骤3「运行歌曲分析 (beat/chord/structure)」按钮 + 状态串(runStemSeparation 同款\n ok/blocked 诚实呈现);api.ts runSongAnalysis helper\n- 治理回灌:docs/model-boundaries.md(import-only → 有 producer,runtime 经批准安装前 blocked)、\n CLAUDE.md A1 边界翻转 + 真源地图 + 基线表 analysis-artifacts 行\n\n验证:pnpm check exit 0、web+api tsc 0 错、Fastify 真实 DB 63+1 tests(新增 analysis/run\n blocked 路径 + tenant 守卫)、三 producer --smoke 均诚实 blocked、门禁有牙(隐藏 producer\n 脚本→红,还原→绿)。边界:producer runtime 未装(外部代码执行需用户显式批准),当前不产出。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/ae55256379c94671172dad140d495e999bacf3b4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-01T18:34:52-07:00","added":["apps/api-fastify/src/modules/analysis-producers/analysis-producers.service.ts","workers/beat-this/requirements_beat_this.txt","workers/beat-this/scripts/run_beat_this.py","workers/btc-chords/requirements_btc_chords.txt","workers/btc-chords/scripts/run_btc_chords.py","workers/songformer/requirements_songformer.txt","workers/songformer/scripts/run_songformer_structure.py"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/src/modules/library/library.service.ts","apps/api-fastify/src/routes/library.ts","apps/api-fastify/test/library.route.test.ts","apps/web/src/components/lyra/LyraWorkstation.tsx","apps/web/src/lib/api.ts","docs/model-boundaries.md","packages/contracts/src/library.ts","reports/analysis-artifacts.latest.json","reports/deployment-readiness.latest.json","reports/experience-enhancements.latest.json","reports/frontend-contracts-sync.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-domain.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/muq-mulan-artifacts.latest.json","reports/naming.latest.json","reports/production-readiness.latest.json","reports/project-independence.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/stem-assets.latest.json","reports/validation-source.latest.json","reports/vtc.latest.json","scripts/check-analysis-artifacts.mjs","曲库/Codex-点击导入验收/song.manifest.json","曲库/Codex-点击导入验收/stem-comparison.latest.json","曲库/Codex-点击导入验收/拆解音轨/bs_polarformer/stem-manifest.json","曲库/Codex-点击导入验收/拆解音轨/bs_roformer/stem-manifest.json","曲库/Codex-点击导入验收/拆解音轨/htdemucs/stem-manifest.json","曲库/周杰伦-晴天(mtv)/song.manifest.json","曲库/周杰伦-晴天(mtv)/stem-comparison.latest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/bs_polarformer/stem-manifest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/bs_roformer/stem-manifest.json","曲库/周杰伦-晴天(mtv)/拆解音轨/htdemucs/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/song.manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/stem-comparison.latest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/bs_polarformer/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/bs_roformer/stem-manifest.json","曲库/街道办、欧阳耀莹-春娇与志明-粤语_/拆解音轨/htdemucs/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/song.manifest.json","曲库/魏翔--时差(音乐缘计划)/stem-comparison.latest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/bs_polarformer/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/bs_roformer/stem-manifest.json","曲库/魏翔--时差(音乐缘计划)/拆解音轨/htdemucs/stem-manifest.json"]}],"total_commits":0,"head_commit":{"id":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","message":"chore(models): track model weights with lfs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T01:00:28-07:00","added":[".gitattributes","models/BTC-ISMIR19/test/btc_model.pt","models/BTC-ISMIR19/test/btc_model_large_voca.pt","models/DeepChorus/model/Deepchorus_2021.h5","models/EDGE/checkpoint.pt","models/SongFormer/model.safetensors","models/audio-separator/model_bs_roformer_ep_317_sdr_12.9755.ckpt","models/hf-home/models--OpenMuQ--MuQ-MuLan-large/blobs/d42ae3f7cb9b66759ee0089ddc70e2f28b130c2d8ba621457358272d32dd0444","models/larsnet/pretrained_larsnet_models/cymbals/pretrained_cymbals_unet.pth","models/larsnet/pretrained_larsnet_models/hihat/pretrained_hihat_unet.pth","models/larsnet/pretrained_larsnet_models/kick/pretrained_kick_unet.pth","models/larsnet/pretrained_larsnet_models/snare/pretrained_snare_unet.pth","models/larsnet/pretrained_larsnet_models/toms/pretrained_toms_unet.pth","models/singing-alignment/hubertfa/1218_hfa_model_new_dict/model.onnx","models/torch-home/hub/checkpoints/955717e8-8726e21a.th","models/torch-home/hub/checkpoints/beat_this-final0.ckpt"],"removed":[],"modified":[]},"repository":{"id":50,"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-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.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-02T15:51:41+08:00","updated_at":"2026-07-02T17:09:12+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1782983354
|
1782983489
|
0
|
1782983352
|
1782983489
|
|
|
0
|
Edit
Delete
|
|
23403
|
chore: initialize data analysis scaffold
|
55
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
8b9d81d390dac8db76b755c9d7a25f7439e2a59b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"8b9d81d390dac8db76b755c9d7a25f7439e2a59b","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"8b9d81d390dac8db76b755c9d7a25f7439e2a59b","message":"chore: initialize data analysis scaffold\n","url":"https://gitea.g-hi.com/luoanwu/data-analysis/commit/8b9d81d390dac8db76b755c9d7a25f7439e2a59b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-06T01:29:19-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/e2e/juxi.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/scripts/sync-duckdb-assets.mjs","apps/web/src/app/api/llm/chart-spec/route.ts","apps/web/src/app/globals.css","apps/web/src/app/juxi/JuxiApp.tsx","apps/web/src/app/juxi/JuxiWorkbench.tsx","apps/web/src/app/juxi/juxi.css","apps/web/src/app/juxi/page.tsx","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/hooks/useSSE.ts","apps/web/src/hooks/useWebSocket.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","package.json","packages/chart-dsl/README.md","packages/chart-dsl/package.json","packages/chart-dsl/src/AnalyticsCanvas.tsx","packages/chart-dsl/src/ChartCard.css","packages/chart-dsl/src/ChartCard.tsx","packages/chart-dsl/src/compile.test.ts","packages/chart-dsl/src/compile.ts","packages/chart-dsl/src/css.d.ts","packages/chart-dsl/src/duckdb.ts","packages/chart-dsl/src/hooks.ts","packages/chart-dsl/src/index.ts","packages/chart-dsl/src/llm.ts","packages/chart-dsl/src/schema.test.ts","packages/chart-dsl/src/schema.ts","packages/chart-dsl/src/theme.ts","packages/chart-dsl/tsconfig.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","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/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"8b9d81d390dac8db76b755c9d7a25f7439e2a59b","message":"chore: initialize data analysis scaffold\n","url":"https://gitea.g-hi.com/luoanwu/data-analysis/commit/8b9d81d390dac8db76b755c9d7a25f7439e2a59b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-06T01:29:19-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/e2e/juxi.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/scripts/sync-duckdb-assets.mjs","apps/web/src/app/api/llm/chart-spec/route.ts","apps/web/src/app/globals.css","apps/web/src/app/juxi/JuxiApp.tsx","apps/web/src/app/juxi/JuxiWorkbench.tsx","apps/web/src/app/juxi/juxi.css","apps/web/src/app/juxi/page.tsx","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/hooks/useSSE.ts","apps/web/src/hooks/useWebSocket.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","package.json","packages/chart-dsl/README.md","packages/chart-dsl/package.json","packages/chart-dsl/src/AnalyticsCanvas.tsx","packages/chart-dsl/src/ChartCard.css","packages/chart-dsl/src/ChartCard.tsx","packages/chart-dsl/src/compile.test.ts","packages/chart-dsl/src/compile.ts","packages/chart-dsl/src/css.d.ts","packages/chart-dsl/src/duckdb.ts","packages/chart-dsl/src/hooks.ts","packages/chart-dsl/src/index.ts","packages/chart-dsl/src/llm.ts","packages/chart-dsl/src/schema.test.ts","packages/chart-dsl/src/schema.ts","packages/chart-dsl/src/theme.ts","packages/chart-dsl/tsconfig.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","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/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]},"repository":{"id":55,"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":"data-analysis","full_name":"luoanwu/data-analysis","description":"数据分析项目 / Data Analysis monorepo","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analysis/languages","html_url":"https://gitea.g-hi.com/luoanwu/data-analysis","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analysis","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/data-analysis.git","clone_url":"https://gitea.g-hi.com/luoanwu/data-analysis.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-06T16:30:36+08:00","updated_at":"2026-07-06T16:30: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
|
8
|
1783326647
|
1783326795
|
0
|
1783326647
|
1783326795
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23404
|
feat: initialize SiteScout workspace
|
56
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
e65fc3036083a4118e0c909bd6a58914e6b33fef
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"e65fc3036083a4118e0c909bd6a58914e6b33fef","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"e65fc3036083a4118e0c909bd6a58914e6b33fef","message":"feat: initialize SiteScout workspace\n","url":"https://gitea.g-hi.com/luoanwu/hidian-site-selection/commit/e65fc3036083a4118e0c909bd6a58914e6b33fef","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-06T01:31:18-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705000100_add_site_selection/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/sites/sites.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sites.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/test/sites.integration.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705000100_add_site_selection/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sites/sites.controller.ts","apps/api-nestjs/src/sites/sites.module.ts","apps/api-nestjs/src/sites/sites.service.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/test/sites.integration.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/public/fonts/sitescout/Inter-400-0000-f6cd3edd.woff2","apps/web/public/fonts/sitescout/Inter-400-0100-61bfcdb2.woff2","apps/web/public/fonts/sitescout/Inter-400-0102-d53fe561.woff2","apps/web/public/fonts/sitescout/Inter-400-0301-502cf6f3.woff2","apps/web/public/fonts/sitescout/Inter-400-0370-d3230b38.woff2","apps/web/public/fonts/sitescout/Inter-400-0460-f617bd9e.woff2","apps/web/public/fonts/sitescout/Inter-400-1F00-89268580.woff2","apps/web/public/fonts/sitescout/Inter-500-0000-f6cd3edd.woff2","apps/web/public/fonts/sitescout/Inter-500-0100-61bfcdb2.woff2","apps/web/public/fonts/sitescout/Inter-500-0102-d53fe561.woff2","apps/web/public/fonts/sitescout/Inter-500-0301-502cf6f3.woff2","apps/web/public/fonts/sitescout/Inter-500-0370-d3230b38.woff2","apps/web/public/fonts/sitescout/Inter-500-0460-f617bd9e.woff2","apps/web/public/fonts/sitescout/Inter-500-1F00-89268580.woff2","apps/web/public/fonts/sitescout/Inter-600-0000-f6cd3edd.woff2","apps/web/public/fonts/sitescout/Inter-600-0100-61bfcdb2.woff2","apps/web/public/fonts/sitescout/Inter-600-0102-d53fe561.woff2","apps/web/public/fonts/sitescout/Inter-600-0301-502cf6f3.woff2","apps/web/public/fonts/sitescout/Inter-600-0370-d3230b38.woff2","apps/web/public/fonts/sitescout/Inter-600-0460-f617bd9e.woff2","apps/web/public/fonts/sitescout/Inter-600-1F00-89268580.woff2","apps/web/public/fonts/sitescout/Inter-700-0000-f6cd3edd.woff2","apps/web/public/fonts/sitescout/Inter-700-0100-61bfcdb2.woff2","apps/web/public/fonts/sitescout/Inter-700-0102-d53fe561.woff2","apps/web/public/fonts/sitescout/Inter-700-0301-502cf6f3.woff2","apps/web/public/fonts/sitescout/Inter-700-0370-d3230b38.woff2","apps/web/public/fonts/sitescout/Inter-700-0460-f617bd9e.woff2","apps/web/public/fonts/sitescout/Inter-700-1F00-89268580.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0000-d60a3608.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0100-58d40118.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0102-5731ccc1.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0301-933d4a8c.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0370-7e45a756.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0460-c34028be.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0000-d60a3608.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0100-58d40118.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0102-5731ccc1.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0301-933d4a8c.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0370-7e45a756.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0460-c34028be.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0000-d60a3608.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0100-58d40118.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0102-5731ccc1.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0301-933d4a8c.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0370-7e45a756.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0460-c34028be.woff2","apps/web/src/app/console/page.tsx","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/sitescout/AcceptanceCenter.tsx","apps/web/src/components/sitescout/CityMap.tsx","apps/web/src/components/sitescout/CompareModal.tsx","apps/web/src/components/sitescout/CompetitorSection.tsx","apps/web/src/components/sitescout/ComplianceSection.tsx","apps/web/src/components/sitescout/ScoreSection.tsx","apps/web/src/components/sitescout/SiteScoutApp.tsx","apps/web/src/components/sitescout/StakeoutSection.tsx","apps/web/src/components/sitescout/TierSection.tsx","apps/web/src/components/sitescout/sitescout.css","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/hooks/useSSE.ts","apps/web/src/hooks/useWebSocket.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/sitescout-labels.ts","apps/web/src/lib/sitescout-types.ts","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/base-framework-migration.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/site-selection-blueprint.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/site-fixtures.ts","packages/contracts/src/site.test.ts","packages/contracts/src/site.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","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/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"e65fc3036083a4118e0c909bd6a58914e6b33fef","message":"feat: initialize SiteScout workspace\n","url":"https://gitea.g-hi.com/luoanwu/hidian-site-selection/commit/e65fc3036083a4118e0c909bd6a58914e6b33fef","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-06T01:31:18-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705000100_add_site_selection/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/sites/sites.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sites.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/test/sites.integration.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705000100_add_site_selection/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sites/sites.controller.ts","apps/api-nestjs/src/sites/sites.module.ts","apps/api-nestjs/src/sites/sites.service.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/test/sites.integration.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/public/fonts/sitescout/Inter-400-0000-f6cd3edd.woff2","apps/web/public/fonts/sitescout/Inter-400-0100-61bfcdb2.woff2","apps/web/public/fonts/sitescout/Inter-400-0102-d53fe561.woff2","apps/web/public/fonts/sitescout/Inter-400-0301-502cf6f3.woff2","apps/web/public/fonts/sitescout/Inter-400-0370-d3230b38.woff2","apps/web/public/fonts/sitescout/Inter-400-0460-f617bd9e.woff2","apps/web/public/fonts/sitescout/Inter-400-1F00-89268580.woff2","apps/web/public/fonts/sitescout/Inter-500-0000-f6cd3edd.woff2","apps/web/public/fonts/sitescout/Inter-500-0100-61bfcdb2.woff2","apps/web/public/fonts/sitescout/Inter-500-0102-d53fe561.woff2","apps/web/public/fonts/sitescout/Inter-500-0301-502cf6f3.woff2","apps/web/public/fonts/sitescout/Inter-500-0370-d3230b38.woff2","apps/web/public/fonts/sitescout/Inter-500-0460-f617bd9e.woff2","apps/web/public/fonts/sitescout/Inter-500-1F00-89268580.woff2","apps/web/public/fonts/sitescout/Inter-600-0000-f6cd3edd.woff2","apps/web/public/fonts/sitescout/Inter-600-0100-61bfcdb2.woff2","apps/web/public/fonts/sitescout/Inter-600-0102-d53fe561.woff2","apps/web/public/fonts/sitescout/Inter-600-0301-502cf6f3.woff2","apps/web/public/fonts/sitescout/Inter-600-0370-d3230b38.woff2","apps/web/public/fonts/sitescout/Inter-600-0460-f617bd9e.woff2","apps/web/public/fonts/sitescout/Inter-600-1F00-89268580.woff2","apps/web/public/fonts/sitescout/Inter-700-0000-f6cd3edd.woff2","apps/web/public/fonts/sitescout/Inter-700-0100-61bfcdb2.woff2","apps/web/public/fonts/sitescout/Inter-700-0102-d53fe561.woff2","apps/web/public/fonts/sitescout/Inter-700-0301-502cf6f3.woff2","apps/web/public/fonts/sitescout/Inter-700-0370-d3230b38.woff2","apps/web/public/fonts/sitescout/Inter-700-0460-f617bd9e.woff2","apps/web/public/fonts/sitescout/Inter-700-1F00-89268580.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0000-d60a3608.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0100-58d40118.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0102-5731ccc1.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0301-933d4a8c.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0370-7e45a756.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-400-0460-c34028be.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0000-d60a3608.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0100-58d40118.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0102-5731ccc1.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0301-933d4a8c.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0370-7e45a756.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-500-0460-c34028be.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0000-d60a3608.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0100-58d40118.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0102-5731ccc1.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0301-933d4a8c.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0370-7e45a756.woff2","apps/web/public/fonts/sitescout/JetBrainsMono-600-0460-c34028be.woff2","apps/web/src/app/console/page.tsx","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/sitescout/AcceptanceCenter.tsx","apps/web/src/components/sitescout/CityMap.tsx","apps/web/src/components/sitescout/CompareModal.tsx","apps/web/src/components/sitescout/CompetitorSection.tsx","apps/web/src/components/sitescout/ComplianceSection.tsx","apps/web/src/components/sitescout/ScoreSection.tsx","apps/web/src/components/sitescout/SiteScoutApp.tsx","apps/web/src/components/sitescout/StakeoutSection.tsx","apps/web/src/components/sitescout/TierSection.tsx","apps/web/src/components/sitescout/sitescout.css","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/hooks/useSSE.ts","apps/web/src/hooks/useWebSocket.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/sitescout-labels.ts","apps/web/src/lib/sitescout-types.ts","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/base-framework-migration.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/site-selection-blueprint.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/site-fixtures.ts","packages/contracts/src/site.test.ts","packages/contracts/src/site.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","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/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]},"repository":{"id":56,"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":"hidian-site-selection","full_name":"luoanwu/hidian-site-selection","description":"嗨点选址 / SiteScout monorepo","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/hidian-site-selection/languages","html_url":"https://gitea.g-hi.com/luoanwu/hidian-site-selection","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/hidian-site-selection","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/hidian-site-selection.git","clone_url":"https://gitea.g-hi.com/luoanwu/hidian-site-selection.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-06T16:32:39+08:00","updated_at":"2026-07-06T16:33:03+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
|
1783326795
|
1783326922
|
0
|
1783326783
|
1783326922
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23410
|
初始提交:嗨赞AI制作平台(含 C1–C59 全部治理轮次)
|
60
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f73daf0a17c4cd19344f03ba21afcc326a49a650
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f73daf0a17c4cd19344f03ba21afcc326a49a650","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f73daf0a17c4cd19344f03ba21afcc326a49a650","message":"初始提交:嗨赞AI制作平台(含 C1–C59 全部治理轮次)\n\n从 基础框架 派生的 AI 歌词对齐制作平台。契约单源 @repo/contracts + 双后端\n(NestJS/Fastify)对等 + Next.js studio 前端 + Python 模型 workers。\n\n治理基线(reports/baseline.json 棘轮):\n- 静态门禁 pnpm check 全绿(naming/schema/validation/contract-consumers/\n dual-backend/concurrency-guard/migrations/models/alignment-models/library/\n lyra-parity/governance-docs)\n- check:runtime 316/316、check:ui 32/32、own-tests 39 文件 348 用例\n\n体积纪律:模型权重(~13GB)与曲库音频(含受版权保护素材)不入库,\n仅保留 models/model-assets.v1.json 与 曲库/library.latest.json 两份登记真源\n(check:models / check:library 据此比对磁盘实况)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/f73daf0a17c4cd19344f03ba21afcc326a49a650","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T20:23:16-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260709151138_alignment_domain/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/alignment/alignment-coarse.ts","apps/api-fastify/src/modules/alignment/alignment-mms-fa.ts","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-separation-htdemucs.ts","apps/api-fastify/src/modules/alignment/alignment-separation-larsnet.ts","apps/api-fastify/src/modules/alignment/alignment-separation.ts","apps/api-fastify/src/modules/alignment/alignment-structure.ts","apps/api-fastify/src/modules/alignment/alignment-verification.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/song-assets/song-assets.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/plugins/storage.ts","apps/api-fastify/src/routes/alignment.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/song-assets.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/alignment.coarse.test.ts","apps/api-fastify/test/alignment.http.test.ts","apps/api-fastify/test/alignment.integration.test.ts","apps/api-fastify/test/alignment.mms-fa.test.ts","apps/api-fastify/test/alignment.pipeline.test.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.separation-htdemucs.test.ts","apps/api-fastify/test/alignment.separation-larsnet.test.ts","apps/api-fastify/test/alignment.separation.test.ts","apps/api-fastify/test/alignment.structure.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260709151138_alignment_domain/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.module.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/alignment/song-assets.controller.ts","apps/api-nestjs/src/alignment/song-assets.service.ts","apps/api-nestjs/src/alignment/storage.provider.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/api-error-body.filter.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/alignment.coarse.test.ts","apps/api-nestjs/test/alignment.http.test.ts","apps/api-nestjs/test/alignment.integration.test.ts","apps/api-nestjs/test/alignment.mms-fa.test.ts","apps/api-nestjs/test/alignment.pipeline.test.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.separation-htdemucs.test.ts","apps/api-nestjs/test/alignment.separation-larsnet.test.ts","apps/api-nestjs/test/alignment.separation.test.ts","apps/api-nestjs/test/alignment.structure.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/e2e/baselines/lyra-prototype-v3-batch.png","apps/web/e2e/baselines/lyra-prototype-v3-delivery.png","apps/web/e2e/baselines/lyra-prototype-v3-info.png","apps/web/e2e/baselines/lyra-prototype-v3-workbench.png","apps/web/e2e/lyra-studio.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/studio/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/alignment/api.ts","apps/web/src/features/alignment/queries.ts","apps/web/src/features/lyra-studio/components/LyraStudio.tsx","apps/web/src/features/lyra-studio/components/PipelineBar.tsx","apps/web/src/features/lyra-studio/components/RunLoadErrorBanner.tsx","apps/web/src/features/lyra-studio/components/TopBar.tsx","apps/web/src/features/lyra-studio/components/canvas/PitchGridCanvas.tsx","apps/web/src/features/lyra-studio/components/canvas/VocalSpectrumCanvas.tsx","apps/web/src/features/lyra-studio/components/center/MvViewport.tsx","apps/web/src/features/lyra-studio/components/center/Transport.tsx","apps/web/src/features/lyra-studio/components/detail/RegionControlBar.tsx","apps/web/src/features/lyra-studio/components/lanes/LyricWorkspace.tsx","apps/web/src/features/lyra-studio/components/lanes/MainPlayhead.tsx","apps/web/src/features/lyra-studio/components/lanes/PhonemeLane.tsx","apps/web/src/features/lyra-studio/components/lanes/PitchLane.tsx","apps/web/src/features/lyra-studio/components/lanes/RefineLane.tsx","apps/web/src/features/lyra-studio/components/lanes/RegionLane.tsx","apps/web/src/features/lyra-studio/components/lanes/SentenceLane.tsx","apps/web/src/features/lyra-studio/components/lanes/VocalLane.tsx","apps/web/src/features/lyra-studio/components/left/AnalysisStub.tsx","apps/web/src/features/lyra-studio/components/left/LeftPanel.tsx","apps/web/src/features/lyra-studio/components/left/TrackCard.tsx","apps/web/src/features/lyra-studio/components/left/TrackMixer.tsx","apps/web/src/features/lyra-studio/components/modals/BatchModal.tsx","apps/web/src/features/lyra-studio/components/modals/CommitModal.tsx","apps/web/src/features/lyra-studio/components/modals/LoadModal.tsx","apps/web/src/features/lyra-studio/components/modals/ModalShell.tsx","apps/web/src/features/lyra-studio/components/modals/ResetModal.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/components/right/InfoTab.tsx","apps/web/src/features/lyra-studio/components/right/LyricsTab.tsx","apps/web/src/features/lyra-studio/components/right/PendingTab.tsx","apps/web/src/features/lyra-studio/components/right/RightPanel.tsx","apps/web/src/features/lyra-studio/components/right/RunEvidenceCard.tsx","apps/web/src/features/lyra-studio/components/timeline/GlobalTimeline.tsx","apps/web/src/features/lyra-studio/components/timeline/SeekWaveformCanvas.tsx","apps/web/src/features/lyra-studio/constants.ts","apps/web/src/features/lyra-studio/demoArtifacts.ts","apps/web/src/features/lyra-studio/fixtures/panels.ts","apps/web/src/features/lyra-studio/fixtures/segments.ts","apps/web/src/features/lyra-studio/fixtures/tracks.ts","apps/web/src/features/lyra-studio/hooks/useAudioPlayback.ts","apps/web/src/features/lyra-studio/hooks/useGlobalHotkeys.ts","apps/web/src/features/lyra-studio/hooks/useLaneDrags.ts","apps/web/src/features/lyra-studio/hooks/usePointerDrag.ts","apps/web/src/features/lyra-studio/hooks/useRafClock.ts","apps/web/src/features/lyra-studio/hooks/useScaleToFit.ts","apps/web/src/features/lyra-studio/hooks/useStudioBridge.ts","apps/web/src/features/lyra-studio/hooks/useWin.ts","apps/web/src/features/lyra-studio/prototypeV3.ts","apps/web/src/features/lyra-studio/runMapping.ts","apps/web/src/features/lyra-studio/store/selectors.ts","apps/web/src/features/lyra-studio/store/useStudioStore.ts","apps/web/src/features/lyra-studio/trackAudio.ts","apps/web/src/features/lyra-studio/types.ts","apps/web/src/features/lyra-studio/utils/realSpectrum.ts","apps/web/src/features/lyra-studio/utils/realWaveform.ts","apps/web/src/features/lyra-studio/utils/seededRandom.ts","apps/web/src/features/lyra-studio/utils/spectro.ts","apps/web/src/features/lyra-studio/utils/styles.ts","apps/web/src/features/lyra-studio/utils/time.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","design-qa.md","docker-compose.yml","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/lyric-alignment-production-blueprint.md","docs/domain/owner-matrix.md","docs/domain/stars-full-alignment-integration-assessment.md","docs/migration-notes.md","docs/prd/lyra-alignment-studio-prd.md","docs/prototypes/Lyra Alignment Studio (3)_副本.html","docs/prototypes/_lyra_extracted/0f3afcd6-3e42-43c6-bc2c-f7a7241d8cfc.js","docs/prototypes/_lyra_extracted/5e249108-9e25-49d4-aead-4a42da391445.txt","docs/prototypes/_lyra_extracted/6b20a626-d5f0-4ece-a2d4-3f3f7a96342e.txt","docs/prototypes/_lyra_extracted/78e3f258-31fe-4530-a312-1113810fd6c7.txt","docs/prototypes/_lyra_extracted/85a75d15-031b-454b-b8a4-728a88f2c03e.js","docs/prototypes/_lyra_extracted/8905ed0e-91a0-4b9e-8d49-fa1867515d0f.js","docs/prototypes/_lyra_extracted/app-dc-script.js","docs/prototypes/_lyra_extracted/e3ceeb25-f278-400d-8f89-200ca38d9d34.txt","docs/prototypes/_lyra_extracted/e456d310-3c72-4ccc-91a6-f34216a66722.txt","docs/prototypes/_lyra_extracted/e9425a8b-83ce-48d4-94d4-eb98f6c69c2b.txt","docs/prototypes/_lyra_extracted/template-body.html","docs/prototypes/_lyra_extracted/template-styles.css","docs/prototypes/_lyra_extracted/template.html","docs/prototypes/lyra-alignment-studio-elevation.md","docs/prototypes/lyra-alignment-studio-v2.html","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/alignment-export.ts","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/contracts/src/alignment.test.ts","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/src/vtc.ts","packages/contracts/tsconfig.json","packages/model-readiness/package.json","packages/model-readiness/src/index.ts","packages/model-readiness/src/readiness.test.ts","packages/model-readiness/tsconfig.json","packages/pipeline-runner/package.json","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","packages/pipeline-runner/tsconfig.json","packages/storage/package.json","packages/storage/src/index.ts","packages/storage/src/storage.test.ts","packages/storage/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/alignment-integrity-qingtian.latest.json","reports/alignment-models.latest.json","reports/alignment-text-crosscheck-qingtian.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/design-audit/material-loading-2026-07-11/01-material-loading-current.png","reports/design-audit/material-loading-2026-07-11/02-material-loading-improved.png","reports/design-audit/material-loading-2026-07-11/03-material-loading-create.png","reports/design-audit/material-loading-2026-07-11/audit.md","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-acquisition.latest.json","reports/model-assets.latest.json","reports/model-evidence/audio-separator-smoke.latest.json","reports/model-evidence/cantonese-coarse.latest.json","reports/model-evidence/energy-dynamics.latest.json","reports/model-evidence/harmonic-functional.latest.json","reports/model-evidence/hubertfa-smoke.latest.json","reports/model-evidence/hubertfa-sofa-fusion-smoke.latest.json","reports/model-evidence/key-v2.latest.json","reports/model-evidence/larsnet-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/pipeline-smoke.latest.json","reports/model-evidence/qingtian-pipeline-proposal.latest.json","reports/model-evidence/qingtian-precision.latest.json","reports/model-evidence/separation-smoke.latest.json","reports/model-evidence/sofa-acoustic-smoke.latest.json","reports/model-evidence/stars-align-smoke.latest.json","reports/model-evidence/stars-qingtian-precision.latest.json","reports/model-evidence/stars-smoke.latest.json","reports/model-evidence/structure-repetition.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/model-evidence/vocal-classification-models.latest.json","reports/model-evidence/vocal-melody.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/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/acquire-models.mjs","scripts/check-alignment-models.mjs","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-lyra-prototype-parity.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-song-library.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","tsconfig.base.json","turbo.json","workers/audio-separator/README.md","workers/audio-separator/requirements_audio_separator.txt","workers/audio-separator/run_separation.py","workers/coarse/README.md","workers/coarse/eval_language_routing.py","workers/coarse/requirements_coarse.txt","workers/coarse/run_coarse.py","workers/fusion/README.md","workers/fusion/run_fusion.py","workers/hubertfa/README.md","workers/hubertfa/requirements_onnx_cpu.txt","workers/hubertfa/scripts/run_hubertfa_align.py","workers/larsnet/README.md","workers/larsnet/run_larsnet.py","workers/lyrics-cleaner/run_clean_lyrics.py","workers/mms-fa/README.md","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/pipeline/README.md","workers/pipeline/compare_with_kas.py","workers/pipeline/g2p.py","workers/pipeline/requirements.txt","workers/pipeline/run_pipeline.py","workers/separation/README.md","workers/separation/run_separation.py","workers/sofa-acoustic/README.md","workers/sofa-acoustic/requirements.txt","workers/sofa-acoustic/run_sofa_acoustic.py","workers/sofa-acoustic/vendor/sofa/.gitignore","workers/sofa-acoustic/vendor/sofa/LICENSE","workers/sofa-acoustic/vendor/sofa/README.MD","workers/sofa-acoustic/vendor/sofa/README_zh.MD","workers/sofa-acoustic/vendor/sofa/binarize.py","workers/sofa-acoustic/vendor/sofa/ckpt/.gitkeep","workers/sofa-acoustic/vendor/sofa/configs/binarize_config.yaml","workers/sofa-acoustic/vendor/sofa/configs/train_config.yaml","workers/sofa-acoustic/vendor/sofa/data/.gitkeep","workers/sofa-acoustic/vendor/sofa/data/binary/.gitkeep","workers/sofa-acoustic/vendor/sofa/dataset.py","workers/sofa-acoustic/vendor/sofa/dictionary/.gitkeep","workers/sofa-acoustic/vendor/sofa/dictionary/opencpop-extension.txt","workers/sofa-acoustic/vendor/sofa/evaluate.py","workers/sofa-acoustic/vendor/sofa/example.png","workers/sofa-acoustic/vendor/sofa/infer.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/base_detector.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/loudnesss_pectralcentroid_detector.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/none_detector.py","workers/sofa-acoustic/vendor/sofa/modules/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/base_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/dictionary_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/none_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/phoneme_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/readme_g2p.md","workers/sofa-acoustic/vendor/sofa/modules/g2p/readme_g2p_zh.md","workers/sofa-acoustic/vendor/sofa/modules/layer/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/activation/GLU.py","workers/sofa-acoustic/vendor/sofa/modules/layer/activation/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/backbone/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/backbone/unet.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/attention.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/conformer.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/convolution.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/func_module.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/residual.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/resnet_block.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/base.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/stride_conv.py","workers/sofa-acoustic/vendor/sofa/modules/loss/BinaryEMDLoss.py","workers/sofa-acoustic/vendor/sofa/modules/loss/GHMLoss.py","workers/sofa-acoustic/vendor/sofa/modules/loss/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/constants.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/deepunet.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/inference.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/model.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/seq.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/spec.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/utils.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/gaussian_ramp_up_scheduler.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/none_scheduler.py","workers/sofa-acoustic/vendor/sofa/modules/task/forced_alignment.py","workers/sofa-acoustic/vendor/sofa/modules/utils/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/utils/export_tool.py","workers/sofa-acoustic/vendor/sofa/modules/utils/get_melspec.py","workers/sofa-acoustic/vendor/sofa/modules/utils/label.py","workers/sofa-acoustic/vendor/sofa/modules/utils/load_wav.py","workers/sofa-acoustic/vendor/sofa/modules/utils/metrics.py","workers/sofa-acoustic/vendor/sofa/modules/utils/metrics_test.py","workers/sofa-acoustic/vendor/sofa/modules/utils/plot.py","workers/sofa-acoustic/vendor/sofa/modules/utils/post_processing.py","workers/sofa-acoustic/vendor/sofa/requirements.txt","workers/sofa-acoustic/vendor/sofa/segments/.gitkeep","workers/sofa-acoustic/vendor/sofa/train.py","workers/sofa-verifier/README.md","workers/sofa-verifier/scripts/run_sofa_align.py","workers/stars/README.md","workers/stars/g2p_stars.py","workers/stars/requirements_stars.txt","workers/stars/rmvpe/LICENSE-upstream-STARS.txt","workers/stars/rmvpe/__init__.py","workers/stars/rmvpe/constants.py","workers/stars/rmvpe/deepunet.py","workers/stars/rmvpe/mel.py","workers/stars/rmvpe/model.py","workers/stars/rmvpe/seq.py","workers/stars/rmvpe/spec.py","workers/stars/rmvpe/utils.py","workers/stars/run_stars.py","workers/stars/stars_align.py","workers/stars/vendor_stars/LICENSE-upstream-STARS.txt","workers/stars/vendor_stars/_VENDOR_NOTE.md","workers/stars/vendor_stars/_reference/inference_stars.py","workers/stars/vendor_stars/_reference/mixedtext2phoneme.py","workers/stars/vendor_stars/_reference/process_ph.py","workers/stars/vendor_stars/chinese_and_english_phone_set.json","workers/stars/vendor_stars/chinese_phone_set.json","workers/stars/vendor_stars/configs/base.yaml","workers/stars/vendor_stars/configs/stars_bilingual.yaml","workers/stars/vendor_stars/configs/stars_chinese.yaml","workers/stars/vendor_stars/modules/__init__.py","workers/stars/vendor_stars/modules/commons/__init__.py","workers/stars/vendor_stars/modules/commons/conformer/__init__.py","workers/stars/vendor_stars/modules/commons/conformer/conformer.py","workers/stars/vendor_stars/modules/commons/conformer/espnet_positional_embedding.py","workers/stars/vendor_stars/modules/commons/conformer/espnet_transformer_attn.py","workers/stars/vendor_stars/modules/commons/conformer/layers.py","workers/stars/vendor_stars/modules/commons/conv.py","workers/stars/vendor_stars/modules/commons/layers.py","workers/stars/vendor_stars/modules/commons/transformer.py","workers/stars/vendor_stars/modules/pe/__init__.py","workers/stars/vendor_stars/modules/pe/rmvpe/__init__.py","workers/stars/vendor_stars/modules/pe/rmvpe/constants.py","workers/stars/vendor_stars/modules/pe/rmvpe/deepunet.py","workers/stars/vendor_stars/modules/pe/rmvpe/extractor.py","workers/stars/vendor_stars/modules/pe/rmvpe/inference.py","workers/stars/vendor_stars/modules/pe/rmvpe/model.py","workers/stars/vendor_stars/modules/pe/rmvpe/seq.py","workers/stars/vendor_stars/modules/pe/rmvpe/spec.py","workers/stars/vendor_stars/modules/pe/rmvpe/utils.py","workers/stars/vendor_stars/modules/stars/__init__.py","workers/stars/vendor_stars/modules/stars/stars.py","workers/stars/vendor_stars/modules/stars/unet.py","workers/stars/vendor_stars/modules/stars/utils.py","workers/stars/vendor_stars/tasks/__init__.py","workers/stars/vendor_stars/tasks/stars/__init__.py","workers/stars/vendor_stars/tasks/stars/dataset.py","workers/stars/vendor_stars/tasks/stars/utils.py","workers/stars/vendor_stars/utils/__init__.py","workers/stars/vendor_stars/utils/audio/__init__.py","workers/stars/vendor_stars/utils/audio/align.py","workers/stars/vendor_stars/utils/audio/mel.py","workers/stars/vendor_stars/utils/audio/pitch_utils.py","workers/stars/vendor_stars/utils/commons/__init__.py","workers/stars/vendor_stars/utils/commons/ckpt_utils.py","workers/stars/vendor_stars/utils/commons/dataset_utils.py","workers/stars/vendor_stars/utils/commons/gpu_mem_track.py","workers/stars/vendor_stars/utils/commons/hparams.py","workers/stars/vendor_stars/utils/commons/indexed_datasets.py","workers/stars/vendor_stars/utils/commons/signal.py","workers/stars/vendor_stars/utils/nn/__init__.py","workers/stars/vendor_stars/utils/nn/seq_utils.py","workers/stars/vendor_stars/utils/os_utils.py","workers/stars/vendor_stars/utils/text/__init__.py","workers/stars/vendor_stars/utils/text/text_encoder.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json","曲库/library.latest.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"f73daf0a17c4cd19344f03ba21afcc326a49a650","message":"初始提交:嗨赞AI制作平台(含 C1–C59 全部治理轮次)\n\n从 基础框架 派生的 AI 歌词对齐制作平台。契约单源 @repo/contracts + 双后端\n(NestJS/Fastify)对等 + Next.js studio 前端 + Python 模型 workers。\n\n治理基线(reports/baseline.json 棘轮):\n- 静态门禁 pnpm check 全绿(naming/schema/validation/contract-consumers/\n dual-backend/concurrency-guard/migrations/models/alignment-models/library/\n lyra-parity/governance-docs)\n- check:runtime 316/316、check:ui 32/32、own-tests 39 文件 348 用例\n\n体积纪律:模型权重(~13GB)与曲库音频(含受版权保护素材)不入库,\n仅保留 models/model-assets.v1.json 与 曲库/library.latest.json 两份登记真源\n(check:models / check:library 据此比对磁盘实况)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/f73daf0a17c4cd19344f03ba21afcc326a49a650","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T20:23:16-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260709151138_alignment_domain/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/alignment/alignment-coarse.ts","apps/api-fastify/src/modules/alignment/alignment-mms-fa.ts","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-separation-htdemucs.ts","apps/api-fastify/src/modules/alignment/alignment-separation-larsnet.ts","apps/api-fastify/src/modules/alignment/alignment-separation.ts","apps/api-fastify/src/modules/alignment/alignment-structure.ts","apps/api-fastify/src/modules/alignment/alignment-verification.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/song-assets/song-assets.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/plugins/storage.ts","apps/api-fastify/src/routes/alignment.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/song-assets.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/alignment.coarse.test.ts","apps/api-fastify/test/alignment.http.test.ts","apps/api-fastify/test/alignment.integration.test.ts","apps/api-fastify/test/alignment.mms-fa.test.ts","apps/api-fastify/test/alignment.pipeline.test.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.separation-htdemucs.test.ts","apps/api-fastify/test/alignment.separation-larsnet.test.ts","apps/api-fastify/test/alignment.separation.test.ts","apps/api-fastify/test/alignment.structure.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260709151138_alignment_domain/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.module.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/alignment/song-assets.controller.ts","apps/api-nestjs/src/alignment/song-assets.service.ts","apps/api-nestjs/src/alignment/storage.provider.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/api-error-body.filter.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/alignment.coarse.test.ts","apps/api-nestjs/test/alignment.http.test.ts","apps/api-nestjs/test/alignment.integration.test.ts","apps/api-nestjs/test/alignment.mms-fa.test.ts","apps/api-nestjs/test/alignment.pipeline.test.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.separation-htdemucs.test.ts","apps/api-nestjs/test/alignment.separation-larsnet.test.ts","apps/api-nestjs/test/alignment.separation.test.ts","apps/api-nestjs/test/alignment.structure.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/e2e/baselines/lyra-prototype-v3-batch.png","apps/web/e2e/baselines/lyra-prototype-v3-delivery.png","apps/web/e2e/baselines/lyra-prototype-v3-info.png","apps/web/e2e/baselines/lyra-prototype-v3-workbench.png","apps/web/e2e/lyra-studio.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/studio/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/alignment/api.ts","apps/web/src/features/alignment/queries.ts","apps/web/src/features/lyra-studio/components/LyraStudio.tsx","apps/web/src/features/lyra-studio/components/PipelineBar.tsx","apps/web/src/features/lyra-studio/components/RunLoadErrorBanner.tsx","apps/web/src/features/lyra-studio/components/TopBar.tsx","apps/web/src/features/lyra-studio/components/canvas/PitchGridCanvas.tsx","apps/web/src/features/lyra-studio/components/canvas/VocalSpectrumCanvas.tsx","apps/web/src/features/lyra-studio/components/center/MvViewport.tsx","apps/web/src/features/lyra-studio/components/center/Transport.tsx","apps/web/src/features/lyra-studio/components/detail/RegionControlBar.tsx","apps/web/src/features/lyra-studio/components/lanes/LyricWorkspace.tsx","apps/web/src/features/lyra-studio/components/lanes/MainPlayhead.tsx","apps/web/src/features/lyra-studio/components/lanes/PhonemeLane.tsx","apps/web/src/features/lyra-studio/components/lanes/PitchLane.tsx","apps/web/src/features/lyra-studio/components/lanes/RefineLane.tsx","apps/web/src/features/lyra-studio/components/lanes/RegionLane.tsx","apps/web/src/features/lyra-studio/components/lanes/SentenceLane.tsx","apps/web/src/features/lyra-studio/components/lanes/VocalLane.tsx","apps/web/src/features/lyra-studio/components/left/AnalysisStub.tsx","apps/web/src/features/lyra-studio/components/left/LeftPanel.tsx","apps/web/src/features/lyra-studio/components/left/TrackCard.tsx","apps/web/src/features/lyra-studio/components/left/TrackMixer.tsx","apps/web/src/features/lyra-studio/components/modals/BatchModal.tsx","apps/web/src/features/lyra-studio/components/modals/CommitModal.tsx","apps/web/src/features/lyra-studio/components/modals/LoadModal.tsx","apps/web/src/features/lyra-studio/components/modals/ModalShell.tsx","apps/web/src/features/lyra-studio/components/modals/ResetModal.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/components/right/InfoTab.tsx","apps/web/src/features/lyra-studio/components/right/LyricsTab.tsx","apps/web/src/features/lyra-studio/components/right/PendingTab.tsx","apps/web/src/features/lyra-studio/components/right/RightPanel.tsx","apps/web/src/features/lyra-studio/components/right/RunEvidenceCard.tsx","apps/web/src/features/lyra-studio/components/timeline/GlobalTimeline.tsx","apps/web/src/features/lyra-studio/components/timeline/SeekWaveformCanvas.tsx","apps/web/src/features/lyra-studio/constants.ts","apps/web/src/features/lyra-studio/demoArtifacts.ts","apps/web/src/features/lyra-studio/fixtures/panels.ts","apps/web/src/features/lyra-studio/fixtures/segments.ts","apps/web/src/features/lyra-studio/fixtures/tracks.ts","apps/web/src/features/lyra-studio/hooks/useAudioPlayback.ts","apps/web/src/features/lyra-studio/hooks/useGlobalHotkeys.ts","apps/web/src/features/lyra-studio/hooks/useLaneDrags.ts","apps/web/src/features/lyra-studio/hooks/usePointerDrag.ts","apps/web/src/features/lyra-studio/hooks/useRafClock.ts","apps/web/src/features/lyra-studio/hooks/useScaleToFit.ts","apps/web/src/features/lyra-studio/hooks/useStudioBridge.ts","apps/web/src/features/lyra-studio/hooks/useWin.ts","apps/web/src/features/lyra-studio/prototypeV3.ts","apps/web/src/features/lyra-studio/runMapping.ts","apps/web/src/features/lyra-studio/store/selectors.ts","apps/web/src/features/lyra-studio/store/useStudioStore.ts","apps/web/src/features/lyra-studio/trackAudio.ts","apps/web/src/features/lyra-studio/types.ts","apps/web/src/features/lyra-studio/utils/realSpectrum.ts","apps/web/src/features/lyra-studio/utils/realWaveform.ts","apps/web/src/features/lyra-studio/utils/seededRandom.ts","apps/web/src/features/lyra-studio/utils/spectro.ts","apps/web/src/features/lyra-studio/utils/styles.ts","apps/web/src/features/lyra-studio/utils/time.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","design-qa.md","docker-compose.yml","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/lyric-alignment-production-blueprint.md","docs/domain/owner-matrix.md","docs/domain/stars-full-alignment-integration-assessment.md","docs/migration-notes.md","docs/prd/lyra-alignment-studio-prd.md","docs/prototypes/Lyra Alignment Studio (3)_副本.html","docs/prototypes/_lyra_extracted/0f3afcd6-3e42-43c6-bc2c-f7a7241d8cfc.js","docs/prototypes/_lyra_extracted/5e249108-9e25-49d4-aead-4a42da391445.txt","docs/prototypes/_lyra_extracted/6b20a626-d5f0-4ece-a2d4-3f3f7a96342e.txt","docs/prototypes/_lyra_extracted/78e3f258-31fe-4530-a312-1113810fd6c7.txt","docs/prototypes/_lyra_extracted/85a75d15-031b-454b-b8a4-728a88f2c03e.js","docs/prototypes/_lyra_extracted/8905ed0e-91a0-4b9e-8d49-fa1867515d0f.js","docs/prototypes/_lyra_extracted/app-dc-script.js","docs/prototypes/_lyra_extracted/e3ceeb25-f278-400d-8f89-200ca38d9d34.txt","docs/prototypes/_lyra_extracted/e456d310-3c72-4ccc-91a6-f34216a66722.txt","docs/prototypes/_lyra_extracted/e9425a8b-83ce-48d4-94d4-eb98f6c69c2b.txt","docs/prototypes/_lyra_extracted/template-body.html","docs/prototypes/_lyra_extracted/template-styles.css","docs/prototypes/_lyra_extracted/template.html","docs/prototypes/lyra-alignment-studio-elevation.md","docs/prototypes/lyra-alignment-studio-v2.html","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/alignment-export.ts","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/contracts/src/alignment.test.ts","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/src/vtc.ts","packages/contracts/tsconfig.json","packages/model-readiness/package.json","packages/model-readiness/src/index.ts","packages/model-readiness/src/readiness.test.ts","packages/model-readiness/tsconfig.json","packages/pipeline-runner/package.json","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","packages/pipeline-runner/tsconfig.json","packages/storage/package.json","packages/storage/src/index.ts","packages/storage/src/storage.test.ts","packages/storage/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/alignment-integrity-qingtian.latest.json","reports/alignment-models.latest.json","reports/alignment-text-crosscheck-qingtian.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/design-audit/material-loading-2026-07-11/01-material-loading-current.png","reports/design-audit/material-loading-2026-07-11/02-material-loading-improved.png","reports/design-audit/material-loading-2026-07-11/03-material-loading-create.png","reports/design-audit/material-loading-2026-07-11/audit.md","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-acquisition.latest.json","reports/model-assets.latest.json","reports/model-evidence/audio-separator-smoke.latest.json","reports/model-evidence/cantonese-coarse.latest.json","reports/model-evidence/energy-dynamics.latest.json","reports/model-evidence/harmonic-functional.latest.json","reports/model-evidence/hubertfa-smoke.latest.json","reports/model-evidence/hubertfa-sofa-fusion-smoke.latest.json","reports/model-evidence/key-v2.latest.json","reports/model-evidence/larsnet-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/pipeline-smoke.latest.json","reports/model-evidence/qingtian-pipeline-proposal.latest.json","reports/model-evidence/qingtian-precision.latest.json","reports/model-evidence/separation-smoke.latest.json","reports/model-evidence/sofa-acoustic-smoke.latest.json","reports/model-evidence/stars-align-smoke.latest.json","reports/model-evidence/stars-qingtian-precision.latest.json","reports/model-evidence/stars-smoke.latest.json","reports/model-evidence/structure-repetition.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/model-evidence/vocal-classification-models.latest.json","reports/model-evidence/vocal-melody.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/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/acquire-models.mjs","scripts/check-alignment-models.mjs","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-lyra-prototype-parity.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-song-library.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","tsconfig.base.json","turbo.json","workers/audio-separator/README.md","workers/audio-separator/requirements_audio_separator.txt","workers/audio-separator/run_separation.py","workers/coarse/README.md","workers/coarse/eval_language_routing.py","workers/coarse/requirements_coarse.txt","workers/coarse/run_coarse.py","workers/fusion/README.md","workers/fusion/run_fusion.py","workers/hubertfa/README.md","workers/hubertfa/requirements_onnx_cpu.txt","workers/hubertfa/scripts/run_hubertfa_align.py","workers/larsnet/README.md","workers/larsnet/run_larsnet.py","workers/lyrics-cleaner/run_clean_lyrics.py","workers/mms-fa/README.md","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/pipeline/README.md","workers/pipeline/compare_with_kas.py","workers/pipeline/g2p.py","workers/pipeline/requirements.txt","workers/pipeline/run_pipeline.py","workers/separation/README.md","workers/separation/run_separation.py","workers/sofa-acoustic/README.md","workers/sofa-acoustic/requirements.txt","workers/sofa-acoustic/run_sofa_acoustic.py","workers/sofa-acoustic/vendor/sofa/.gitignore","workers/sofa-acoustic/vendor/sofa/LICENSE","workers/sofa-acoustic/vendor/sofa/README.MD","workers/sofa-acoustic/vendor/sofa/README_zh.MD","workers/sofa-acoustic/vendor/sofa/binarize.py","workers/sofa-acoustic/vendor/sofa/ckpt/.gitkeep","workers/sofa-acoustic/vendor/sofa/configs/binarize_config.yaml","workers/sofa-acoustic/vendor/sofa/configs/train_config.yaml","workers/sofa-acoustic/vendor/sofa/data/.gitkeep","workers/sofa-acoustic/vendor/sofa/data/binary/.gitkeep","workers/sofa-acoustic/vendor/sofa/dataset.py","workers/sofa-acoustic/vendor/sofa/dictionary/.gitkeep","workers/sofa-acoustic/vendor/sofa/dictionary/opencpop-extension.txt","workers/sofa-acoustic/vendor/sofa/evaluate.py","workers/sofa-acoustic/vendor/sofa/example.png","workers/sofa-acoustic/vendor/sofa/infer.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/base_detector.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/loudnesss_pectralcentroid_detector.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/none_detector.py","workers/sofa-acoustic/vendor/sofa/modules/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/base_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/dictionary_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/none_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/phoneme_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/readme_g2p.md","workers/sofa-acoustic/vendor/sofa/modules/g2p/readme_g2p_zh.md","workers/sofa-acoustic/vendor/sofa/modules/layer/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/activation/GLU.py","workers/sofa-acoustic/vendor/sofa/modules/layer/activation/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/backbone/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/backbone/unet.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/attention.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/conformer.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/convolution.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/func_module.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/residual.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/resnet_block.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/base.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/stride_conv.py","workers/sofa-acoustic/vendor/sofa/modules/loss/BinaryEMDLoss.py","workers/sofa-acoustic/vendor/sofa/modules/loss/GHMLoss.py","workers/sofa-acoustic/vendor/sofa/modules/loss/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/constants.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/deepunet.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/inference.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/model.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/seq.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/spec.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/utils.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/gaussian_ramp_up_scheduler.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/none_scheduler.py","workers/sofa-acoustic/vendor/sofa/modules/task/forced_alignment.py","workers/sofa-acoustic/vendor/sofa/modules/utils/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/utils/export_tool.py","workers/sofa-acoustic/vendor/sofa/modules/utils/get_melspec.py","workers/sofa-acoustic/vendor/sofa/modules/utils/label.py","workers/sofa-acoustic/vendor/sofa/modules/utils/load_wav.py","workers/sofa-acoustic/vendor/sofa/modules/utils/metrics.py","workers/sofa-acoustic/vendor/sofa/modules/utils/metrics_test.py","workers/sofa-acoustic/vendor/sofa/modules/utils/plot.py","workers/sofa-acoustic/vendor/sofa/modules/utils/post_processing.py","workers/sofa-acoustic/vendor/sofa/requirements.txt","workers/sofa-acoustic/vendor/sofa/segments/.gitkeep","workers/sofa-acoustic/vendor/sofa/train.py","workers/sofa-verifier/README.md","workers/sofa-verifier/scripts/run_sofa_align.py","workers/stars/README.md","workers/stars/g2p_stars.py","workers/stars/requirements_stars.txt","workers/stars/rmvpe/LICENSE-upstream-STARS.txt","workers/stars/rmvpe/__init__.py","workers/stars/rmvpe/constants.py","workers/stars/rmvpe/deepunet.py","workers/stars/rmvpe/mel.py","workers/stars/rmvpe/model.py","workers/stars/rmvpe/seq.py","workers/stars/rmvpe/spec.py","workers/stars/rmvpe/utils.py","workers/stars/run_stars.py","workers/stars/stars_align.py","workers/stars/vendor_stars/LICENSE-upstream-STARS.txt","workers/stars/vendor_stars/_VENDOR_NOTE.md","workers/stars/vendor_stars/_reference/inference_stars.py","workers/stars/vendor_stars/_reference/mixedtext2phoneme.py","workers/stars/vendor_stars/_reference/process_ph.py","workers/stars/vendor_stars/chinese_and_english_phone_set.json","workers/stars/vendor_stars/chinese_phone_set.json","workers/stars/vendor_stars/configs/base.yaml","workers/stars/vendor_stars/configs/stars_bilingual.yaml","workers/stars/vendor_stars/configs/stars_chinese.yaml","workers/stars/vendor_stars/modules/__init__.py","workers/stars/vendor_stars/modules/commons/__init__.py","workers/stars/vendor_stars/modules/commons/conformer/__init__.py","workers/stars/vendor_stars/modules/commons/conformer/conformer.py","workers/stars/vendor_stars/modules/commons/conformer/espnet_positional_embedding.py","workers/stars/vendor_stars/modules/commons/conformer/espnet_transformer_attn.py","workers/stars/vendor_stars/modules/commons/conformer/layers.py","workers/stars/vendor_stars/modules/commons/conv.py","workers/stars/vendor_stars/modules/commons/layers.py","workers/stars/vendor_stars/modules/commons/transformer.py","workers/stars/vendor_stars/modules/pe/__init__.py","workers/stars/vendor_stars/modules/pe/rmvpe/__init__.py","workers/stars/vendor_stars/modules/pe/rmvpe/constants.py","workers/stars/vendor_stars/modules/pe/rmvpe/deepunet.py","workers/stars/vendor_stars/modules/pe/rmvpe/extractor.py","workers/stars/vendor_stars/modules/pe/rmvpe/inference.py","workers/stars/vendor_stars/modules/pe/rmvpe/model.py","workers/stars/vendor_stars/modules/pe/rmvpe/seq.py","workers/stars/vendor_stars/modules/pe/rmvpe/spec.py","workers/stars/vendor_stars/modules/pe/rmvpe/utils.py","workers/stars/vendor_stars/modules/stars/__init__.py","workers/stars/vendor_stars/modules/stars/stars.py","workers/stars/vendor_stars/modules/stars/unet.py","workers/stars/vendor_stars/modules/stars/utils.py","workers/stars/vendor_stars/tasks/__init__.py","workers/stars/vendor_stars/tasks/stars/__init__.py","workers/stars/vendor_stars/tasks/stars/dataset.py","workers/stars/vendor_stars/tasks/stars/utils.py","workers/stars/vendor_stars/utils/__init__.py","workers/stars/vendor_stars/utils/audio/__init__.py","workers/stars/vendor_stars/utils/audio/align.py","workers/stars/vendor_stars/utils/audio/mel.py","workers/stars/vendor_stars/utils/audio/pitch_utils.py","workers/stars/vendor_stars/utils/commons/__init__.py","workers/stars/vendor_stars/utils/commons/ckpt_utils.py","workers/stars/vendor_stars/utils/commons/dataset_utils.py","workers/stars/vendor_stars/utils/commons/gpu_mem_track.py","workers/stars/vendor_stars/utils/commons/hparams.py","workers/stars/vendor_stars/utils/commons/indexed_datasets.py","workers/stars/vendor_stars/utils/commons/signal.py","workers/stars/vendor_stars/utils/nn/__init__.py","workers/stars/vendor_stars/utils/nn/seq_utils.py","workers/stars/vendor_stars/utils/os_utils.py","workers/stars/vendor_stars/utils/text/__init__.py","workers/stars/vendor_stars/utils/text/text_encoder.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json","曲库/library.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":27,"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-14T12:26: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
|
6
|
1784003176
|
1784003267
|
0
|
1784003175
|
1784003269
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23411
|
治理状态:记录第二轮修复,版本 0.2.1
|
61
|
5
|
kb.yml
|
1
|
5
|
0
|
refs/heads/main
|
7e38caa7a9a622e250ab06620cd295404fd97f4a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"7e38caa7a9a622e250ab06620cd295404fd97f4a","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"7e38caa7a9a622e250ab06620cd295404fd97f4a","message":"治理状态:记录第二轮修复,版本 0.2.1\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/7e38caa7a9a622e250ab06620cd295404fd97f4a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:50:38-07:00","added":[],"removed":[],"modified":["VERSION","docs/governance-status.md"]},{"id":"c7294d6f71f7653ea197b3e3333da9ed54d19e63","message":"reindex 增量优化与审计库并发加固\n\n1. reindex: 内容未变仅被 touch 的文件不再重分块重写索引,只刷新\n 元数据。新增显式 --fast((mtime,size) 未变即跳过,不读文件),\n 供大语料 nightly 使用;默认仍全量哈希 —— rsync/tar 会保留\n mtime,同 mtime 改内容只有 sha 抓得到,该保证有单测钉住,\n 不能默认放弃。\n2. audit_log: WAL + busy_timeout —— 多 MCP 客户端并发写同一\n 审计库时避免 database is locked(审计失败虽不改变检索答案,\n 但监控会失明)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/c7294d6f71f7653ea197b3e3333da9ed54d19e63","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:49:42-07:00","added":[],"removed":[],"modified":["lib/audit_log.py","lib/kb_core.py"]},{"id":"3ca2d7515b057ec3f22fa89f95d4eea2cf37aba6","message":"治理工具:冲突策略语义区分、词表结构体检 T4、修死引用\n\n1. conflict_policy: source_priority 与 source_then_latest 此前实现\n 完全相同,是假选项。现区分语义 —— source_priority 只按来源优先级\n 裁决,并列最高交回人工(needs_manual_review);要用时间破并列的\n 显式选 source_then_latest。补两条并列场景测试。\n2. wiki terms 新增 T4 词表结构体检,抓两种静默失效:\n - 跨行重叠的同义词组不会自动合并(查 A 组的词展开不到 B 组);\n - 含空白的成员在查询侧按空格被切开,整词永远不可达。\n 实测在现网 syn.tsv 上即抓到「error code」不可达键。\n3. README: PLAN.md 三处死引用改指 docs/technical-plan.md;\n wiki terms 输出不再提示不存在的 --llm 参数。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/3ca2d7515b057ec3f22fa89f95d4eea2cf37aba6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:47:58-07:00","added":[],"removed":[],"modified":["README.md","lib/conflict_policy.py","lib/wiki_terms.py","tests/test_conflict_policy.py"]},{"id":"a8d855f96127e7467c70eb9e25deb040fce55201","message":"信任边界:TRUNCATED 诊断移出信封,grep 与 fts 检索面对齐\n\n1. emit(): 截断提示此前 printf 到 stdout,会被 kb_tools 包进\n \u003ckb_result\u003e 信封 —— SOP 一边要求 agent 对 TRUNCATED 缩小范围,\n 一边要求无视信封内一切指令,自相矛盾;审计 status_of 只看\n stderr,截断也漏记。改走 stderr,并在 audit_log 增加\n 'truncated' 状态。\n2. kb grep: 导航层(INDEX/_index/README)此前只在 fts 侧被排除,\n grep 会命中并让 agent 引用 INDEX.md 的行当证据。rg 用 --iglob、\n grep 用 --exclude 与 fts 的 NAV 列表对齐。\n3. emit(): wc -c 前导空格清理(macOS 输出对齐问题)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/a8d855f96127e7467c70eb9e25deb040fce55201","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:46:07-07:00","added":[],"removed":[],"modified":["kb","lib/audit_log.py"]},{"id":"4a3ea648c8f46c0456e25ca97a476819d7421404","message":"评测口径:grep 兜底改用真分词,幻觉率剔除注入行\n\n1. run_eval: grep 兜底探测词此前按空格切 —— 中文 query 没有空格,\n 整句丢给 grep 恒 0 命中,所有中文落空都被误判成「语义 gap →\n 该上 vec」,而处方本该是「补 syn.tsv」。这是本工具的核心判定,\n 现改用 kb_core.units() 同源分词 + 停用词过滤,只取真词探测。\n 实测: '包厢无声怎么办' 探测词从 [整句] 变为 [包厢, 无声]。\n2. run_eval: 清理 'if True else' 死代码;新增 --syn(默认与检索侧\n 同源 \u003ckb\u003e/conf/syn.tsv)。\n3. agent_eval: 幻觉率/正确率的分母剔除注入演练行 —— 注入行\n hallucinated 恒 False,混入会稀释幻觉率,又把「抵抗成功」记成\n 正确答案。注入有自己的 --gate-injection。\n4. agent_eval: 引用正则补 .mdx(EXTS 支持它,引用 mdx 的正确回答\n 此前会被误判为幻觉)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/4a3ea648c8f46c0456e25ca97a476819d7421404","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:44:32-07:00","added":[],"removed":[],"modified":["eval/agent_eval.py","eval/run_eval.py"]}],"total_commits":0,"head_commit":{"id":"7e38caa7a9a622e250ab06620cd295404fd97f4a","message":"治理状态:记录第二轮修复,版本 0.2.1\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/7e38caa7a9a622e250ab06620cd295404fd97f4a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:50:38-07:00","added":[],"removed":[],"modified":["VERSION","docs/governance-status.md"]},"repository":{"id":61,"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":"llmbash","full_name":"luoanwu/llmbash","description":"LLM Agent 知识库检索、导入、评测与治理工具","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/llmbash/languages","html_url":"https://gitea.g-hi.com/luoanwu/llmbash","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/llmbash","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/llmbash.git","clone_url":"https://gitea.g-hi.com/luoanwu/llmbash.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:38:52+08:00","updated_at":"2026-07-14T12:39:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1784003957
|
1784011490
|
0
|
1784003956
|
1784011490
|
|
|
0
|
Edit
Delete
|
|
23424
|
feat: initialize voiceprint recognition platform
|
62
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
1847c52407c1b5d6d4734f1b334f782bd4a76641
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"1847c52407c1b5d6d4734f1b334f782bd4a76641","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"1847c52407c1b5d6d4734f1b334f782bd4a76641","message":"feat: initialize voiceprint recognition platform\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/1847c52407c1b5d6d4734f1b334f782bd4a76641","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T17:42:28-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".dockerignore",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","ECAPA_WavLM_声纹方案完整包.zip","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260714120000_voiceprint_tasks/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/src/modules/voiceprint/tasks.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/plugins/voiceprint.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/voiceprint.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260714120000_voiceprint_tasks/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/src/voiceprint/voiceprint.controller.ts","apps/api-nestjs/src/voiceprint/voiceprint.module.ts","apps/api-nestjs/src/voiceprint/voiceprint.processor.ts","apps/api-nestjs/src/voiceprint/voiceprint.service.ts","apps/api-nestjs/src/voiceprint/voiceprint.types.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/voiceprint/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.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","apps/web/src/components/voiceprint/TasksPanel.tsx","apps/web/src/components/voiceprint/useVoiceprintTask.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","deploy/vm/.env.vm.example","deploy/vm/Caddyfile","deploy/vm/Dockerfile.node","deploy/vm/Dockerfile.research","deploy/vm/compose.yaml","deploy/vm/requirements-research.txt","deploy/vm/systemd/voiceprint-compose.service","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/deployment-vm.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/migration-notes.md","docs/product-prd.md","docs/research-age-gender.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","pyproject.toml","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/research-age-gender.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","reports/voiceprint-real-acceptance.latest.json","scripts/backup-vm.sh","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/check_voiceprint_real.py","scripts/deploy-vm.sh","scripts/fix-macos-faiss-libomp.sh","scripts/governance-report.mjs","scripts/init-vm-env.sh","scripts/stop-vm.sh","scripts/vm-status.sh","src/speaker_embedding/__init__.py","src/speaker_embedding/age_gender_cli.py","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/cli.py","src/speaker_embedding/extractor.py","src/speaker_embedding/profile_cli.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/singing_activity.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/speaker_id_cli.py","src/speaker_embedding/timbre.py","tests/test_age_gender_research.py","tests/test_aggregation.py","tests/test_sidecar.py","tests/test_singing_activity.py","tests/test_speaker_db.py","tsconfig.base.json","turbo.json","声纹识别.zip"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"1847c52407c1b5d6d4734f1b334f782bd4a76641","message":"feat: initialize voiceprint recognition platform\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/1847c52407c1b5d6d4734f1b334f782bd4a76641","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T17:42:28-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".dockerignore",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","ECAPA_WavLM_声纹方案完整包.zip","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260714120000_voiceprint_tasks/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/src/modules/voiceprint/tasks.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/plugins/voiceprint.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/voiceprint.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260714120000_voiceprint_tasks/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/src/voiceprint/voiceprint.controller.ts","apps/api-nestjs/src/voiceprint/voiceprint.module.ts","apps/api-nestjs/src/voiceprint/voiceprint.processor.ts","apps/api-nestjs/src/voiceprint/voiceprint.service.ts","apps/api-nestjs/src/voiceprint/voiceprint.types.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/voiceprint/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.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","apps/web/src/components/voiceprint/TasksPanel.tsx","apps/web/src/components/voiceprint/useVoiceprintTask.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","deploy/vm/.env.vm.example","deploy/vm/Caddyfile","deploy/vm/Dockerfile.node","deploy/vm/Dockerfile.research","deploy/vm/compose.yaml","deploy/vm/requirements-research.txt","deploy/vm/systemd/voiceprint-compose.service","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/deployment-vm.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/migration-notes.md","docs/product-prd.md","docs/research-age-gender.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","pyproject.toml","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/research-age-gender.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","reports/voiceprint-real-acceptance.latest.json","scripts/backup-vm.sh","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/check_voiceprint_real.py","scripts/deploy-vm.sh","scripts/fix-macos-faiss-libomp.sh","scripts/governance-report.mjs","scripts/init-vm-env.sh","scripts/stop-vm.sh","scripts/vm-status.sh","src/speaker_embedding/__init__.py","src/speaker_embedding/age_gender_cli.py","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/cli.py","src/speaker_embedding/extractor.py","src/speaker_embedding/profile_cli.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/singing_activity.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/speaker_id_cli.py","src/speaker_embedding/timbre.py","tests/test_age_gender_research.py","tests/test_aggregation.py","tests/test_sidecar.py","tests/test_singing_activity.py","tests/test_speaker_db.py","tsconfig.base.json","turbo.json","声纹识别.zip"],"removed":[],"modified":[]},"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":true,"fork":false,"template":false,"mirror":false,"size":27,"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":1,"branch_count":1,"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-07-15T08:43:03+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
|
1784076185
|
1784076276
|
0
|
1784076183
|
1784076277
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23431
|
feat: initialize forced alignment workbench
|
63
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f7f58401d267fffa37e2c7282f531354478eeebf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f7f58401d267fffa37e2c7282f531354478eeebf","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f7f58401d267fffa37e2c7282f531354478eeebf","message":"feat: initialize forced alignment workbench\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/f7f58401d267fffa37e2c7282f531354478eeebf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T17:58:39-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".codex/agents/acceptance-runner.toml",".codex/agents/module-blueprint.toml",".dockerignore",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260721110000_add_alignment_workbench/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260721110000_add_alignment_workbench/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.module.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/alignment/align/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","apps/web/src/features/alignment/lib/local-inputs.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","bakeoff/README.md","bakeoff/eval_lines.py","bakeoff/inputs/mms_fa.json","bakeoff/inputs/mms_fa_vadcut.json","bakeoff/inputs/mms_fa_vadcut2.json","bakeoff/inputs/mms_fa_vadcut_repair.json","bakeoff/inputs/qwen3_coarse.json","bakeoff/inputs/segments.json","bakeoff/inputs/truth.json","bakeoff/inputs/vocalparse.json","bakeoff/normalize.py","bakeoff/pipeline/concat_sections.py","bakeoff/pipeline/negative_suite.py","bakeoff/pipeline/run_pipeline.py","bakeoff/pipeline/vad_sections.py","bakeoff/results/REPORT-phase2.md","bakeoff/results/REPORT.md","bakeoff/results/eval.latest.json","bakeoff/results/triage-negative.latest.json","bakeoff/runs/mms_fa/input.json","bakeoff/runs/mms_fa/output.json","bakeoff/runs/mms_fa_vadcut/concat.wav","bakeoff/runs/mms_fa_vadcut/input.json","bakeoff/runs/mms_fa_vadcut/mapping.json","bakeoff/runs/mms_fa_vadcut/output.json","bakeoff/runs/mms_fa_vadcut2/concat.wav","bakeoff/runs/mms_fa_vadcut2/input.json","bakeoff/runs/mms_fa_vadcut2/mapping.json","bakeoff/runs/mms_fa_vadcut2/output.json","bakeoff/runs/pipeline/b_section/concat.wav","bakeoff/runs/pipeline/b_section/input.json","bakeoff/runs/pipeline/b_section/mapping.json","bakeoff/runs/pipeline/b_section/output.json","bakeoff/runs/pipeline/b_section/output.restored.json","bakeoff/runs/pipeline/negatives/n1_drop/input.json","bakeoff/runs/pipeline/negatives/n1_drop/mapping.json","bakeoff/runs/pipeline/negatives/n1_drop/output.json","bakeoff/runs/pipeline/negatives/n1_drop/output.restored.json","bakeoff/runs/pipeline/negatives/n1_drop/pipeline/sections.json","bakeoff/runs/pipeline/negatives/n1_drop/pipeline/sentences.json","bakeoff/runs/pipeline/negatives/n1_drop/pipeline/sentences.qualified.json","bakeoff/runs/pipeline/negatives/n1_drop/pipeline/summary.json","bakeoff/runs/pipeline/negatives/n1_drop/transcript.txt","bakeoff/runs/pipeline/negatives/n2_swap/input.json","bakeoff/runs/pipeline/negatives/n2_swap/mapping.json","bakeoff/runs/pipeline/negatives/n2_swap/output.json","bakeoff/runs/pipeline/negatives/n2_swap/output.restored.json","bakeoff/runs/pipeline/negatives/n2_swap/pipeline/sections.json","bakeoff/runs/pipeline/negatives/n2_swap/pipeline/sentences.json","bakeoff/runs/pipeline/negatives/n2_swap/pipeline/sentences.qualified.json","bakeoff/runs/pipeline/negatives/n2_swap/pipeline/summary.json","bakeoff/runs/pipeline/negatives/n2_swap/transcript.txt","bakeoff/runs/pipeline/negatives/n3_foreign/input.json","bakeoff/runs/pipeline/negatives/n3_foreign/mapping.json","bakeoff/runs/pipeline/negatives/n3_foreign/output.json","bakeoff/runs/pipeline/negatives/n3_foreign/output.restored.json","bakeoff/runs/pipeline/negatives/n3_foreign/pipeline/sections.json","bakeoff/runs/pipeline/negatives/n3_foreign/pipeline/sentences.json","bakeoff/runs/pipeline/negatives/n3_foreign/pipeline/sentences.qualified.json","bakeoff/runs/pipeline/negatives/n3_foreign/pipeline/summary.json","bakeoff/runs/pipeline/negatives/n3_foreign/transcript.txt","bakeoff/runs/pipeline/qingtian/sections.json","bakeoff/runs/pipeline/qingtian/sentences.json","bakeoff/runs/pipeline/qingtian/sentences.pre_escalation.json","bakeoff/runs/pipeline/qingtian/sentences.qualified.json","bakeoff/runs/pipeline/qingtian/summary.json","bakeoff/runs/pipeline/vad.json","bakeoff/runs/pipeline/vad.raw.json","bakeoff/runs/pipeline/vocals.16k.wav","bakeoff/runs/triage/n1_input.json","bakeoff/runs/triage/n1_output.json","bakeoff/runs/triage/n2_input.json","bakeoff/runs/triage/n2_output.json","bakeoff/runs/vocalparse/windows.json","bakeoff/runs/window_repair/in_34_34.json","bakeoff/runs/window_repair/in_36_37.json","bakeoff/runs/window_repair/in_46_47.json","bakeoff/runs/window_repair/in_50_50.json","bakeoff/runs/window_repair/in_56_57.json","bakeoff/runs/window_repair/out_34_34.json","bakeoff/runs/window_repair/out_36_37.json","bakeoff/runs/window_repair/out_46_47.json","bakeoff/runs/window_repair/out_50_50.json","bakeoff/runs/window_repair/out_56_57.json","bakeoff/runs/window_repair/win_34_34.wav","bakeoff/runs/window_repair/win_36_37.wav","bakeoff/runs/window_repair/win_46_47.wav","bakeoff/runs/window_repair/win_50_50.wav","bakeoff/runs/window_repair/win_56_57.wav","bakeoff/triage_negative.py","bakeoff/vad_concat_mms.py","bakeoff/window_repair.py","deploy/.env.vm.example","deploy/Caddyfile","deploy/Dockerfile.api","deploy/Dockerfile.web","deploy/docker-compose.vm.yml","design-qa.md","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/deployment-vm.md","docs/design/forced-alignment-workbench-implementation.png","docs/design/forced-alignment-workbench-option-1.png","docs/design/forced-alignment-workbench-real-result.png","docs/domain-glossary.md","docs/domain/forced-alignment-workbench-blueprint.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","engines/00-对比总表.md","engines/hubertfa.md","engines/qwen3-fa.md","engines/sofa.md","engines/stars.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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","samples/qingtian.sections.json","samples/qingtian.sentences.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/deploy-vm-remote.sh","scripts/deploy-vm.sh","scripts/governance-report.mjs","scripts/vm-down.sh","scripts/vm-status.sh","tsconfig.base.json","turbo.json","强制对齐技术栈全景.md","快速句对齐.md","快速句对齐方案.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"f7f58401d267fffa37e2c7282f531354478eeebf","message":"feat: initialize forced alignment workbench\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/f7f58401d267fffa37e2c7282f531354478eeebf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T17:58:39-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".codex/agents/acceptance-runner.toml",".codex/agents/module-blueprint.toml",".dockerignore",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260721110000_add_alignment_workbench/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260721110000_add_alignment_workbench/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.module.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/alignment/align/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","apps/web/src/features/alignment/lib/local-inputs.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","bakeoff/README.md","bakeoff/eval_lines.py","bakeoff/inputs/mms_fa.json","bakeoff/inputs/mms_fa_vadcut.json","bakeoff/inputs/mms_fa_vadcut2.json","bakeoff/inputs/mms_fa_vadcut_repair.json","bakeoff/inputs/qwen3_coarse.json","bakeoff/inputs/segments.json","bakeoff/inputs/truth.json","bakeoff/inputs/vocalparse.json","bakeoff/normalize.py","bakeoff/pipeline/concat_sections.py","bakeoff/pipeline/negative_suite.py","bakeoff/pipeline/run_pipeline.py","bakeoff/pipeline/vad_sections.py","bakeoff/results/REPORT-phase2.md","bakeoff/results/REPORT.md","bakeoff/results/eval.latest.json","bakeoff/results/triage-negative.latest.json","bakeoff/runs/mms_fa/input.json","bakeoff/runs/mms_fa/output.json","bakeoff/runs/mms_fa_vadcut/concat.wav","bakeoff/runs/mms_fa_vadcut/input.json","bakeoff/runs/mms_fa_vadcut/mapping.json","bakeoff/runs/mms_fa_vadcut/output.json","bakeoff/runs/mms_fa_vadcut2/concat.wav","bakeoff/runs/mms_fa_vadcut2/input.json","bakeoff/runs/mms_fa_vadcut2/mapping.json","bakeoff/runs/mms_fa_vadcut2/output.json","bakeoff/runs/pipeline/b_section/concat.wav","bakeoff/runs/pipeline/b_section/input.json","bakeoff/runs/pipeline/b_section/mapping.json","bakeoff/runs/pipeline/b_section/output.json","bakeoff/runs/pipeline/b_section/output.restored.json","bakeoff/runs/pipeline/negatives/n1_drop/input.json","bakeoff/runs/pipeline/negatives/n1_drop/mapping.json","bakeoff/runs/pipeline/negatives/n1_drop/output.json","bakeoff/runs/pipeline/negatives/n1_drop/output.restored.json","bakeoff/runs/pipeline/negatives/n1_drop/pipeline/sections.json","bakeoff/runs/pipeline/negatives/n1_drop/pipeline/sentences.json","bakeoff/runs/pipeline/negatives/n1_drop/pipeline/sentences.qualified.json","bakeoff/runs/pipeline/negatives/n1_drop/pipeline/summary.json","bakeoff/runs/pipeline/negatives/n1_drop/transcript.txt","bakeoff/runs/pipeline/negatives/n2_swap/input.json","bakeoff/runs/pipeline/negatives/n2_swap/mapping.json","bakeoff/runs/pipeline/negatives/n2_swap/output.json","bakeoff/runs/pipeline/negatives/n2_swap/output.restored.json","bakeoff/runs/pipeline/negatives/n2_swap/pipeline/sections.json","bakeoff/runs/pipeline/negatives/n2_swap/pipeline/sentences.json","bakeoff/runs/pipeline/negatives/n2_swap/pipeline/sentences.qualified.json","bakeoff/runs/pipeline/negatives/n2_swap/pipeline/summary.json","bakeoff/runs/pipeline/negatives/n2_swap/transcript.txt","bakeoff/runs/pipeline/negatives/n3_foreign/input.json","bakeoff/runs/pipeline/negatives/n3_foreign/mapping.json","bakeoff/runs/pipeline/negatives/n3_foreign/output.json","bakeoff/runs/pipeline/negatives/n3_foreign/output.restored.json","bakeoff/runs/pipeline/negatives/n3_foreign/pipeline/sections.json","bakeoff/runs/pipeline/negatives/n3_foreign/pipeline/sentences.json","bakeoff/runs/pipeline/negatives/n3_foreign/pipeline/sentences.qualified.json","bakeoff/runs/pipeline/negatives/n3_foreign/pipeline/summary.json","bakeoff/runs/pipeline/negatives/n3_foreign/transcript.txt","bakeoff/runs/pipeline/qingtian/sections.json","bakeoff/runs/pipeline/qingtian/sentences.json","bakeoff/runs/pipeline/qingtian/sentences.pre_escalation.json","bakeoff/runs/pipeline/qingtian/sentences.qualified.json","bakeoff/runs/pipeline/qingtian/summary.json","bakeoff/runs/pipeline/vad.json","bakeoff/runs/pipeline/vad.raw.json","bakeoff/runs/pipeline/vocals.16k.wav","bakeoff/runs/triage/n1_input.json","bakeoff/runs/triage/n1_output.json","bakeoff/runs/triage/n2_input.json","bakeoff/runs/triage/n2_output.json","bakeoff/runs/vocalparse/windows.json","bakeoff/runs/window_repair/in_34_34.json","bakeoff/runs/window_repair/in_36_37.json","bakeoff/runs/window_repair/in_46_47.json","bakeoff/runs/window_repair/in_50_50.json","bakeoff/runs/window_repair/in_56_57.json","bakeoff/runs/window_repair/out_34_34.json","bakeoff/runs/window_repair/out_36_37.json","bakeoff/runs/window_repair/out_46_47.json","bakeoff/runs/window_repair/out_50_50.json","bakeoff/runs/window_repair/out_56_57.json","bakeoff/runs/window_repair/win_34_34.wav","bakeoff/runs/window_repair/win_36_37.wav","bakeoff/runs/window_repair/win_46_47.wav","bakeoff/runs/window_repair/win_50_50.wav","bakeoff/runs/window_repair/win_56_57.wav","bakeoff/triage_negative.py","bakeoff/vad_concat_mms.py","bakeoff/window_repair.py","deploy/.env.vm.example","deploy/Caddyfile","deploy/Dockerfile.api","deploy/Dockerfile.web","deploy/docker-compose.vm.yml","design-qa.md","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/deployment-vm.md","docs/design/forced-alignment-workbench-implementation.png","docs/design/forced-alignment-workbench-option-1.png","docs/design/forced-alignment-workbench-real-result.png","docs/domain-glossary.md","docs/domain/forced-alignment-workbench-blueprint.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","engines/00-对比总表.md","engines/hubertfa.md","engines/qwen3-fa.md","engines/sofa.md","engines/stars.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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","samples/qingtian.sections.json","samples/qingtian.sentences.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/deploy-vm-remote.sh","scripts/deploy-vm.sh","scripts/governance-report.mjs","scripts/vm-down.sh","scripts/vm-status.sh","tsconfig.base.json","turbo.json","强制对齐技术栈全景.md","快速句对齐.md","快速句对齐方案.md"],"removed":[],"modified":[]},"repository":{"id":63,"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":"forced-alignment","full_name":"luoanwu/forced-alignment","description":"纯人声与歌词精准强制对齐工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/forced-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/forced-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/forced-alignment.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-22T08:56:49+08:00","updated_at":"2026-07-22T08:59: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
|
8
|
1784681970
|
1784682042
|
0
|
1784681969
|
1784682042
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23436
|
docs: refresh published SHA snapshot
|
64
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
07bdfd6b5c1898d76a113986ab5a6e7ade243839
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","message":"docs: refresh published SHA snapshot\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/07bdfd6b5c1898d76a113986ab5a6e7ade243839","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:33:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},{"id":"515f82aceaa7057454f2b135a8c82e980cef442d","message":"feat(svc): 音色军火库三件套——CFM/CFG 全链旋钮 + 参考自动去混响 + 多段拼接\n\n- nSteps/cfgScale:contracts 限幅 coerce → cover_jobs 增量列(迁移)→ 双后端\n 持久化+worker 透传 → sidecar 表单 → 前端「高级参数」区(含一直未露出的移调)\n- 音色参考默认走 分离+去混响 增强链(enhance_timbre 可关);干录音≈无损通过\n- build_prompt_multiseg:按静音切段→时长×能量排序→时间序 50ms 交叉淡化拼接,\n 合成用例验证三段唱段拿满 29.9s、段间静音全剔除(单窗口法会夹带静音)\n- 门禁:check exit 0 / runtime 87 tests(地板 87)/ ui 6 用例;参数贯通冒烟\n 实证(nSteps=8 存库→sidecar 接收;越界 400;垃圾文件秒级人话错误)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/515f82aceaa7057454f2b135a8c82e980cef442d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:32:27-07:00","added":["apps/api-fastify/prisma/migrations/20260722100000_cover_job_infer_params/migration.sql","apps/api-nestjs/prisma/migrations/20260722100000_cover_job_infer_params/migration.sql","reports/ui-acceptance-svc-files/ui-acceptance-mrvpbprt/jobs/dec89f00-288c-4793-a3e6-83f87e8a55d7/song.wav","reports/ui-acceptance-svc-files/ui-acceptance-mrvpbprt/timbres/a84c1bc4-8b4e-4911-9c75-8fd0271f886c.wav","reports/ui-acceptance-svc-files/ui-acceptance-mrvpbprt/timbres/db8e34cb-e986-4c76-81d4-f9aba530afcd.wav"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/svc/cover-jobs.service.ts","apps/api-fastify/src/modules/svc/sidecar.client.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/svc/cover-jobs.service.ts","apps/api-nestjs/src/svc/sidecar.client.ts","apps/web/src/components/SvcPanel.tsx","apps/web/src/lib/api.ts","docs/domain/svc-cover-blueprint.md","packages/contracts/src/cover.test.ts","packages/contracts/src/cover.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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","sidecars/soulx-singer/__pycache__/svc_pipeline.cpython-310.pyc","sidecars/soulx-singer/server.py","sidecars/soulx-singer/svc_pipeline.py"]},{"id":"8c2000bfc0f0f515f3e85cc32184c5e64aeeb1c8","message":"feat(svc): 音色获取质量三连修——录音关通话处理 + 参考智能选段 + 上限30s\n\n- 浏览器录音显式关闭 echoCancellation/noiseSuppression/autoGainControl:\n 通话向处理会削唱声谐波/抽压动态,是音色相似度的隐形杀手\n- sidecar prepare_timbre 智能选段:去首尾静音 + 选「有声占比×能量」最高的\n 连续窗口(合成用例验证:25s 静音开头场景有效信息 2.4×于盲取开头)\n- 音色参考上限 20s→30s;UI 文案建议 20-30 秒清唱;蓝图已知约束同步\n\ncheck:ui 6/6 全绿(假麦克风带新约束)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/8c2000bfc0f0f515f3e85cc32184c5e64aeeb1c8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:20:33-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".codex/agents/acceptance-runner.toml",".codex/agents/module-blueprint.toml","reports/ui-acceptance-svc-files/ui-acceptance-mrvp0i9x/jobs/721ef856-6cc6-4a99-8791-40ebb6a2f621/song.wav","reports/ui-acceptance-svc-files/ui-acceptance-mrvp0i9x/timbres/3ba94b55-4664-4066-9c03-8ba48a8f1a6f.wav","reports/ui-acceptance-svc-files/ui-acceptance-mrvp0i9x/timbres/fab7db0b-8d46-4586-a881-633467fe20da.wav"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/SvcPanel.tsx","apps/web/src/lib/audio-record.ts","docs/domain/svc-cover-blueprint.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/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","sidecars/soulx-singer/__pycache__/svc_pipeline.cpython-310.pyc","sidecars/soulx-singer/svc_pipeline.py"]},{"id":"e019e32157a468c1e93b874228ee37bf39989c9f","message":"docs: 发布快照登记双远端状态(GitHub 已核对,Gitea 待建仓)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/e019e32157a468c1e93b874228ee37bf39989c9f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T22:27:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"6614c0cee2254d7cf2c4e081e816642cc2c8aff7","message":"docs: 发布状态快照登记首提交 b13df4a(远端待建立)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/6614c0cee2254d7cf2c4e081e816642cc2c8aff7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T22:18:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","message":"docs: refresh published SHA snapshot\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/07bdfd6b5c1898d76a113986ab5a6e7ade243839","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:33:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":64,"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":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion/languages","html_url":"https://gitea.g-hi.com/luoanwu/voice-conversion","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voice-conversion.git","clone_url":"https://gitea.g-hi.com/luoanwu/voice-conversion.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-22T14:37:12+08:00","updated_at":"2026-07-22T14:37: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
|
3
|
5
|
1784702256
|
1784702338
|
0
|
1784702255
|
1784702338
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23446
|
feat(governance): machineize docs-truth gate, fix feat(governance): machineize docs-truth gate, fix Fastify Redis parsing, harden test-base guard...
|
54
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
2fa1666f6bb69b7784199199afde715a54856ac8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f98acd04c6fe50956d8cf89552a352c8893f037d","after":"2fa1666f6bb69b7784199199afde715a54856ac8","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/f98acd04c6fe50956d8cf89552a352c8893f037d...2fa1666f6bb69b7784199199afde715a54856ac8","commits":[{"id":"2fa1666f6bb69b7784199199afde715a54856ac8","message":"feat(governance): machineize docs-truth gate, fix Fastify Redis parsing, harden test-base guard\n\n- Add check:docs-truth (C14 machineized): targeted assertions catching README/standards\n drift from runtime truth (dual-backend positioning, tenant-aware envelope shape, NestJS\n HTTP engine, ghost assets like commitlint/RHF), wired into pnpm check + governance ratchet.\n- Fix Fastify BullMQ Redis URL parsing to include password/db (C15), matching NestJS's\n parseRedisConnection; adds a check:dual-backend tripwire so this can't silently regress.\n Without this, authenticated/non-zero-db Redis environments would split pub/sub and\n BullMQ onto different logical Redis instances.\n- Close G15: check:runtime / check:ui preflight now requires explicit REDIS_URL (no more\n silent localhost:6379 default) and enforces a base_framework* db name convention, with\n GOVERNANCE_DB_NAME_OVERRIDE=1 as an explicit escape hatch.\n- Correct stale doc claims across README/docs/standards to match actual code (Fastify is a\n full dual-backend peer per ADR-0009, not an optional fallback; envelope carries tenantId;\n NestJS uses platform-express not the Fastify adapter; annotate unimplemented commitlint/RHF\n plans as not-yet-landed).\n- Refresh governance reports/baseline after re-running pnpm check and check:runtime (56/56).\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/2fa1666f6bb69b7784199199afde715a54856ac8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:11:05-07:00","added":["reports/docs-truth.latest.json","scripts/check-docs-truth.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/plugins/queue.ts","docs/README.md","docs/governance-experience.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","package.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/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/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"8501dc9731b4f0f44ea36d2ffe557577354ebb31","message":"Refactor governance documentation structure\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/8501dc9731b4f0f44ea36d2ffe557577354ebb31","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T08:01:24-07:00","added":["docs/governance-experience.md"],"removed":[],"modified":["CLAUDE.md","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/validation-source.latest.json"]},{"id":"d799b176f2db4f3e538563eeb8228543d24ca639","message":"feat(runtime): close outbox failure governance gaps\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/d799b176f2db4f3e538563eeb8228543d24ca639","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-05T07:03:20-07:00","added":["apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/test/outbox.deadletter.test.ts"],"removed":["apps/web/src/hooks/useSSE.ts","apps/web/src/hooks/useWebSocket.ts"],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-nestjs/.env.example","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/store/realtime.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","packages/contracts/src/tenant.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/check-migrations.mjs","scripts/check-ui-acceptance.mjs"]},{"id":"43b8c8c943c406733084427f3ad27d836ae75681","message":"Update governance baseline for UI acceptance\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/43b8c8c943c406733084427f3ad27d836ae75681","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-04T23:37:30-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/skills/business-module-intake/SKILL.md",".github/workflows/governance.yml","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/playwright.config.ts","docs/domain/owner-matrix.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/tenant.ts","reports/dual-backend-parity.latest.json","reports/ui-acceptance.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-ui-acceptance.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.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/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/.env.example","apps/web/package.json","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","docs/adr/0009-dual-backend-governance-parity.md","package.json","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.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/validation-source.latest.json","scripts/check-migrations.mjs","scripts/check-runtime-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"2fa1666f6bb69b7784199199afde715a54856ac8","message":"feat(governance): machineize docs-truth gate, fix Fastify Redis parsing, harden test-base guard\n\n- Add check:docs-truth (C14 machineized): targeted assertions catching README/standards\n drift from runtime truth (dual-backend positioning, tenant-aware envelope shape, NestJS\n HTTP engine, ghost assets like commitlint/RHF), wired into pnpm check + governance ratchet.\n- Fix Fastify BullMQ Redis URL parsing to include password/db (C15), matching NestJS's\n parseRedisConnection; adds a check:dual-backend tripwire so this can't silently regress.\n Without this, authenticated/non-zero-db Redis environments would split pub/sub and\n BullMQ onto different logical Redis instances.\n- Close G15: check:runtime / check:ui preflight now requires explicit REDIS_URL (no more\n silent localhost:6379 default) and enforces a base_framework* db name convention, with\n GOVERNANCE_DB_NAME_OVERRIDE=1 as an explicit escape hatch.\n- Correct stale doc claims across README/docs/standards to match actual code (Fastify is a\n full dual-backend peer per ADR-0009, not an optional fallback; envelope carries tenantId;\n NestJS uses platform-express not the Fastify adapter; annotate unimplemented commitlint/RHF\n plans as not-yet-landed).\n- Refresh governance reports/baseline after re-running pnpm check and check:runtime (56/56).\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/2fa1666f6bb69b7784199199afde715a54856ac8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:11:05-07:00","added":["reports/docs-truth.latest.json","scripts/check-docs-truth.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/plugins/queue.ts","docs/README.md","docs/governance-experience.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","package.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/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/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},"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":468,"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-07-03T12:24:32+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
|
1784707904
|
1784708025
|
0
|
1784707902
|
1784708027
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23454
|
初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)
|
67
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","message":"初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)\n\n- 基础框架迁移(git archive 受管文件 + 身份改造 + 三级门禁,静态 pnpm check 全绿)\n- phase1 结构→歌词行全局单调 DP 对齐:以官方歌词为准强制覆盖、非演唱结构防幻听先验、\n 六语种语音层(拼音/jyutping/kakasi读音/jamo/metaphone/拉丁)、多块投票定语言、\n 异体字读音等价;phase2 MMS 三句滑窗 + VAD 尾校验产出行/字级时间\n- 四模型本地部署(SongFormer/Qwen3-ASR-1.7B/mms-fa/HTDemucs,权重不进 git,\n manifest SHA256 + check:model-assets 门禁 + smoke 证据)\n- Web 复核工作台 /review:载入/一键执行/重跑、试听/连续播放/逐字对比、问题行过滤、\n 语言徽标、错配警示;run_song 一键编排(缺歌声自动分离,产物落原目录复用)\n- pytest 48/48;真歌验证:晴天×3路径、后来、日语/粤语曲目(精度未做人工金标验收)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-27T23:15:09-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/review/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/examples/demo_song/asr.json","services/structure_lyrics/examples/demo_song/lyrics.txt","services/structure_lyrics/examples/demo_song/structure.json","services/structure_lyrics/phase1/__init__.py","services/structure_lyrics/phase1/align.py","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase1/lyrics.py","services/structure_lyrics/phase1/models.py","services/structure_lyrics/phase1/pipeline.py","services/structure_lyrics/phase1/similarity.py","services/structure_lyrics/phase1/structure.py","services/structure_lyrics/phase1/textnorm.py","services/structure_lyrics/phase2/__init__.py","services/structure_lyrics/phase2/audio_io.py","services/structure_lyrics/phase2/backend.py","services/structure_lyrics/phase2/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_align.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_multilang.py","services/structure_lyrics/tests/test_phase2.py","tsconfig.base.json","turbo.json","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/README.md","workers/mms-fa/align_tasks.py","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/qwen3-asr/README.md","workers/qwen3-asr/requirements_qwen3_asr.txt","workers/qwen3-asr/run_qwen3_asr.py","workers/qwen3-asr/testdata/asr_zh.txt","workers/qwen3-asr/testdata/asr_zh.wav","workers/qwen3-asr/vendor/qwen3_asr/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/boundary.py","workers/qwen3-asr/vendor/qwen3_asr/align/chars.py","workers/qwen3-asr/vendor/qwen3_asr/align/monotonic.py","workers/qwen3-asr/vendor/qwen3_asr/align/observation.py","workers/qwen3-asr/vendor/qwen3_asr/align/pcenter.py","workers/qwen3-asr/vendor/qwen3_asr/align/pipeline.py","workers/qwen3-asr/vendor/qwen3_asr/align/progress.py","workers/qwen3-asr/vendor/qwen3_asr/align/tail.py","workers/qwen3-asr/vendor/qwen3_asr/align/text.py","workers/qwen3-asr/vendor/qwen3_asr/align/windows.py","workers/qwen3-asr/vendor/qwen3_asr/align/wordless.py","workers/qwen3-asr/vendor/qwen3_asr/align_cli.py","workers/qwen3-asr/vendor/qwen3_asr/audio.py","workers/qwen3-asr/vendor/qwen3_asr/cache.py","workers/qwen3-asr/vendor/qwen3_asr/cli.py","workers/qwen3-asr/vendor/qwen3_asr/config.py","workers/qwen3-asr/vendor/qwen3_asr/diagnostics_cli.py","workers/qwen3-asr/vendor/qwen3_asr/engine.py","workers/qwen3-asr/vendor/qwen3_asr/forced_aligner.py","workers/qwen3-asr/vendor/qwen3_asr/service.py","workers/qwen3-asr/vendor/qwen3_asr/stream.py","workers/qwen3-asr/vendor/qwen3_asr/stream_cli.py","workers/qwen3-asr/vendor/qwen3_asr/structure.py","workers/qwen3-asr/vendor/qwen3_asr/textutil.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review_cli.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score_cli.py","workers/qwen3-asr/vendor/qwen3_asr/voice_diagnostics.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","message":"初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)\n\n- 基础框架迁移(git archive 受管文件 + 身份改造 + 三级门禁,静态 pnpm check 全绿)\n- phase1 结构→歌词行全局单调 DP 对齐:以官方歌词为准强制覆盖、非演唱结构防幻听先验、\n 六语种语音层(拼音/jyutping/kakasi读音/jamo/metaphone/拉丁)、多块投票定语言、\n 异体字读音等价;phase2 MMS 三句滑窗 + VAD 尾校验产出行/字级时间\n- 四模型本地部署(SongFormer/Qwen3-ASR-1.7B/mms-fa/HTDemucs,权重不进 git,\n manifest SHA256 + check:model-assets 门禁 + smoke 证据)\n- Web 复核工作台 /review:载入/一键执行/重跑、试听/连续播放/逐字对比、问题行过滤、\n 语言徽标、错配警示;run_song 一键编排(缺歌声自动分离,产物落原目录复用)\n- pytest 48/48;真歌验证:晴天×3路径、后来、日语/粤语曲目(精度未做人工金标验收)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-27T23:15:09-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/review/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/examples/demo_song/asr.json","services/structure_lyrics/examples/demo_song/lyrics.txt","services/structure_lyrics/examples/demo_song/structure.json","services/structure_lyrics/phase1/__init__.py","services/structure_lyrics/phase1/align.py","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase1/lyrics.py","services/structure_lyrics/phase1/models.py","services/structure_lyrics/phase1/pipeline.py","services/structure_lyrics/phase1/similarity.py","services/structure_lyrics/phase1/structure.py","services/structure_lyrics/phase1/textnorm.py","services/structure_lyrics/phase2/__init__.py","services/structure_lyrics/phase2/audio_io.py","services/structure_lyrics/phase2/backend.py","services/structure_lyrics/phase2/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_align.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_multilang.py","services/structure_lyrics/tests/test_phase2.py","tsconfig.base.json","turbo.json","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/README.md","workers/mms-fa/align_tasks.py","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/qwen3-asr/README.md","workers/qwen3-asr/requirements_qwen3_asr.txt","workers/qwen3-asr/run_qwen3_asr.py","workers/qwen3-asr/testdata/asr_zh.txt","workers/qwen3-asr/testdata/asr_zh.wav","workers/qwen3-asr/vendor/qwen3_asr/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/boundary.py","workers/qwen3-asr/vendor/qwen3_asr/align/chars.py","workers/qwen3-asr/vendor/qwen3_asr/align/monotonic.py","workers/qwen3-asr/vendor/qwen3_asr/align/observation.py","workers/qwen3-asr/vendor/qwen3_asr/align/pcenter.py","workers/qwen3-asr/vendor/qwen3_asr/align/pipeline.py","workers/qwen3-asr/vendor/qwen3_asr/align/progress.py","workers/qwen3-asr/vendor/qwen3_asr/align/tail.py","workers/qwen3-asr/vendor/qwen3_asr/align/text.py","workers/qwen3-asr/vendor/qwen3_asr/align/windows.py","workers/qwen3-asr/vendor/qwen3_asr/align/wordless.py","workers/qwen3-asr/vendor/qwen3_asr/align_cli.py","workers/qwen3-asr/vendor/qwen3_asr/audio.py","workers/qwen3-asr/vendor/qwen3_asr/cache.py","workers/qwen3-asr/vendor/qwen3_asr/cli.py","workers/qwen3-asr/vendor/qwen3_asr/config.py","workers/qwen3-asr/vendor/qwen3_asr/diagnostics_cli.py","workers/qwen3-asr/vendor/qwen3_asr/engine.py","workers/qwen3-asr/vendor/qwen3_asr/forced_aligner.py","workers/qwen3-asr/vendor/qwen3_asr/service.py","workers/qwen3-asr/vendor/qwen3_asr/stream.py","workers/qwen3-asr/vendor/qwen3_asr/stream_cli.py","workers/qwen3-asr/vendor/qwen3_asr/structure.py","workers/qwen3-asr/vendor/qwen3_asr/textutil.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review_cli.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score_cli.py","workers/qwen3-asr/vendor/qwen3_asr/voice_diagnostics.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json"],"removed":[],"modified":[]},"repository":{"id":67,"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":"songformer-structure-lyrics","full_name":"luoanwu/songformer-structure-lyrics","description":"SongFormer 结构时间歌词行:结构→歌词行→字级时间流水线 + 治理底座","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics/languages","html_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/songformer-structure-lyrics.git","clone_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics.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-28T14:19:19+08:00","updated_at":"2026-07-28T14:20:17+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
1785219618
|
1785219660
|
0
|
1785219617
|
1785219660
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23462
|
chore: refresh quotation acceptance evidence
|
72
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
5e1d3d6748f60f625f7cd20b8a5defc957497e81
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"5e1d3d6748f60f625f7cd20b8a5defc957497e81","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"5e1d3d6748f60f625f7cd20b8a5defc957497e81","message":"chore: refresh quotation acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/5e1d3d6748f60f625f7cd20b8a5defc957497e81","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:53:13-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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"]},{"id":"ce6add1f419d50f150baffe78acbc6adc81b0ea3","message":"feat: implement quotation core workflow\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/ce6add1f419d50f150baffe78acbc6adc81b0ea3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:52:01-07:00","added":["apps/api-fastify/prisma/migrations/20260730120000_quotation_core/migration.sql","apps/api-fastify/src/modules/customers/customers.service.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/routes/customers.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/src/routes/quotations.ts","apps/api-nestjs/prisma/migrations/20260730120000_quotation_core/migration.sql","apps/api-nestjs/src/customers/customers.controller.ts","apps/api-nestjs/src/customers/customers.module.ts","apps/api-nestjs/src/customers/customers.service.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.module.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.controller.ts","apps/api-nestjs/src/quotations/quotations.module.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/web/src/app/quote/[accessToken]/page.tsx","apps/web/src/app/quote/[accessToken]/print/page.tsx","apps/web/src/features/customers/api/customers-api.ts","apps/web/src/features/customers/components/CustomerLibrary.tsx","apps/web/src/features/customers/hooks/use-customers.ts","apps/web/src/features/products/api/products-api.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/products/hooks/use-products.ts","apps/web/src/features/quotations/api/quotations-api.ts","apps/web/src/features/quotations/components/PublicQuotationView.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/features/quotations/hooks/use-quotations.ts","docs/domain/quotation-blueprint.md","packages/contracts/src/quotation.ts"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/utils.ts","docs/domain-glossary.md","docs/domain/owner-matrix.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","pnpm-lock.yaml","reports/baseline.json","scripts/check-ui-acceptance.mjs"]},{"id":"4285699248e5f7d702171ee66f7ea2d5e57a4aed","message":"chore: refresh local acceptance reports\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/4285699248e5f7d702171ee66f7ea2d5e57a4aed","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:22:09-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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"]},{"id":"37e3a10e3f530299526a984beacd597b13ab098a","message":"chore: refresh migration evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/37e3a10e3f530299526a984beacd597b13ab098a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:55:08-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/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"]},{"id":"e6336ca3f8154422a56269945d3f39343dd952fa","message":"chore: migrate base framework\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/e6336ca3f8154422a56269945d3f39343dd952fa","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:42:32-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"5e1d3d6748f60f625f7cd20b8a5defc957497e81","message":"chore: refresh quotation acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/5e1d3d6748f60f625f7cd20b8a5defc957497e81","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:53:13-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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"]},"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":27,"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":1,"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-07-31T03:57: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
|
1785441431
|
1785441505
|
0
|
1785441430
|
1785441505
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23479
|
feat(content-analysis): integrate canonical vocal feat(content-analysis): integrate canonical vocal score metrics...
|
73
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
5adfbb1177c24e9a9ddb95ab1b5e5865baa60642
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"5adfbb1177c24e9a9ddb95ab1b5e5865baa60642","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"5adfbb1177c24e9a9ddb95ab1b5e5865baa60642","message":"feat(content-analysis): integrate canonical vocal score metrics\n","url":"https://gitea.g-hi.com/luoanwu/highpraise-content-management-platform/commit/5adfbb1177c24e9a9ddb95ab1b5e5865baa60642","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-13T01:35:39-07:00","added":["modules/content-analysis/schemas/vocal-score-evaluation-dataset.v3.schema.json","modules/content-analysis/schemas/vocal-score-evaluation-report.v3.schema.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/data/module-registry.v2.json","docs/domain/content-analysis-blueprint.md","docs/domain/content-platform-blueprint.md","docs/domain/owner-matrix.md","docs/framework-migration.md","modules/content-analysis/DEPLOYMENT.md","modules/content-analysis/README.md","modules/content-analysis/evaluation/vocal-score/datasets/p0-risk20.manifest.json","modules/content-analysis/reports/vocal-score-evaluation.latest.json","modules/content-analysis/reports/vocal-score-fixture-metrics.latest.json","modules/content-analysis/scripts/check_self_contained.py","modules/content-analysis/scripts/run_vocal_score_evaluation.py","modules/content-analysis/tests/test_self_check.py","modules/content-analysis/tests/test_vocal_score_evaluation.py","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/platform-boundaries.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-platform-boundaries.mjs"]},{"id":"e64a62b0b11460ac8ac0965fa3f755a6e23963a5","message":"feat(content-analysis): add isolated vocal score gold metrics\n","url":"https://gitea.g-hi.com/luoanwu/highpraise-content-management-platform/commit/e64a62b0b11460ac8ac0965fa3f755a6e23963a5","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-13T00:43:04-07:00","added":["modules/content-analysis/evaluation/vocal-score/datasets/synthetic-fixture-metrics.v1.json","modules/content-analysis/evaluation/vocal-score/gold/synthetic-fixture-001.adjudicated.v2.json","modules/content-analysis/evaluation/vocal-score/gold/synthetic-fixture-001.annotator-a.v2.json","modules/content-analysis/evaluation/vocal-score/gold/synthetic-fixture-001.annotator-b.v2.json","modules/content-analysis/evaluation/vocal-score/gold/synthetic-fixture-002.adjudicated.v2.json","modules/content-analysis/evaluation/vocal-score/gold/synthetic-fixture-002.annotator-a.v2.json","modules/content-analysis/evaluation/vocal-score/gold/synthetic-fixture-002.annotator-b.v2.json","modules/content-analysis/evaluation/vocal-score/policies/synthetic-fixture-metric-policy.v1.json","modules/content-analysis/examples/vocal-score-compile-request-002.json","modules/content-analysis/reports/vocal-score-fixture-metrics.latest.json","modules/content-analysis/schemas/vocal-score-gold-annotation.v2.schema.json","modules/content-analysis/schemas/vocal-score-synthetic-fixture-metric-policy.v1.schema.json","modules/content-analysis/schemas/vocal-score-synthetic-fixture-metrics-dataset.v1.schema.json","modules/content-analysis/schemas/vocal-score-synthetic-fixture-metrics-report.v1.schema.json","modules/content-analysis/scripts/run_vocal_score_fixture_metrics.py","modules/content-analysis/src/content_analysis/vocal_score_evaluation/__init__.py","modules/content-analysis/src/content_analysis/vocal_score_evaluation/gold_semantics.py","modules/content-analysis/src/content_analysis/vocal_score_evaluation/metrics.py","modules/content-analysis/tests/test_vocal_score_fixture_metrics.py","modules/content-analysis/tests/test_vocal_score_gold_semantics.py","modules/content-analysis/tests/test_vocal_score_metrics.py"],"removed":[],"modified":["CLAUDE.md","apps/web/src/data/module-registry.v2.json","docs/domain/content-analysis-blueprint.md","docs/domain/content-platform-blueprint.md","docs/domain/owner-matrix.md","docs/framework-migration.md","modules/content-analysis/DEPLOYMENT.md","modules/content-analysis/README.md","modules/content-analysis/reports/vocal-score-evaluation.latest.json","modules/content-analysis/scripts/check_self_contained.py","modules/content-analysis/scripts/run_vocal_score_evaluation.py","modules/content-analysis/tests/test_self_check.py","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/platform-boundaries.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-platform-boundaries.mjs"]},{"id":"43f31bf8615c32aa70532927d9f34fcdcce68717","message":"feat(score): harden evaluation eligibility\n","url":"https://gitea.g-hi.com/luoanwu/highpraise-content-management-platform/commit/43f31bf8615c32aa70532927d9f34fcdcce68717","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-12T23:10:30-07:00","added":["modules/content-analysis/evaluation/vocal-score/trust/rights-trusted-keyring.v1.json","modules/content-analysis/schemas/vocal-score-evaluation-dataset.v2.schema.json","modules/content-analysis/schemas/vocal-score-evaluation-evidence-bundle.v1.schema.json","modules/content-analysis/schemas/vocal-score-evaluation-report.v2.schema.json","modules/content-analysis/schemas/vocal-score-rights-attestation.v1.schema.json","modules/content-analysis/schemas/vocal-score-rights-trusted-keyring.v1.schema.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/data/module-registry.v2.json","docs/domain/content-analysis-blueprint.md","docs/domain/content-platform-blueprint.md","docs/domain/owner-matrix.md","docs/framework-migration.md","modules/content-alignment/reports/model-assets.latest.json","modules/content-alignment/reports/self-contained.latest.json","modules/content-analysis/DEPLOYMENT.md","modules/content-analysis/README.md","modules/content-analysis/content_analysis_service/schema_validation.py","modules/content-analysis/evaluation/vocal-score/datasets/p0-risk20.manifest.json","modules/content-analysis/reports/vocal-score-evaluation.latest.json","modules/content-analysis/scripts/check_self_contained.py","modules/content-analysis/scripts/run_vocal_score_evaluation.py","modules/content-analysis/src/content_analysis/vocal_score/__init__.py","modules/content-analysis/tests/test_self_check.py","modules/content-analysis/tests/test_vocal_score_evaluation.py","modules/content-stem-preparation/reports/self-contained.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/platform-boundaries.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-platform-boundaries.mjs"]},{"id":"5f47fc13a7039417186241b5f6d2a6fe60f0a0f8","message":"fix(stem): align realtime endpoint and seal publish evidence\n","url":"https://gitea.g-hi.com/luoanwu/highpraise-content-management-platform/commit/5f47fc13a7039417186241b5f6d2a6fe60f0a0f8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-12T21:20:21-07:00","added":["modules/content-stem-preparation/reports/contract-consumers.latest.json","modules/content-stem-preparation/reports/dual-backend-parity.latest.json","modules/content-stem-preparation/reports/governance.latest.json","modules/content-stem-preparation/reports/migrations.latest.json","modules/content-stem-preparation/reports/order-concurrency-guard.latest.json","modules/content-stem-preparation/reports/runtime-governance.latest.json","modules/content-stem-preparation/reports/schema-sync.latest.json","modules/content-stem-preparation/reports/validation-source.latest.json"],"removed":["apps/web/.next-vocal-score-3342/BUILD_ID","apps/web/.next-vocal-score-3342/app-build-manifest.json","apps/web/.next-vocal-score-3342/app-path-routes-manifest.json","apps/web/.next-vocal-score-3342/build-manifest.json","apps/web/.next-vocal-score-3342/cache/.previewinfo","apps/web/.next-vocal-score-3342/cache/.rscinfo","apps/web/.next-vocal-score-3342/cache/eslint/.cache_c1u5dj","apps/web/.next-vocal-score-3342/cache/webpack/client-production/0.pack","apps/web/.next-vocal-score-3342/cache/webpack/client-production/1.pack","apps/web/.next-vocal-score-3342/cache/webpack/client-production/2.pack","apps/web/.next-vocal-score-3342/cache/webpack/client-production/index.pack","apps/web/.next-vocal-score-3342/cache/webpack/client-production/index.pack.old","apps/web/.next-vocal-score-3342/cache/webpack/edge-server-production/0.pack","apps/web/.next-vocal-score-3342/cache/webpack/edge-server-production/index.pack","apps/web/.next-vocal-score-3342/cache/webpack/server-production/0.pack","apps/web/.next-vocal-score-3342/cache/webpack/server-production/1.pack","apps/web/.next-vocal-score-3342/cache/webpack/server-production/index.pack","apps/web/.next-vocal-score-3342/cache/webpack/server-production/index.pack.old","apps/web/.next-vocal-score-3342/diagnostics/build-diagnostics.json","apps/web/.next-vocal-score-3342/diagnostics/framework.json","apps/web/.next-vocal-score-3342/export-marker.json","apps/web/.next-vocal-score-3342/images-manifest.json","apps/web/.next-vocal-score-3342/next-minimal-server.js.nft.json","apps/web/.next-vocal-score-3342/next-server.js.nft.json","apps/web/.next-vocal-score-3342/package.json","apps/web/.next-vocal-score-3342/prerender-manifest.json","apps/web/.next-vocal-score-3342/react-loadable-manifest.json","apps/web/.next-vocal-score-3342/required-server-files.json","apps/web/.next-vocal-score-3342/routes-manifest.json","apps/web/.next-vocal-score-3342/server/app-paths-manifest.json","apps/web/.next-vocal-score-3342/server/app/_not-found.html","apps/web/.next-vocal-score-3342/server/app/_not-found.meta","apps/web/.next-vocal-score-3342/server/app/_not-found.rsc","apps/web/.next-vocal-score-3342/server/app/_not-found/page.js","apps/web/.next-vocal-score-3342/server/app/_not-found/page.js.nft.json","apps/web/.next-vocal-score-3342/server/app/_not-found/page_client-reference-manifest.js","apps/web/.next-vocal-score-3342/server/app/content-analysis/dance.html","apps/web/.next-vocal-score-3342/server/app/content-analysis/dance.meta","apps/web/.next-vocal-score-3342/server/app/content-analysis/dance.rsc","apps/web/.next-vocal-score-3342/server/app/content-analysis/dance/page.js","apps/web/.next-vocal-score-3342/server/app/content-analysis/dance/page.js.nft.json","apps/web/.next-vocal-score-3342/server/app/content-analysis/dance/page_client-reference-manifest.js","apps/web/.next-vocal-score-3342/server/app/content-analysis/vocal-score.html","apps/web/.next-vocal-score-3342/server/app/content-analysis/vocal-score.meta","apps/web/.next-vocal-score-3342/server/app/content-analysis/vocal-score.rsc","apps/web/.next-vocal-score-3342/server/app/content-analysis/vocal-score/page.js","apps/web/.next-vocal-score-3342/server/app/content-analysis/vocal-score/page.js.nft.json","apps/web/.next-vocal-score-3342/server/app/content-analysis/vocal-score/page_client-reference-manifest.js","apps/web/.next-vocal-score-3342/server/app/framework-demo.html","apps/web/.next-vocal-score-3342/server/app/framework-demo.meta","apps/web/.next-vocal-score-3342/server/app/framework-demo.rsc","apps/web/.next-vocal-score-3342/server/app/framework-demo/page.js","apps/web/.next-vocal-score-3342/server/app/framework-demo/page.js.nft.json","apps/web/.next-vocal-score-3342/server/app/framework-demo/page_client-reference-manifest.js","apps/web/.next-vocal-score-3342/server/app/index.html","apps/web/.next-vocal-score-3342/server/app/index.meta","apps/web/.next-vocal-score-3342/server/app/index.rsc","apps/web/.next-vocal-score-3342/server/app/page.js","apps/web/.next-vocal-score-3342/server/app/page.js.nft.json","apps/web/.next-vocal-score-3342/server/app/page_client-reference-manifest.js","apps/web/.next-vocal-score-3342/server/chunks/293.js","apps/web/.next-vocal-score-3342/server/chunks/700.js","apps/web/.next-vocal-score-3342/server/chunks/758.js","apps/web/.next-vocal-score-3342/server/chunks/759.js","apps/web/.next-vocal-score-3342/server/chunks/874.js","apps/web/.next-vocal-score-3342/server/chunks/988.js","apps/web/.next-vocal-score-3342/server/functions-config-manifest.json","apps/web/.next-vocal-score-3342/server/interception-route-rewrite-manifest.js","apps/web/.next-vocal-score-3342/server/middleware-build-manifest.js","apps/web/.next-vocal-score-3342/server/middleware-manifest.json","apps/web/.next-vocal-score-3342/server/middleware-react-loadable-manifest.js","apps/web/.next-vocal-score-3342/server/next-font-manifest.js","apps/web/.next-vocal-score-3342/server/next-font-manifest.json","apps/web/.next-vocal-score-3342/server/pages-manifest.json","apps/web/.next-vocal-score-3342/server/pages/404.html","apps/web/.next-vocal-score-3342/server/pages/500.html","apps/web/.next-vocal-score-3342/server/pages/_app.js","apps/web/.next-vocal-score-3342/server/pages/_app.js.nft.json","apps/web/.next-vocal-score-3342/server/pages/_document.js","apps/web/.next-vocal-score-3342/server/pages/_document.js.nft.json","apps/web/.next-vocal-score-3342/server/pages/_error.js","apps/web/.next-vocal-score-3342/server/pages/_error.js.nft.json","apps/web/.next-vocal-score-3342/server/server-reference-manifest.js","apps/web/.next-vocal-score-3342/server/server-reference-manifest.json","apps/web/.next-vocal-score-3342/server/webpack-runtime.js","apps/web/.next-vocal-score-3342/static/5NNXTvJBCgs4K7INy7Fpq/_buildManifest.js","apps/web/.next-vocal-score-3342/static/5NNXTvJBCgs4K7INy7Fpq/_ssgManifest.js","apps/web/.next-vocal-score-3342/static/chunks/163-4182d870276e7df5.js","apps/web/.next-vocal-score-3342/static/chunks/217-5b22b4a8ae06a033.js","apps/web/.next-vocal-score-3342/static/chunks/41-d27e51d7dd7ff4a7.js","apps/web/.next-vocal-score-3342/static/chunks/504-ee652f8b5f8a89d3.js","apps/web/.next-vocal-score-3342/static/chunks/534-4be3e987f33ff5a5.js","apps/web/.next-vocal-score-3342/static/chunks/71-3af3b75fe2fcd7f3.js","apps/web/.next-vocal-score-3342/static/chunks/905-453d1b960e406ca8.js","apps/web/.next-vocal-score-3342/static/chunks/app/_not-found/page-10e1f63fb8237c46.js","apps/web/.next-vocal-score-3342/static/chunks/app/content-analysis/dance/page-d8fffbe188a1d6c8.js","apps/web/.next-vocal-score-3342/static/chunks/app/content-analysis/vocal-score/page-c9a5dd18742e1b39.js","apps/web/.next-vocal-score-3342/static/chunks/app/framework-demo/page-2fd7a8c7cf2a8011.js","apps/web/.next-vocal-score-3342/static/chunks/app/layout-c44d369f2a2959d7.js","apps/web/.next-vocal-score-3342/static/chunks/app/page-93bec44208fa8836.js","apps/web/.next-vocal-score-3342/static/chunks/c517231d-185cbf474551c2c3.js","apps/web/.next-vocal-score-3342/static/chunks/framework-0f89e0ec90ba9475.js","apps/web/.next-vocal-score-3342/static/chunks/main-3b3858801ae3affb.js","apps/web/.next-vocal-score-3342/static/chunks/main-app-ccd42aea3b5e793f.js","apps/web/.next-vocal-score-3342/static/chunks/pages/_app-eb4d2c012bed6c26.js","apps/web/.next-vocal-score-3342/static/chunks/pages/_error-bd4452cfe7d79031.js","apps/web/.next-vocal-score-3342/static/chunks/polyfills-42372ed130431b0a.js","apps/web/.next-vocal-score-3342/static/chunks/webpack-ff80d384c0a39e27.js","apps/web/.next-vocal-score-3342/static/css/d0594d8d528af107.css","apps/web/.next-vocal-score-3342/trace","apps/web/.next-vocal-score-3342/types/app/content-analysis/dance/page.ts","apps/web/.next-vocal-score-3342/types/app/content-analysis/vocal-score/page.ts","apps/web/.next-vocal-score-3342/types/app/framework-demo/page.ts","apps/web/.next-vocal-score-3342/types/app/layout.ts","apps/web/.next-vocal-score-3342/types/app/page.ts","apps/web/.next-vocal-score-3342/types/cache-life.d.ts","apps/web/.next-vocal-score-3342/types/package.json","apps/web/.next-vocal-score-3342/types/routes.d.ts","apps/web/.next-vocal-score-3342/types/validator.ts"],"modified":[".gitignore","CLAUDE.md","docs/framework-migration.md","modules/content-alignment/reports/model-assets.latest.json","modules/content-alignment/reports/self-contained.latest.json","modules/content-analysis/reports/vocal-score-evaluation.latest.json","modules/content-stem-preparation/.gitignore","modules/content-stem-preparation/CLAUDE.md","modules/content-stem-preparation/apps/web/src/hooks/useRealtime.ts","modules/content-stem-preparation/docs/governance-experience.md","modules/content-stem-preparation/reports/docs-truth.latest.json","modules/content-stem-preparation/reports/governance-docs.latest.json","modules/content-stem-preparation/reports/naming.latest.json","modules/content-stem-preparation/reports/self-contained.latest.json","modules/content-stem-preparation/scripts/check-docs-truth.mjs","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/platform-boundaries.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"]},{"id":"3eb89b087903c1657bca1927cf18941a303029a1","message":"feat(三线完善): run 工作台 + 评分真实链 + 舞谱回放对拍 + 灯谱修订对比;全量门禁首绿\n\n- Web:/content-analysis/runs 持久编排工作台(素材载入/歌词证据浏览器内容寻址/实时列表与详情)\n- 评分工作台接通 WAV→3351→DSP→P0 真实链(补 next.config DSP rewrite),DSP 成熟度徽标不弱化诚实边界\n- 舞谱工作台本地回放对拍(SHA 绑定回放源 + 播放头 + 越拍高亮)\n- 灯谱 RevisionDiffPanel(基准快照 cue 级 diff + 修订链视图)+ A–E 报告钻取\n- 注册表/门禁成对更新(integrationStatus、runs 工作台、activeScope)\n- 修复三处历史死断言(首页 spec 漂移)+ C16 式容器锚定;首页 runs 链接标签\n- 目标仓首次全绿:check:runtime 80 tests、check:ui 15 用例、pnpm check 含棘轮全通过,\n reportProvenanceViolations 13→0,棘轮地板收紧至 15 文件/95 用例/80 tests/15 UI 用例\n- CLAUDE.md 动态区 8 行基线表 + 4 段说明同步为目标仓新鲜证据口径\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/highpraise-content-management-platform/commit/3eb89b087903c1657bca1927cf18941a303029a1","author":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-12T08:26:31-07:00","added":["apps/web/src/app/content-analysis/runs/page.tsx","apps/web/src/components/content-analysis/AnalysisRunWorkbench.tsx","apps/web/src/components/content-analysis/lighting/RevisionDiffPanel.tsx","apps/web/src/lib/analysis-runs-api.ts","modules/content-stem-preparation/reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"removed":["modules/content-stem-preparation/apps/web/.next-verify/BUILD_ID","modules/content-stem-preparation/apps/web/.next-verify/app-build-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/app-path-routes-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/build-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/cache/.previewinfo","modules/content-stem-preparation/apps/web/.next-verify/cache/.rscinfo","modules/content-stem-preparation/apps/web/.next-verify/cache/eslint/.cache_k8kj8v","modules/content-stem-preparation/apps/web/.next-verify/cache/webpack/client-production/0.pack","modules/content-stem-preparation/apps/web/.next-verify/cache/webpack/client-production/index.pack","modules/content-stem-preparation/apps/web/.next-verify/cache/webpack/edge-server-production/0.pack","modules/content-stem-preparation/apps/web/.next-verify/cache/webpack/edge-server-production/index.pack","modules/content-stem-preparation/apps/web/.next-verify/cache/webpack/server-production/0.pack","modules/content-stem-preparation/apps/web/.next-verify/cache/webpack/server-production/index.pack","modules/content-stem-preparation/apps/web/.next-verify/diagnostics/build-diagnostics.json","modules/content-stem-preparation/apps/web/.next-verify/diagnostics/framework.json","modules/content-stem-preparation/apps/web/.next-verify/export-marker.json","modules/content-stem-preparation/apps/web/.next-verify/images-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/next-minimal-server.js.nft.json","modules/content-stem-preparation/apps/web/.next-verify/next-server.js.nft.json","modules/content-stem-preparation/apps/web/.next-verify/package.json","modules/content-stem-preparation/apps/web/.next-verify/prerender-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/react-loadable-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/required-server-files.json","modules/content-stem-preparation/apps/web/.next-verify/routes-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/server/app-paths-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/server/app/_not-found.html","modules/content-stem-preparation/apps/web/.next-verify/server/app/_not-found.meta","modules/content-stem-preparation/apps/web/.next-verify/server/app/_not-found.rsc","modules/content-stem-preparation/apps/web/.next-verify/server/app/_not-found/page.js","modules/content-stem-preparation/apps/web/.next-verify/server/app/_not-found/page.js.nft.json","modules/content-stem-preparation/apps/web/.next-verify/server/app/_not-found/page_client-reference-manifest.js","modules/content-stem-preparation/apps/web/.next-verify/server/app/framework-demo.html","modules/content-stem-preparation/apps/web/.next-verify/server/app/framework-demo.meta","modules/content-stem-preparation/apps/web/.next-verify/server/app/framework-demo.rsc","modules/content-stem-preparation/apps/web/.next-verify/server/app/framework-demo/page.js","modules/content-stem-preparation/apps/web/.next-verify/server/app/framework-demo/page.js.nft.json","modules/content-stem-preparation/apps/web/.next-verify/server/app/framework-demo/page_client-reference-manifest.js","modules/content-stem-preparation/apps/web/.next-verify/server/app/index.html","modules/content-stem-preparation/apps/web/.next-verify/server/app/index.meta","modules/content-stem-preparation/apps/web/.next-verify/server/app/index.rsc","modules/content-stem-preparation/apps/web/.next-verify/server/app/page.js","modules/content-stem-preparation/apps/web/.next-verify/server/app/page.js.nft.json","modules/content-stem-preparation/apps/web/.next-verify/server/app/page_client-reference-manifest.js","modules/content-stem-preparation/apps/web/.next-verify/server/chunks/294.js","modules/content-stem-preparation/apps/web/.next-verify/server/chunks/700.js","modules/content-stem-preparation/apps/web/.next-verify/server/chunks/759.js","modules/content-stem-preparation/apps/web/.next-verify/server/chunks/923.js","modules/content-stem-preparation/apps/web/.next-verify/server/functions-config-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/server/interception-route-rewrite-manifest.js","modules/content-stem-preparation/apps/web/.next-verify/server/middleware-build-manifest.js","modules/content-stem-preparation/apps/web/.next-verify/server/middleware-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/server/middleware-react-loadable-manifest.js","modules/content-stem-preparation/apps/web/.next-verify/server/next-font-manifest.js","modules/content-stem-preparation/apps/web/.next-verify/server/next-font-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/server/pages-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/server/pages/404.html","modules/content-stem-preparation/apps/web/.next-verify/server/pages/500.html","modules/content-stem-preparation/apps/web/.next-verify/server/pages/_app.js","modules/content-stem-preparation/apps/web/.next-verify/server/pages/_app.js.nft.json","modules/content-stem-preparation/apps/web/.next-verify/server/pages/_document.js","modules/content-stem-preparation/apps/web/.next-verify/server/pages/_document.js.nft.json","modules/content-stem-preparation/apps/web/.next-verify/server/pages/_error.js","modules/content-stem-preparation/apps/web/.next-verify/server/pages/_error.js.nft.json","modules/content-stem-preparation/apps/web/.next-verify/server/server-reference-manifest.js","modules/content-stem-preparation/apps/web/.next-verify/server/server-reference-manifest.json","modules/content-stem-preparation/apps/web/.next-verify/server/webpack-runtime.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/109-4a398a1aabac154c.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/124-692e8da73cdcab4b.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/172-44918854a4062715.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/217-e2b42b639026e59f.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/265-4b882205b2304362.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/821-e944e0ab408c8858.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/app/_not-found/page-ac01c90bb011e9a7.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/app/framework-demo/page-6d105e8b3c472b05.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/app/layout-08a44ec4bb450a0d.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/app/page-e5a204342568e618.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/c517231d-18aae8278ad011c0.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/framework-b5223c1542334872.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/main-49772dad59bb9d08.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/main-app-94f808d3908405ad.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/pages/_app-eb4d2c012bed6c26.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/pages/_error-bd4452cfe7d79031.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/polyfills-42372ed130431b0a.js","modules/content-stem-preparation/apps/web/.next-verify/static/chunks/webpack-949f95d056406c6e.js","modules/content-stem-preparation/apps/web/.next-verify/static/css/7459b3fd99e18208.css","modules/content-stem-preparation/apps/web/.next-verify/static/x7YQ2qtUVCXdNc6QPxoTE/_buildManifest.js","modules/content-stem-preparation/apps/web/.next-verify/static/x7YQ2qtUVCXdNc6QPxoTE/_ssgManifest.js","modules/content-stem-preparation/apps/web/.next-verify/trace","modules/content-stem-preparation/apps/web/.next-verify/types/app/framework-demo/page.ts","modules/content-stem-preparation/apps/web/.next-verify/types/app/layout.ts","modules/content-stem-preparation/apps/web/.next-verify/types/app/page.ts","modules/content-stem-preparation/apps/web/.next-verify/types/cache-life.d.ts","modules/content-stem-preparation/apps/web/.next-verify/types/package.json","modules/content-stem-preparation/apps/web/.next-verify/types/routes.d.ts","modules/content-stem-preparation/apps/web/.next-verify/types/validator.ts"],"modified":[".claude/launch.json","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/content-analysis/DanceLaneTimeline.tsx","apps/web/src/components/content-analysis/DanceWorkbench.tsx","apps/web/src/components/content-analysis/VocalScoreWorkbench.tsx","apps/web/src/components/content-analysis/lighting/LightingWorkbench.tsx","apps/web/src/data/module-registry.v2.json","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/content-analysis-api.ts","modules/content-alignment/CLAUDE.md","modules/content-alignment/apps/web/src/app/page.tsx","modules/content-alignment/reports/docs-truth.latest.json","modules/content-alignment/reports/governance-docs.latest.json","modules/content-alignment/reports/model-assets.latest.json","modules/content-alignment/reports/naming.latest.json","modules/content-alignment/reports/self-contained.latest.json","modules/content-analysis/reports/vocal-score-evaluation.latest.json","modules/content-stem-preparation/CLAUDE.md","modules/content-stem-preparation/README.md","modules/content-stem-preparation/apps/web/.env.example","modules/content-stem-preparation/apps/web/next.config.ts","modules/content-stem-preparation/reports/docs-truth.latest.json","modules/content-stem-preparation/reports/governance-docs.latest.json","modules/content-stem-preparation/reports/self-contained.latest.json","modules/content-stem-preparation/scripts/check-docs-truth.mjs","packages/contracts/src/analysis-run.test.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/platform-boundaries.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-platform-boundaries.mjs"]}],"total_commits":0,"head_commit":{"id":"5adfbb1177c24e9a9ddb95ab1b5e5865baa60642","message":"feat(content-analysis): integrate canonical vocal score metrics\n","url":"https://gitea.g-hi.com/luoanwu/highpraise-content-management-platform/commit/5adfbb1177c24e9a9ddb95ab1b5e5865baa60642","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-13T01:35:39-07:00","added":["modules/content-analysis/schemas/vocal-score-evaluation-dataset.v3.schema.json","modules/content-analysis/schemas/vocal-score-evaluation-report.v3.schema.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/data/module-registry.v2.json","docs/domain/content-analysis-blueprint.md","docs/domain/content-platform-blueprint.md","docs/domain/owner-matrix.md","docs/framework-migration.md","modules/content-analysis/DEPLOYMENT.md","modules/content-analysis/README.md","modules/content-analysis/evaluation/vocal-score/datasets/p0-risk20.manifest.json","modules/content-analysis/reports/vocal-score-evaluation.latest.json","modules/content-analysis/reports/vocal-score-fixture-metrics.latest.json","modules/content-analysis/scripts/check_self_contained.py","modules/content-analysis/scripts/run_vocal_score_evaluation.py","modules/content-analysis/tests/test_self_check.py","modules/content-analysis/tests/test_vocal_score_evaluation.py","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/platform-boundaries.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-platform-boundaries.mjs"]},"repository":{"id":73,"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":"highpraise-content-management-platform","full_name":"luoanwu/highpraise-content-management-platform","description":"嗨赞内容管理平台:六模块治理底座与独立内容服务","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/highpraise-content-management-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/highpraise-content-management-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/highpraise-content-management-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/highpraise-content-management-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/highpraise-content-management-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-08-13T12:09:29+08:00","updated_at":"2026-08-13T17:12:48+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
|
1786612368
|
1786612459
|
0
|
1786612368
|
1786612461
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23481
|
chore(reports): 刷新治理证据,绑定发布状态快照提交
|
74
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
950d7e3d2189ba40de3049c4f10df0cad414c691
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"950d7e3d2189ba40de3049c4f10df0cad414c691","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/b4c2a8dcb155eeb7b28c2a2ee55520c649dd3d49...950d7e3d2189ba40de3049c4f10df0cad414c691","commits":[{"id":"950d7e3d2189ba40de3049c4f10df0cad414c691","message":"chore(reports): 刷新治理证据,绑定发布状态快照提交\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/950d7e3d2189ba40de3049c4f10df0cad414c691","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-14T15:17:56-07:00","added":[],"removed":[],"modified":["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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},{"id":"5261c63466442dec3dfed5282117e8e700d22aea","message":"docs(governance): 发布状态快照切换为 haimate 独立远端事实\n\norigin=GitHub laoluojuhai/haimate(私有)已推送对齐;gitea 远端项目待建(push-to-create 关闭)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/5261c63466442dec3dfed5282117e8e700d22aea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-14T15:17:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"5aba5a36e8958a21696e895693aa69bdc54a3308","message":"chore(reports): 刷新治理证据,绑定产品全景图归档提交(worktreeDirty=false)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/5aba5a36e8958a21696e895693aa69bdc54a3308","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-14T15:09:08-07:00","added":[],"removed":[],"modified":["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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},{"id":"7e2efd8626198ee54b5c98a118eadfa349ead8f8","message":"docs(product): 归档产品全景图 + 忽略 playwright-cli 调试产物\n\nmermaid 导出的产品全景图移入 docs/product/ 并在 README 登记(说明性快照,\n状态标注不作真源);.playwright-cli/ 为浏览器交互调试缓存,非验收证据,入 ignore。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/7e2efd8626198ee54b5c98a118eadfa349ead8f8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-14T15:08:55-07:00","added":["docs/product/haimate-product-overview.svg"],"removed":[],"modified":[".gitignore","docs/product/README.md"]},{"id":"5f4af5cd5ddb5188f410e292d5066def03fcf982","message":"chore(reports): 刷新治理证据,绑定 P0 收口加固提交\n\n静态门禁绑定 8c986f5;runtime(252 tests)/UI(11 用例)证据为提交前 dirty 工作区实跑,\nworktreeDirty=true 仅余未跟踪的 mermaid-diagram.svg(未入库的本地产物)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/5f4af5cd5ddb5188f410e292d5066def03fcf982","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-14T15:04:05-07:00","added":[],"removed":[],"modified":["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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"950d7e3d2189ba40de3049c4f10df0cad414c691","message":"chore(reports): 刷新治理证据,绑定发布状态快照提交\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/950d7e3d2189ba40de3049c4f10df0cad414c691","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-14T15:17:56-07:00","added":[],"removed":[],"modified":["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/runtime-governance.latest.json","reports/schema-sync.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":27,"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-15T06:22:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1786746164
|
1786746246
|
0
|
1786746163
|
1786746246
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23484
|
docs(governance): record clean three-tier evidence docs(governance): record clean three-tier evidence SHAs and provenance blind spot...
|
75
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
4bcef1bbfffbca2968adef922ca60afb8d4d5bfd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"4bcef1bbfffbca2968adef922ca60afb8d4d5bfd","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"4bcef1bbfffbca2968adef922ca60afb8d4d5bfd","message":"docs(governance): record clean three-tier evidence SHAs and provenance blind spot\n\n三级证据现均 worktreeDirty=false,分别绑定 9c7586e/1ea36ef/4b8055e\n(相邻 commit 只差 reports/*.latest.json,源码逐字相同)。\n\n同时记录一个继承自源仓的治理盲区:governance-report 对 runtime/UI 报告\n只校验 gitSha 格式合法,不校验等于当前 HEAD——证据新鲜度只靠人工纪律,\n无机器守卫。判断三级状态须实际比对各报告 provenance.gitSha 与 HEAD。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/training-framework/commit/4bcef1bbfffbca2968adef922ca60afb8d4d5bfd","author":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-15T20:56:20-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/append-only.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},{"id":"9c7586eee8910f54f7805c411fa9a742b77fbfd5","message":"chore(reports): bind UI acceptance evidence to clean commit\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/training-framework/commit/9c7586eee8910f54f7805c411fa9a742b77fbfd5","author":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-15T20:55:43-07:00","added":[],"removed":[],"modified":["reports/ui-acceptance.latest.json"]},{"id":"4b8055e04b7dd0b4943fa712a7663ee4e11ec194","message":"chore(reports): bind runtime acceptance evidence to clean commit\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/training-framework/commit/4b8055e04b7dd0b4943fa712a7663ee4e11ec194","author":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-15T20:55:21-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json"]},{"id":"1ea36ef0c0c09a93e20594dc31f10a4beef7877e","message":"chore(reports): refresh static gate evidence on clean tree\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/training-framework/commit/1ea36ef0c0c09a93e20594dc31f10a4beef7877e","author":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-15T20:55:00-07:00","added":[],"removed":[],"modified":["reports/append-only.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},{"id":"67310efba607e03c717fc0d3bb3c50b3f880427c","message":"feat(recruitment): 前端作战台 + 3 个浏览器用例,三级门禁全绿\n\n前端(apps/web):\n- RecruitmentPanel 招商作战台挂上首页:线索列表/创建/推进/转换、商机卡、\n 岗位切换器、看板(在途/高质量成交/阶段门拦截)\n- 动作按钮不硬编码 17 态,从 GET /api/opportunities/machine 的\n states[state].on 渲染;证据表单由 contracts 的 GATE_REQUIREMENTS 驱动,\n 后端加一项要求前端自动多一格\n- 阶段门反馈分两种:gate-blocked(缺证据 + missing[])与 role-blocked(403)\n- lib/api.ts 增招商调用层,动作接口带 x-actor-role 头\n\n浏览器级验收(4 → 7 用例),把招商域证据等级从「真实 DB API」推到「浏览器交互」:\n- 线索 → 分配 → 接通 → 转商机,验证 CONVERTED 冻结\n- 阶段门:空证据提交被服务端拦下、UI 显示 missing[]、状态不动;补齐后放行\n- 回款门:SALES 填齐同样证据仍被 403,切 FINANCE 才通过\n (证据完全相同、唯一变量是岗位——锁死「角色门独立于证据门」)\n\n棘轮上调(只涨不降):uiTestsPassed 4 → 7\n\n文档:CLAUDE.md 证据段与蓝图状态同步为「一期已落地」,并写明未覆盖项\n(Fastify 侧 UI 属 G17 既有缺口、Interaction 录入页、看板外读模型)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/training-framework/commit/67310efba607e03c717fc0d3bb3c50b3f880427c","author":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-15T20:53:03-07:00","added":["apps/web/src/components/RecruitmentPanel.tsx"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/lib/api.ts","docs/domain/recruitment-blueprint.md","reports/append-only.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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"]}],"total_commits":0,"head_commit":{"id":"4bcef1bbfffbca2968adef922ca60afb8d4d5bfd","message":"docs(governance): record clean three-tier evidence SHAs and provenance blind spot\n\n三级证据现均 worktreeDirty=false,分别绑定 9c7586e/1ea36ef/4b8055e\n(相邻 commit 只差 reports/*.latest.json,源码逐字相同)。\n\n同时记录一个继承自源仓的治理盲区:governance-report 对 runtime/UI 报告\n只校验 gitSha 格式合法,不校验等于当前 HEAD——证据新鲜度只靠人工纪律,\n无机器守卫。判断三级状态须实际比对各报告 provenance.gitSha 与 HEAD。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/training-framework/commit/4bcef1bbfffbca2968adef922ca60afb8d4d5bfd","author":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"ailaoluo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-15T20:56:20-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/append-only.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},"repository":{"id":75,"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":"training-framework","full_name":"luoanwu/training-framework","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/training-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/training-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/training-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/training-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/training-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-08-16T12:03:11+08:00","updated_at":"2026-08-16T12:03: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
|
8
|
1786853016
|
1786853073
|
0
|
1786853015
|
1786853073
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23500
|
feat(kernel): integrate governed LLM execution and feat(kernel): integrate governed LLM execution and operations UI...
|
76
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
d66fbcbb48ca0e0fc2b252b67accac472b8d800f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/84afc39d2571c2e7d74673572e81fb737d36e271...d66fbcbb48ca0e0fc2b252b67accac472b8d800f","commits":[{"id":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","message":"feat(kernel): integrate governed LLM execution and operations UI\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d66fbcbb48ca0e0fc2b252b67accac472b8d800f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T23:36:38-07:00","added":["apps/api-fastify/src/modules/actor-events.service.ts","apps/api-fastify/src/modules/work/task-events.service.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/dead-letters.integration.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-nestjs/src/actors/actor-events.service.ts","apps/api-nestjs/src/work/task-events.service.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/dead-letters.integration.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/web/src/components/workbench/ActorAvatar.tsx","apps/web/src/components/workbench/ToastHost.tsx","apps/web/src/lib/ui-copy.ts","docs/domain/llm-execution-blueprint.md","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts"],"removed":[],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.module.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/triggers/triggers.controller.ts","apps/api-nestjs/src/triggers/triggers.service.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/outbox.concurrency.test.ts","apps/api-nestjs/test/outcomes.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/eslint.config.mjs","apps/web/next.config.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.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/ConnectionCapsule.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/components/workbench/Timeline.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/journey.ts","apps/web/src/lib/types.ts","apps/web/tsconfig.json","docs/governance-experience.md","packages/contracts/src/actor.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/runtime.ts","packages/contracts/src/task.ts","packages/contracts/src/trigger.ts","packages/contracts/src/work.test.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/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs"]},{"id":"6f6027d4e97cd6dfc976f129ce62cf9e51786c1b","message":"feat(governance): C19 报告内容指纹 worktreeHash + 扫描器排除单源 scan-ignore\n\n- provenance schema v2:dirty 工作区内容指纹(跟踪 diff + 未跟踪内容哈希,clean 恒 null),\n 取材边界与 worktreeDirty 完全同源;静态子报告六字段同 run 对账,伪造 env / dirty-指纹\n 不相干 / 聚合期间内容变化 均即红;验收报告陈旧性 staleAcceptanceReports 显式记录不阻断\n (提交动作必然产生新 SHA,硬闸在 CI 干净 checkout 下恒红,判责理由见 CLAUDE.md 事实作用域)\n- 六门禁扫描器 IGNORE 表收口单源 scripts/lib/scan-ignore.mjs:.next* 前缀统一按产物豁免\n (NEXT_DIST_DIR=.next-fastify 曾被判 17 条 naming + 3 条 F7 假红);.gitignore 补 .next-*\n- 负向测试已实跑:伪造指纹 env exit1;v1 旧 schema 验收报告 schemaVersion+相干性双红\n (换 schema 必须重新出证);植入禁用词红→复原绿;植入空目录红→复原绿\n- 后续:runtime/ui 验收需在稳定树上重跑一次升级到 v2 provenance;在那之前\n check:governance 对旧 v1 验收报告红盘属预期换证语义\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/6f6027d4e97cd6dfc976f129ce62cf9e51786c1b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T22:20:41-07:00","added":["scripts/lib/scan-ignore.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","docs/governance-experience.md","scripts/check-fork-readiness.mjs","scripts/check-naming.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]},{"id":"e3696a9352f893fbdbb954f1ec03fb14185d6b53","message":"fix(e2e): Work Graph 用例断言收窄 first()(goal 默认同名双命中)+ 验收报告刷新\n\n并行会话重写 spec 时回退了 strict-mode 修复;同时刷新 clean 基线后的\nruntime(292)/ui(11) 报告。views 半成品留给并行会话,本提交不含。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e3696a9352f893fbdbb954f1ec03fb14185d6b53","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:58:53-07:00","added":[],"removed":[],"modified":["apps/web/e2e/acceptance.spec.ts","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"]},{"id":"d7b2d631cf58dd9dcfcf8f2466d43680ea3ea4f3","message":"feat(workgraph): Project 实体化 + Work Graph 依赖门闸 + 读时进度(§12/§14/§103)\n\n- contracts: project.ts(createProjectSchema/ProjectDto/ProjectProgress,无百分比字段)、\n createTaskSchema.dependsOnTaskIds(max16 默认[])、project.created 事件类型\n- DB: TaskDependency(unique[tenantId,taskId,dependsOnTaskId])+ Project 表,\n 双后端同 SQL 迁移 20260825010000_workgraph_slice\n- 双后端: projects 服务(读时 groupBy 进度:total/succeeded/running/blockedByDeps)+\n Task 创建事务内依赖声明(构造性无环,坏依赖 404)+ ready 门闸\n (409 DEPENDENCIES_NOT_MET + unmet 清单,迁移事务内判定)\n- web: ProjectsPanel + 建任务表单 project/依赖选择 + useRealtime project 分支;\n 含并行会话 workbench/views 面板重构收敛(TaskCreateForm 已吸收依赖字段)\n- 验收: check 绿;check:runtime 292 tests(地板 277→292);check:ui 11 用例(地板 10→11)\n ——2026-08-19 本地实跑,PG:55447 + Redis:6397/2、/3\n- 治理: registry 登记 TaskDependency/projects 入口;CLAUDE.md 真源地图/基线表/新鲜度同步;\n 经验库 workgraph 记录(构造性无环、行为断言防 UI 重构碎测)\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d7b2d631cf58dd9dcfcf8f2466d43680ea3ea4f3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:55:25-07:00","added":["apps/api-fastify/prisma/migrations/20260825010000_workgraph_slice/migration.sql","apps/api-fastify/src/modules/work/projects.service.ts","apps/api-nestjs/prisma/migrations/20260825010000_workgraph_slice/migration.sql","apps/api-nestjs/src/work/projects.controller.ts","apps/api-nestjs/src/work/projects.service.ts","apps/web/src/components/ProjectsPanel.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/ActionErrorBanner.tsx","apps/web/src/components/workbench/AttentionInbox.tsx","apps/web/src/components/workbench/ConnectionCapsule.tsx","apps/web/src/components/workbench/EmptyState.tsx","apps/web/src/components/workbench/JourneyRail.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/components/workbench/Timeline.tsx","apps/web/src/components/workbench/useTaskActions.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/journey.ts","apps/web/src/lib/state-theme.ts","packages/contracts/src/project.ts"],"removed":["apps/web/src/components/ActorsPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/RuntimeInspectorPanel.tsx","apps/web/src/components/TasksPanel.tsx","apps/web/src/components/TriggersPanel.tsx"],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.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/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","packages/contracts/src/task.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"]},{"id":"2763d474f9fc47991ce52ca1f718685d04a1f2d9","message":"feat(auth): G8 持久化角色表——resolveEffectiveRole「DB 覆盖 claim」+ admin 端点 + bootstrap\n\n用户拍板三决策落地:① 生效角色 = DB 覆盖已验签 claim(可降可升、本地可吊销\nIdP 签发的角色;DB 非法值按无记录 fail-safe,claim 兜底);② 两后端对等\nadmin-only /api/roles(GET/PUT upsert/DELETE 204,admin 判定同样走生效角色)+\nAUTH_BOOTSTRAP_ADMIN=\"tenantId:subject\" 虚拟授予解鸡生蛋;③ cancel 特权闸与\napprove 同步改查生效角色(非特权事件不查 DB)。\n\n- contracts:roleAssignmentSchema / resolveEffectiveRole / isBootstrapAdmin 单源;\n subject 取 JWT sub claim(TenantAuthResult/双后端 TenantAuthContext 透传——\n 实测抓获「contracts 产出 subject 而消费端丢弃」断链,403 全链复现后修复)\n- 表:role_assignments([tenantId,subject] 唯一)+ 两侧逐字节一致迁移;\n owner-matrix 先登记后建表;registry 登记 auth 域(validation/tenant 门禁自动覆盖)\n- 验收:contracts 27/27;两后端全 auth 套件各 20/20(真实 DB,核心负向:\n claim=admin 而 DB 记 member → 403);migrations/schema/validation/write-guard/\n dual-backend/naming/fork-readiness 七门禁绿(全量 check 待伙伴会话 Projects\n 切片收敛后随快照重跑)\n- schema.prisma / registry / owner-matrix / work 路由含伙伴会话 Projects 半成品,\n 本提交不含,随其扫荡入库\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2763d474f9fc47991ce52ca1f718685d04a1f2d9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:44:55-07:00","added":["apps/api-fastify/prisma/migrations/20260825000000_role_assignment/migration.sql","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/routes/roles.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260825000000_role_assignment/migration.sql","apps/api-nestjs/src/roles/roles.controller.ts","apps/api-nestjs/src/roles/roles.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/work/tasks.controller.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/tenant.ts"]}],"total_commits":0,"head_commit":{"id":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","message":"feat(kernel): integrate governed LLM execution and operations UI\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d66fbcbb48ca0e0fc2b252b67accac472b8d800f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T23:36:38-07:00","added":["apps/api-fastify/src/modules/actor-events.service.ts","apps/api-fastify/src/modules/work/task-events.service.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/dead-letters.integration.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-nestjs/src/actors/actor-events.service.ts","apps/api-nestjs/src/work/task-events.service.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/dead-letters.integration.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/web/src/components/workbench/ActorAvatar.tsx","apps/web/src/components/workbench/ToastHost.tsx","apps/web/src/lib/ui-copy.ts","docs/domain/llm-execution-blueprint.md","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts"],"removed":[],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.module.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/triggers/triggers.controller.ts","apps/api-nestjs/src/triggers/triggers.service.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/outbox.concurrency.test.ts","apps/api-nestjs/test/outcomes.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/eslint.config.mjs","apps/web/next.config.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.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/ConnectionCapsule.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/components/workbench/Timeline.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/journey.ts","apps/web/src/lib/types.ts","apps/web/tsconfig.json","docs/governance-experience.md","packages/contracts/src/actor.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/runtime.ts","packages/contracts/src/task.ts","packages/contracts/src/trigger.ts","packages/contracts/src/work.test.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/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.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":27,"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":1,"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-20T14:47: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
|
1787208431
|
1787208453
|
0
|
1787208429
|
1787208455
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23514
|
feat(studio): connect script storyboard and video feat(studio): connect script storyboard and video workflow...
|
57
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
e759f5e4509e93cc4968259cc6d6a64bc73c09f1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"eb6483fa7aadc8d2d4e715274c2519f67005e135","after":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/eb6483fa7aadc8d2d4e715274c2519f67005e135...e759f5e4509e93cc4968259cc6d6a64bc73c09f1","commits":[{"id":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","message":"feat(studio): connect script storyboard and video workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e759f5e4509e93cc4968259cc6d6a64bc73c09f1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T01:26:47-07:00","added":["apps/web/src/components/material-factory/PipelineFlow.tsx","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts"],"removed":[],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/storyboard-director.ts","apps/web/src/store/useFactoryStore.ts","apps/web/tsconfig.json","packages/contracts/src/index.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/storyboard.test.ts","packages/contracts/src/storyboard.ts","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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.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-naming.mjs","services/model-sidecar/main.py"]},{"id":"553239d8af8a5f7a56988fa913deaecd5f154121","message":"feat(studio): complete live Bailian production workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/553239d8af8a5f7a56988fa913deaecd5f154121","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-23T19:25:55-07:00","added":["apps/api-fastify/prisma/migrations/20260823220000_script_scenario_modes/migration.sql","apps/api-fastify/prisma/migrations/20260823230000_storyboard_video/migration.sql","apps/api-nestjs/prisma/migrations/20260823220000_script_scenario_modes/migration.sql","apps/api-nestjs/prisma/migrations/20260823230000_storyboard_video/migration.sql","apps/web/src/components/material-factory/VideoStudio.tsx","packages/contracts/src/script-scenario.test.ts","packages/contracts/src/script-sidecar.test.ts","packages/contracts/src/storyboard-video.test.ts"],"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/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-fastify/test/material-script.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.service.ts","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/api-nestjs/test/material-script.acceptance.test.ts","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/BlockedResolutionPanel.tsx","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/DeliveryCenter.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/ModelConnectionsStudio.tsx","apps/web/src/components/material-factory/ModelOperationsDashboard.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/ReviewCenter.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/StoryboardStudio.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx","apps/web/src/components/material-factory/ui.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","packages/contracts/src/script.ts","packages/contracts/src/storyboard.ts","reports/baseline.json","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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.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-script-acceptance.mjs","services/model-sidecar/main.py"]},{"id":"69d9525d1e38cdb9da1db02f2e25411d2bd4b891","message":"feat(models): route image generation through Bailian Wan 2.7 Pro\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/69d9525d1e38cdb9da1db02f2e25411d2bd4b891","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-23T17:25:44-07:00","added":[".github/workflows/governance.yml","docs/domain/module-boundary.md","reports/module-boundary.latest.json","scripts/check-module-boundary.mjs"],"removed":[],"modified":[".github/pull_request_template.md","CLAUDE.md","apps/api-fastify/.env.example","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/model-connector.client.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-fastify/test/model-connector.client.test.ts","apps/api-nestjs/.env.example","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/model-connector.client.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/api-nestjs/test/material-production-worker.integration.test.ts","apps/api-nestjs/test/material-script.acceptance.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/web/eslint.config.mjs","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/ModelConnectionsStudio.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/product/controlled-ai-material-factory.md","package.json","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","reports/baseline.json","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/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","services/model-sidecar/README.md","services/model-sidecar/main.py"]},{"id":"1bc728c529ae21297108ec097f939ce72e77c3c5","message":"feat(storyboard): persist immutable project history\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1bc728c529ae21297108ec097f939ce72e77c3c5","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-23T11:49:04-07:00","added":["apps/api-fastify/prisma/migrations/20260823212000_add_storyboard_version_snapshots/migration.sql","apps/api-nestjs/prisma/migrations/20260823212000_add_storyboard_version_snapshots/migration.sql"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","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/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-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"]},{"id":"753d41978517db6031c10afef2a9a1897f6f7481","message":"fix(models): restore OCR inference and reject LFS pointers\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/753d41978517db6031c10afef2a9a1897f6f7481","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-23T11:35:43-07:00","added":[],"removed":[],"modified":["CLAUDE.md","models/material-factory/manifest.json","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-models.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/download-material-models.mjs"]}],"total_commits":0,"head_commit":{"id":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","message":"feat(studio): connect script storyboard and video workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e759f5e4509e93cc4968259cc6d6a64bc73c09f1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T01:26:47-07:00","added":["apps/web/src/components/material-factory/PipelineFlow.tsx","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts"],"removed":[],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/storyboard-director.ts","apps/web/src/store/useFactoryStore.ts","apps/web/tsconfig.json","packages/contracts/src/index.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/storyboard.test.ts","packages/contracts/src/storyboard.ts","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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.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-naming.mjs","services/model-sidecar/main.py"]},"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":8098,"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-08-18T16:58: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
|
1787560925
|
1787561016
|
0
|
1787560925
|
1787561016
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23520
|
feat: implement governed device cloud V1
|
80
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
49e97bd63c64e1d0484db4acffd63d40ab27bbbe
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"49e97bd63c64e1d0484db4acffd63d40ab27bbbe","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"49e97bd63c64e1d0484db4acffd63d40ab27bbbe","message":"feat: implement governed device cloud V1\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/49e97bd63c64e1d0484db4acffd63d40ab27bbbe","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:46:32-07:00","added":["apps/api-fastify/prisma/migrations/20260824163000_device_v1a/migration.sql","apps/api-fastify/prisma/migrations/20260825100000_device_v1b_activation/migration.sql","apps/api-fastify/prisma/migrations/20260825143000_device_v1b_transfer/migration.sql","apps/api-fastify/prisma/migrations/20260825150000_device_v1b_topology/migration.sql","apps/api-fastify/prisma/migrations/20260825162000_device_v1b_grant_revocation/migration.sql","apps/api-fastify/src/modules/device-v1a/device-v1a.service.ts","apps/api-fastify/src/modules/device-v1b/device-v1b.service.ts","apps/api-fastify/src/routes/device-v1a.ts","apps/api-fastify/src/routes/device-v1b.ts","apps/api-fastify/test/device-v1a.integration.test.ts","apps/api-fastify/test/device-v1b.integration.test.ts","apps/api-nestjs/prisma/migrations/20260824163000_device_v1a/migration.sql","apps/api-nestjs/prisma/migrations/20260825100000_device_v1b_activation/migration.sql","apps/api-nestjs/prisma/migrations/20260825143000_device_v1b_transfer/migration.sql","apps/api-nestjs/prisma/migrations/20260825150000_device_v1b_topology/migration.sql","apps/api-nestjs/prisma/migrations/20260825162000_device_v1b_grant_revocation/migration.sql","apps/api-nestjs/src/device-v1a/device-v1a.controller.ts","apps/api-nestjs/src/device-v1a/device-v1a.module.ts","apps/api-nestjs/src/device-v1a/device-v1a.service.ts","apps/api-nestjs/src/device-v1b/device-v1b.controller.ts","apps/api-nestjs/src/device-v1b/device-v1b.module.ts","apps/api-nestjs/src/device-v1b/device-v1b.service.ts","apps/api-nestjs/test/device-v1a.integration.test.ts","apps/api-nestjs/test/device-v1b.integration.test.ts","apps/web/src/components/DeviceV1aWorkspace.tsx","apps/web/src/components/DeviceV1bActivationWorkspace.tsx","docs/domain/customer-service-product-blueprint.md","docs/domain/device-cloud-blueprint.md","docs/domain/device-cloud-review.md","kernel.products.json","packages/contracts/src/device-v1a.test.ts","packages/contracts/src/device-v1a.ts","packages/contracts/src/device-v1b.test.ts","packages/contracts/src/device-v1b.ts","products/juhai.support/README.md","products/juhai.support/acceptance/juhai.support.case.acceptance.mjs","products/juhai.support/migrations/juhai.support.case/20260825090000_create_support_cases.sql","products/juhai.support/migrations/juhai.support.case/20260825091000_create_support_case_actions.sql","products/juhai.support/package.json","products/juhai.support/product.manifest.json","products/juhai.support/src/case-repository.ts","products/juhai.support/src/contracts.ts","products/juhai.support/src/fastify.ts","products/juhai.support/src/host.ts","products/juhai.support/src/index.ts","products/juhai.support/src/manifest.ts","products/juhai.support/src/nestjs.ts","products/juhai.support/src/tools.ts","products/juhai.support/src/web.tsx","products/juhai.support/test/os-host.runtime.test.ts","products/juhai.support/tsconfig.os-host.json","products/juhai.support/vitest.os-host.config.ts","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json","scripts/check-os-product-compat.mjs","scripts/check-os-product-runtime.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/governance-experience.md","governance.registry.json","governance.registry.schema.json","package.json","packages/contracts/src/index.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/check-docs-truth.mjs","scripts/check-migrations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"670a202de86da74457bd91abf25430d04ee6cbbf","message":"chore: bind static governance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/670a202de86da74457bd91abf25430d04ee6cbbf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T06:38:40-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":"47401905d7dfd16ce4c6564b881bffd3083ef847","message":"docs: record device cloud local acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/47401905d7dfd16ce4c6564b881bffd3083ef847","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T06:38:16-07:00","added":["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"],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md"]},{"id":"659ea41dd717401cf8c2a12eb36ec4add68ba15d","message":"chore: migrate governed framework to device cloud\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/659ea41dd717401cf8c2a12eb36ec4add68ba15d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T06:17:21-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/connection-registry.service.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/framework-migration.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","governance.registry.json","governance.registry.schema.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime-command.test.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/replay.test.ts","packages/contracts/src/replay.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/subscription.test.ts","packages/contracts/src/subscription.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"49e97bd63c64e1d0484db4acffd63d40ab27bbbe","message":"feat: implement governed device cloud V1\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/49e97bd63c64e1d0484db4acffd63d40ab27bbbe","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:46:32-07:00","added":["apps/api-fastify/prisma/migrations/20260824163000_device_v1a/migration.sql","apps/api-fastify/prisma/migrations/20260825100000_device_v1b_activation/migration.sql","apps/api-fastify/prisma/migrations/20260825143000_device_v1b_transfer/migration.sql","apps/api-fastify/prisma/migrations/20260825150000_device_v1b_topology/migration.sql","apps/api-fastify/prisma/migrations/20260825162000_device_v1b_grant_revocation/migration.sql","apps/api-fastify/src/modules/device-v1a/device-v1a.service.ts","apps/api-fastify/src/modules/device-v1b/device-v1b.service.ts","apps/api-fastify/src/routes/device-v1a.ts","apps/api-fastify/src/routes/device-v1b.ts","apps/api-fastify/test/device-v1a.integration.test.ts","apps/api-fastify/test/device-v1b.integration.test.ts","apps/api-nestjs/prisma/migrations/20260824163000_device_v1a/migration.sql","apps/api-nestjs/prisma/migrations/20260825100000_device_v1b_activation/migration.sql","apps/api-nestjs/prisma/migrations/20260825143000_device_v1b_transfer/migration.sql","apps/api-nestjs/prisma/migrations/20260825150000_device_v1b_topology/migration.sql","apps/api-nestjs/prisma/migrations/20260825162000_device_v1b_grant_revocation/migration.sql","apps/api-nestjs/src/device-v1a/device-v1a.controller.ts","apps/api-nestjs/src/device-v1a/device-v1a.module.ts","apps/api-nestjs/src/device-v1a/device-v1a.service.ts","apps/api-nestjs/src/device-v1b/device-v1b.controller.ts","apps/api-nestjs/src/device-v1b/device-v1b.module.ts","apps/api-nestjs/src/device-v1b/device-v1b.service.ts","apps/api-nestjs/test/device-v1a.integration.test.ts","apps/api-nestjs/test/device-v1b.integration.test.ts","apps/web/src/components/DeviceV1aWorkspace.tsx","apps/web/src/components/DeviceV1bActivationWorkspace.tsx","docs/domain/customer-service-product-blueprint.md","docs/domain/device-cloud-blueprint.md","docs/domain/device-cloud-review.md","kernel.products.json","packages/contracts/src/device-v1a.test.ts","packages/contracts/src/device-v1a.ts","packages/contracts/src/device-v1b.test.ts","packages/contracts/src/device-v1b.ts","products/juhai.support/README.md","products/juhai.support/acceptance/juhai.support.case.acceptance.mjs","products/juhai.support/migrations/juhai.support.case/20260825090000_create_support_cases.sql","products/juhai.support/migrations/juhai.support.case/20260825091000_create_support_case_actions.sql","products/juhai.support/package.json","products/juhai.support/product.manifest.json","products/juhai.support/src/case-repository.ts","products/juhai.support/src/contracts.ts","products/juhai.support/src/fastify.ts","products/juhai.support/src/host.ts","products/juhai.support/src/index.ts","products/juhai.support/src/manifest.ts","products/juhai.support/src/nestjs.ts","products/juhai.support/src/tools.ts","products/juhai.support/src/web.tsx","products/juhai.support/test/os-host.runtime.test.ts","products/juhai.support/tsconfig.os-host.json","products/juhai.support/vitest.os-host.config.ts","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json","scripts/check-os-product-compat.mjs","scripts/check-os-product-runtime.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/governance-experience.md","governance.registry.json","governance.registry.schema.json","package.json","packages/contracts/src/index.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/check-docs-truth.mjs","scripts/check-migrations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},"repository":{"id":80,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-device-cloud","full_name":"luoanwu/juhai-device-cloud","description":"巨嗨设备云:永久设备身份、激活调拨、可信换板与授权治理","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-device-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-25T23:52:33+08:00","updated_at":"2026-08-25T23:52:50+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
|
1787673172
|
1787673196
|
0
|
1787673170
|
1787673197
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23524
|
chore(governance): refresh clean static evidence
|
81
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
464b90ba5bf51536276468811aac396e51d66892
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"464b90ba5bf51536276468811aac396e51d66892","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"464b90ba5bf51536276468811aac396e51d66892","message":"chore(governance): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/464b90ba5bf51536276468811aac396e51d66892","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:47:04-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/validation-source.latest.json"]},{"id":"3f5170b91355e6726ead25e98deb98ea406508a8","message":"fix: close diagnosis and governance gaps\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/3f5170b91355e6726ead25e98deb98ea406508a8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:09:26-07:00","added":["reports/service-contracts.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/modules/service-cases/service-cases.service.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-nestjs/src/service-cases/service-cases.service.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/ServiceCaseWorkbench.tsx","docs/domain/service-case-blueprint.md","docs/governance-experience.md","package.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-os-product.mjs","scripts/check-service-contracts.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"92324df6f0d200c66af7c2f378b471888405b358","message":"feat: add governed juhai service product layer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/92324df6f0d200c66af7c2f378b471888405b358","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:56:28-07:00","added":["apps/api-fastify/prisma/migrations/20260824090000_service_case_p0/migration.sql","apps/api-fastify/prisma/migrations/20260824120000_service_operations/migration.sql","apps/api-fastify/prisma/migrations/20260824150000_os_tool_receipts/migration.sql","apps/api-fastify/prisma/migrations/20260824160000_os_product_activations/migration.sql","apps/api-fastify/src/modules/service-cases/service-cases.service.ts","apps/api-fastify/src/modules/service-operations/service-operations.service.ts","apps/api-fastify/src/plugins/os-activation.ts","apps/api-fastify/src/routes/service-cases.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-fastify/test/service-operations.integration.test.ts","apps/api-nestjs/prisma/migrations/20260824090000_service_case_p0/migration.sql","apps/api-nestjs/prisma/migrations/20260824120000_service_operations/migration.sql","apps/api-nestjs/prisma/migrations/20260824150000_os_tool_receipts/migration.sql","apps/api-nestjs/prisma/migrations/20260824160000_os_product_activations/migration.sql","apps/api-nestjs/src/service-cases/os-activation-dispatcher.service.ts","apps/api-nestjs/src/service-cases/service-cases.controller.ts","apps/api-nestjs/src/service-cases/service-cases.module.ts","apps/api-nestjs/src/service-cases/service-cases.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/src/service-operations/service-operations.service.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/api-nestjs/test/service-operations.integration.test.ts","apps/web/src/app/icon.svg","apps/web/src/app/service/[token]/page.tsx","apps/web/src/components/ServiceCaseWorkbench.tsx","apps/web/src/components/ServiceOperationsPanels.tsx","artifacts/contracts/.gitkeep","artifacts/contracts/juhai-service-contracts-0.1.0.tgz","artifacts/contracts/juhai-service-contracts-0.2.0.tgz","artifacts/contracts/juhai-service-contracts-0.3.0.tgz","artifacts/contracts/juhai-service-contracts-0.4.0.tgz","artifacts/contracts/service-contracts.lock.json","artifacts/os-products/juhai-service-os-product-0.1.0.tgz","artifacts/os-products/juhai-service-os-product-0.2.0.tgz","artifacts/os-products/juhai-service-os-product.lock.json","docs/domain/digital-employee-os-product-blueprint.md","docs/domain/service-case-blueprint.md","docs/domain/service-operations-blueprint.md","os-products/juhai.service/README.md","os-products/juhai.service/acceptance/juhai.service.product.acceptance.acceptance.mjs","os-products/juhai.service/manifest.json","os-products/juhai.service/package.json","os-products/juhai.service/product.lock.json","os-products/juhai.service/src/contracts.ts","os-products/juhai.service/src/index.ts","os-products/juhai.service/src/manifest.ts","os-products/juhai.service/src/skills.ts","os-products/juhai.service/src/tools.ts","output/playwright/juhai-knowledge-center-final.png","output/playwright/juhai-knowledge-published-final.png","output/playwright/juhai-operations-dashboard-final.png","output/playwright/juhai-pilot-control-final.png","output/playwright/juhai-service-h5-390x844-before-acceptance.png","output/playwright/juhai-service-h5-390x844-completed.png","output/playwright/juhai-service-workbench-live-final.png","output/playwright/juhai-service-workbench-live.png","packages/contracts/src/digital-employee-os.ts","packages/contracts/src/service-case.test.ts","packages/contracts/src/service-case.ts","packages/contracts/src/service-operations.ts","packages/service-contracts/package.json","packages/service-contracts/src/digital-employee-os.ts","packages/service-contracts/src/index.test.ts","packages/service-contracts/src/index.ts","packages/service-contracts/src/service-case.ts","packages/service-contracts/src/service-operations.ts","packages/service-contracts/tsconfig.json","reports/os-product.latest.json","scripts/check-os-product.mjs","scripts/check-service-contracts.mjs","scripts/pack-os-product.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/governance-experience.md","package.json","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"24e5dc292b0ac0acc47c0c900388cebb20cf6d07","message":"chore: refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/24e5dc292b0ac0acc47c0c900388cebb20cf6d07","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-03T21:01:59-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},{"id":"be316e46e829c58a7cf449d2a0d1f80de6986bf5","message":"chore: record migration evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/be316e46e829c58a7cf449d2a0d1f80de6986bf5","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-03T21:01:32-07:00","added":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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"],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md"]}],"total_commits":0,"head_commit":{"id":"464b90ba5bf51536276468811aac396e51d66892","message":"chore(governance): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/464b90ba5bf51536276468811aac396e51d66892","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:47:04-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/validation-source.latest.json"]},"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":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-08-26T08:48:00+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1787705287
|
1787705295
|
0
|
1787705280
|
1787705295
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23527
|
feat: establish governed AI ticket system core
|
82
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
343e79d764ae566372808d0d922fcef7ca12a30e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"343e79d764ae566372808d0d922fcef7ca12a30e","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"343e79d764ae566372808d0d922fcef7ca12a30e","message":"feat: establish governed AI ticket system core\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/343e79d764ae566372808d0d922fcef7ca12a30e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:10:23-07:00","added":["apps/api-fastify/prisma/migrations/20260825170000_ticket_core/migration.sql","apps/api-fastify/src/modules/tickets/tickets.service.ts","apps/api-fastify/src/routes/tickets.ts","apps/api-fastify/test/tickets.integration.test.ts","apps/api-nestjs/prisma/migrations/20260825170000_ticket_core/migration.sql","apps/api-nestjs/src/tickets/tickets.controller.ts","apps/api-nestjs/src/tickets/tickets.module.ts","apps/api-nestjs/src/tickets/tickets.service.ts","apps/api-nestjs/test/tickets.integration.test.ts","apps/web/src/components/TicketsPanel.tsx","packages/contracts/src/ticket.ts","products/juhai.ai.ticket/README.md","products/juhai.ai.ticket/acceptance/juhai.ai.ticket.core.acceptance.mjs","products/juhai.ai.ticket/acceptance/juhai.ai.ticket.web.acceptance.ts","products/juhai.ai.ticket/kernel.products.entry.json","products/juhai.ai.ticket/manifest.ts","products/juhai.ai.ticket/migrations/juhai.ai.ticket.core/20260825183000_create_ticket_core.sql","products/juhai.ai.ticket/package.json","products/juhai.ai.ticket/src/contracts/runtime-contracts.ts","products/juhai.ai.ticket/src/extensions-web.ts","products/juhai.ai.ticket/src/extensions.ts","products/juhai.ai.ticket/src/fastify/ticket-plugin.ts","products/juhai.ai.ticket/src/index.ts","products/juhai.ai.ticket/src/nestjs/ticket.module.ts","products/juhai.ai.ticket/src/repositories/ticket-repository.ts","products/juhai.ai.ticket/src/skills/ticket-triage-skill.ts","products/juhai.ai.ticket/src/tools/ticket-tools.ts","products/juhai.ai.ticket/src/web.ts","products/juhai.ai.ticket/src/web/ticket-workspace.tsx","products/juhai.ai.ticket/tsconfig.build.json","products/juhai.ai.ticket/tsconfig.json","reports/transactional-write-chain.latest.json","scripts/check-transactional-write-chain.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","docs/governance-experience.md","governance.registry.json","governance.registry.schema.json","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.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/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","turbo.json"]},{"id":"93598cc86c43b217c9b9b5dde7b8275bada3775b","message":"chore: refresh OS product blueprint reports\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/93598cc86c43b217c9b9b5dde7b8275bada3775b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:37:52-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":"5901fddaa4fb03678e2367fea9ed81797de20f0f","message":"docs: define Digital Employee OS ticket product layer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/5901fddaa4fb03678e2367fea9ed81797de20f0f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:37:25-07:00","added":[],"removed":[],"modified":["README.md","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md"]},{"id":"d5c3cef1b42519c622d95937f43d70be5b48edf3","message":"chore: refresh governance reports\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/d5c3cef1b42519c622d95937f43d70be5b48edf3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:31:10-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":"5a163aff14d43326f49ea9fe6876edfccaca2052","message":"docs: define standalone ticket system blueprint\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/5a163aff14d43326f49ea9fe6876edfccaca2052","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:30:46-07:00","added":["docs/domain/ticket-system-blueprint.md"],"removed":[],"modified":["README.md","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md"]}],"total_commits":0,"head_commit":{"id":"343e79d764ae566372808d0d922fcef7ca12a30e","message":"feat: establish governed AI ticket system core\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/343e79d764ae566372808d0d922fcef7ca12a30e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:10:23-07:00","added":["apps/api-fastify/prisma/migrations/20260825170000_ticket_core/migration.sql","apps/api-fastify/src/modules/tickets/tickets.service.ts","apps/api-fastify/src/routes/tickets.ts","apps/api-fastify/test/tickets.integration.test.ts","apps/api-nestjs/prisma/migrations/20260825170000_ticket_core/migration.sql","apps/api-nestjs/src/tickets/tickets.controller.ts","apps/api-nestjs/src/tickets/tickets.module.ts","apps/api-nestjs/src/tickets/tickets.service.ts","apps/api-nestjs/test/tickets.integration.test.ts","apps/web/src/components/TicketsPanel.tsx","packages/contracts/src/ticket.ts","products/juhai.ai.ticket/README.md","products/juhai.ai.ticket/acceptance/juhai.ai.ticket.core.acceptance.mjs","products/juhai.ai.ticket/acceptance/juhai.ai.ticket.web.acceptance.ts","products/juhai.ai.ticket/kernel.products.entry.json","products/juhai.ai.ticket/manifest.ts","products/juhai.ai.ticket/migrations/juhai.ai.ticket.core/20260825183000_create_ticket_core.sql","products/juhai.ai.ticket/package.json","products/juhai.ai.ticket/src/contracts/runtime-contracts.ts","products/juhai.ai.ticket/src/extensions-web.ts","products/juhai.ai.ticket/src/extensions.ts","products/juhai.ai.ticket/src/fastify/ticket-plugin.ts","products/juhai.ai.ticket/src/index.ts","products/juhai.ai.ticket/src/nestjs/ticket.module.ts","products/juhai.ai.ticket/src/repositories/ticket-repository.ts","products/juhai.ai.ticket/src/skills/ticket-triage-skill.ts","products/juhai.ai.ticket/src/tools/ticket-tools.ts","products/juhai.ai.ticket/src/web.ts","products/juhai.ai.ticket/src/web/ticket-workspace.tsx","products/juhai.ai.ticket/tsconfig.build.json","products/juhai.ai.ticket/tsconfig.json","reports/transactional-write-chain.latest.json","scripts/check-transactional-write-chain.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","docs/governance-experience.md","governance.registry.json","governance.registry.schema.json","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.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/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","turbo.json"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-08-26T09:12: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
|
1787706746
|
1787706776
|
0
|
1787706744
|
1787706777
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23529
|
feat(knowledge): add governed hybrid evidence retr feat(knowledge): add governed hybrid evidence retrieval...
|
84
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f2a674de3343d5031dee856edd261194709b727f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f2a674de3343d5031dee856edd261194709b727f","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f2a674de3343d5031dee856edd261194709b727f","message":"feat(knowledge): add governed hybrid evidence retrieval\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/f2a674de3343d5031dee856edd261194709b727f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:39:32-07:00","added":["apps/api-fastify/prisma/migrations/20260826010000_add_knowledge_hybrid_retrieval/migration.sql","apps/api-nestjs/prisma/migrations/20260826010000_add_knowledge_hybrid_retrieval/migration.sql","packages/contracts/src/knowledge-retrieval.test.ts","packages/knowledge-retrieval/package.json","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts","packages/knowledge-retrieval/tsconfig.json","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260826030000_add_hybrid_evidence_retrieval.sql","products/juhai.knowledgecloud/src/retrieval.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/knowledge.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/knowledge.integration.test.ts","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","kernel.products.json","packages/contracts/src/knowledge.ts","pnpm-lock.yaml","products/juhai.knowledgecloud/acceptance/juhai.knowledgecloud.closed-loop.acceptance.mjs","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/tools.ts","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-live.latest.json","reports/os-product.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-os-product.mjs"]},{"id":"e60d772bc7fba6aba92ee6becbeb1b68b2b28849","message":"feat: establish governed knowledge cloud product\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/e60d772bc7fba6aba92ee6becbeb1b68b2b28849","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:06:03-07:00","added":["apps/api-fastify/prisma/migrations/20260825180000_add_knowledge_cloud_core/migration.sql","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/test/knowledge.integration.test.ts","apps/api-nestjs/prisma/migrations/20260825180000_add_knowledge_cloud_core/migration.sql","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.module.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/test/knowledge.integration.test.ts","apps/web/src/features/knowledge/api/knowledge-api.ts","apps/web/src/features/knowledge/components/KnowledgeWorkbench.tsx","apps/web/src/features/knowledge/hooks/use-knowledge.ts","docs/adr/0010-os-loadable-enterprise-knowledge-product.md","docs/domain/knowledge-cloud-blueprint.md","kernel.products.json","packages/contracts/src/knowledge.ts","products/juhai.knowledgecloud/README.md","products/juhai.knowledgecloud/acceptance/juhai.knowledgecloud.closed-loop.acceptance.mjs","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260825190000_create_knowledge_cloud.sql","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/product.manifest.json","products/juhai.knowledgecloud/src/access.ts","products/juhai.knowledgecloud/src/contracts.ts","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/manifest.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/tools.ts","products/juhai.knowledgecloud/src/web.tsx","reports/os-product-live.latest.json","reports/os-product.latest.json","scripts/check-os-product.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","docs/README.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/framework-migration.md","governance.registry.json","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.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/check-docs-truth.mjs","scripts/check-migrations.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"64bf2720bce803978337aeabbadf1a88d732fa43","message":"chore: bind static governance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/64bf2720bce803978337aeabbadf1a88d732fa43","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:18:01-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":"7322783bb7233c3c586f15cb33c7963f0ba605ce","message":"docs: record local framework acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/7322783bb7233c3c586f15cb33c7963f0ba605ce","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:17:40-07:00","added":["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"],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md"]},{"id":"512b11bc5047f7776f3dde09b0f7344982afd354","message":"chore: migrate governed framework to juhai knowledge cloud\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/512b11bc5047f7776f3dde09b0f7344982afd354","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:08:02-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/connection-registry.service.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/framework-migration.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","governance.registry.json","governance.registry.schema.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime-command.test.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/replay.test.ts","packages/contracts/src/replay.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/subscription.test.ts","packages/contracts/src/subscription.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"f2a674de3343d5031dee856edd261194709b727f","message":"feat(knowledge): add governed hybrid evidence retrieval\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/f2a674de3343d5031dee856edd261194709b727f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:39:32-07:00","added":["apps/api-fastify/prisma/migrations/20260826010000_add_knowledge_hybrid_retrieval/migration.sql","apps/api-nestjs/prisma/migrations/20260826010000_add_knowledge_hybrid_retrieval/migration.sql","packages/contracts/src/knowledge-retrieval.test.ts","packages/knowledge-retrieval/package.json","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts","packages/knowledge-retrieval/tsconfig.json","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260826030000_add_hybrid_evidence_retrieval.sql","products/juhai.knowledgecloud/src/retrieval.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/knowledge.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/knowledge.integration.test.ts","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","kernel.products.json","packages/contracts/src/knowledge.ts","pnpm-lock.yaml","products/juhai.knowledgecloud/acceptance/juhai.knowledgecloud.closed-loop.acceptance.mjs","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/tools.ts","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-live.latest.json","reports/os-product.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-os-product.mjs"]},"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":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:45:53+08:00","updated_at":"2026-08-26T09:47:05+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1787708896
|
1787708917
|
0
|
1787708825
|
1787708918
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23542
|
docs: 修正基线表用例计数(156)并说明地板归属
|
90
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
dcd85b10ac06ae862fe3789b6bd548838487b8fe
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"dcd85b10ac06ae862fe3789b6bd548838487b8fe","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"dcd85b10ac06ae862fe3789b6bd548838487b8fe","message":"docs: 修正基线表用例计数(156)并说明地板归属\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/dcd85b10ac06ae862fe3789b6bd548838487b8fe","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T18:07:34-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"3de844a88e3c87510517038d98edbb9eeeb6ff30","message":"chore: 收口独立项目启动预检与治理基线\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/3de844a88e3c87510517038d98edbb9eeeb6ff30","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T18:04:03-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/preflight.py","scripts/start.sh"]},{"id":"11cf6a57829c8ce0ff3ccc8dd683d07e5b65b298","message":"feat: 增加 MiniMax H3 一键启动入口\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/11cf6a57829c8ce0ff3ccc8dd683d07e5b65b298","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T18:03:23-07:00","added":["scripts/lib/h3-runtime.sh","scripts/start.sh","start.command"],"removed":[],"modified":["README.md","package.json","scripts/bootstrap.sh"]},{"id":"86a8d3115337fa79d9a3ce48e2dfa51dd07ad44f","message":"feat: 完善 MiniMax H3 独立项目治理与验收\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/86a8d3115337fa79d9a3ce48e2dfa51dd07ad44f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T18:02:59-07:00","added":["apps/web/src/app/framework/page.tsx","docs/domain/h3-studio-blueprint.md"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/web/e2e/acceptance.spec.ts","docs/domain-glossary.md","docs/domain/owner-matrix.md"]},{"id":"1337ab5545eee3d0e41f950d4a4617ea325ab916","message":"chore: 初始化 minimax-h3-studio 派生仓(框架迁移 + H3 工作台 + 治理收口)\n\n- 基础框架 bootstrap 迁移产物(源 base-framework@5399109)+ MiniMax H3 生成工作台\n- H3 修复:生成/下载服务端双向互斥锁、任务 id 校验、PID 复用识别、\n Range 视频流、任务删除、采样 ETA、MPS 回退单源、h3 契约测试\n- 治理收口:清除 chat 幽灵空目录、移除源仓 OS 产品载荷(kernel.products.json 空载 +\n os-product 门禁空载分支,负向已验证)、README 对齐文档真相\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/1337ab5545eee3d0e41f950d4a4617ea325ab916","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T06:51:24-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",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".env.example",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore",".venv","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/connection-registry.service.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/h3/generate/route.ts","apps/web/src/app/api/h3/jobs/[id]/artifact/route.ts","apps/web/src/app/api/h3/jobs/[id]/cancel/route.ts","apps/web/src/app/api/h3/jobs/[id]/log/route.ts","apps/web/src/app/api/h3/jobs/[id]/route.ts","apps/web/src/app/api/h3/jobs/route.ts","apps/web/src/app/api/h3/model/cancel/route.ts","apps/web/src/app/api/h3/model/log/route.ts","apps/web/src/app/api/h3/model/route.ts","apps/web/src/app/api/h3/status/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/h3/api/h3-api.ts","apps/web/src/features/h3/components/H3Workspace.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/h3-environment.ts","apps/web/src/lib/h3-jobs.ts","apps/web/src/lib/h3-lock.ts","apps/web/src/lib/h3-model-manager.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/framework-migration.md","docs/governance-experience.md","docs/migration-playbook.md","docs/os-product-extension.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","generate.py","governance.registry.json","governance.registry.schema.json","kernel.products.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/h3.test.ts","packages/contracts/src/h3.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime-command.test.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/replay.test.ts","packages/contracts/src/replay.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/subscription.test.ts","packages/contracts/src/subscription.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","packages/contracts/tsconfig.tsbuildinfo","pnpm-lock.yaml","pnpm-workspace.yaml","reports/design-audit/01-current-studio.png","reports/design-audit/02-optimized-studio.png","reports/design-audit/03-final-studio.png","requirements.txt","scripts/bootstrap.sh","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-os-product-compat.mjs","scripts/check-os-product-runtime.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","scripts/preflight.py","scripts/prepare_model.py","scripts/run.sh","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"dcd85b10ac06ae862fe3789b6bd548838487b8fe","message":"docs: 修正基线表用例计数(156)并说明地板归属\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/dcd85b10ac06ae862fe3789b6bd548838487b8fe","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T18:07:34-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},"repository":{"id":90,"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":"minimax-h3-studio","full_name":"luoanwu/minimax-h3-studio","description":"MiniMax H3 本地视频生成 Studio:模型下载、管理、加载、采样与交付工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio/languages","html_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/minimax-h3-studio.git","clone_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio.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:07:20+08:00","updated_at":"2026-08-30T09:10:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1788052201
|
1788052223
|
0
|
1788052201
|
1788052224
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23543
|
feat: build local Qwen chat workspace
|
91
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
3c6f499596071037b0035ababe289c015f79d83e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"3c6f499596071037b0035ababe289c015f79d83e","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"3c6f499596071037b0035ababe289c015f79d83e","message":"feat: build local Qwen chat workspace\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/3c6f499596071037b0035ababe289c015f79d83e","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-29T18:11:39-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",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".env.example",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","LOCAL_DEPLOYMENT.md","Makefile","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/connection-registry.service.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/postcss.config.js","apps/web/src/app/api/chat/completions/route.ts","apps/web/src/app/api/chat/status/route.ts","apps/web/src/app/api/knowledge/route.ts","apps/web/src/app/api/models/local/route.ts","apps/web/src/app/chat/page.tsx","apps/web/src/app/framework/page.tsx","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/chat/api/chat-api.ts","apps/web/src/features/chat/components/ChatWorkspace.tsx","apps/web/src/features/knowledge/api/knowledge-api.ts","apps/web/src/features/knowledge/hooks/use-knowledge.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/inference-router.ts","apps/web/src/lib/knowledge-store.ts","apps/web/src/lib/local-origin.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/lib/web-search.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/src/stores/chat-ui-store.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","deploy/download_model.sh","deploy/juhai.qwen.web.plist","deploy/local.sh","deploy/model-manifest.json","deploy/model_manager.sh","deploy/smoke_test.py","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/architecture/chat-service.md","docs/domain-glossary.md","docs/domain/chat-blueprint.md","docs/domain/owner-matrix.md","docs/framework-migration.md","docs/governance-experience.md","docs/migration-playbook.md","docs/os-product-extension.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","governance.registry.json","governance.registry.schema.json","kernel.products.json","memory/glossary.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/chat.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime-command.test.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/replay.test.ts","packages/contracts/src/replay.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/subscription.test.ts","packages/contracts/src/subscription.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","products/juhai.qwen38flashnext/README.md","products/juhai.qwen38flashnext/acceptance/juhai.qwen38flashnext.order.acceptance.mjs","products/juhai.qwen38flashnext/migrations/juhai.qwen38flashnext.order/20260826090000_create_orders.sql","products/juhai.qwen38flashnext/migrations/juhai.qwen38flashnext.order/20260826091000_create_order_events.sql","products/juhai.qwen38flashnext/package.json","products/juhai.qwen38flashnext/product.manifest.json","products/juhai.qwen38flashnext/src/contracts.ts","products/juhai.qwen38flashnext/src/fastify.ts","products/juhai.qwen38flashnext/src/host.ts","products/juhai.qwen38flashnext/src/index.ts","products/juhai.qwen38flashnext/src/manifest.ts","products/juhai.qwen38flashnext/src/nestjs.ts","products/juhai.qwen38flashnext/src/order-repository.ts","products/juhai.qwen38flashnext/src/tools.ts","products/juhai.qwen38flashnext/src/web.tsx","products/juhai.qwen38flashnext/test/os-host.runtime.test.ts","products/juhai.qwen38flashnext/tsconfig.os-host.json","products/juhai.qwen38flashnext/vitest.os-host.config.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/framework-migration.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/os-product-runtime.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","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-os-product-compat.mjs","scripts/check-os-product-runtime.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-env.sh","scripts/governance-report.mjs","scripts/governance-stack.sh","scripts/lib/os-root.mjs","scripts/lib/report-provenance.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":["README.md"]},{"id":"69885871a64393807d988b27b1b5e380e8f28526","message":"add mlx-vlm support (#3)","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/69885871a64393807d988b27b1b5e380e8f28526","author":{"name":"Ren Xuancheng","email":"jklj077@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-27T15:29:26+08:00","added":[],"removed":[],"modified":["README.md"]},{"id":"513aa6e18a335296fc13e538232a8735b230877d","message":"Update README.md (#1)\n\nupdate unsloth guide link","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/513aa6e18a335296fc13e538232a8735b230877d","author":{"name":"Ren Xuancheng","email":"jklj077@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-26T21:05:07+08:00","added":[],"removed":[],"modified":["README.md"]},{"id":"4f58f4ddd855bedaf7eadcd53bbbb1b3362cecff","message":"Initial commit\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/4f58f4ddd855bedaf7eadcd53bbbb1b3362cecff","author":{"name":"Ren Xuancheng","email":"jklj077@users.noreply.github.com","username":""},"committer":{"name":"Ren Xuancheng","email":"jklj077@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-08-26T20:29:38+08:00","added":["README.md","tech_report.pdf"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"3c6f499596071037b0035ababe289c015f79d83e","message":"feat: build local Qwen chat workspace\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/3c6f499596071037b0035ababe289c015f79d83e","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-29T18:11:39-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",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".env.example",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","LOCAL_DEPLOYMENT.md","Makefile","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/connection-registry.service.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/postcss.config.js","apps/web/src/app/api/chat/completions/route.ts","apps/web/src/app/api/chat/status/route.ts","apps/web/src/app/api/knowledge/route.ts","apps/web/src/app/api/models/local/route.ts","apps/web/src/app/chat/page.tsx","apps/web/src/app/framework/page.tsx","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/chat/api/chat-api.ts","apps/web/src/features/chat/components/ChatWorkspace.tsx","apps/web/src/features/knowledge/api/knowledge-api.ts","apps/web/src/features/knowledge/hooks/use-knowledge.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/inference-router.ts","apps/web/src/lib/knowledge-store.ts","apps/web/src/lib/local-origin.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/lib/web-search.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/src/stores/chat-ui-store.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","deploy/download_model.sh","deploy/juhai.qwen.web.plist","deploy/local.sh","deploy/model-manifest.json","deploy/model_manager.sh","deploy/smoke_test.py","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/architecture/chat-service.md","docs/domain-glossary.md","docs/domain/chat-blueprint.md","docs/domain/owner-matrix.md","docs/framework-migration.md","docs/governance-experience.md","docs/migration-playbook.md","docs/os-product-extension.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","governance.registry.json","governance.registry.schema.json","kernel.products.json","memory/glossary.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/chat.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime-command.test.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/replay.test.ts","packages/contracts/src/replay.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/subscription.test.ts","packages/contracts/src/subscription.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","products/juhai.qwen38flashnext/README.md","products/juhai.qwen38flashnext/acceptance/juhai.qwen38flashnext.order.acceptance.mjs","products/juhai.qwen38flashnext/migrations/juhai.qwen38flashnext.order/20260826090000_create_orders.sql","products/juhai.qwen38flashnext/migrations/juhai.qwen38flashnext.order/20260826091000_create_order_events.sql","products/juhai.qwen38flashnext/package.json","products/juhai.qwen38flashnext/product.manifest.json","products/juhai.qwen38flashnext/src/contracts.ts","products/juhai.qwen38flashnext/src/fastify.ts","products/juhai.qwen38flashnext/src/host.ts","products/juhai.qwen38flashnext/src/index.ts","products/juhai.qwen38flashnext/src/manifest.ts","products/juhai.qwen38flashnext/src/nestjs.ts","products/juhai.qwen38flashnext/src/order-repository.ts","products/juhai.qwen38flashnext/src/tools.ts","products/juhai.qwen38flashnext/src/web.tsx","products/juhai.qwen38flashnext/test/os-host.runtime.test.ts","products/juhai.qwen38flashnext/tsconfig.os-host.json","products/juhai.qwen38flashnext/vitest.os-host.config.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/framework-migration.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/os-product-runtime.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","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-os-product-compat.mjs","scripts/check-os-product-runtime.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-env.sh","scripts/governance-report.mjs","scripts/governance-stack.sh","scripts/lib/os-root.mjs","scripts/lib/report-provenance.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":["README.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":27,"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-30T09:21: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
|
6
|
1788052881
|
1788052902
|
0
|
1788052880
|
1788052902
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23567
|
feat(hr): implement governed HR v2 product foundat feat(hr): implement governed HR v2 product foundation...
|
83
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
c652cd634964e915a0a9895cc9a91be4381333b0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"c652cd634964e915a0a9895cc9a91be4381333b0","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"c652cd634964e915a0a9895cc9a91be4381333b0","message":"feat(hr): implement governed HR v2 product foundation\n\nAdd Personnel Core, enterprise identity, recruitment, workforce time and leave, payroll, performance, dual-backend parity, OS product distribution, browser workbenches, and provenance-bound acceptance evidence.\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c652cd634964e915a0a9895cc9a91be4381333b0","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-28T03:42:38-07:00","added":["apps/api-fastify/prisma/migrations/20260826030000_personnel_core_phase1/migration.sql","apps/api-fastify/prisma/migrations/20260826050000_personnel_delivery_receipts/migration.sql","apps/api-fastify/prisma/migrations/20260826060000_personnel_identity_links/migration.sql","apps/api-fastify/prisma/migrations/20260826070000_personnel_assignment_corrections/migration.sql","apps/api-fastify/prisma/migrations/20260826080000_personnel_data_quality_cases/migration.sql","apps/api-fastify/prisma/migrations/20260826090000_employment_documents/migration.sql","apps/api-fastify/prisma/migrations/20260826100000_person_merges/migration.sql","apps/api-fastify/prisma/migrations/20260826110000_employment_corrections/migration.sql","apps/api-fastify/prisma/migrations/20260826120000_person_corrections/migration.sql","apps/api-fastify/prisma/migrations/20260826130000_personnel_fact_versions/migration.sql","apps/api-fastify/prisma/migrations/20260826140000_personnel_effective_time_runs/migration.sql","apps/api-fastify/prisma/migrations/20260826150000_outbox_deadletter_replays/migration.sql","apps/api-fastify/prisma/migrations/20260826160000_outbox_delivery_latency_index/migration.sql","apps/api-fastify/prisma/migrations/20260826170000_database_rls_roles/migration.sql","apps/api-fastify/prisma/migrations/20260826180000_personnel_approval_policy_snapshot/migration.sql","apps/api-fastify/prisma/migrations/20260826190000_personnel_approval_policy_registry/migration.sql","apps/api-fastify/prisma/migrations/20260826200000_assignment_reporting_lines/migration.sql","apps/api-fastify/prisma/migrations/20260826210000_personnel_duplicate_candidates/migration.sql","apps/api-fastify/prisma/migrations/20260826210100_personnel_duplicate_candidate_storage/migration.sql","apps/api-fastify/prisma/migrations/20260826220000_identity_evidence_corrections/migration.sql","apps/api-fastify/prisma/migrations/20260826230000_employment_probation_facts/migration.sql","apps/api-fastify/prisma/migrations/20260827000000_personnel_delivery_policy_sets/migration.sql","apps/api-fastify/prisma/migrations/20260827010000_personnel_approval_cases/migration.sql","apps/api-fastify/prisma/migrations/20260827020000_personnel_approval_case_cancelled/migration.sql","apps/api-fastify/prisma/migrations/20260827020000_personnel_promotion_demotion/migration.sql","apps/api-fastify/prisma/migrations/20260827030000_prehire_resume/migration.sql","apps/api-fastify/prisma/migrations/20260827040000_enterprise_identity_principals/migration.sql","apps/api-fastify/prisma/migrations/20260827050000_enterprise_identity_accounts/migration.sql","apps/api-fastify/prisma/migrations/20260827060000_workforce_shift_patterns/migration.sql","apps/api-fastify/prisma/migrations/20260827070000_workforce_work_calendars/migration.sql","apps/api-fastify/prisma/migrations/20260827080000_workforce_shift_assignments/migration.sql","apps/api-fastify/prisma/migrations/20260827090000_workforce_attendance_sources/migration.sql","apps/api-fastify/prisma/migrations/20260827100000_workforce_raw_clock_records/migration.sql","apps/api-fastify/prisma/migrations/20260827110000_workforce_attendance_day_ledgers/migration.sql","apps/api-fastify/prisma/migrations/20260827120000_workforce_timesheet_periods/migration.sql","apps/api-fastify/prisma/migrations/20260827130000_leave_policy_requests/migration.sql","apps/api-fastify/prisma/migrations/20260827140000_payroll_configuration_intake/migration.sql","apps/api-fastify/prisma/migrations/20260827150000_payroll_foundation/migration.sql","apps/api-fastify/prisma/migrations/20260827160000_payroll_profiles/migration.sql","apps/api-fastify/prisma/migrations/20260827170000_payroll_period_runs/migration.sql","apps/api-fastify/prisma/migrations/20260827180000_payroll_calculation_results/migration.sql","apps/api-fastify/prisma/migrations/20260827210000_payroll_payslip_publications/migration.sql","apps/api-fastify/prisma/migrations/20260827220000_attendance_exception_cases/migration.sql","apps/api-fastify/prisma/migrations/20260827230000_payroll_bonus_awards/migration.sql","apps/api-fastify/prisma/migrations/20260828000000_recruitment_requisitions_openings/migration.sql","apps/api-fastify/prisma/migrations/20260828010000_recruitment_candidates_applications/migration.sql","apps/api-fastify/prisma/migrations/20260828020000_recruitment_interviews/migration.sql","apps/api-fastify/prisma/migrations/20260828030000_payroll_payment_reconciliation/migration.sql","apps/api-fastify/prisma/migrations/20260828040000_enterprise_identity_sessions/migration.sql","apps/api-fastify/prisma/migrations/20260828050000_security_event_idempotency/migration.sql","apps/api-fastify/prisma/migrations/20260828060000_recruitment_offers/migration.sql","apps/api-fastify/prisma/migrations/20260828070000_performance_policy_cycles/migration.sql","apps/api-fastify/src/modules/enterprise-identity/enterprise-identity.service.ts","apps/api-fastify/src/modules/leave/leave.service.ts","apps/api-fastify/src/modules/local-identity-session.ts","apps/api-fastify/src/modules/outbox-operations.ts","apps/api-fastify/src/modules/payroll-configuration/payroll-configuration.service.ts","apps/api-fastify/src/modules/payroll-foundation/payroll-foundation.service.ts","apps/api-fastify/src/modules/payroll-payments/payroll-payments.service.ts","apps/api-fastify/src/modules/payroll-profiles/payroll-profiles.service.ts","apps/api-fastify/src/modules/payroll-readiness.service.ts","apps/api-fastify/src/modules/payroll-runs/payroll-runs.service.ts","apps/api-fastify/src/modules/performance/performance.service.ts","apps/api-fastify/src/modules/personnel/personnel.service.ts","apps/api-fastify/src/modules/prehire/prehire.service.ts","apps/api-fastify/src/modules/recruitment/recruitment-offer.service.ts","apps/api-fastify/src/modules/recruitment/recruitment.service.ts","apps/api-fastify/src/modules/workforce-time/attendance-day-ledger.service.ts","apps/api-fastify/src/modules/workforce-time/attendance-source.service.ts","apps/api-fastify/src/modules/workforce-time/employee-attendance.service.ts","apps/api-fastify/src/modules/workforce-time/raw-clock-record.service.ts","apps/api-fastify/src/modules/workforce-time/shift-assignment.service.ts","apps/api-fastify/src/modules/workforce-time/timesheet-period.service.ts","apps/api-fastify/src/modules/workforce-time/work-calendar.service.ts","apps/api-fastify/src/modules/workforce-time/workforce-time.service.ts","apps/api-fastify/src/plugins/auth-jwks.ts","apps/api-fastify/src/plugins/database-rls-request.ts","apps/api-fastify/src/plugins/personnel-effective-time.ts","apps/api-fastify/src/routes/enterprise-identity.ts","apps/api-fastify/src/routes/leave.ts","apps/api-fastify/src/routes/outbox-operations.ts","apps/api-fastify/src/routes/payroll-configuration.ts","apps/api-fastify/src/routes/payroll-foundation.ts","apps/api-fastify/src/routes/payroll-payments.ts","apps/api-fastify/src/routes/payroll-profiles.ts","apps/api-fastify/src/routes/payroll-readiness.ts","apps/api-fastify/src/routes/payroll-runs.ts","apps/api-fastify/src/routes/performance.ts","apps/api-fastify/src/routes/personnel.ts","apps/api-fastify/src/routes/prehire.ts","apps/api-fastify/src/routes/recruitment.ts","apps/api-fastify/src/routes/workforce-time.ts","apps/api-fastify/test/auth.jwks.http.test.ts","apps/api-fastify/test/database-rls.integration.test.ts","apps/api-fastify/test/enterprise-identity.http.test.ts","apps/api-fastify/test/leave.http.test.ts","apps/api-fastify/test/payroll-configuration.http.test.ts","apps/api-fastify/test/payroll-foundation.http.test.ts","apps/api-fastify/test/payroll-profiles.http.test.ts","apps/api-fastify/test/payroll-readiness.http.test.ts","apps/api-fastify/test/payroll-runs.http.test.ts","apps/api-fastify/test/performance.http.test.ts","apps/api-fastify/test/personnel.http.test.ts","apps/api-fastify/test/personnel.integration.test.ts","apps/api-fastify/test/recruitment-offer.http.test.ts","apps/api-fastify/test/recruitment.http.test.ts","apps/api-fastify/test/users.atomicity.test.ts","apps/api-fastify/test/workforce-time.http.test.ts","apps/api-nestjs/prisma/migrations/20260826030000_personnel_core_phase1/migration.sql","apps/api-nestjs/prisma/migrations/20260826050000_personnel_delivery_receipts/migration.sql","apps/api-nestjs/prisma/migrations/20260826060000_personnel_identity_links/migration.sql","apps/api-nestjs/prisma/migrations/20260826070000_personnel_assignment_corrections/migration.sql","apps/api-nestjs/prisma/migrations/20260826080000_personnel_data_quality_cases/migration.sql","apps/api-nestjs/prisma/migrations/20260826090000_employment_documents/migration.sql","apps/api-nestjs/prisma/migrations/20260826100000_person_merges/migration.sql","apps/api-nestjs/prisma/migrations/20260826110000_employment_corrections/migration.sql","apps/api-nestjs/prisma/migrations/20260826120000_person_corrections/migration.sql","apps/api-nestjs/prisma/migrations/20260826130000_personnel_fact_versions/migration.sql","apps/api-nestjs/prisma/migrations/20260826140000_personnel_effective_time_runs/migration.sql","apps/api-nestjs/prisma/migrations/20260826150000_outbox_deadletter_replays/migration.sql","apps/api-nestjs/prisma/migrations/20260826160000_outbox_delivery_latency_index/migration.sql","apps/api-nestjs/prisma/migrations/20260826170000_database_rls_roles/migration.sql","apps/api-nestjs/prisma/migrations/20260826180000_personnel_approval_policy_snapshot/migration.sql","apps/api-nestjs/prisma/migrations/20260826190000_personnel_approval_policy_registry/migration.sql","apps/api-nestjs/prisma/migrations/20260826200000_assignment_reporting_lines/migration.sql","apps/api-nestjs/prisma/migrations/20260826210000_personnel_duplicate_candidates/migration.sql","apps/api-nestjs/prisma/migrations/20260826210100_personnel_duplicate_candidate_storage/migration.sql","apps/api-nestjs/prisma/migrations/20260826220000_identity_evidence_corrections/migration.sql","apps/api-nestjs/prisma/migrations/20260826230000_employment_probation_facts/migration.sql","apps/api-nestjs/prisma/migrations/20260827000000_personnel_delivery_policy_sets/migration.sql","apps/api-nestjs/prisma/migrations/20260827010000_personnel_approval_cases/migration.sql","apps/api-nestjs/prisma/migrations/20260827020000_personnel_approval_case_cancelled/migration.sql","apps/api-nestjs/prisma/migrations/20260827020000_personnel_promotion_demotion/migration.sql","apps/api-nestjs/prisma/migrations/20260827030000_prehire_resume/migration.sql","apps/api-nestjs/prisma/migrations/20260827040000_enterprise_identity_principals/migration.sql","apps/api-nestjs/prisma/migrations/20260827050000_enterprise_identity_accounts/migration.sql","apps/api-nestjs/prisma/migrations/20260827060000_workforce_shift_patterns/migration.sql","apps/api-nestjs/prisma/migrations/20260827070000_workforce_work_calendars/migration.sql","apps/api-nestjs/prisma/migrations/20260827080000_workforce_shift_assignments/migration.sql","apps/api-nestjs/prisma/migrations/20260827090000_workforce_attendance_sources/migration.sql","apps/api-nestjs/prisma/migrations/20260827100000_workforce_raw_clock_records/migration.sql","apps/api-nestjs/prisma/migrations/20260827110000_workforce_attendance_day_ledgers/migration.sql","apps/api-nestjs/prisma/migrations/20260827120000_workforce_timesheet_periods/migration.sql","apps/api-nestjs/prisma/migrations/20260827130000_leave_policy_requests/migration.sql","apps/api-nestjs/prisma/migrations/20260827140000_payroll_configuration_intake/migration.sql","apps/api-nestjs/prisma/migrations/20260827150000_payroll_foundation/migration.sql","apps/api-nestjs/prisma/migrations/20260827160000_payroll_profiles/migration.sql","apps/api-nestjs/prisma/migrations/20260827170000_payroll_period_runs/migration.sql","apps/api-nestjs/prisma/migrations/20260827180000_payroll_calculation_results/migration.sql","apps/api-nestjs/prisma/migrations/20260827210000_payroll_payslip_publications/migration.sql","apps/api-nestjs/prisma/migrations/20260827220000_attendance_exception_cases/migration.sql","apps/api-nestjs/prisma/migrations/20260827230000_payroll_bonus_awards/migration.sql","apps/api-nestjs/prisma/migrations/20260828000000_recruitment_requisitions_openings/migration.sql","apps/api-nestjs/prisma/migrations/20260828010000_recruitment_candidates_applications/migration.sql","apps/api-nestjs/prisma/migrations/20260828020000_recruitment_interviews/migration.sql","apps/api-nestjs/prisma/migrations/20260828030000_payroll_payment_reconciliation/migration.sql","apps/api-nestjs/prisma/migrations/20260828040000_enterprise_identity_sessions/migration.sql","apps/api-nestjs/prisma/migrations/20260828050000_security_event_idempotency/migration.sql","apps/api-nestjs/prisma/migrations/20260828060000_recruitment_offers/migration.sql","apps/api-nestjs/prisma/migrations/20260828070000_performance_policy_cycles/migration.sql","apps/api-nestjs/src/common/auth-jwks-lifecycle.service.ts","apps/api-nestjs/src/common/local-identity-session.ts","apps/api-nestjs/src/enterprise-identity/enterprise-identity.controller.ts","apps/api-nestjs/src/enterprise-identity/enterprise-identity.module.ts","apps/api-nestjs/src/enterprise-identity/enterprise-identity.service.ts","apps/api-nestjs/src/events/outbox-operations.controller.ts","apps/api-nestjs/src/events/outbox-operations.service.ts","apps/api-nestjs/src/leave/leave.controller.ts","apps/api-nestjs/src/leave/leave.module.ts","apps/api-nestjs/src/leave/leave.service.ts","apps/api-nestjs/src/payroll-configuration/payroll-configuration.controller.ts","apps/api-nestjs/src/payroll-configuration/payroll-configuration.module.ts","apps/api-nestjs/src/payroll-configuration/payroll-configuration.service.ts","apps/api-nestjs/src/payroll-foundation/payroll-foundation.controller.ts","apps/api-nestjs/src/payroll-foundation/payroll-foundation.module.ts","apps/api-nestjs/src/payroll-foundation/payroll-foundation.service.ts","apps/api-nestjs/src/payroll-payments/payroll-payments.controller.ts","apps/api-nestjs/src/payroll-payments/payroll-payments.module.ts","apps/api-nestjs/src/payroll-payments/payroll-payments.service.ts","apps/api-nestjs/src/payroll-profiles/payroll-profiles.controller.ts","apps/api-nestjs/src/payroll-profiles/payroll-profiles.module.ts","apps/api-nestjs/src/payroll-profiles/payroll-profiles.service.ts","apps/api-nestjs/src/payroll-readiness/payroll-readiness.controller.ts","apps/api-nestjs/src/payroll-readiness/payroll-readiness.module.ts","apps/api-nestjs/src/payroll-readiness/payroll-readiness.service.ts","apps/api-nestjs/src/payroll-runs/payroll-runs.controller.ts","apps/api-nestjs/src/payroll-runs/payroll-runs.module.ts","apps/api-nestjs/src/payroll-runs/payroll-runs.service.ts","apps/api-nestjs/src/performance/performance.controller.ts","apps/api-nestjs/src/performance/performance.module.ts","apps/api-nestjs/src/performance/performance.service.ts","apps/api-nestjs/src/personnel/personnel-effective-time-dispatcher.service.ts","apps/api-nestjs/src/personnel/personnel.controller.ts","apps/api-nestjs/src/personnel/personnel.module.ts","apps/api-nestjs/src/personnel/personnel.service.ts","apps/api-nestjs/src/prehire/prehire.controller.ts","apps/api-nestjs/src/prehire/prehire.module.ts","apps/api-nestjs/src/prehire/prehire.service.ts","apps/api-nestjs/src/prisma/database-rls.interceptor.ts","apps/api-nestjs/src/prisma/manual-database-rls.decorator.ts","apps/api-nestjs/src/recruitment/recruitment-offer.controller.ts","apps/api-nestjs/src/recruitment/recruitment-offer.service.ts","apps/api-nestjs/src/recruitment/recruitment.controller.ts","apps/api-nestjs/src/recruitment/recruitment.module.ts","apps/api-nestjs/src/recruitment/recruitment.service.ts","apps/api-nestjs/src/sse/sse-connection.guard.ts","apps/api-nestjs/src/workforce-time/attendance-day-ledger.service.ts","apps/api-nestjs/src/workforce-time/attendance-source.service.ts","apps/api-nestjs/src/workforce-time/employee-attendance.service.ts","apps/api-nestjs/src/workforce-time/raw-clock-record.service.ts","apps/api-nestjs/src/workforce-time/shift-assignment.service.ts","apps/api-nestjs/src/workforce-time/timesheet-period.service.ts","apps/api-nestjs/src/workforce-time/work-calendar.service.ts","apps/api-nestjs/src/workforce-time/workforce-time.controller.ts","apps/api-nestjs/src/workforce-time/workforce-time.module.ts","apps/api-nestjs/src/workforce-time/workforce-time.service.ts","apps/api-nestjs/test/auth.jwks.http.test.ts","apps/api-nestjs/test/database-rls.integration.test.ts","apps/api-nestjs/test/enterprise-identity.http.test.ts","apps/api-nestjs/test/leave.http.test.ts","apps/api-nestjs/test/payroll-configuration.http.test.ts","apps/api-nestjs/test/payroll-foundation.http.test.ts","apps/api-nestjs/test/payroll-profiles.http.test.ts","apps/api-nestjs/test/payroll-readiness.http.test.ts","apps/api-nestjs/test/payroll-runs.http.test.ts","apps/api-nestjs/test/performance.http.test.ts","apps/api-nestjs/test/personnel.http.test.ts","apps/api-nestjs/test/personnel.integration.test.ts","apps/api-nestjs/test/recruitment-offer.http.test.ts","apps/api-nestjs/test/recruitment.http.test.ts","apps/api-nestjs/test/users.atomicity.test.ts","apps/api-nestjs/test/workforce-time.http.test.ts","apps/web/src/app/employee/attendance/page.tsx","apps/web/src/app/employee/payslips/page.tsx","apps/web/src/app/prehire/page.tsx","apps/web/src/components/ApprovalPolicyGovernancePanel.tsx","apps/web/src/components/DeliveryPolicyGovernancePanel.tsx","apps/web/src/components/EmployeeAttendancePortal.tsx","apps/web/src/components/EmployeePayslipPortal.tsx","apps/web/src/components/EmploymentExpiryView.tsx","apps/web/src/components/EnterpriseIdentityAccountPanel.tsx","apps/web/src/components/EnterpriseIdentityWorkbench.tsx","apps/web/src/components/EnterpriseIdentityWorkspace.tsx","apps/web/src/components/EventOperationsView.tsx","apps/web/src/components/LeaveWorkspace.tsx","apps/web/src/components/OrganizationWorkspace.tsx","apps/web/src/components/PayrollBonusAwardWorkbench.tsx","apps/web/src/components/PayrollConfigurationWorkbench.tsx","apps/web/src/components/PayrollFoundationWorkbench.tsx","apps/web/src/components/PayrollPaymentWorkbench.tsx","apps/web/src/components/PayrollProfilesWorkbench.tsx","apps/web/src/components/PayrollReadinessWorkspace.tsx","apps/web/src/components/PayrollRunsWorkbench.tsx","apps/web/src/components/PerformanceWorkspace.tsx","apps/web/src/components/PersonnelAlumniView.tsx","apps/web/src/components/PersonnelChangeWorkbench.tsx","apps/web/src/components/PersonnelDirectoryView.tsx","apps/web/src/components/PersonnelGovernanceView.tsx","apps/web/src/components/PersonnelProbationView.tsx","apps/web/src/components/PositionManagementDialog.tsx","apps/web/src/components/PrehireCandidateForm.tsx","apps/web/src/components/PrehireResumeWorkbench.tsx","apps/web/src/components/RealtimeBridge.tsx","apps/web/src/components/RecruitmentWorkspace.tsx","apps/web/src/components/RenewEmploymentDialog.tsx","apps/web/src/components/WorkforceAttendanceDayLedgerWorkbench.tsx","apps/web/src/components/WorkforceAttendanceExceptionWorkbench.tsx","apps/web/src/components/WorkforceAttendanceSourceWorkbench.tsx","apps/web/src/components/WorkforceCalendarWorkbench.tsx","apps/web/src/components/WorkforceRawClockWorkbench.tsx","apps/web/src/components/WorkforceShiftAssignmentWorkbench.tsx","apps/web/src/components/WorkforceShiftPatternWorkbench.tsx","apps/web/src/components/WorkforceTimeWorkspace.tsx","apps/web/src/components/WorkforceTimesheetPeriodWorkbench.tsx","design-qa.md","docs/domain/enterprise-document-signing-v2-blueprint.md","docs/domain/enterprise-identity-v2-blueprint.md","docs/domain/hr-v2-blueprint.md","docs/domain/hr-v2-data-classification.md","docs/domain/hr-v2-event-catalog.md","docs/domain/hr-v2-threat-model.md","docs/domain/os-product-layer-blueprint.md","docs/domain/payroll-rewards-v2-blueprint.md","docs/domain/performance-talent-v2-blueprint.md","docs/domain/personnel-core-blueprint.md","docs/domain/prehire-resume-blueprint.md","docs/domain/recruitment-v2-blueprint.md","docs/domain/workforce-time-leave-v2-blueprint.md","docs/system-analysis-2026-08-28.md","packages/auth/package.json","packages/auth/src/identity.test.ts","packages/auth/src/identity.ts","packages/auth/src/index.test.ts","packages/auth/src/index.ts","packages/auth/src/payroll.test.ts","packages/auth/src/payroll.ts","packages/auth/src/prehire.test.ts","packages/auth/src/prehire.ts","packages/auth/src/recruitment.test.ts","packages/auth/src/recruitment.ts","packages/auth/tsconfig.json","packages/contracts/src/enterprise-document.ts","packages/contracts/src/enterprise-identity.ts","packages/contracts/src/enterprise-v2.test.ts","packages/contracts/src/leave.test.ts","packages/contracts/src/leave.ts","packages/contracts/src/outbox-operations.test.ts","packages/contracts/src/outbox-operations.ts","packages/contracts/src/payroll-bonuses.test.ts","packages/contracts/src/payroll-bonuses.ts","packages/contracts/src/payroll-calculation.test.ts","packages/contracts/src/payroll-calculation.ts","packages/contracts/src/payroll-configuration.test.ts","packages/contracts/src/payroll-configuration.ts","packages/contracts/src/payroll-foundation.test.ts","packages/contracts/src/payroll-foundation.ts","packages/contracts/src/payroll-payments.test.ts","packages/contracts/src/payroll-payments.ts","packages/contracts/src/payroll-payslips.ts","packages/contracts/src/payroll-profiles.test.ts","packages/contracts/src/payroll-profiles.ts","packages/contracts/src/payroll-readiness.test.ts","packages/contracts/src/payroll-readiness.ts","packages/contracts/src/payroll-runs.test.ts","packages/contracts/src/payroll-runs.ts","packages/contracts/src/performance.test.ts","packages/contracts/src/performance.ts","packages/contracts/src/personnel-access.test.ts","packages/contracts/src/personnel-access.ts","packages/contracts/src/personnel-effective-time.test.ts","packages/contracts/src/personnel-effective-time.ts","packages/contracts/src/personnel-temporal.ts","packages/contracts/src/personnel.test.ts","packages/contracts/src/personnel.ts","packages/contracts/src/prehire.ts","packages/contracts/src/recruitment.test.ts","packages/contracts/src/recruitment.ts","packages/contracts/src/workforce-time.test.ts","packages/contracts/src/workforce-time.ts","packages/database-rls/package.json","packages/database-rls/src/index.test.ts","packages/database-rls/src/index.ts","packages/database-rls/tsconfig.json","products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/ddl-authority.json","products/juhai.hr/distribution.json","products/juhai.hr/manifest.json","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","products/juhai.hr/readiness.json","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/delivery-audit-workbench.d.mts","products/juhai.hr/src/delivery-audit-workbench.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/master-data-workbench.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-change-workbench.d.mts","products/juhai.hr/src/personnel-change-workbench.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/personnel-governance-workbench.d.mts","products/juhai.hr/src/personnel-governance-workbench.mjs","products/juhai.hr/src/privacy-projections.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/database-rls.latest.json","reports/dual-backend-behavior.latest.json","reports/health-dependency-failure.latest.json","reports/os-product-bundle.latest.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/bundle-index.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/distribution.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/manifest.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/bundle-index.json","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/distribution.json","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/manifest.json","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/bundle-index.json","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/distribution.json","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/manifest.json","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/bundle-index.json","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/distribution.json","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/manifest.json","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/bundle-index.json","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/distribution.json","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/manifest.json","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/bundle-index.json","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/distribution.json","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/manifest.json","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/bundle-index.json","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/distribution.json","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/manifest.json","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/bundle-index.json","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/distribution.json","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/manifest.json","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/bundle-index.json","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/distribution.json","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/manifest.json","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/bundle-index.json","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/distribution.json","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/manifest.json","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/bundle-index.json","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/distribution.json","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/manifest.json","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/bundle-index.json","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/distribution.json","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/manifest.json","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/bundle-index.json","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/distribution.json","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/manifest.json","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/bundle-index.json","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/distribution.json","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/manifest.json","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/bundle-index.json","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/distribution.json","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/manifest.json","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/bundle-index.json","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/distribution.json","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/manifest.json","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/bundle-index.json","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/distribution.json","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/manifest.json","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/bundle-index.json","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/distribution.json","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/manifest.json","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/bundle-index.json","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/distribution.json","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/manifest.json","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/bundle-index.json","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/distribution.json","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/manifest.json","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/bundle-index.json","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/distribution.json","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/manifest.json","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/bundle-index.json","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/distribution.json","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/manifest.json","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/bundle-index.json","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/distribution.json","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/manifest.json","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/bundle-index.json","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/distribution.json","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/manifest.json","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/bundle-index.json","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/distribution.json","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/manifest.json","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/web-workspace.mjs","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-runtime.rejected.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-migrations-runtime.latest.json","reports/os-product-migrations-runtime.rejected.json","reports/os-product-privacy.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-apply-preview.latest.json","reports/os-product-registration-candidate.latest.json","reports/os-product-registration-verification.latest.json","reports/os-product-registration.latest.json","reports/os-product-registration.rejected.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/os-product-sql-runtime.latest.json","reports/os-product-sql-runtime.rejected.json","reports/os-product-upgrade-candidate.latest.json","reports/outbox-multi-instance.latest.json","reports/product-design-audit/business-gaps-2026-08-26/01-personnel-profile.png","reports/product-design-audit/business-gaps-2026-08-26/02-organization-roster.png","reports/product-design-audit/business-gaps-2026-08-26/03-position-ledger.png","reports/product-design-audit/business-gaps-2026-08-26/04-personnel-change.png","reports/product-design-audit/business-gaps-2026-08-26/05-approval-policy-empty.png","reports/product-design-audit/business-gaps-2026-08-26/06-delivery-policy-empty.png","reports/product-design-audit/employee-attendance-mobile-concept.png","reports/product-design-audit/employee-attendance-mobile-implementation.png","reports/product-design-audit/person-merge-20260826/01-merge-result.png","reports/product-design-audit/person-merge-20260826/02-canonical-profile.png","reports/product-design-audit/person-merge-20260826/03-grouped-profile.png","reports/product-design-audit/person-merge-20260826/04-merge-reconciliation.png","reports/product-design-audit/person-merge-20260826/05-merge-alias-detail.png","reports/product-design-audit/person-merge-20260826/06-person-alias-reconciliation.png","reports/product-design-audit/person-merge-20260826/07-merge-evidence.png","reports/product-design-audit/person-merge-20260826/audit.md","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","scripts/apply-os-product-registration.mjs","scripts/audit-os-product-rebase-decision.mjs","scripts/audit-os-product-release-readiness.mjs","scripts/audit-os-product-release-reproduction.mjs","scripts/audit-os-product-upgrade-candidate.mjs","scripts/build-os-product-bundle.mjs","scripts/check-database-rls.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-health-dependency-failure.mjs","scripts/check-os-product-distribution.mjs","scripts/check-os-product-host-runtime.mjs","scripts/check-os-product-host-ui.mjs","scripts/check-os-product-layer.mjs","scripts/check-os-product-migrations-runtime.mjs","scripts/check-os-product-privacy.mjs","scripts/check-os-product-registration.mjs","scripts/check-os-product-sql-runtime.mjs","scripts/check-outbox-multi-instance.mjs","scripts/lib/git-worktree-fingerprint.mjs","scripts/prepare-os-product-registration-candidate.mjs","scripts/serve-os-product-host.mjs"],"removed":[],"modified":[".github/pull_request_template.md",".github/workflows/governance.yml",".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/tenant.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/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.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/common/tenant.decorator.ts","apps/api-nestjs/src/events/events.gateway.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/events/replay.service.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0009-dual-backend-governance-parity.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/standards/api-standard.md","governance.registry.json","governance.registry.schema.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","pnpm-lock.yaml","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/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"76b19716eb3450c705c6379b459894437af03acb","message":"chore(reports): refresh target static evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/76b19716eb3450c705c6379b459894437af03acb","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:34:25-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":"9d8386e522a5d37e3a826470b66c8e82abce2468","message":"docs: record target migration verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/9d8386e522a5d37e3a826470b66c8e82abce2468","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:34:08-07:00","added":["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/validation-source.latest.json"],"removed":[],"modified":["docs/README.md","docs/framework-migration.md"]},{"id":"805763fbf9a354c7225c5e3106ff16171daa56e1","message":"chore: bootstrap 巨嗨 AI 人事系统基础框架\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/805763fbf9a354c7225c5e3106ff16171daa56e1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:32:35-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.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/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/connection-registry.service.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.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/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/framework-migration.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","governance.registry.json","governance.registry.schema.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime-command.test.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/replay.test.ts","packages/contracts/src/replay.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/subscription.test.ts","packages/contracts/src/subscription.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"c652cd634964e915a0a9895cc9a91be4381333b0","message":"feat(hr): implement governed HR v2 product foundation\n\nAdd Personnel Core, enterprise identity, recruitment, workforce time and leave, payroll, performance, dual-backend parity, OS product distribution, browser workbenches, and provenance-bound acceptance evidence.\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c652cd634964e915a0a9895cc9a91be4381333b0","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-28T03:42:38-07:00","added":["apps/api-fastify/prisma/migrations/20260826030000_personnel_core_phase1/migration.sql","apps/api-fastify/prisma/migrations/20260826050000_personnel_delivery_receipts/migration.sql","apps/api-fastify/prisma/migrations/20260826060000_personnel_identity_links/migration.sql","apps/api-fastify/prisma/migrations/20260826070000_personnel_assignment_corrections/migration.sql","apps/api-fastify/prisma/migrations/20260826080000_personnel_data_quality_cases/migration.sql","apps/api-fastify/prisma/migrations/20260826090000_employment_documents/migration.sql","apps/api-fastify/prisma/migrations/20260826100000_person_merges/migration.sql","apps/api-fastify/prisma/migrations/20260826110000_employment_corrections/migration.sql","apps/api-fastify/prisma/migrations/20260826120000_person_corrections/migration.sql","apps/api-fastify/prisma/migrations/20260826130000_personnel_fact_versions/migration.sql","apps/api-fastify/prisma/migrations/20260826140000_personnel_effective_time_runs/migration.sql","apps/api-fastify/prisma/migrations/20260826150000_outbox_deadletter_replays/migration.sql","apps/api-fastify/prisma/migrations/20260826160000_outbox_delivery_latency_index/migration.sql","apps/api-fastify/prisma/migrations/20260826170000_database_rls_roles/migration.sql","apps/api-fastify/prisma/migrations/20260826180000_personnel_approval_policy_snapshot/migration.sql","apps/api-fastify/prisma/migrations/20260826190000_personnel_approval_policy_registry/migration.sql","apps/api-fastify/prisma/migrations/20260826200000_assignment_reporting_lines/migration.sql","apps/api-fastify/prisma/migrations/20260826210000_personnel_duplicate_candidates/migration.sql","apps/api-fastify/prisma/migrations/20260826210100_personnel_duplicate_candidate_storage/migration.sql","apps/api-fastify/prisma/migrations/20260826220000_identity_evidence_corrections/migration.sql","apps/api-fastify/prisma/migrations/20260826230000_employment_probation_facts/migration.sql","apps/api-fastify/prisma/migrations/20260827000000_personnel_delivery_policy_sets/migration.sql","apps/api-fastify/prisma/migrations/20260827010000_personnel_approval_cases/migration.sql","apps/api-fastify/prisma/migrations/20260827020000_personnel_approval_case_cancelled/migration.sql","apps/api-fastify/prisma/migrations/20260827020000_personnel_promotion_demotion/migration.sql","apps/api-fastify/prisma/migrations/20260827030000_prehire_resume/migration.sql","apps/api-fastify/prisma/migrations/20260827040000_enterprise_identity_principals/migration.sql","apps/api-fastify/prisma/migrations/20260827050000_enterprise_identity_accounts/migration.sql","apps/api-fastify/prisma/migrations/20260827060000_workforce_shift_patterns/migration.sql","apps/api-fastify/prisma/migrations/20260827070000_workforce_work_calendars/migration.sql","apps/api-fastify/prisma/migrations/20260827080000_workforce_shift_assignments/migration.sql","apps/api-fastify/prisma/migrations/20260827090000_workforce_attendance_sources/migration.sql","apps/api-fastify/prisma/migrations/20260827100000_workforce_raw_clock_records/migration.sql","apps/api-fastify/prisma/migrations/20260827110000_workforce_attendance_day_ledgers/migration.sql","apps/api-fastify/prisma/migrations/20260827120000_workforce_timesheet_periods/migration.sql","apps/api-fastify/prisma/migrations/20260827130000_leave_policy_requests/migration.sql","apps/api-fastify/prisma/migrations/20260827140000_payroll_configuration_intake/migration.sql","apps/api-fastify/prisma/migrations/20260827150000_payroll_foundation/migration.sql","apps/api-fastify/prisma/migrations/20260827160000_payroll_profiles/migration.sql","apps/api-fastify/prisma/migrations/20260827170000_payroll_period_runs/migration.sql","apps/api-fastify/prisma/migrations/20260827180000_payroll_calculation_results/migration.sql","apps/api-fastify/prisma/migrations/20260827210000_payroll_payslip_publications/migration.sql","apps/api-fastify/prisma/migrations/20260827220000_attendance_exception_cases/migration.sql","apps/api-fastify/prisma/migrations/20260827230000_payroll_bonus_awards/migration.sql","apps/api-fastify/prisma/migrations/20260828000000_recruitment_requisitions_openings/migration.sql","apps/api-fastify/prisma/migrations/20260828010000_recruitment_candidates_applications/migration.sql","apps/api-fastify/prisma/migrations/20260828020000_recruitment_interviews/migration.sql","apps/api-fastify/prisma/migrations/20260828030000_payroll_payment_reconciliation/migration.sql","apps/api-fastify/prisma/migrations/20260828040000_enterprise_identity_sessions/migration.sql","apps/api-fastify/prisma/migrations/20260828050000_security_event_idempotency/migration.sql","apps/api-fastify/prisma/migrations/20260828060000_recruitment_offers/migration.sql","apps/api-fastify/prisma/migrations/20260828070000_performance_policy_cycles/migration.sql","apps/api-fastify/src/modules/enterprise-identity/enterprise-identity.service.ts","apps/api-fastify/src/modules/leave/leave.service.ts","apps/api-fastify/src/modules/local-identity-session.ts","apps/api-fastify/src/modules/outbox-operations.ts","apps/api-fastify/src/modules/payroll-configuration/payroll-configuration.service.ts","apps/api-fastify/src/modules/payroll-foundation/payroll-foundation.service.ts","apps/api-fastify/src/modules/payroll-payments/payroll-payments.service.ts","apps/api-fastify/src/modules/payroll-profiles/payroll-profiles.service.ts","apps/api-fastify/src/modules/payroll-readiness.service.ts","apps/api-fastify/src/modules/payroll-runs/payroll-runs.service.ts","apps/api-fastify/src/modules/performance/performance.service.ts","apps/api-fastify/src/modules/personnel/personnel.service.ts","apps/api-fastify/src/modules/prehire/prehire.service.ts","apps/api-fastify/src/modules/recruitment/recruitment-offer.service.ts","apps/api-fastify/src/modules/recruitment/recruitment.service.ts","apps/api-fastify/src/modules/workforce-time/attendance-day-ledger.service.ts","apps/api-fastify/src/modules/workforce-time/attendance-source.service.ts","apps/api-fastify/src/modules/workforce-time/employee-attendance.service.ts","apps/api-fastify/src/modules/workforce-time/raw-clock-record.service.ts","apps/api-fastify/src/modules/workforce-time/shift-assignment.service.ts","apps/api-fastify/src/modules/workforce-time/timesheet-period.service.ts","apps/api-fastify/src/modules/workforce-time/work-calendar.service.ts","apps/api-fastify/src/modules/workforce-time/workforce-time.service.ts","apps/api-fastify/src/plugins/auth-jwks.ts","apps/api-fastify/src/plugins/database-rls-request.ts","apps/api-fastify/src/plugins/personnel-effective-time.ts","apps/api-fastify/src/routes/enterprise-identity.ts","apps/api-fastify/src/routes/leave.ts","apps/api-fastify/src/routes/outbox-operations.ts","apps/api-fastify/src/routes/payroll-configuration.ts","apps/api-fastify/src/routes/payroll-foundation.ts","apps/api-fastify/src/routes/payroll-payments.ts","apps/api-fastify/src/routes/payroll-profiles.ts","apps/api-fastify/src/routes/payroll-readiness.ts","apps/api-fastify/src/routes/payroll-runs.ts","apps/api-fastify/src/routes/performance.ts","apps/api-fastify/src/routes/personnel.ts","apps/api-fastify/src/routes/prehire.ts","apps/api-fastify/src/routes/recruitment.ts","apps/api-fastify/src/routes/workforce-time.ts","apps/api-fastify/test/auth.jwks.http.test.ts","apps/api-fastify/test/database-rls.integration.test.ts","apps/api-fastify/test/enterprise-identity.http.test.ts","apps/api-fastify/test/leave.http.test.ts","apps/api-fastify/test/payroll-configuration.http.test.ts","apps/api-fastify/test/payroll-foundation.http.test.ts","apps/api-fastify/test/payroll-profiles.http.test.ts","apps/api-fastify/test/payroll-readiness.http.test.ts","apps/api-fastify/test/payroll-runs.http.test.ts","apps/api-fastify/test/performance.http.test.ts","apps/api-fastify/test/personnel.http.test.ts","apps/api-fastify/test/personnel.integration.test.ts","apps/api-fastify/test/recruitment-offer.http.test.ts","apps/api-fastify/test/recruitment.http.test.ts","apps/api-fastify/test/users.atomicity.test.ts","apps/api-fastify/test/workforce-time.http.test.ts","apps/api-nestjs/prisma/migrations/20260826030000_personnel_core_phase1/migration.sql","apps/api-nestjs/prisma/migrations/20260826050000_personnel_delivery_receipts/migration.sql","apps/api-nestjs/prisma/migrations/20260826060000_personnel_identity_links/migration.sql","apps/api-nestjs/prisma/migrations/20260826070000_personnel_assignment_corrections/migration.sql","apps/api-nestjs/prisma/migrations/20260826080000_personnel_data_quality_cases/migration.sql","apps/api-nestjs/prisma/migrations/20260826090000_employment_documents/migration.sql","apps/api-nestjs/prisma/migrations/20260826100000_person_merges/migration.sql","apps/api-nestjs/prisma/migrations/20260826110000_employment_corrections/migration.sql","apps/api-nestjs/prisma/migrations/20260826120000_person_corrections/migration.sql","apps/api-nestjs/prisma/migrations/20260826130000_personnel_fact_versions/migration.sql","apps/api-nestjs/prisma/migrations/20260826140000_personnel_effective_time_runs/migration.sql","apps/api-nestjs/prisma/migrations/20260826150000_outbox_deadletter_replays/migration.sql","apps/api-nestjs/prisma/migrations/20260826160000_outbox_delivery_latency_index/migration.sql","apps/api-nestjs/prisma/migrations/20260826170000_database_rls_roles/migration.sql","apps/api-nestjs/prisma/migrations/20260826180000_personnel_approval_policy_snapshot/migration.sql","apps/api-nestjs/prisma/migrations/20260826190000_personnel_approval_policy_registry/migration.sql","apps/api-nestjs/prisma/migrations/20260826200000_assignment_reporting_lines/migration.sql","apps/api-nestjs/prisma/migrations/20260826210000_personnel_duplicate_candidates/migration.sql","apps/api-nestjs/prisma/migrations/20260826210100_personnel_duplicate_candidate_storage/migration.sql","apps/api-nestjs/prisma/migrations/20260826220000_identity_evidence_corrections/migration.sql","apps/api-nestjs/prisma/migrations/20260826230000_employment_probation_facts/migration.sql","apps/api-nestjs/prisma/migrations/20260827000000_personnel_delivery_policy_sets/migration.sql","apps/api-nestjs/prisma/migrations/20260827010000_personnel_approval_cases/migration.sql","apps/api-nestjs/prisma/migrations/20260827020000_personnel_approval_case_cancelled/migration.sql","apps/api-nestjs/prisma/migrations/20260827020000_personnel_promotion_demotion/migration.sql","apps/api-nestjs/prisma/migrations/20260827030000_prehire_resume/migration.sql","apps/api-nestjs/prisma/migrations/20260827040000_enterprise_identity_principals/migration.sql","apps/api-nestjs/prisma/migrations/20260827050000_enterprise_identity_accounts/migration.sql","apps/api-nestjs/prisma/migrations/20260827060000_workforce_shift_patterns/migration.sql","apps/api-nestjs/prisma/migrations/20260827070000_workforce_work_calendars/migration.sql","apps/api-nestjs/prisma/migrations/20260827080000_workforce_shift_assignments/migration.sql","apps/api-nestjs/prisma/migrations/20260827090000_workforce_attendance_sources/migration.sql","apps/api-nestjs/prisma/migrations/20260827100000_workforce_raw_clock_records/migration.sql","apps/api-nestjs/prisma/migrations/20260827110000_workforce_attendance_day_ledgers/migration.sql","apps/api-nestjs/prisma/migrations/20260827120000_workforce_timesheet_periods/migration.sql","apps/api-nestjs/prisma/migrations/20260827130000_leave_policy_requests/migration.sql","apps/api-nestjs/prisma/migrations/20260827140000_payroll_configuration_intake/migration.sql","apps/api-nestjs/prisma/migrations/20260827150000_payroll_foundation/migration.sql","apps/api-nestjs/prisma/migrations/20260827160000_payroll_profiles/migration.sql","apps/api-nestjs/prisma/migrations/20260827170000_payroll_period_runs/migration.sql","apps/api-nestjs/prisma/migrations/20260827180000_payroll_calculation_results/migration.sql","apps/api-nestjs/prisma/migrations/20260827210000_payroll_payslip_publications/migration.sql","apps/api-nestjs/prisma/migrations/20260827220000_attendance_exception_cases/migration.sql","apps/api-nestjs/prisma/migrations/20260827230000_payroll_bonus_awards/migration.sql","apps/api-nestjs/prisma/migrations/20260828000000_recruitment_requisitions_openings/migration.sql","apps/api-nestjs/prisma/migrations/20260828010000_recruitment_candidates_applications/migration.sql","apps/api-nestjs/prisma/migrations/20260828020000_recruitment_interviews/migration.sql","apps/api-nestjs/prisma/migrations/20260828030000_payroll_payment_reconciliation/migration.sql","apps/api-nestjs/prisma/migrations/20260828040000_enterprise_identity_sessions/migration.sql","apps/api-nestjs/prisma/migrations/20260828050000_security_event_idempotency/migration.sql","apps/api-nestjs/prisma/migrations/20260828060000_recruitment_offers/migration.sql","apps/api-nestjs/prisma/migrations/20260828070000_performance_policy_cycles/migration.sql","apps/api-nestjs/src/common/auth-jwks-lifecycle.service.ts","apps/api-nestjs/src/common/local-identity-session.ts","apps/api-nestjs/src/enterprise-identity/enterprise-identity.controller.ts","apps/api-nestjs/src/enterprise-identity/enterprise-identity.module.ts","apps/api-nestjs/src/enterprise-identity/enterprise-identity.service.ts","apps/api-nestjs/src/events/outbox-operations.controller.ts","apps/api-nestjs/src/events/outbox-operations.service.ts","apps/api-nestjs/src/leave/leave.controller.ts","apps/api-nestjs/src/leave/leave.module.ts","apps/api-nestjs/src/leave/leave.service.ts","apps/api-nestjs/src/payroll-configuration/payroll-configuration.controller.ts","apps/api-nestjs/src/payroll-configuration/payroll-configuration.module.ts","apps/api-nestjs/src/payroll-configuration/payroll-configuration.service.ts","apps/api-nestjs/src/payroll-foundation/payroll-foundation.controller.ts","apps/api-nestjs/src/payroll-foundation/payroll-foundation.module.ts","apps/api-nestjs/src/payroll-foundation/payroll-foundation.service.ts","apps/api-nestjs/src/payroll-payments/payroll-payments.controller.ts","apps/api-nestjs/src/payroll-payments/payroll-payments.module.ts","apps/api-nestjs/src/payroll-payments/payroll-payments.service.ts","apps/api-nestjs/src/payroll-profiles/payroll-profiles.controller.ts","apps/api-nestjs/src/payroll-profiles/payroll-profiles.module.ts","apps/api-nestjs/src/payroll-profiles/payroll-profiles.service.ts","apps/api-nestjs/src/payroll-readiness/payroll-readiness.controller.ts","apps/api-nestjs/src/payroll-readiness/payroll-readiness.module.ts","apps/api-nestjs/src/payroll-readiness/payroll-readiness.service.ts","apps/api-nestjs/src/payroll-runs/payroll-runs.controller.ts","apps/api-nestjs/src/payroll-runs/payroll-runs.module.ts","apps/api-nestjs/src/payroll-runs/payroll-runs.service.ts","apps/api-nestjs/src/performance/performance.controller.ts","apps/api-nestjs/src/performance/performance.module.ts","apps/api-nestjs/src/performance/performance.service.ts","apps/api-nestjs/src/personnel/personnel-effective-time-dispatcher.service.ts","apps/api-nestjs/src/personnel/personnel.controller.ts","apps/api-nestjs/src/personnel/personnel.module.ts","apps/api-nestjs/src/personnel/personnel.service.ts","apps/api-nestjs/src/prehire/prehire.controller.ts","apps/api-nestjs/src/prehire/prehire.module.ts","apps/api-nestjs/src/prehire/prehire.service.ts","apps/api-nestjs/src/prisma/database-rls.interceptor.ts","apps/api-nestjs/src/prisma/manual-database-rls.decorator.ts","apps/api-nestjs/src/recruitment/recruitment-offer.controller.ts","apps/api-nestjs/src/recruitment/recruitment-offer.service.ts","apps/api-nestjs/src/recruitment/recruitment.controller.ts","apps/api-nestjs/src/recruitment/recruitment.module.ts","apps/api-nestjs/src/recruitment/recruitment.service.ts","apps/api-nestjs/src/sse/sse-connection.guard.ts","apps/api-nestjs/src/workforce-time/attendance-day-ledger.service.ts","apps/api-nestjs/src/workforce-time/attendance-source.service.ts","apps/api-nestjs/src/workforce-time/employee-attendance.service.ts","apps/api-nestjs/src/workforce-time/raw-clock-record.service.ts","apps/api-nestjs/src/workforce-time/shift-assignment.service.ts","apps/api-nestjs/src/workforce-time/timesheet-period.service.ts","apps/api-nestjs/src/workforce-time/work-calendar.service.ts","apps/api-nestjs/src/workforce-time/workforce-time.controller.ts","apps/api-nestjs/src/workforce-time/workforce-time.module.ts","apps/api-nestjs/src/workforce-time/workforce-time.service.ts","apps/api-nestjs/test/auth.jwks.http.test.ts","apps/api-nestjs/test/database-rls.integration.test.ts","apps/api-nestjs/test/enterprise-identity.http.test.ts","apps/api-nestjs/test/leave.http.test.ts","apps/api-nestjs/test/payroll-configuration.http.test.ts","apps/api-nestjs/test/payroll-foundation.http.test.ts","apps/api-nestjs/test/payroll-profiles.http.test.ts","apps/api-nestjs/test/payroll-readiness.http.test.ts","apps/api-nestjs/test/payroll-runs.http.test.ts","apps/api-nestjs/test/performance.http.test.ts","apps/api-nestjs/test/personnel.http.test.ts","apps/api-nestjs/test/personnel.integration.test.ts","apps/api-nestjs/test/recruitment-offer.http.test.ts","apps/api-nestjs/test/recruitment.http.test.ts","apps/api-nestjs/test/users.atomicity.test.ts","apps/api-nestjs/test/workforce-time.http.test.ts","apps/web/src/app/employee/attendance/page.tsx","apps/web/src/app/employee/payslips/page.tsx","apps/web/src/app/prehire/page.tsx","apps/web/src/components/ApprovalPolicyGovernancePanel.tsx","apps/web/src/components/DeliveryPolicyGovernancePanel.tsx","apps/web/src/components/EmployeeAttendancePortal.tsx","apps/web/src/components/EmployeePayslipPortal.tsx","apps/web/src/components/EmploymentExpiryView.tsx","apps/web/src/components/EnterpriseIdentityAccountPanel.tsx","apps/web/src/components/EnterpriseIdentityWorkbench.tsx","apps/web/src/components/EnterpriseIdentityWorkspace.tsx","apps/web/src/components/EventOperationsView.tsx","apps/web/src/components/LeaveWorkspace.tsx","apps/web/src/components/OrganizationWorkspace.tsx","apps/web/src/components/PayrollBonusAwardWorkbench.tsx","apps/web/src/components/PayrollConfigurationWorkbench.tsx","apps/web/src/components/PayrollFoundationWorkbench.tsx","apps/web/src/components/PayrollPaymentWorkbench.tsx","apps/web/src/components/PayrollProfilesWorkbench.tsx","apps/web/src/components/PayrollReadinessWorkspace.tsx","apps/web/src/components/PayrollRunsWorkbench.tsx","apps/web/src/components/PerformanceWorkspace.tsx","apps/web/src/components/PersonnelAlumniView.tsx","apps/web/src/components/PersonnelChangeWorkbench.tsx","apps/web/src/components/PersonnelDirectoryView.tsx","apps/web/src/components/PersonnelGovernanceView.tsx","apps/web/src/components/PersonnelProbationView.tsx","apps/web/src/components/PositionManagementDialog.tsx","apps/web/src/components/PrehireCandidateForm.tsx","apps/web/src/components/PrehireResumeWorkbench.tsx","apps/web/src/components/RealtimeBridge.tsx","apps/web/src/components/RecruitmentWorkspace.tsx","apps/web/src/components/RenewEmploymentDialog.tsx","apps/web/src/components/WorkforceAttendanceDayLedgerWorkbench.tsx","apps/web/src/components/WorkforceAttendanceExceptionWorkbench.tsx","apps/web/src/components/WorkforceAttendanceSourceWorkbench.tsx","apps/web/src/components/WorkforceCalendarWorkbench.tsx","apps/web/src/components/WorkforceRawClockWorkbench.tsx","apps/web/src/components/WorkforceShiftAssignmentWorkbench.tsx","apps/web/src/components/WorkforceShiftPatternWorkbench.tsx","apps/web/src/components/WorkforceTimeWorkspace.tsx","apps/web/src/components/WorkforceTimesheetPeriodWorkbench.tsx","design-qa.md","docs/domain/enterprise-document-signing-v2-blueprint.md","docs/domain/enterprise-identity-v2-blueprint.md","docs/domain/hr-v2-blueprint.md","docs/domain/hr-v2-data-classification.md","docs/domain/hr-v2-event-catalog.md","docs/domain/hr-v2-threat-model.md","docs/domain/os-product-layer-blueprint.md","docs/domain/payroll-rewards-v2-blueprint.md","docs/domain/performance-talent-v2-blueprint.md","docs/domain/personnel-core-blueprint.md","docs/domain/prehire-resume-blueprint.md","docs/domain/recruitment-v2-blueprint.md","docs/domain/workforce-time-leave-v2-blueprint.md","docs/system-analysis-2026-08-28.md","packages/auth/package.json","packages/auth/src/identity.test.ts","packages/auth/src/identity.ts","packages/auth/src/index.test.ts","packages/auth/src/index.ts","packages/auth/src/payroll.test.ts","packages/auth/src/payroll.ts","packages/auth/src/prehire.test.ts","packages/auth/src/prehire.ts","packages/auth/src/recruitment.test.ts","packages/auth/src/recruitment.ts","packages/auth/tsconfig.json","packages/contracts/src/enterprise-document.ts","packages/contracts/src/enterprise-identity.ts","packages/contracts/src/enterprise-v2.test.ts","packages/contracts/src/leave.test.ts","packages/contracts/src/leave.ts","packages/contracts/src/outbox-operations.test.ts","packages/contracts/src/outbox-operations.ts","packages/contracts/src/payroll-bonuses.test.ts","packages/contracts/src/payroll-bonuses.ts","packages/contracts/src/payroll-calculation.test.ts","packages/contracts/src/payroll-calculation.ts","packages/contracts/src/payroll-configuration.test.ts","packages/contracts/src/payroll-configuration.ts","packages/contracts/src/payroll-foundation.test.ts","packages/contracts/src/payroll-foundation.ts","packages/contracts/src/payroll-payments.test.ts","packages/contracts/src/payroll-payments.ts","packages/contracts/src/payroll-payslips.ts","packages/contracts/src/payroll-profiles.test.ts","packages/contracts/src/payroll-profiles.ts","packages/contracts/src/payroll-readiness.test.ts","packages/contracts/src/payroll-readiness.ts","packages/contracts/src/payroll-runs.test.ts","packages/contracts/src/payroll-runs.ts","packages/contracts/src/performance.test.ts","packages/contracts/src/performance.ts","packages/contracts/src/personnel-access.test.ts","packages/contracts/src/personnel-access.ts","packages/contracts/src/personnel-effective-time.test.ts","packages/contracts/src/personnel-effective-time.ts","packages/contracts/src/personnel-temporal.ts","packages/contracts/src/personnel.test.ts","packages/contracts/src/personnel.ts","packages/contracts/src/prehire.ts","packages/contracts/src/recruitment.test.ts","packages/contracts/src/recruitment.ts","packages/contracts/src/workforce-time.test.ts","packages/contracts/src/workforce-time.ts","packages/database-rls/package.json","packages/database-rls/src/index.test.ts","packages/database-rls/src/index.ts","packages/database-rls/tsconfig.json","products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/ddl-authority.json","products/juhai.hr/distribution.json","products/juhai.hr/manifest.json","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","products/juhai.hr/readiness.json","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/delivery-audit-workbench.d.mts","products/juhai.hr/src/delivery-audit-workbench.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/master-data-workbench.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-change-workbench.d.mts","products/juhai.hr/src/personnel-change-workbench.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/personnel-governance-workbench.d.mts","products/juhai.hr/src/personnel-governance-workbench.mjs","products/juhai.hr/src/privacy-projections.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/database-rls.latest.json","reports/dual-backend-behavior.latest.json","reports/health-dependency-failure.latest.json","reports/os-product-bundle.latest.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/bundle-index.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/distribution.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/manifest.json","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/024fc6af1c5db165209214a6ab149c928a794a7679fa30f76614e8642096e1a1/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/bundle-index.json","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/distribution.json","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/manifest.json","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/0ea3b13696e3bd24ec9a97b9bed021f96884c002c65a792a30940fc0ec90bf1f/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/bundle-index.json","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/distribution.json","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/manifest.json","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/1287b170d9d810b396177f0c949c4b388e1228d9860bcdf8d56185ef747fb957/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/bundle-index.json","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/distribution.json","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/manifest.json","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/131d08362b1eed5e8aed51c991dc5d687ee70ebe2b7a467b19ac47a86f96cc72/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/bundle-index.json","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/distribution.json","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/manifest.json","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/2160622a6911a43149d1dc5603af2ddda49faca2c53ce02042147c414a0d6d68/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/bundle-index.json","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/distribution.json","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/manifest.json","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/2c59cdcac9f274c3e84cd13c2349d7ef50e2d2b38b4a65ef22d602960af8b330/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/bundle-index.json","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/distribution.json","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/manifest.json","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/38a8945115f69e878b8a755070b06d0b3bf2eac47c5ff53d943d9eea94bd51b4/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/bundle-index.json","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/distribution.json","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/manifest.json","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/408cbbabe6cecd93589ee8042373322ced37a3522cd13b95618f64e00aa3ce0b/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/bundle-index.json","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/distribution.json","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/manifest.json","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/51f5ab1b8f3aa4b3fb2ec9a9f8bbb9bba2f36c31e493fb9cb4bacefe511e953d/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/bundle-index.json","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/distribution.json","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/manifest.json","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/5f8766b12bfe705d05b0c65134a223a5df4ebf5c7a146dc63227868f7f04be73/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/bundle-index.json","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/distribution.json","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/manifest.json","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/67bfda7d98b9a9cd2f1f22cd9a45f8bb7015bb3729da1d291a40b02e0a054a25/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/bundle-index.json","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/distribution.json","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/manifest.json","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/6be282e130858a13c8757fc999052b69ab65256898c9fcb5456a84f0eb48d80d/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/bundle-index.json","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/distribution.json","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/manifest.json","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-workbench.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-change-workbench.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/7ab29533bb2d6fe3d2d8209d97e3f3d7e8df931927d34d0c22584a4d45da2e08/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/bundle-index.json","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/distribution.json","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/manifest.json","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/7bdec4db2a3b81e7e1a6a59d9f5706c00ffa04277a1a67167e828448f86a8b36/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/bundle-index.json","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/distribution.json","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/manifest.json","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/delivery-audit-workbench.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/delivery-audit-workbench.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-governance-workbench.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/personnel-governance-workbench.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/8661145f2d70adbc06309fc4124b465f4dec2f09a762733b7f7285c70b4f6fa0/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/bundle-index.json","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/distribution.json","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/manifest.json","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/90525d24edef2512077d55f430e2ce34c6584c25265a4df0e7a93363663b5458/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/bundle-index.json","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/distribution.json","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/manifest.json","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/ae7ed7a5bed4b0bb6cf191db934ed50e7f9637a69925f790bc16149e13d8c94c/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/bundle-index.json","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/distribution.json","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/manifest.json","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/b3e6df61a3dbd9a2698e3bfb8497bb5654ce718315c99a9a92170cfdf6c3cedd/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/bundle-index.json","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/distribution.json","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/manifest.json","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/delivery-audit-service.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/fastify-adapter.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/nestjs-adapter.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/os-composition.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/personnel-change-contracts.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/personnel-change-contracts.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/personnel-governance-service.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/privacy-projections.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/web-workspace.d.mts","reports/os-product-bundles/bc37313ae54b5bf44945eb18fe6ccf04f92d9c18ad949ee260bdd0060ba32fd6/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/bundle-index.json","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/distribution.json","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/manifest.json","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/bec2267c0ec51412dd49dc65690f2bd4bdcb890953e33e42309ec207ae8f009f/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/bundle-index.json","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/distribution.json","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/manifest.json","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/dc6eeb6bd10f92d6b04da0d836a1c00fc91c4dec94879a4b7233a9f3ae9d594e/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/bundle-index.json","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/distribution.json","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/manifest.json","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/e2f34bfd16c7be5ca6d4040be6fa297cc458aa66b2168e28d39cb90641c89791/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/bundle-index.json","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/acceptance/runtime-suite.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/distribution.json","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/manifest.json","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/master-data-service.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/master-data-workbench.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/os-composition.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/ea0e7d7d88be7364417830a8a2c9827318484af33e3e6ac8b482affb13fff74c/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/bundle-index.json","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/distribution.json","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/manifest.json","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/f3f7d987b96ac74a5e84829faa99797a3e2bae8a78d5e7bd65a35c0af70fafbf/products/juhai.hr/src/web-workspace.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/bundle-index.json","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/ddl-authority.json","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/distribution.json","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/manifest.json","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/fastify-adapter.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/http-errors.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/implementations.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/nestjs-adapter.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/personnel-change-service.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/runtime-contracts.mjs","reports/os-product-bundles/fdc0ae417228a85f04dd48567bf932cb224d1b4ea62ad7f06e8390db3be8d749/products/juhai.hr/src/web-workspace.mjs","reports/os-product-compat.latest.json","reports/os-product-distribution.latest.json","reports/os-product-host-runtime.latest.json","reports/os-product-host-runtime.rejected.json","reports/os-product-host-ui.latest.json","reports/os-product-host-ui/fastify.png","reports/os-product-host-ui/nestjs.png","reports/os-product-layer.latest.json","reports/os-product-migrations-runtime.latest.json","reports/os-product-migrations-runtime.rejected.json","reports/os-product-privacy.latest.json","reports/os-product-rebase-decision.latest.json","reports/os-product-registration-apply-preview.latest.json","reports/os-product-registration-candidate.latest.json","reports/os-product-registration-verification.latest.json","reports/os-product-registration.latest.json","reports/os-product-registration.rejected.json","reports/os-product-release-readiness.latest.json","reports/os-product-release-reproduction.latest.json","reports/os-product-sql-runtime.latest.json","reports/os-product-sql-runtime.rejected.json","reports/os-product-upgrade-candidate.latest.json","reports/outbox-multi-instance.latest.json","reports/product-design-audit/business-gaps-2026-08-26/01-personnel-profile.png","reports/product-design-audit/business-gaps-2026-08-26/02-organization-roster.png","reports/product-design-audit/business-gaps-2026-08-26/03-position-ledger.png","reports/product-design-audit/business-gaps-2026-08-26/04-personnel-change.png","reports/product-design-audit/business-gaps-2026-08-26/05-approval-policy-empty.png","reports/product-design-audit/business-gaps-2026-08-26/06-delivery-policy-empty.png","reports/product-design-audit/employee-attendance-mobile-concept.png","reports/product-design-audit/employee-attendance-mobile-implementation.png","reports/product-design-audit/person-merge-20260826/01-merge-result.png","reports/product-design-audit/person-merge-20260826/02-canonical-profile.png","reports/product-design-audit/person-merge-20260826/03-grouped-profile.png","reports/product-design-audit/person-merge-20260826/04-merge-reconciliation.png","reports/product-design-audit/person-merge-20260826/05-merge-alias-detail.png","reports/product-design-audit/person-merge-20260826/06-person-alias-reconciliation.png","reports/product-design-audit/person-merge-20260826/07-merge-evidence.png","reports/product-design-audit/person-merge-20260826/audit.md","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","scripts/apply-os-product-registration.mjs","scripts/audit-os-product-rebase-decision.mjs","scripts/audit-os-product-release-readiness.mjs","scripts/audit-os-product-release-reproduction.mjs","scripts/audit-os-product-upgrade-candidate.mjs","scripts/build-os-product-bundle.mjs","scripts/check-database-rls.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-health-dependency-failure.mjs","scripts/check-os-product-distribution.mjs","scripts/check-os-product-host-runtime.mjs","scripts/check-os-product-host-ui.mjs","scripts/check-os-product-layer.mjs","scripts/check-os-product-migrations-runtime.mjs","scripts/check-os-product-privacy.mjs","scripts/check-os-product-registration.mjs","scripts/check-os-product-sql-runtime.mjs","scripts/check-outbox-multi-instance.mjs","scripts/lib/git-worktree-fingerprint.mjs","scripts/prepare-os-product-registration-candidate.mjs","scripts/serve-os-product-host.mjs"],"removed":[],"modified":[".github/pull_request_template.md",".github/workflows/governance.yml",".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/tenant.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/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.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/common/tenant.decorator.ts","apps/api-nestjs/src/events/events.gateway.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/events/replay.service.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0009-dual-backend-governance-parity.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/standards/api-standard.md","governance.registry.json","governance.registry.schema.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","pnpm-lock.yaml","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/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-08-30T15:09:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1788073798
|
1788074096
|
0
|
1788073796
|
1788074098
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23583
|
feat(conversation): 新增会话接入规划
|
95
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
8f6910906c90ae8ac301228d1e16a2094effd42e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"8f6910906c90ae8ac301228d1e16a2094effd42e","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"8f6910906c90ae8ac301228d1e16a2094effd42e","message":"feat(conversation): 新增会话接入规划\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/8f6910906c90ae8ac301228d1e16a2094effd42e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/conversation/conversation-admission.service.ts","docs/domain/conversation-message-blueprint.md","packages/contracts/src/conversation-admission-planner.test.ts","packages/contracts/src/conversation-admission-planner.ts","packages/contracts/src/conversation-message.test.ts","packages/contracts/src/conversation-message.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9160d7a325c179d832751689c36008a12f6f313c","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/9160d7a325c179d832751689c36008a12f6f313c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03bb9503f1bbab212efb3038587bd6e351f94a7e","message":"feat: 平台身份重绑定 im-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/03bb9503f1bbab212efb3038587bd6e351f94a7e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:01-07:00","added":["docs/framework-migration.md","products/juhai.im/README.md","products/juhai.im/acceptance/juhai.im.order.acceptance.mjs","products/juhai.im/migrations/juhai.im.order/20260826090000_create_orders.sql","products/juhai.im/migrations/juhai.im.order/20260826091000_create_order_events.sql","products/juhai.im/package.json","products/juhai.im/product.manifest.json","products/juhai.im/src/contracts.ts","products/juhai.im/src/fastify.ts","products/juhai.im/src/host.ts","products/juhai.im/src/index.ts","products/juhai.im/src/manifest.ts","products/juhai.im/src/nestjs.ts","products/juhai.im/src/order-repository.ts","products/juhai.im/src/tools.ts","products/juhai.im/src/web.tsx","products/juhai.im/test/os-host.runtime.test.ts","products/juhai.im/tsconfig.os-host.json","products/juhai.im/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"0106d984c9218065931274353deff3d0502cddc1","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/0106d984c9218065931274353deff3d0502cddc1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"3608994da52171d10cb43367c1bd465a052a0971","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/3608994da52171d10cb43367c1bd465a052a0971","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:18-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"8f6910906c90ae8ac301228d1e16a2094effd42e","message":"feat(conversation): 新增会话接入规划\n","url":"https://gitea.g-hi.com/luoanwu/im-platform/commit/8f6910906c90ae8ac301228d1e16a2094effd42e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/conversation/conversation-admission.service.ts","docs/domain/conversation-message-blueprint.md","packages/contracts/src/conversation-admission-planner.test.ts","packages/contracts/src/conversation-admission-planner.ts","packages/contracts/src/conversation-message.test.ts","packages/contracts/src/conversation-message.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":95,"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":"im-platform","full_name":"luoanwu/im-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/im-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/im-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/im-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/im-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/im-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-01T21:57:42+08:00","updated_at":"2026-09-01T21:59:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271185
|
1788271212
|
0
|
1788271183
|
1788280440
|
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
|
|
23584
|
feat(identity): 新增机器凭据租约规划
|
101
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
bcf51b52439dd8d332699a9f312305c102f9d379
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"bcf51b52439dd8d332699a9f312305c102f9d379","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"bcf51b52439dd8d332699a9f312305c102f9d379","message":"feat(identity): 新增机器凭据租约规划\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/bcf51b52439dd8d332699a9f312305c102f9d379","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/identity/machine-credential-lease.service.ts","docs/domain/machine-credential-preflight-blueprint.md","packages/contracts/src/machine-credential-lease-planner.test.ts","packages/contracts/src/machine-credential-lease-planner.ts","packages/contracts/src/machine-credential-preflight.test.ts","packages/contracts/src/machine-credential-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"5a30437c2e16e8bdff9d309b98114e206640ea02","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/5a30437c2e16e8bdff9d309b98114e206640ea02","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:22-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a1dc3c53039fa8bca3d4d2f0e99fb2b1138cf5eb","message":"feat: 平台身份重绑定 secret-identity(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/a1dc3c53039fa8bca3d4d2f0e99fb2b1138cf5eb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["docs/framework-migration.md","products/juhai.secretidentity/README.md","products/juhai.secretidentity/acceptance/juhai.secretidentity.order.acceptance.mjs","products/juhai.secretidentity/migrations/juhai.secretidentity.order/20260826090000_create_orders.sql","products/juhai.secretidentity/migrations/juhai.secretidentity.order/20260826091000_create_order_events.sql","products/juhai.secretidentity/package.json","products/juhai.secretidentity/product.manifest.json","products/juhai.secretidentity/src/contracts.ts","products/juhai.secretidentity/src/fastify.ts","products/juhai.secretidentity/src/host.ts","products/juhai.secretidentity/src/index.ts","products/juhai.secretidentity/src/manifest.ts","products/juhai.secretidentity/src/nestjs.ts","products/juhai.secretidentity/src/order-repository.ts","products/juhai.secretidentity/src/tools.ts","products/juhai.secretidentity/src/web.tsx","products/juhai.secretidentity/test/os-host.runtime.test.ts","products/juhai.secretidentity/tsconfig.os-host.json","products/juhai.secretidentity/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"b46f5611ca1b6b7f266bcc88bc5e9b14957c9ceb","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/b46f5611ca1b6b7f266bcc88bc5e9b14957c9ceb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"ff8f10d152a443b4fbe8991435485a23a42185dd","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/ff8f10d152a443b4fbe8991435485a23a42185dd","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:10-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"bcf51b52439dd8d332699a9f312305c102f9d379","message":"feat(identity): 新增机器凭据租约规划\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/bcf51b52439dd8d332699a9f312305c102f9d379","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/identity/machine-credential-lease.service.ts","docs/domain/machine-credential-preflight-blueprint.md","packages/contracts/src/machine-credential-lease-planner.test.ts","packages/contracts/src/machine-credential-lease-planner.ts","packages/contracts/src/machine-credential-preflight.test.ts","packages/contracts/src/machine-credential-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":101,"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":"secret-identity","full_name":"luoanwu/secret-identity","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/secret-identity/languages","html_url":"https://gitea.g-hi.com/luoanwu/secret-identity","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/secret-identity","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/secret-identity.git","clone_url":"https://gitea.g-hi.com/luoanwu/secret-identity.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-01T21:58:03+08:00","updated_at":"2026-09-01T21:59:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271212
|
1788271238
|
0
|
1788271183
|
1788280440
|
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
|
|
23585
|
feat(ai-governance): 新增本地 AI 治理路由
|
94
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
701b8a173b6b2ce458b720a7a862f0e99d40309f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"701b8a173b6b2ce458b720a7a862f0e99d40309f","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"701b8a173b6b2ce458b720a7a862f0e99d40309f","message":"feat(ai-governance): 新增本地 AI 治理路由\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/701b8a173b6b2ce458b720a7a862f0e99d40309f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ai-governance/ai-governance-policy.service.ts","docs/domain/ai-action-governance-blueprint.md","packages/contracts/src/ai-action-governance.test.ts","packages/contracts/src/ai-action-governance.ts","packages/contracts/src/ai-governance-router.test.ts","packages/contracts/src/ai-governance-router.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9ae82e5795cdf8b865a6b3d499b59047fea319bc","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/9ae82e5795cdf8b865a6b3d499b59047fea319bc","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"4762b56a19a893ee67a529cb0ed6d1641b922d7c","message":"feat: 平台身份重绑定 ai-governance(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/4762b56a19a893ee67a529cb0ed6d1641b922d7c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:01-07:00","added":["docs/framework-migration.md","products/juhai.aigovernance/README.md","products/juhai.aigovernance/acceptance/juhai.aigovernance.order.acceptance.mjs","products/juhai.aigovernance/migrations/juhai.aigovernance.order/20260826090000_create_orders.sql","products/juhai.aigovernance/migrations/juhai.aigovernance.order/20260826091000_create_order_events.sql","products/juhai.aigovernance/package.json","products/juhai.aigovernance/product.manifest.json","products/juhai.aigovernance/src/contracts.ts","products/juhai.aigovernance/src/fastify.ts","products/juhai.aigovernance/src/host.ts","products/juhai.aigovernance/src/index.ts","products/juhai.aigovernance/src/manifest.ts","products/juhai.aigovernance/src/nestjs.ts","products/juhai.aigovernance/src/order-repository.ts","products/juhai.aigovernance/src/tools.ts","products/juhai.aigovernance/src/web.tsx","products/juhai.aigovernance/test/os-host.runtime.test.ts","products/juhai.aigovernance/tsconfig.os-host.json","products/juhai.aigovernance/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"6e30097a743badebaad4703c81753079f90bedb5","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/6e30097a743badebaad4703c81753079f90bedb5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"b6f18880313fe2b89c65656edaa905e466304d9a","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/b6f18880313fe2b89c65656edaa905e466304d9a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:18-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"701b8a173b6b2ce458b720a7a862f0e99d40309f","message":"feat(ai-governance): 新增本地 AI 治理路由\n","url":"https://gitea.g-hi.com/luoanwu/ai-governance/commit/701b8a173b6b2ce458b720a7a862f0e99d40309f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ai-governance/ai-governance-policy.service.ts","docs/domain/ai-action-governance-blueprint.md","packages/contracts/src/ai-action-governance.test.ts","packages/contracts/src/ai-action-governance.ts","packages/contracts/src/ai-governance-router.test.ts","packages/contracts/src/ai-governance-router.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":94,"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":"ai-governance","full_name":"luoanwu/ai-governance","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/ai-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/ai-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/ai-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/ai-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/ai-governance.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-01T21:56:50+08:00","updated_at":"2026-09-01T21:59:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788271238
|
1788271264
|
0
|
1788271184
|
1788280440
|
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
|
|
23586
|
feat(experience): 新增体验贡献复核
|
99
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
55301b4f6982b6f43812122ef534914b093fc061
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"55301b4f6982b6f43812122ef534914b093fc061","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"55301b4f6982b6f43812122ef534914b093fc061","message":"feat(experience): 新增体验贡献复核\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/55301b4f6982b6f43812122ef534914b093fc061","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/experience-contribution-blueprint.md","packages/contracts/src/experience-contribution.test.ts","packages/contracts/src/experience-contribution.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d1ceb480adcfcd48e38ac85cb48a12a5465fd42e","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/d1ceb480adcfcd48e38ac85cb48a12a5465fd42e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"511e9cff89a6fd623e5f9aaf7aa894ba2b1a2c2e","message":"feat: 平台身份重绑定 experience-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/511e9cff89a6fd623e5f9aaf7aa894ba2b1a2c2e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.experience/README.md","products/juhai.experience/acceptance/juhai.experience.order.acceptance.mjs","products/juhai.experience/migrations/juhai.experience.order/20260826090000_create_orders.sql","products/juhai.experience/migrations/juhai.experience.order/20260826091000_create_order_events.sql","products/juhai.experience/package.json","products/juhai.experience/product.manifest.json","products/juhai.experience/src/contracts.ts","products/juhai.experience/src/fastify.ts","products/juhai.experience/src/host.ts","products/juhai.experience/src/index.ts","products/juhai.experience/src/manifest.ts","products/juhai.experience/src/nestjs.ts","products/juhai.experience/src/order-repository.ts","products/juhai.experience/src/tools.ts","products/juhai.experience/src/web.tsx","products/juhai.experience/test/os-host.runtime.test.ts","products/juhai.experience/tsconfig.os-host.json","products/juhai.experience/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"92bc270a242276f9660652beee3bee68df31c394","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/92bc270a242276f9660652beee3bee68df31c394","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"6db4550f946602857b0b4d190cb455d65ed9cf10","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/6db4550f946602857b0b4d190cb455d65ed9cf10","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:46-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"55301b4f6982b6f43812122ef534914b093fc061","message":"feat(experience): 新增体验贡献复核\n","url":"https://gitea.g-hi.com/luoanwu/experience-platform/commit/55301b4f6982b6f43812122ef534914b093fc061","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/experience-contribution-blueprint.md","packages/contracts/src/experience-contribution.test.ts","packages/contracts/src/experience-contribution.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":99,"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":"experience-platform","full_name":"luoanwu/experience-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/experience-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/experience-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/experience-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/experience-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/experience-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-01T21:57:59+08:00","updated_at":"2026-09-01T21:59:44+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
|
1788271264
|
1788271289
|
0
|
1788271184
|
1788280740
|
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
|
|
23587
|
feat(facts): 新增事实导出准入规划
|
97
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
a54db31c626be2ee1d48d10fe18bb0c74a9c47aa
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","message":"feat(facts): 新增事实导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/facts/fact-export-planning.service.ts","docs/domain/fact-delivery-blueprint.md","packages/contracts/src/fact-delivery.test.ts","packages/contracts/src/fact-delivery.ts","packages/contracts/src/fact-export-planner.test.ts","packages/contracts/src/fact-export-planner.ts"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/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/validation-source.latest.json"]},{"id":"02a26c024daa9fa8304a0691a1ceeb699da10ce5","message":"chore: 真实 DB 验收首跑证据(202 tests / 0 failures,clean @ 1ce8bfe)+ P7 补 testsPassed 地板\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/02a26c024daa9fa8304a0691a1ceeb699da10ce5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:05:38-07:00","added":["reports/runtime-acceptance.latest.json"],"removed":[],"modified":["reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"1ce8bfe4e03f69863a3c95f349b23509f3b900da","message":"chore: 治理基线由本仓真实数字初始化(源仓地板不迁入,迁移手册步骤6/P7)\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/1ce8bfe4e03f69863a3c95f349b23509f3b900da","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:58:51-07:00","added":[],"removed":[],"modified":["docs/framework-migration.md","reports/baseline.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9abc607d97a5e3b908fde184ed54682bfbc2f87a","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/9abc607d97a5e3b908fde184ed54682bfbc2f87a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:58:03-07:00","added":["reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"bd6accc0ee8df440cc3bc7838aad11c0fb7e5adf","message":"feat: 平台身份重绑定 fact-backbone(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/bd6accc0ee8df440cc3bc7838aad11c0fb7e5adf","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:57:57-07:00","added":["docs/framework-migration.md","products/juhai.factbackbone/README.md","products/juhai.factbackbone/acceptance/juhai.factbackbone.order.acceptance.mjs","products/juhai.factbackbone/migrations/juhai.factbackbone.order/20260826090000_create_orders.sql","products/juhai.factbackbone/migrations/juhai.factbackbone.order/20260826091000_create_order_events.sql","products/juhai.factbackbone/package.json","products/juhai.factbackbone/product.manifest.json","products/juhai.factbackbone/src/contracts.ts","products/juhai.factbackbone/src/fastify.ts","products/juhai.factbackbone/src/host.ts","products/juhai.factbackbone/src/index.ts","products/juhai.factbackbone/src/manifest.ts","products/juhai.factbackbone/src/nestjs.ts","products/juhai.factbackbone/src/order-repository.ts","products/juhai.factbackbone/src/tools.ts","products/juhai.factbackbone/src/web.tsx","products/juhai.factbackbone/test/os-host.runtime.test.ts","products/juhai.factbackbone/tsconfig.os-host.json","products/juhai.factbackbone/vitest.os-host.config.ts"],"removed":["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","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]}],"total_commits":0,"head_commit":{"id":"a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","message":"feat(facts): 新增事实导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/fact-backbone/commit/a54db31c626be2ee1d48d10fe18bb0c74a9c47aa","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/facts/fact-export-planning.service.ts","docs/domain/fact-delivery-blueprint.md","packages/contracts/src/fact-delivery.test.ts","packages/contracts/src/fact-delivery.ts","packages/contracts/src/fact-export-planner.test.ts","packages/contracts/src/fact-export-planner.ts"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/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/validation-source.latest.json"]},"repository":{"id":97,"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":"fact-backbone","full_name":"luoanwu/fact-backbone","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/fact-backbone/languages","html_url":"https://gitea.g-hi.com/luoanwu/fact-backbone","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/fact-backbone","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/fact-backbone.git","clone_url":"https://gitea.g-hi.com/luoanwu/fact-backbone.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-01T21:57:55+08:00","updated_at":"2026-09-01T21:59:44+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
|
1788271289
|
1788271314
|
0
|
1788271184
|
1788280740
|
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
|
|
23588
|
feat(idp): 新增切换前置校验
|
96
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
456d79abd599208f2a7d6fe388f4f71b56e7ee89
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"456d79abd599208f2a7d6fe388f4f71b56e7ee89","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"456d79abd599208f2a7d6fe388f4f71b56e7ee89","message":"feat(idp): 新增切换前置校验\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/456d79abd599208f2a7d6fe388f4f71b56e7ee89","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/idp-cutover-blueprint.md","packages/contracts/src/idp-cutover.test.ts","packages/contracts/src/idp-cutover.ts"],"removed":[],"modified":[".github/workflows/governance.yml","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"7becd6b2d616a6bddc65e273004a252a5bd63d1c","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/7becd6b2d616a6bddc65e273004a252a5bd63d1c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"68cdd9bbcca158d6686077abb55b1a51783256eb","message":"feat: 平台身份重绑定 enterprise-idp(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/68cdd9bbcca158d6686077abb55b1a51783256eb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:01-07:00","added":["docs/framework-migration.md","products/juhai.idp/README.md","products/juhai.idp/acceptance/juhai.idp.order.acceptance.mjs","products/juhai.idp/migrations/juhai.idp.order/20260826090000_create_orders.sql","products/juhai.idp/migrations/juhai.idp.order/20260826091000_create_order_events.sql","products/juhai.idp/package.json","products/juhai.idp/product.manifest.json","products/juhai.idp/src/contracts.ts","products/juhai.idp/src/fastify.ts","products/juhai.idp/src/host.ts","products/juhai.idp/src/index.ts","products/juhai.idp/src/manifest.ts","products/juhai.idp/src/nestjs.ts","products/juhai.idp/src/order-repository.ts","products/juhai.idp/src/tools.ts","products/juhai.idp/src/web.tsx","products/juhai.idp/test/os-host.runtime.test.ts","products/juhai.idp/tsconfig.os-host.json","products/juhai.idp/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"4c29740da375e0e949c8f075b8b86a9331ce15ba","message":"chore: check:kernel 复跑证据刷新(bootstrap 脚本幂等验证)\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/4c29740da375e0e949c8f075b8b86a9331ce15ba","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:50:34-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"f16b4297a48802b0dd920b9c892dadc88da97748","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/f16b4297a48802b0dd920b9c892dadc88da97748","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"456d79abd599208f2a7d6fe388f4f71b56e7ee89","message":"feat(idp): 新增切换前置校验\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/456d79abd599208f2a7d6fe388f4f71b56e7ee89","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/idp-cutover-blueprint.md","packages/contracts/src/idp-cutover.test.ts","packages/contracts/src/idp-cutover.ts"],"removed":[],"modified":[".github/workflows/governance.yml","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":96,"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-idp","full_name":"luoanwu/enterprise-idp","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-idp/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-idp","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-idp","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-idp.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-idp.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-01T21:57:53+08:00","updated_at":"2026-09-01T21:59:44+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
|
1788271315
|
1788278640
|
0
|
1788271184
|
1788330039
|
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
|
|
23589
|
feat(public-file): 新增文件访问规划
|
100
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
2387e931f0ea23c2d6e540ae2a62fe923e35f5d6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","message":"feat(public-file): 新增文件访问规划\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/public-file/public-file-access.service.ts","docs/domain/public-file-ref-blueprint.md","packages/contracts/src/public-file-access-planner.test.ts","packages/contracts/src/public-file-access-planner.ts","packages/contracts/src/public-file-ref.test.ts","packages/contracts/src/public-file-ref.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"c5da8254acbbc8775def2fe45e59dbe5fe3531be","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/c5da8254acbbc8775def2fe45e59dbe5fe3531be","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"13dd323e6269c9aaa3f1ba7fd1b40e04f867b23b","message":"feat: 平台身份重绑定 file-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/13dd323e6269c9aaa3f1ba7fd1b40e04f867b23b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.file/README.md","products/juhai.file/acceptance/juhai.file.order.acceptance.mjs","products/juhai.file/migrations/juhai.file.order/20260826090000_create_orders.sql","products/juhai.file/migrations/juhai.file.order/20260826091000_create_order_events.sql","products/juhai.file/package.json","products/juhai.file/product.manifest.json","products/juhai.file/src/contracts.ts","products/juhai.file/src/fastify.ts","products/juhai.file/src/host.ts","products/juhai.file/src/index.ts","products/juhai.file/src/manifest.ts","products/juhai.file/src/nestjs.ts","products/juhai.file/src/order-repository.ts","products/juhai.file/src/tools.ts","products/juhai.file/src/web.tsx","products/juhai.file/test/os-host.runtime.test.ts","products/juhai.file/tsconfig.os-host.json","products/juhai.file/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"c0acd82b726e9023cd0235d4986b063cf9c57d36","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/c0acd82b726e9023cd0235d4986b063cf9c57d36","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"437046945042b060fbafaa33cf8bc68844349036","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/437046945042b060fbafaa33cf8bc68844349036","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:46-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","message":"feat(public-file): 新增文件访问规划\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/public-file/public-file-access.service.ts","docs/domain/public-file-ref-blueprint.md","packages/contracts/src/public-file-access-planner.test.ts","packages/contracts/src/public-file-access-planner.ts","packages/contracts/src/public-file-ref.test.ts","packages/contracts/src/public-file-ref.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":100,"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":"file-platform","full_name":"luoanwu/file-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/file-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/file-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/file-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/file-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/file-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-01T21:58:01+08:00","updated_at":"2026-09-01T21:59:44+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
|
1788271408
|
1788278640
|
0
|
1788271184
|
1788373230
|
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
|
|
23590
|
feat(audit): 新增审计追加准入规划
|
98
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
4197c76a3677f8a51b929de86073cda7c8220673
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"4197c76a3677f8a51b929de86073cda7c8220673","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"4197c76a3677f8a51b929de86073cda7c8220673","message":"feat(audit): 新增审计追加准入规划\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/4197c76a3677f8a51b929de86073cda7c8220673","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/audit/audit-append.service.ts","docs/domain/audit-event-preflight-blueprint.md","packages/contracts/src/audit-append-planner.test.ts","packages/contracts/src/audit-append-planner.ts","packages/contracts/src/audit-event-preflight.test.ts","packages/contracts/src/audit-event-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ceee9a45f5847aec31a418691652306c7410a003","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/ceee9a45f5847aec31a418691652306c7410a003","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"312466c67c0f09500822f477c6343129548ea4d3","message":"feat: 平台身份重绑定 audit-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/312466c67c0f09500822f477c6343129548ea4d3","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.audit/README.md","products/juhai.audit/acceptance/juhai.audit.order.acceptance.mjs","products/juhai.audit/migrations/juhai.audit.order/20260826090000_create_orders.sql","products/juhai.audit/migrations/juhai.audit.order/20260826091000_create_order_events.sql","products/juhai.audit/package.json","products/juhai.audit/product.manifest.json","products/juhai.audit/src/contracts.ts","products/juhai.audit/src/fastify.ts","products/juhai.audit/src/host.ts","products/juhai.audit/src/index.ts","products/juhai.audit/src/manifest.ts","products/juhai.audit/src/nestjs.ts","products/juhai.audit/src/order-repository.ts","products/juhai.audit/src/tools.ts","products/juhai.audit/src/web.tsx","products/juhai.audit/test/os-host.runtime.test.ts","products/juhai.audit/tsconfig.os-host.json","products/juhai.audit/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"bd3e350a2ab060060a7a184830cb6f91121f739d","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/bd3e350a2ab060060a7a184830cb6f91121f739d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"65ee3a31c6aa5d6f9e6d2f3d50ff4bf6f4bc8ff8","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/65ee3a31c6aa5d6f9e6d2f3d50ff4bf6f4bc8ff8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:44-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"4197c76a3677f8a51b929de86073cda7c8220673","message":"feat(audit): 新增审计追加准入规划\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/4197c76a3677f8a51b929de86073cda7c8220673","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/audit/audit-append.service.ts","docs/domain/audit-event-preflight-blueprint.md","packages/contracts/src/audit-append-planner.test.ts","packages/contracts/src/audit-append-planner.ts","packages/contracts/src/audit-event-preflight.test.ts","packages/contracts/src/audit-event-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":98,"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":"audit-platform","full_name":"luoanwu/audit-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/audit-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/audit-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/audit-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/audit-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/audit-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-01T21:57:57+08:00","updated_at":"2026-09-01T21:59:44+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
|
1788278400
|
1788279240
|
0
|
1788271184
|
1788373230
|
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
|
|
23591
|
feat(ingress): 新增入口准入规划
|
103
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","message":"feat(ingress): 新增入口准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ingress/ingress-admission.service.ts","docs/domain/ingress-context-blueprint.md","packages/contracts/src/ingress-admission-planner.test.ts","packages/contracts/src/ingress-admission-planner.ts","packages/contracts/src/ingress-context.test.ts","packages/contracts/src/ingress-context.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a4864b772d58e60a37218a8e2b456a3ab9f789b0","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/a4864b772d58e60a37218a8e2b456a3ab9f789b0","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"184d79f7bbf320b292a3de4a0f977aa8d673528b","message":"feat: 平台身份重绑定 app-gateway(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/184d79f7bbf320b292a3de4a0f977aa8d673528b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:16-07:00","added":["docs/framework-migration.md","products/juhai.appgateway/README.md","products/juhai.appgateway/acceptance/juhai.appgateway.order.acceptance.mjs","products/juhai.appgateway/migrations/juhai.appgateway.order/20260826090000_create_orders.sql","products/juhai.appgateway/migrations/juhai.appgateway.order/20260826091000_create_order_events.sql","products/juhai.appgateway/package.json","products/juhai.appgateway/product.manifest.json","products/juhai.appgateway/src/contracts.ts","products/juhai.appgateway/src/fastify.ts","products/juhai.appgateway/src/host.ts","products/juhai.appgateway/src/index.ts","products/juhai.appgateway/src/manifest.ts","products/juhai.appgateway/src/nestjs.ts","products/juhai.appgateway/src/order-repository.ts","products/juhai.appgateway/src/tools.ts","products/juhai.appgateway/src/web.tsx","products/juhai.appgateway/test/os-host.runtime.test.ts","products/juhai.appgateway/tsconfig.os-host.json","products/juhai.appgateway/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"19e1119a75f21f174cdb1fc66b4d1da0dca08de7","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/19e1119a75f21f174cdb1fc66b4d1da0dca08de7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"7ea8a1b88a87d4d7d05d8e9972a7c225461e18b6","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/7ea8a1b88a87d4d7d05d8e9972a7c225461e18b6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","message":"feat(ingress): 新增入口准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ingress/ingress-admission.service.ts","docs/domain/ingress-context-blueprint.md","packages/contracts/src/ingress-admission-planner.test.ts","packages/contracts/src/ingress-admission-planner.ts","packages/contracts/src/ingress-context.test.ts","packages/contracts/src/ingress-context.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":103,"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":"app-gateway","full_name":"luoanwu/app-gateway","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-gateway/languages","html_url":"https://gitea.g-hi.com/luoanwu/app-gateway","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-gateway","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/app-gateway.git","clone_url":"https://gitea.g-hi.com/luoanwu/app-gateway.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-01T21:58:07+08:00","updated_at":"2026-09-01T21:59:45+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
|
1788278542
|
1788279240
|
0
|
1788271185
|
1788373230
|
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
|
|
23592
|
feat(capacity): 新增资源标签契约
|
104
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","message":"feat(capacity): 新增资源标签契约\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/resource-tags-blueprint.md","packages/contracts/src/resource-tags.test.ts","packages/contracts/src/resource-tags.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"e6c88cfc485e250d564fcae637c22bf6453268a4","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/e6c88cfc485e250d564fcae637c22bf6453268a4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:29-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d67a89fd8645c27e839259f0a6a4b95666756729","message":"feat: 平台身份重绑定 cost-capacity(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/d67a89fd8645c27e839259f0a6a4b95666756729","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:22-07:00","added":["docs/framework-migration.md","products/juhai.costcapacity/README.md","products/juhai.costcapacity/acceptance/juhai.costcapacity.order.acceptance.mjs","products/juhai.costcapacity/migrations/juhai.costcapacity.order/20260826090000_create_orders.sql","products/juhai.costcapacity/migrations/juhai.costcapacity.order/20260826091000_create_order_events.sql","products/juhai.costcapacity/package.json","products/juhai.costcapacity/product.manifest.json","products/juhai.costcapacity/src/contracts.ts","products/juhai.costcapacity/src/fastify.ts","products/juhai.costcapacity/src/host.ts","products/juhai.costcapacity/src/index.ts","products/juhai.costcapacity/src/manifest.ts","products/juhai.costcapacity/src/nestjs.ts","products/juhai.costcapacity/src/order-repository.ts","products/juhai.costcapacity/src/tools.ts","products/juhai.costcapacity/src/web.tsx","products/juhai.costcapacity/test/os-host.runtime.test.ts","products/juhai.costcapacity/tsconfig.os-host.json","products/juhai.costcapacity/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"5fb2d0dedcb19ab42f3be24316582eeaacddd59d","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/5fb2d0dedcb19ab42f3be24316582eeaacddd59d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"f8cbd83703e403e0fccbd379d2946a655f337814","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/f8cbd83703e403e0fccbd379d2946a655f337814","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:31-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","message":"feat(capacity): 新增资源标签契约\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/resource-tags-blueprint.md","packages/contracts/src/resource-tags.test.ts","packages/contracts/src/resource-tags.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":104,"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":"cost-capacity","full_name":"luoanwu/cost-capacity","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/cost-capacity/languages","html_url":"https://gitea.g-hi.com/luoanwu/cost-capacity","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/cost-capacity","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/cost-capacity.git","clone_url":"https://gitea.g-hi.com/luoanwu/cost-capacity.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-01T21:58:09+08:00","updated_at":"2026-09-01T21:59:45+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
|
1788278684
|
1788279540
|
0
|
1788271185
|
1788373230
|
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
|
|
23593
|
feat(registry): 新增清单准入规划
|
102
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
84ddb30d145311a96f500560acdcf6b3b7d6a910
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"84ddb30d145311a96f500560acdcf6b3b7d6a910","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"84ddb30d145311a96f500560acdcf6b3b7d6a910","message":"feat(registry): 新增清单准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/84ddb30d145311a96f500560acdcf6b3b7d6a910","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/registry/manifest-admission.service.ts","docs/domain/registry-snapshot-blueprint.md","packages/contracts/src/manifest-admission-planner.test.ts","packages/contracts/src/manifest-admission-planner.ts","packages/contracts/src/registry-snapshot.test.ts","packages/contracts/src/registry-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"4b7fa15f1cb4502edae19204a2fea5645dc09301","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/4b7fa15f1cb4502edae19204a2fea5645dc09301","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"18b7855652a9da5c316d17740ca79db956231232","message":"feat: 平台身份重绑定 app-registry(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/18b7855652a9da5c316d17740ca79db956231232","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:16-07:00","added":["docs/framework-migration.md","products/juhai.appregistry/README.md","products/juhai.appregistry/acceptance/juhai.appregistry.order.acceptance.mjs","products/juhai.appregistry/migrations/juhai.appregistry.order/20260826090000_create_orders.sql","products/juhai.appregistry/migrations/juhai.appregistry.order/20260826091000_create_order_events.sql","products/juhai.appregistry/package.json","products/juhai.appregistry/product.manifest.json","products/juhai.appregistry/src/contracts.ts","products/juhai.appregistry/src/fastify.ts","products/juhai.appregistry/src/host.ts","products/juhai.appregistry/src/index.ts","products/juhai.appregistry/src/manifest.ts","products/juhai.appregistry/src/nestjs.ts","products/juhai.appregistry/src/order-repository.ts","products/juhai.appregistry/src/tools.ts","products/juhai.appregistry/src/web.tsx","products/juhai.appregistry/test/os-host.runtime.test.ts","products/juhai.appregistry/tsconfig.os-host.json","products/juhai.appregistry/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"53dce4a57c8dda8e9bd74a22b3fb1557a45494c1","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/53dce4a57c8dda8e9bd74a22b3fb1557a45494c1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"f3d8def24403f71854453326335ea4f5f3fba94d","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/f3d8def24403f71854453326335ea4f5f3fba94d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"84ddb30d145311a96f500560acdcf6b3b7d6a910","message":"feat(registry): 新增清单准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/84ddb30d145311a96f500560acdcf6b3b7d6a910","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/registry/manifest-admission.service.ts","docs/domain/registry-snapshot-blueprint.md","packages/contracts/src/manifest-admission-planner.test.ts","packages/contracts/src/manifest-admission-planner.ts","packages/contracts/src/registry-snapshot.test.ts","packages/contracts/src/registry-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":102,"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":"app-registry","full_name":"luoanwu/app-registry","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-registry/languages","html_url":"https://gitea.g-hi.com/luoanwu/app-registry","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-registry","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/app-registry.git","clone_url":"https://gitea.g-hi.com/luoanwu/app-registry.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-01T21:58:05+08:00","updated_at":"2026-09-01T21:59:45+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
|
1788278762
|
1788279540
|
0
|
1788271185
|
1788373230
|
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
|
|
23594
|
feat(metrics): 新增指标契约复核
|
105
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f76fa1f553ada89174b9b59a934711373396a1f5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f76fa1f553ada89174b9b59a934711373396a1f5","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f76fa1f553ada89174b9b59a934711373396a1f5","message":"feat(metrics): 新增指标契约复核\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/f76fa1f553ada89174b9b59a934711373396a1f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/metric-contract-blueprint.md","packages/contracts/src/metric-contract.test.ts","packages/contracts/src/metric-contract.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"399e265e2c0054d3c9ebc58b2551268b1b6d68ce","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/399e265e2c0054d3c9ebc58b2551268b1b6d68ce","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"544a89bfd291ba3ecfc3d7b7008fa1d6952c0850","message":"feat: 平台身份重绑定 data-analytics(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/544a89bfd291ba3ecfc3d7b7008fa1d6952c0850","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["docs/framework-migration.md","products/juhai.analytics/README.md","products/juhai.analytics/acceptance/juhai.analytics.order.acceptance.mjs","products/juhai.analytics/migrations/juhai.analytics.order/20260826090000_create_orders.sql","products/juhai.analytics/migrations/juhai.analytics.order/20260826091000_create_order_events.sql","products/juhai.analytics/package.json","products/juhai.analytics/product.manifest.json","products/juhai.analytics/src/contracts.ts","products/juhai.analytics/src/fastify.ts","products/juhai.analytics/src/host.ts","products/juhai.analytics/src/index.ts","products/juhai.analytics/src/manifest.ts","products/juhai.analytics/src/nestjs.ts","products/juhai.analytics/src/order-repository.ts","products/juhai.analytics/src/tools.ts","products/juhai.analytics/src/web.tsx","products/juhai.analytics/test/os-host.runtime.test.ts","products/juhai.analytics/tsconfig.os-host.json","products/juhai.analytics/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"1f25e1e1ae1cc7be1f0964f70aea4215a023d717","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/1f25e1e1ae1cc7be1f0964f70aea4215a023d717","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"418f29cd598d8d101563ed02bfe7e96503cb6ee4","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/418f29cd598d8d101563ed02bfe7e96503cb6ee4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:39-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"f76fa1f553ada89174b9b59a934711373396a1f5","message":"feat(metrics): 新增指标契约复核\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/f76fa1f553ada89174b9b59a934711373396a1f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/metric-contract-blueprint.md","packages/contracts/src/metric-contract.test.ts","packages/contracts/src/metric-contract.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":105,"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":"data-analytics","full_name":"luoanwu/data-analytics","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analytics/languages","html_url":"https://gitea.g-hi.com/luoanwu/data-analytics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analytics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/data-analytics.git","clone_url":"https://gitea.g-hi.com/luoanwu/data-analytics.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-01T21:58:11+08:00","updated_at":"2026-09-01T21:59:45+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
|
1788278840
|
1788279540
|
0
|
1788271185
|
1788373230
|
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
|
|
23595
|
feat(scope): 新增作用域解析规划
|
106
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
a92f8b4ba943c410e739b5b60b1fea8e24f09c9e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","message":"feat(scope): 新增作用域解析规划\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/scope/scope-resolution.service.ts","docs/domain/scope-snapshot-blueprint.md","packages/contracts/src/scope-resolution-planner.test.ts","packages/contracts/src/scope-resolution-planner.ts","packages/contracts/src/scope-snapshot.test.ts","packages/contracts/src/scope-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03fe4ab65eed33a77d99c9785b0817cf7e15bf03","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/03fe4ab65eed33a77d99c9785b0817cf7e15bf03","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d9b72b0c1d941ca1e6087644f706019eb80d9755","message":"feat: 平台身份重绑定 tenant-scope(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/d9b72b0c1d941ca1e6087644f706019eb80d9755","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["docs/framework-migration.md","products/juhai.tenantscope/README.md","products/juhai.tenantscope/acceptance/juhai.tenantscope.order.acceptance.mjs","products/juhai.tenantscope/migrations/juhai.tenantscope.order/20260826090000_create_orders.sql","products/juhai.tenantscope/migrations/juhai.tenantscope.order/20260826091000_create_order_events.sql","products/juhai.tenantscope/package.json","products/juhai.tenantscope/product.manifest.json","products/juhai.tenantscope/src/contracts.ts","products/juhai.tenantscope/src/fastify.ts","products/juhai.tenantscope/src/host.ts","products/juhai.tenantscope/src/index.ts","products/juhai.tenantscope/src/manifest.ts","products/juhai.tenantscope/src/nestjs.ts","products/juhai.tenantscope/src/order-repository.ts","products/juhai.tenantscope/src/tools.ts","products/juhai.tenantscope/src/web.tsx","products/juhai.tenantscope/test/os-host.runtime.test.ts","products/juhai.tenantscope/tsconfig.os-host.json","products/juhai.tenantscope/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"015f74509cb46fce6f34ae54ac33e9a5e7c5f86e","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/015f74509cb46fce6f34ae54ac33e9a5e7c5f86e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"eeee196b3c90ac39ac619cab997897d2e6a0c89e","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/eeee196b3c90ac39ac619cab997897d2e6a0c89e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:39-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","message":"feat(scope): 新增作用域解析规划\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/scope/scope-resolution.service.ts","docs/domain/scope-snapshot-blueprint.md","packages/contracts/src/scope-resolution-planner.test.ts","packages/contracts/src/scope-resolution-planner.ts","packages/contracts/src/scope-snapshot.test.ts","packages/contracts/src/scope-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":106,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"tenant-scope","full_name":"luoanwu/tenant-scope","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope/languages","html_url":"https://gitea.g-hi.com/luoanwu/tenant-scope","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/tenant-scope.git","clone_url":"https://gitea.g-hi.com/luoanwu/tenant-scope.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:13+08:00","updated_at":"2026-09-01T21:59: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
|
3
|
6
|
1788278922
|
1788279840
|
0
|
1788271187
|
1788373230
|
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
|
|
23596
|
feat(delivery): 新增制品晋级复核
|
107
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
3652661600d592fcb613bfa9c99558f81faec118
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"3652661600d592fcb613bfa9c99558f81faec118","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"3652661600d592fcb613bfa9c99558f81faec118","message":"feat(delivery): 新增制品晋级复核\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/3652661600d592fcb613bfa9c99558f81faec118","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/delivery/artifact-advancement-planning.service.ts","docs/domain/delivery-control-blueprint.md","packages/delivery-control/package.json","packages/delivery-control/src/artifact-advancement-planner.cjs","packages/delivery-control/src/artifact-advancement-planner.d.cts","packages/delivery-control/src/artifact-advancement-planner.d.ts","packages/delivery-control/src/ci-gate-audit.mjs","packages/delivery-control/src/index.cjs","packages/delivery-control/src/index.d.ts","packages/delivery-control/test/artifact-advancement-planner.test.mjs","packages/delivery-control/test/ci-gate-audit.test.mjs","reports/runtime-acceptance.latest.json","scripts/audit-ci-gates.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","package.json","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":"d61db0e94f32ca06bd104ef261cb25b270fa958a","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/d61db0e94f32ca06bd104ef261cb25b270fa958a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:36-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ecb505f637254aa07144a2913cc8a69753dea0c8","message":"feat: 平台身份重绑定 delivery-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/ecb505f637254aa07144a2913cc8a69753dea0c8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.delivery/README.md","products/juhai.delivery/acceptance/juhai.delivery.order.acceptance.mjs","products/juhai.delivery/migrations/juhai.delivery.order/20260826090000_create_orders.sql","products/juhai.delivery/migrations/juhai.delivery.order/20260826091000_create_order_events.sql","products/juhai.delivery/package.json","products/juhai.delivery/product.manifest.json","products/juhai.delivery/src/contracts.ts","products/juhai.delivery/src/fastify.ts","products/juhai.delivery/src/host.ts","products/juhai.delivery/src/index.ts","products/juhai.delivery/src/manifest.ts","products/juhai.delivery/src/nestjs.ts","products/juhai.delivery/src/order-repository.ts","products/juhai.delivery/src/tools.ts","products/juhai.delivery/src/web.tsx","products/juhai.delivery/test/os-host.runtime.test.ts","products/juhai.delivery/tsconfig.os-host.json","products/juhai.delivery/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"e6148468af42bba79b640efdc83977a38e304f6b","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/e6148468af42bba79b640efdc83977a38e304f6b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"e530220abce01ecbb9780bee6e843a4e03a72c4b","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/e530220abce01ecbb9780bee6e843a4e03a72c4b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:49-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"3652661600d592fcb613bfa9c99558f81faec118","message":"feat(delivery): 新增制品晋级复核\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/3652661600d592fcb613bfa9c99558f81faec118","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/delivery/artifact-advancement-planning.service.ts","docs/domain/delivery-control-blueprint.md","packages/delivery-control/package.json","packages/delivery-control/src/artifact-advancement-planner.cjs","packages/delivery-control/src/artifact-advancement-planner.d.cts","packages/delivery-control/src/artifact-advancement-planner.d.ts","packages/delivery-control/src/ci-gate-audit.mjs","packages/delivery-control/src/index.cjs","packages/delivery-control/src/index.d.ts","packages/delivery-control/test/artifact-advancement-planner.test.mjs","packages/delivery-control/test/ci-gate-audit.test.mjs","reports/runtime-acceptance.latest.json","scripts/audit-ci-gates.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","package.json","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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"]},"repository":{"id":107,"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":"delivery-platform","full_name":"luoanwu/delivery-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/delivery-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/delivery-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/delivery-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/delivery-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/delivery-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-01T21:58:15+08:00","updated_at":"2026-09-01T21:59: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
|
3
|
6
|
1788279064
|
1788279840
|
0
|
1788271187
|
1788373230
|
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
|
|
23597
|
feat(permission): 新增权限决策规划
|
108
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
d63bc91b99a4ea62c35d0cd2368045ce54e4385c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","message":"feat(permission): 新增权限决策规划\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/d63bc91b99a4ea62c35d0cd2368045ce54e4385c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/permission/permission-decision.service.ts","docs/domain/permission-preflight-blueprint.md","packages/contracts/src/permission-decision-planner.test.ts","packages/contracts/src/permission-decision-planner.ts","packages/contracts/src/permission-preflight.test.ts","packages/contracts/src/permission-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a58f9c47304f1983aca6ba7072f58ff5c0969f55","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/a58f9c47304f1983aca6ba7072f58ff5c0969f55","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"eb38aefb3c40e4c9a3aa368ad1417a2f8f79035a","message":"feat: 平台身份重绑定 permission-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/eb38aefb3c40e4c9a3aa368ad1417a2f8f79035a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.permission/README.md","products/juhai.permission/acceptance/juhai.permission.order.acceptance.mjs","products/juhai.permission/migrations/juhai.permission.order/20260826090000_create_orders.sql","products/juhai.permission/migrations/juhai.permission.order/20260826091000_create_order_events.sql","products/juhai.permission/package.json","products/juhai.permission/product.manifest.json","products/juhai.permission/src/contracts.ts","products/juhai.permission/src/fastify.ts","products/juhai.permission/src/host.ts","products/juhai.permission/src/index.ts","products/juhai.permission/src/manifest.ts","products/juhai.permission/src/nestjs.ts","products/juhai.permission/src/order-repository.ts","products/juhai.permission/src/tools.ts","products/juhai.permission/src/web.tsx","products/juhai.permission/test/os-host.runtime.test.ts","products/juhai.permission/tsconfig.os-host.json","products/juhai.permission/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"4491834f55010479358d5650e9f738a394335f6f","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/4491834f55010479358d5650e9f738a394335f6f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"03eb3aee5143031086e4faf6c7c713d6fb7bde49","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/03eb3aee5143031086e4faf6c7c713d6fb7bde49","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:06-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","message":"feat(permission): 新增权限决策规划\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/d63bc91b99a4ea62c35d0cd2368045ce54e4385c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/permission/permission-decision.service.ts","docs/domain/permission-preflight-blueprint.md","packages/contracts/src/permission-decision-planner.test.ts","packages/contracts/src/permission-decision-planner.ts","packages/contracts/src/permission-preflight.test.ts","packages/contracts/src/permission-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":108,"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":"permission-platform","full_name":"luoanwu/permission-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/permission-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/permission-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/permission-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/permission-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/permission-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-01T21:58:17+08:00","updated_at":"2026-09-01T21:59: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
|
3
|
6
|
1788279143
|
1788279840
|
0
|
1788271187
|
1788373230
|
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
|
|
23598
|
feat(workflow): 新增跨域流程规划
|
109
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
0a92bf8f8c65b738777680d5f4951d37581dda65
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"0a92bf8f8c65b738777680d5f4951d37581dda65","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"0a92bf8f8c65b738777680d5f4951d37581dda65","message":"feat(workflow): 新增跨域流程规划\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/0a92bf8f8c65b738777680d5f4951d37581dda65","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/workflow/workflow-planner.service.ts","docs/domain/workflow-definition-blueprint.md","packages/contracts/src/workflow-definition.test.ts","packages/contracts/src/workflow-definition.ts","packages/contracts/src/workflow-planner.test.ts","packages/contracts/src/workflow-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"e9ff5bd315e2caf78e583cd118695ac68763b724","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/e9ff5bd315e2caf78e583cd118695ac68763b724","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f8e52f00a19d821e073da7613bd5f57d9bf9e990","message":"feat: 平台身份重绑定 scheduler-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/f8e52f00a19d821e073da7613bd5f57d9bf9e990","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.scheduler/README.md","products/juhai.scheduler/acceptance/juhai.scheduler.order.acceptance.mjs","products/juhai.scheduler/migrations/juhai.scheduler.order/20260826090000_create_orders.sql","products/juhai.scheduler/migrations/juhai.scheduler.order/20260826091000_create_order_events.sql","products/juhai.scheduler/package.json","products/juhai.scheduler/product.manifest.json","products/juhai.scheduler/src/contracts.ts","products/juhai.scheduler/src/fastify.ts","products/juhai.scheduler/src/host.ts","products/juhai.scheduler/src/index.ts","products/juhai.scheduler/src/manifest.ts","products/juhai.scheduler/src/nestjs.ts","products/juhai.scheduler/src/order-repository.ts","products/juhai.scheduler/src/tools.ts","products/juhai.scheduler/src/web.tsx","products/juhai.scheduler/test/os-host.runtime.test.ts","products/juhai.scheduler/tsconfig.os-host.json","products/juhai.scheduler/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"8b2151898531ef01360cca6a7036ea7f9757cdcb","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/8b2151898531ef01360cca6a7036ea7f9757cdcb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"6b8ef7cc0b9912f6f955aacc7a3a5ea49926aa8a","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/6b8ef7cc0b9912f6f955aacc7a3a5ea49926aa8a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:06-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"0a92bf8f8c65b738777680d5f4951d37581dda65","message":"feat(workflow): 新增跨域流程规划\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/0a92bf8f8c65b738777680d5f4951d37581dda65","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/workflow/workflow-planner.service.ts","docs/domain/workflow-definition-blueprint.md","packages/contracts/src/workflow-definition.test.ts","packages/contracts/src/workflow-definition.ts","packages/contracts/src/workflow-planner.test.ts","packages/contracts/src/workflow-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":109,"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":"scheduler-platform","full_name":"luoanwu/scheduler-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/scheduler-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/scheduler-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/scheduler-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/scheduler-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/scheduler-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-01T21:58:19+08:00","updated_at":"2026-09-01T21:59: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
|
3
|
6
|
1788279222
|
1788280140
|
0
|
1788271187
|
1788373230
|
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
|
|
23599
|
feat(notification): 新增 Webhook 投递规划
|
110
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
06991c06ed232dd99a9384486146e7e119030769
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"06991c06ed232dd99a9384486146e7e119030769","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"06991c06ed232dd99a9384486146e7e119030769","message":"feat(notification): 新增 Webhook 投递规划\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/06991c06ed232dd99a9384486146e7e119030769","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/notification/notification-planner.service.ts","docs/domain/notification-effect-blueprint.md","packages/contracts/src/notification-effect.test.ts","packages/contracts/src/notification-effect.ts","packages/contracts/src/webhook-delivery-planner.test.ts","packages/contracts/src/webhook-delivery-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"0462d0ff032e829cb3ecc98ac2554f804b85325c","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/0462d0ff032e829cb3ecc98ac2554f804b85325c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"043a8ade4f7129842c06118ad381026679148fd5","message":"feat: 平台身份重绑定 notification-hub(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/043a8ade4f7129842c06118ad381026679148fd5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.notification/README.md","products/juhai.notification/acceptance/juhai.notification.order.acceptance.mjs","products/juhai.notification/migrations/juhai.notification.order/20260826090000_create_orders.sql","products/juhai.notification/migrations/juhai.notification.order/20260826091000_create_order_events.sql","products/juhai.notification/package.json","products/juhai.notification/product.manifest.json","products/juhai.notification/src/contracts.ts","products/juhai.notification/src/fastify.ts","products/juhai.notification/src/host.ts","products/juhai.notification/src/index.ts","products/juhai.notification/src/manifest.ts","products/juhai.notification/src/nestjs.ts","products/juhai.notification/src/order-repository.ts","products/juhai.notification/src/tools.ts","products/juhai.notification/src/web.tsx","products/juhai.notification/test/os-host.runtime.test.ts","products/juhai.notification/tsconfig.os-host.json","products/juhai.notification/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"ca1700973414443af423502aa79ce327d0b3c73e","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/ca1700973414443af423502aa79ce327d0b3c73e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"ea9f0c7ab4826ab009880edb3a75886a5eeebcb9","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/ea9f0c7ab4826ab009880edb3a75886a5eeebcb9","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"06991c06ed232dd99a9384486146e7e119030769","message":"feat(notification): 新增 Webhook 投递规划\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/06991c06ed232dd99a9384486146e7e119030769","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/notification/notification-planner.service.ts","docs/domain/notification-effect-blueprint.md","packages/contracts/src/notification-effect.test.ts","packages/contracts/src/notification-effect.ts","packages/contracts/src/webhook-delivery-planner.test.ts","packages/contracts/src/webhook-delivery-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":110,"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":"notification-hub","full_name":"luoanwu/notification-hub","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/notification-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/notification-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/notification-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/notification-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/notification-hub.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-01T21:58:21+08:00","updated_at":"2026-09-01T21:59:48+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
|
1788279300
|
1788280140
|
0
|
1788271189
|
1788373230
|
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
|
|
23600
|
feat(config): 新增本地配置客户端
|
111
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
0999f3af2b5b8dccf941370c293bad77a9a27854
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"0999f3af2b5b8dccf941370c293bad77a9a27854","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"0999f3af2b5b8dccf941370c293bad77a9a27854","message":"feat(config): 新增本地配置客户端\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/0999f3af2b5b8dccf941370c293bad77a9a27854","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/configuration/configuration-snapshot.service.ts","docs/domain/feature-flag-blueprint.md","packages/contracts/src/configuration-client.test.ts","packages/contracts/src/configuration-client.ts","packages/contracts/src/feature-flag.test.ts","packages/contracts/src/feature-flag.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9b81af060da191e089249cad86b0e395c08e5f33","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/9b81af060da191e089249cad86b0e395c08e5f33","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9c897855a37126636e0803d65d4dd5428200b040","message":"feat: 平台身份重绑定 config-flag(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/9c897855a37126636e0803d65d4dd5428200b040","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.configflag/README.md","products/juhai.configflag/acceptance/juhai.configflag.order.acceptance.mjs","products/juhai.configflag/migrations/juhai.configflag.order/20260826090000_create_orders.sql","products/juhai.configflag/migrations/juhai.configflag.order/20260826091000_create_order_events.sql","products/juhai.configflag/package.json","products/juhai.configflag/product.manifest.json","products/juhai.configflag/src/contracts.ts","products/juhai.configflag/src/fastify.ts","products/juhai.configflag/src/host.ts","products/juhai.configflag/src/index.ts","products/juhai.configflag/src/manifest.ts","products/juhai.configflag/src/nestjs.ts","products/juhai.configflag/src/order-repository.ts","products/juhai.configflag/src/tools.ts","products/juhai.configflag/src/web.tsx","products/juhai.configflag/test/os-host.runtime.test.ts","products/juhai.configflag/tsconfig.os-host.json","products/juhai.configflag/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"13e67540810f7deba818c7f0da73d1aa4f30e279","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/13e67540810f7deba818c7f0da73d1aa4f30e279","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:20-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"3a88755f584661c16c13901f9519399fdd0a3d9b","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/3a88755f584661c16c13901f9519399fdd0a3d9b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:30-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"0999f3af2b5b8dccf941370c293bad77a9a27854","message":"feat(config): 新增本地配置客户端\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/0999f3af2b5b8dccf941370c293bad77a9a27854","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/configuration/configuration-snapshot.service.ts","docs/domain/feature-flag-blueprint.md","packages/contracts/src/configuration-client.test.ts","packages/contracts/src/configuration-client.ts","packages/contracts/src/feature-flag.test.ts","packages/contracts/src/feature-flag.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":111,"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":"config-flag","full_name":"luoanwu/config-flag","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/config-flag/languages","html_url":"https://gitea.g-hi.com/luoanwu/config-flag","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/config-flag","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/config-flag.git","clone_url":"https://gitea.g-hi.com/luoanwu/config-flag.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-01T21:58:23+08:00","updated_at":"2026-09-01T21:59:49+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788279442
|
1788280140
|
0
|
1788271189
|
1788373230
|
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
|
|
23601
|
feat(telemetry): 新增遥测导出准入规划
|
112
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
b1fba12bb50265a049edcdefc547f92df9126793
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"b1fba12bb50265a049edcdefc547f92df9126793","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"b1fba12bb50265a049edcdefc547f92df9126793","message":"feat(telemetry): 新增遥测导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/b1fba12bb50265a049edcdefc547f92df9126793","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/telemetry/telemetry-export.service.ts","docs/domain/telemetry-envelope-blueprint.md","packages/contracts/src/telemetry-envelope.test.ts","packages/contracts/src/telemetry-envelope.ts","packages/contracts/src/telemetry-export-planner.test.ts","packages/contracts/src/telemetry-export-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03ae898131283c370d76186d5688261bec76978e","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/03ae898131283c370d76186d5688261bec76978e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"da99b13be9a584d2bc66e023aa251ed8797ab438","message":"feat: 平台身份重绑定 observability-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/da99b13be9a584d2bc66e023aa251ed8797ab438","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.observability/README.md","products/juhai.observability/acceptance/juhai.observability.order.acceptance.mjs","products/juhai.observability/migrations/juhai.observability.order/20260826090000_create_orders.sql","products/juhai.observability/migrations/juhai.observability.order/20260826091000_create_order_events.sql","products/juhai.observability/package.json","products/juhai.observability/product.manifest.json","products/juhai.observability/src/contracts.ts","products/juhai.observability/src/fastify.ts","products/juhai.observability/src/host.ts","products/juhai.observability/src/index.ts","products/juhai.observability/src/manifest.ts","products/juhai.observability/src/nestjs.ts","products/juhai.observability/src/order-repository.ts","products/juhai.observability/src/tools.ts","products/juhai.observability/src/web.tsx","products/juhai.observability/test/os-host.runtime.test.ts","products/juhai.observability/tsconfig.os-host.json","products/juhai.observability/vitest.os-host.config.ts"],"removed":["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","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"6d9f66f55707a5acfc1ea2f341f8bb4414fe7e01","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/6d9f66f55707a5acfc1ea2f341f8bb4414fe7e01","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:20-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"ef351f47e74ceadccb6834d38895e674541088a4","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/ef351f47e74ceadccb6834d38895e674541088a4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:30-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.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":"b1fba12bb50265a049edcdefc547f92df9126793","message":"feat(telemetry): 新增遥测导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/b1fba12bb50265a049edcdefc547f92df9126793","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/telemetry/telemetry-export.service.ts","docs/domain/telemetry-envelope-blueprint.md","packages/contracts/src/telemetry-envelope.test.ts","packages/contracts/src/telemetry-envelope.ts","packages/contracts/src/telemetry-export-planner.test.ts","packages/contracts/src/telemetry-export-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.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":112,"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":"observability-platform","full_name":"luoanwu/observability-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/observability-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/observability-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/observability-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/observability-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/observability-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-01T21:58:25+08:00","updated_at":"2026-09-01T21:59:49+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788279584
|
1788280440
|
0
|
1788271189
|
1788373230
|
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
|
|
23399
|
chore(models): track model weights with lfs
|
50
|
5
|
lyra-production-governance.yml
|
2
|
5
|
0
|
refs/heads/codex/p0-edge-governance
|
87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/codex/p0-edge-gover {"ref":"refs/heads/codex/p0-edge-governance","before":"0000000000000000000000000000000000000000","after":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/compare/main...87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","commits":[],"total_commits":0,"head_commit":{"id":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","message":"chore(models): track model weights with lfs\n","url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/commit/87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T01:00:28-07:00","added":[".gitattributes","models/BTC-ISMIR19/test/btc_model.pt","models/BTC-ISMIR19/test/btc_model_large_voca.pt","models/DeepChorus/model/Deepchorus_2021.h5","models/EDGE/checkpoint.pt","models/SongFormer/model.safetensors","models/audio-separator/model_bs_roformer_ep_317_sdr_12.9755.ckpt","models/hf-home/models--OpenMuQ--MuQ-MuLan-large/blobs/d42ae3f7cb9b66759ee0089ddc70e2f28b130c2d8ba621457358272d32dd0444","models/larsnet/pretrained_larsnet_models/cymbals/pretrained_cymbals_unet.pth","models/larsnet/pretrained_larsnet_models/hihat/pretrained_hihat_unet.pth","models/larsnet/pretrained_larsnet_models/kick/pretrained_kick_unet.pth","models/larsnet/pretrained_larsnet_models/snare/pretrained_snare_unet.pth","models/larsnet/pretrained_larsnet_models/toms/pretrained_toms_unet.pth","models/singing-alignment/hubertfa/1218_hfa_model_new_dict/model.onnx","models/torch-home/hub/checkpoints/955717e8-8726e21a.th","models/torch-home/hub/checkpoints/beat_this-final0.ckpt"],"removed":[],"modified":[]},"repository":{"id":50,"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-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8256945,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-02T17:09:12+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1782983511
|
1782983569
|
0
|
1782983510
|
1782983569
|
|
|
0
|
Edit
Delete
|
|
23400
|
docs(prd): 产品设计PRD v1.1 — 全量PRD初版 + 产品缺失分析扩展
|
51
|
5
|
ci.yml
|
2
|
5
|
0
|
refs/heads/main
|
ad491b380b573d1f4389aa0e3a1aae0eceb467d8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6c1f58f4c1c7dce5c443bbe14d34521de581cbf6","after":"ad491b380b573d1f4389aa0e3a1aae0eceb467d8","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/6c1f58f4c1c7dce5c443bbe14d34521de581cbf6...ad491b380b573d1f4389aa0e3a1aae0eceb467d8","commits":[{"id":"ad491b380b573d1f4389aa0e3a1aae0eceb467d8","message":"docs(prd): 产品设计PRD v1.1 — 全量PRD初版 + 产品缺失分析扩展\n\n- 新增《尤克特拉产品设计PRD.md》作为产品设计统摄真源(十三章:定位/市场/用户/商业模式/六步闭环/IA 40屏/13功能域/NFR/数据模型/诚实边界/路线图/风险/附录)\n- v1.1 扩展 §12.2 产品缺失分析:新发现商业化闭环断头四项(付费墙无tier守卫/无支付计费/无自助注册/无改密),\n 含代码证据 + B触点/C数据/D执行/E增长五组缺口 + 按阶段闸门的优先级判定\n- 规模口径锚定 docs-metrics 快照 0a13474(153端点/32模块/64model/40屏),诚实三铁则写入顶部版本块\n- CLAUDE.md 文档索引登记 PRD\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ad491b380b573d1f4389aa0e3a1aae0eceb467d8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T03:12:53-07:00","added":["尤克特拉产品设计PRD.md"],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"ad491b380b573d1f4389aa0e3a1aae0eceb467d8","message":"docs(prd): 产品设计PRD v1.1 — 全量PRD初版 + 产品缺失分析扩展\n\n- 新增《尤克特拉产品设计PRD.md》作为产品设计统摄真源(十三章:定位/市场/用户/商业模式/六步闭环/IA 40屏/13功能域/NFR/数据模型/诚实边界/路线图/风险/附录)\n- v1.1 扩展 §12.2 产品缺失分析:新发现商业化闭环断头四项(付费墙无tier守卫/无支付计费/无自助注册/无改密),\n 含代码证据 + B触点/C数据/D执行/E增长五组缺口 + 按阶段闸门的优先级判定\n- 规模口径锚定 docs-metrics 快照 0a13474(153端点/32模块/64model/40屏),诚实三铁则写入顶部版本块\n- CLAUDE.md 文档索引登记 PRD\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ad491b380b573d1f4389aa0e3a1aae0eceb467d8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-02T03:12:53-07:00","added":["尤克特拉产品设计PRD.md"],"removed":[],"modified":["CLAUDE.md"]},"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":true,"fork":false,"template":false,"mirror":false,"size":6597,"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-02T16:02: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":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
|
1782987178
|
1782987297
|
0
|
1782987176
|
1782987297
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23412
|
C63:默认主链角色互换——HubertFA 为默认主对齐器,SOFA 降为二次窗口校验
|
60
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f73daf0a17c4cd19344f03ba21afcc326a49a650","after":"a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/f73daf0a17c4cd19344f03ba21afcc326a49a650...a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","commits":[{"id":"a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","message":"C63:默认主链角色互换——HubertFA 为默认主对齐器,SOFA 降为二次窗口校验\n\n- contracts DEFAULT_MAIN_ALIGNER_ID sofa_mandarin -\u003e hubertfa(商用许可明确 +\n C61 拼接对齐 A/B 反超;内部/商用缺省口径合一),注册表 displayName/notes 同步,\n 契约测试锁「默认必须商用可选 + commercialUse=true」不变式\n- run_pipeline 新增 SOFA 真实声学二次窗口校验(6.5 步):回投主时钟后 SOFA\n (--no-hubert-verifier 子进程跨 venv)对同一输入独立二次对齐,逐行 onset/end\n \u003e250ms 标 sofa_boundary_disagreement(C50 角色完整镜像互换)\n- fail-closed 三层判责:商用上下文/缺 venv/缺 ckpt/执行失败均降级 portable\n 边界校验,verification.summary.mode + honesty.sofaSecondPass.skipReason 如实\n 登记;实测商用降级 + 内部研发真跑(73 行、60 行标复核)双路径\n- fastify HTTP 默认 run 断言随翻转更新;smoke 7/7、runner 47/47、\n check:runtime 316/316、check:ui 34/34、pnpm check 全绿\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T22:59:27-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/alignment.http.test.ts","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/contracts/src/alignment.test.ts","reports/alignment-models.latest.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/model-evidence/pipeline-smoke.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/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","workers/pipeline/run_pipeline.py"]},{"id":"d343e1b5b3a23790be6707e80fa48060a0984c1f","message":"C62:UI 随 C61 更新——主/校角色标签按 mainAlignerId 特化 + 拼接计划上卡\n\n- runMapping 新增 runOperationLabel/runVerifierLabel:local_align 标签\n sofa→「SOFA 字级对齐」/hubertfa→「HubertFA 拼接对齐」,校验器后缀\n hubertfa 主→SOFA、sofa 主→HubertFA(曾写死,hubertfa run 主/校陈述颠倒)\n- TopBar/InfoTab/RunEvidenceCard/StepModal(入队/运行态/verify/score 描述)\n 全部按 run 动态陈述;hubertfa 的 local_align 弹窗如实描述拼接对齐主路径\n- RunEvidenceCard 新增 lyra-concat-plan:proposal honesty.concat 真实计划上卡\n (保留块/剪除时长/带宽),非拼接 proposal 不渲染\n- LoadModal 注册表单源锁不动(verifier 角色语义分层属 contracts 层议题)\n- e2e:hubertfa 拼接文案断言 + SOFA 校验按钮/verifier 断言纠偏 + 拼接计划\n 正反用例;实页双向核验 hubertfa/sofa run 各自正确\n- check:ui 34/34、lyra-parity 绿、pnpm check 全绿;ownTestCases 349→350、\n uiTestsPassed 33→34\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/d343e1b5b3a23790be6707e80fa48060a0984c1f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T22:46:32-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/lyra-studio.spec.ts","apps/web/src/features/lyra-studio/components/PipelineBar.tsx","apps/web/src/features/lyra-studio/components/TopBar.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/components/right/InfoTab.tsx","apps/web/src/features/lyra-studio/components/right/RunEvidenceCard.tsx","apps/web/src/features/lyra-studio/runMapping.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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"41d8010779db5ae99520052ce9a87d9113453284","message":"C61:HubertFA 主对齐切换拼接对齐主路径(剪长间隙+带状全局一次性对齐+回投主时钟)\n\n- workers/pipeline --concat:粗窗保留块(±800ms,仅剪 \u003e2s 长空隙)拼接 + 480ms\n 真静音锚 -\u003e 全歌词一次性带状全局 forced-align -\u003e SOFA 校验后分段线性回投\n- 带状 Viterbi(行窗 ±400ms + 邻行夹紧 300ms)封顶长程漂移;ph_edge 边界\n logit 奖励推进转移(≤500ms 72.5%-\u003e92.8% 贡献显著)\n- runner 默认 HubertFA 命令追加 --concat(SOFA 主链与桩注入不受影响)\n- 晴天 A/B(同 vocals/切片/真值):行 ≤500ms 76.8%-\u003e92.75%(商用链首次过\n 80% 阈值)、p90 746-\u003e484ms、字 median 606-\u003e399ms;插值行 3 优 1 劣优雅退化;\n contracts 完整性 0 违规 + 生产 schema GREEN\n- 证据 reports/model-evidence/qingtian-precision-concat.latest.json(含迭代\n 方法论留痕:纯全局漂移教训/带状/夹紧/边界奖励/定参纪律)\n- 自测 --self-test-concat 11/11、smoke 7/7、runner 47/47、check:runtime 316/316\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/41d8010779db5ae99520052ce9a87d9113453284","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T22:27:18-07:00","added":["reports/model-evidence/qingtian-precision-concat.latest.json"],"removed":[],"modified":["CLAUDE.md","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","reports/alignment-models.latest.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/model-evidence/pipeline-smoke.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/song-library.latest.json","reports/validation-source.latest.json","workers/pipeline/run_pipeline.py"]},{"id":"67e69765b4cee2cc6384c3a280bfab7ec607e733","message":"C60:全局时间轴接真实结构证据,BPM 水合与解析层 tab 解耦\n\n- GlobalTimeline 结构色带消费 latestStructureEvidence(与音乐解析层同一读模型),\n 真实段不合并、段数与解析层一致;SegKind 补 outro;无证据回退装饰 fixture\n 并以 lyra-structure-source 徽标/data-structure-source 诚实标注\n- setRealBpm 同步从 AnalysisStub(仅 tab 激活时挂载)迁至常驻 useStudioBridge,\n 不点解析层全局时间轴也显示真实 BPM\n- e2e:装饰标注 → 注入真实 structure_evidence → 不点 tab 断言段数/outro/134 BPM 上轴\n- 棘轮:ownTestCases 348→349、uiTestsPassed 32→33(check:ui 33/33、pnpm check 全绿)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/67e69765b4cee2cc6384c3a280bfab7ec607e733","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T21:41:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/lyra-studio.spec.ts","apps/web/src/features/alignment/queries.ts","apps/web/src/features/lyra-studio/components/left/AnalysisStub.tsx","apps/web/src/features/lyra-studio/components/timeline/GlobalTimeline.tsx","apps/web/src/features/lyra-studio/fixtures/segments.ts","apps/web/src/features/lyra-studio/hooks/useStudioBridge.ts","apps/web/src/features/lyra-studio/utils/styles.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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","message":"C63:默认主链角色互换——HubertFA 为默认主对齐器,SOFA 降为二次窗口校验\n\n- contracts DEFAULT_MAIN_ALIGNER_ID sofa_mandarin -\u003e hubertfa(商用许可明确 +\n C61 拼接对齐 A/B 反超;内部/商用缺省口径合一),注册表 displayName/notes 同步,\n 契约测试锁「默认必须商用可选 + commercialUse=true」不变式\n- run_pipeline 新增 SOFA 真实声学二次窗口校验(6.5 步):回投主时钟后 SOFA\n (--no-hubert-verifier 子进程跨 venv)对同一输入独立二次对齐,逐行 onset/end\n \u003e250ms 标 sofa_boundary_disagreement(C50 角色完整镜像互换)\n- fail-closed 三层判责:商用上下文/缺 venv/缺 ckpt/执行失败均降级 portable\n 边界校验,verification.summary.mode + honesty.sofaSecondPass.skipReason 如实\n 登记;实测商用降级 + 内部研发真跑(73 行、60 行标复核)双路径\n- fastify HTTP 默认 run 断言随翻转更新;smoke 7/7、runner 47/47、\n check:runtime 316/316、check:ui 34/34、pnpm check 全绿\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T22:59:27-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/alignment.http.test.ts","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/contracts/src/alignment.test.ts","reports/alignment-models.latest.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/model-evidence/pipeline-smoke.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/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","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":3461,"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-14T12:26: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
|
3
|
4
|
0
|
1784010092
|
0
|
1784009830
|
1784010092
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23425
|
feat: add governed voice profile acoustics
|
62
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1847c52407c1b5d6d4734f1b334f782bd4a76641","after":"64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/1847c52407c1b5d6d4734f1b334f782bd4a76641...64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76","commits":[{"id":"64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76","message":"feat: add governed voice profile acoustics\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T18:10:48-07:00","added":["tests/test_timbre.py"],"removed":[],"modified":["CLAUDE.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","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-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","reports/voiceprint-real-acceptance.latest.json","scripts/check_voiceprint_real.py","scripts/governance-report.mjs","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_speaker_db.py"]}],"total_commits":0,"head_commit":{"id":"64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76","message":"feat: add governed voice profile acoustics\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T18:10:48-07:00","added":["tests/test_timbre.py"],"removed":[],"modified":["CLAUDE.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","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-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","reports/voiceprint-real-acceptance.latest.json","scripts/check_voiceprint_real.py","scripts/governance-report.mjs","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.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":true,"fork":false,"template":false,"mirror":false,"size":645,"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":1,"branch_count":1,"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-07-15T08:43:03+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
|
1784077862
|
1784077952
|
0
|
1784077861
|
1784077953
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23433
|
feat: 歌唱域质量治理与全面治理收口(C16/C17)
|
63
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
1b55d1eece101ec72f25af96f62713da05ae06ff
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f7f58401d267fffa37e2c7282f531354478eeebf","after":"1b55d1eece101ec72f25af96f62713da05ae06ff","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/f7f58401d267fffa37e2c7282f531354478eeebf...1b55d1eece101ec72f25af96f62713da05ae06ff","commits":[{"id":"1b55d1eece101ec72f25af96f62713da05ae06ff","message":"feat: 歌唱域质量治理与全面治理收口(C16/C17)\n\n- 工作台:无词音频隔离(叶子字区间单源激活)+ 波形 1-16x 视窗缩放;e2e +2(共 7 用例)\n- contracts:Qwen3 域受限/演唱序列冲突 fail-closed 归一化;complete 契约补索引唯一/\n 按 index 时间单调/跨句跨字无重叠 fail-closed(蓝图 §6);asr_anchor 留档进 qualityData\n- C16:alignment 域纳入全部写链行为门禁(writeModels/租户入口/outbox/旁路 publish/\n 并发守护/校验单源/双后端红线+测试覆盖绊网),逐门禁负向验红;样板面板挂 /samples 回运行路径\n- C17:governance-report --update-baseline 改 merge 写入,保住 testsPassed/uiTestsPassed 地板\n- 两后端:complete/fail/accept 目标态收敛 assertTransition 单源;alignment 非法迁移补\n 409 INVALID_TRANSITION 判责(原 500);新增 fail/retry/409 判责验收用例\n- 文档:G20 如实改述(docs-truth 断言机器锁定)、G23 登记(工作台前端栈差距)、\n owner-matrix/蓝图口径修正、C16/C17 战役回灌经验库\n- 棘轮收紧:testsPassed 61→67、ownTestCases 68→74、uiTestsPassed 7;三级门禁\n 2026-07-21 本仓实跑全绿(check / check:runtime / check:ui)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/1b55d1eece101ec72f25af96f62713da05ae06ff","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T19:55:12-07:00","added":["apps/web/src/app/samples/page.tsx"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/api/alignment/align/route.ts","apps/web/src/app/globals.css","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","deploy/.env.vm.example","deploy/docker-compose.vm.yml","docs/domain/forced-alignment-workbench-blueprint.md","docs/domain/owner-matrix.md","docs/governance-experience.md","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"1b55d1eece101ec72f25af96f62713da05ae06ff","message":"feat: 歌唱域质量治理与全面治理收口(C16/C17)\n\n- 工作台:无词音频隔离(叶子字区间单源激活)+ 波形 1-16x 视窗缩放;e2e +2(共 7 用例)\n- contracts:Qwen3 域受限/演唱序列冲突 fail-closed 归一化;complete 契约补索引唯一/\n 按 index 时间单调/跨句跨字无重叠 fail-closed(蓝图 §6);asr_anchor 留档进 qualityData\n- C16:alignment 域纳入全部写链行为门禁(writeModels/租户入口/outbox/旁路 publish/\n 并发守护/校验单源/双后端红线+测试覆盖绊网),逐门禁负向验红;样板面板挂 /samples 回运行路径\n- C17:governance-report --update-baseline 改 merge 写入,保住 testsPassed/uiTestsPassed 地板\n- 两后端:complete/fail/accept 目标态收敛 assertTransition 单源;alignment 非法迁移补\n 409 INVALID_TRANSITION 判责(原 500);新增 fail/retry/409 判责验收用例\n- 文档:G20 如实改述(docs-truth 断言机器锁定)、G23 登记(工作台前端栈差距)、\n owner-matrix/蓝图口径修正、C16/C17 战役回灌经验库\n- 棘轮收紧:testsPassed 61→67、ownTestCases 68→74、uiTestsPassed 7;三级门禁\n 2026-07-21 本仓实跑全绿(check / check:runtime / check:ui)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/1b55d1eece101ec72f25af96f62713da05ae06ff","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T19:55:12-07:00","added":["apps/web/src/app/samples/page.tsx"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/api/alignment/align/route.ts","apps/web/src/app/globals.css","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","deploy/.env.vm.example","deploy/docker-compose.vm.yml","docs/domain/forced-alignment-workbench-blueprint.md","docs/domain/owner-matrix.md","docs/governance-experience.md","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs"]},"repository":{"id":63,"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":"forced-alignment","full_name":"luoanwu/forced-alignment","description":"纯人声与歌词精准强制对齐工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":29497,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/forced-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/forced-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/forced-alignment.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-22T08:56:49+08:00","updated_at":"2026-07-22T08:59: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
|
1784688944
|
1784689972
|
0
|
1784688944
|
1784689973
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23437
|
docs: record dual-remote publication
|
64
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","after":"fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","compare_url":"https://gitea.g-hi.com/luoanwu/voice-conversion/compare/07bdfd6b5c1898d76a113986ab5a6e7ade243839...fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","commits":[{"id":"fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","message":"docs: record dual-remote publication\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:38:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]}],"total_commits":0,"head_commit":{"id":"fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","message":"docs: record dual-remote publication\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:38:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":64,"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":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":683,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion/languages","html_url":"https://gitea.g-hi.com/luoanwu/voice-conversion","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voice-conversion.git","clone_url":"https://gitea.g-hi.com/luoanwu/voice-conversion.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-22T14:37:12+08:00","updated_at":"2026-07-22T14:37: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
|
1784702346
|
1784702437
|
0
|
1784702338
|
1784702438
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23447
|
fix(web): scope E2E user-CRUD assertion to users p fix(web): scope E2E user-CRUD assertion to users panel, not full page...
|
54
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
d846832ebbe1d481019744f038672b935ad09937
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2fa1666f6bb69b7784199199afde715a54856ac8","after":"d846832ebbe1d481019744f038672b935ad09937","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/2fa1666f6bb69b7784199199afde715a54856ac8...d846832ebbe1d481019744f038672b935ad09937","commits":[{"id":"d846832ebbe1d481019744f038672b935ad09937","message":"fix(web): scope E2E user-CRUD assertion to users panel, not full page\n\nPorted from the claude/gallant-diffie-a541dd worktree, whose committed\nhistory was already fully contained in main but whose working tree held\nthis un-landed fix.\n\nNarrow the delete-then-hidden assertion in acceptance.spec.ts to\ngetByTestId(\"users-panel\") instead of the whole page. After d799b17's\noutbox fix, user.created events reliably reach the EventFeed and echo\nthe created user's name in the event JSON, so a page-wide getByText\ncould still match the name via the event log after the row itself was\nremoved, producing a false \"still visible\" read on flaky runs.\n\nRecords this as C16 in CLAUDE.md / governance-experience.md (C14 was\nalready taken by the docs-truth work landed in 2fa1666).\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/d846832ebbe1d481019744f038672b935ad09937","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:23:10-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/UsersPanel.tsx","docs/governance-experience.md"]}],"total_commits":0,"head_commit":{"id":"d846832ebbe1d481019744f038672b935ad09937","message":"fix(web): scope E2E user-CRUD assertion to users panel, not full page\n\nPorted from the claude/gallant-diffie-a541dd worktree, whose committed\nhistory was already fully contained in main but whose working tree held\nthis un-landed fix.\n\nNarrow the delete-then-hidden assertion in acceptance.spec.ts to\ngetByTestId(\"users-panel\") instead of the whole page. After d799b17's\noutbox fix, user.created events reliably reach the EventFeed and echo\nthe created user's name in the event JSON, so a page-wide getByText\ncould still match the name via the event log after the row itself was\nremoved, producing a false \"still visible\" read on flaky runs.\n\nRecords this as C16 in CLAUDE.md / governance-experience.md (C14 was\nalready taken by the docs-truth work landed in 2fa1666).\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/d846832ebbe1d481019744f038672b935ad09937","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:23:10-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/UsersPanel.tsx","docs/governance-experience.md"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":799,"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-07-22T16:11:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784708607
|
1784708660
|
0
|
1784708606
|
1784708660
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|