|
23445
|
fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉( fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)...
|
63
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
dbb8444dc97bba3e8ebc715efb82d803001981cd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","after":"dbb8444dc97bba3e8ebc715efb82d803001981cd","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf...dbb8444dc97bba3e8ebc715efb82d803001981cd","commits":[{"id":"dbb8444dc97bba3e8ebc715efb82d803001981cd","message":"fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)\n\n- 根因:Node 内置 fetch()(undici)自带 headersTimeout/bodyTimeout 默认\n 300000ms(5 分钟),优先级高于应用层 AbortController——route.ts 精心\n 设计的按音频时长预算(最长 55 分钟)从未真正掌管过请求,sidecar 真实\n 计算超 5 分钟即被静默掐断为 fetch failed,sidecar 进程本身无异常\n- 生产实测复现:用户单句重跑报错 fetch failed;日志显示\n POST /api/alignment/align 502 in 303388ms(卡在整 5 分钟),同一时间\n sidecar 侧无任何异常/Traceback\n- 修复:显式装 undici 依赖,建 Agent({ headersTimeout: 0, bodyTimeout: 0 })\n 作为 dispatcher 传入 fetch,超时决定权完全收回给自建 AbortController\n- 验证:本地短耗时对照实验复现同一故障(headersTimeout 2s 下 2.5s 抛出\n 一致的 fetch failed)并验证修复(headersTimeout:0 下等过 5s 拿到真实\n 响应)——非模拟,真实 HTTP 服务器 + 真实 undici Agent\n- 无自动化回归(apps/web 无 vitest 基座);已回灌 CLAUDE.md 缺口索引与\n 治理经验库,登记「未来任何长耗时出站 fetch 须显式归零 undici 超时」\n 的通用教训\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/dbb8444dc97bba3e8ebc715efb82d803001981cd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:53:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/package.json","apps/web/src/app/api/alignment/align/route.ts","docs/governance-experience.md","pnpm-lock.yaml","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/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"dbb8444dc97bba3e8ebc715efb82d803001981cd","message":"fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)\n\n- 根因:Node 内置 fetch()(undici)自带 headersTimeout/bodyTimeout 默认\n 300000ms(5 分钟),优先级高于应用层 AbortController——route.ts 精心\n 设计的按音频时长预算(最长 55 分钟)从未真正掌管过请求,sidecar 真实\n 计算超 5 分钟即被静默掐断为 fetch failed,sidecar 进程本身无异常\n- 生产实测复现:用户单句重跑报错 fetch failed;日志显示\n POST /api/alignment/align 502 in 303388ms(卡在整 5 分钟),同一时间\n sidecar 侧无任何异常/Traceback\n- 修复:显式装 undici 依赖,建 Agent({ headersTimeout: 0, bodyTimeout: 0 })\n 作为 dispatcher 传入 fetch,超时决定权完全收回给自建 AbortController\n- 验证:本地短耗时对照实验复现同一故障(headersTimeout 2s 下 2.5s 抛出\n 一致的 fetch failed)并验证修复(headersTimeout:0 下等过 5s 拿到真实\n 响应)——非模拟,真实 HTTP 服务器 + 真实 undici Agent\n- 无自动化回归(apps/web 无 vitest 基座);已回灌 CLAUDE.md 缺口索引与\n 治理经验库,登记「未来任何长耗时出站 fetch 须显式归零 undici 超时」\n 的通用教训\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/dbb8444dc97bba3e8ebc715efb82d803001981cd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:53:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/package.json","apps/web/src/app/api/alignment/align/route.ts","docs/governance-experience.md","pnpm-lock.yaml","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/validation-source.latest.json"]},"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":29769,"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-22T15:40: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
|
6
|
1784706813
|
1784706904
|
0
|
1784706813
|
1784706905
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23444
|
feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)
|
63
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bbe7744fc0df50ca87397478731523692d59a867","after":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/bbe7744fc0df50ca87397478731523692d59a867...7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","commits":[{"id":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","message":"feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)\n\n- contracts:ALIGNMENT_LANGUAGES 11 语单源(与 sidecar SUPPORTED_LANGUAGES\n 对齐),createAlignmentRunSchema.language 收紧为 z.enum,未知语言建任务\n 即拒绝;reanchorAlignmentSentenceSchema fail-closed(字数不可变/窗内单调\n 无重叠);新增 alignment.sentence.reanchored 事件类型\n- 工作台:语言选择器从 4 项硬编码改为 contracts 派生 11 项母语标签;\n 复核卡质量旗标人话映射(cantonese_asr_domain 等 12 项)\n- 双后端:新增 POST /:id/sentences/:idx/reanchor 动作接口——邻句包络\n fail-closed(重锚只许落入空隙,不得吞并相邻句)、复核态保持\n NEEDS_REVIEW 等人工验收、同事务写 history+outbox;非法迁移统一映射\n 409 INVALID_TRANSITION\n- 前端:新增 audio-slice.ts 浏览器端切片(OfflineAudioContext 重采样\n 16k WAV),真正实现「用三句上下文重跑」——切三句音频窗口送 Qwen3、\n 只采纳中间句、按窗口偏移映射回全局时间,文本/字数不一致则拒绝采纳\n- 修复预存 bug:\u003caudio\u003e durationchange 早于 loadedmetadata 触发,把\n 播头恢复值踩回 0,导致导入/恢复音频后播头无法停在首个复核句\n- 证据:contracts 24 用例;两后端各 +1 真实 DB 验收(进空隙/吞邻句 409/\n 字数漂移 409/跨租户 404);e2e 9 用例(模型层打桩,切片+写链+DB 回读\n 全真实);棘轮收紧 testsPassed 68→71、uiTestsPassed 8→9、\n ownTestCases 76→80;三级门禁 2026-07-22 本仓实跑全绿\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:40:35-07:00","added":["apps/web/src/features/alignment/lib/audio-slice.ts"],"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.controller.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/components/EventFeed.tsx","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.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/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-validation-source.mjs"]}],"total_commits":0,"head_commit":{"id":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","message":"feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)\n\n- contracts:ALIGNMENT_LANGUAGES 11 语单源(与 sidecar SUPPORTED_LANGUAGES\n 对齐),createAlignmentRunSchema.language 收紧为 z.enum,未知语言建任务\n 即拒绝;reanchorAlignmentSentenceSchema fail-closed(字数不可变/窗内单调\n 无重叠);新增 alignment.sentence.reanchored 事件类型\n- 工作台:语言选择器从 4 项硬编码改为 contracts 派生 11 项母语标签;\n 复核卡质量旗标人话映射(cantonese_asr_domain 等 12 项)\n- 双后端:新增 POST /:id/sentences/:idx/reanchor 动作接口——邻句包络\n fail-closed(重锚只许落入空隙,不得吞并相邻句)、复核态保持\n NEEDS_REVIEW 等人工验收、同事务写 history+outbox;非法迁移统一映射\n 409 INVALID_TRANSITION\n- 前端:新增 audio-slice.ts 浏览器端切片(OfflineAudioContext 重采样\n 16k WAV),真正实现「用三句上下文重跑」——切三句音频窗口送 Qwen3、\n 只采纳中间句、按窗口偏移映射回全局时间,文本/字数不一致则拒绝采纳\n- 修复预存 bug:\u003caudio\u003e durationchange 早于 loadedmetadata 触发,把\n 播头恢复值踩回 0,导致导入/恢复音频后播头无法停在首个复核句\n- 证据:contracts 24 用例;两后端各 +1 真实 DB 验收(进空隙/吞邻句 409/\n 字数漂移 409/跨租户 404);e2e 9 用例(模型层打桩,切片+写链+DB 回读\n 全真实);棘轮收紧 testsPassed 68→71、uiTestsPassed 8→9、\n ownTestCases 76→80;三级门禁 2026-07-22 本仓实跑全绿\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:40:35-07:00","added":["apps/web/src/features/alignment/lib/audio-slice.ts"],"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.controller.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/components/EventFeed.tsx","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.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/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-validation-source.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":29685,"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-22T12:35:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784706050
|
1784706127
|
0
|
1784706047
|
1784706127
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23435
|
Add Cantonese support and language contract valida Add Cantonese support and language contract validation...
|
63
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
bbe7744fc0df50ca87397478731523692d59a867
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e35b3d57744e6178a7c3fdeae0aab051c6f2408f","after":"bbe7744fc0df50ca87397478731523692d59a867","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/e35b3d57744e6178a7c3fdeae0aab051c6f2408f...bbe7744fc0df50ca87397478731523692d59a867","commits":[{"id":"bbe7744fc0df50ca87397478731523692d59a867","message":"Add Cantonese support and language contract validation\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/bbe7744fc0df50ca87397478731523692d59a867","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T21:35:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","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"]}],"total_commits":0,"head_commit":{"id":"bbe7744fc0df50ca87397478731523692d59a867","message":"Add Cantonese support and language contract validation\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/bbe7744fc0df50ca87397478731523692d59a867","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T21:35:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","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"]},"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":29630,"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-22T11:43: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
|
1784694955
|
1784695046
|
0
|
1784694954
|
1784695047
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23434
|
fix: 工作台展示与激活解耦修复播放闪烁;移除引擎标识显示
|
63
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
e35b3d57744e6178a7c3fdeae0aab051c6f2408f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b55d1eece101ec72f25af96f62713da05ae06ff","after":"e35b3d57744e6178a7c3fdeae0aab051c6f2408f","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/1b55d1eece101ec72f25af96f62713da05ae06ff...e35b3d57744e6178a7c3fdeae0aab051c6f2408f","commits":[{"id":"e35b3d57744e6178a7c3fdeae0aab051c6f2408f","message":"fix: 工作台展示与激活解耦修复播放闪烁;移除引擎标识显示\n\n- 闪烁根因:激活与展示耦合在叶子字区间判定,播放穿过字间空洞时\n 三句上下文/字级轨道/KTV/检查器整块逐帧卸载重挂\n- 修法:展示层改句包络定位当前句;激活层仍只认叶子字区间\n (空洞内零字扫色、data-lyric-active=false,蓝图不变量保持),\n 句间空档三层空态不变(e2e 无词隔离用例语义原样)\n- 波形画布改 layout-effect 与播头同帧提交,仅尺寸变化时重设像素\n- 头部「Qwen3 FA · 80ms grid」与错误兜底文案中的引擎标识不再显示\n (engine/runtimeContract 数据层保留,审计不受影响)\n- 证据:typecheck 绿;check:ui 7/7(2026-07-21 实跑);\n 真实空洞点实测(句内 52.40s 整行保持、句间 63.88s 三层空态)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/e35b3d57744e6178a7c3fdeae0aab051c6f2408f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T20:43:46-07:00","added":[],"removed":[],"modified":["apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","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/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"e35b3d57744e6178a7c3fdeae0aab051c6f2408f","message":"fix: 工作台展示与激活解耦修复播放闪烁;移除引擎标识显示\n\n- 闪烁根因:激活与展示耦合在叶子字区间判定,播放穿过字间空洞时\n 三句上下文/字级轨道/KTV/检查器整块逐帧卸载重挂\n- 修法:展示层改句包络定位当前句;激活层仍只认叶子字区间\n (空洞内零字扫色、data-lyric-active=false,蓝图不变量保持),\n 句间空档三层空态不变(e2e 无词隔离用例语义原样)\n- 波形画布改 layout-effect 与播头同帧提交,仅尺寸变化时重设像素\n- 头部「Qwen3 FA · 80ms grid」与错误兜底文案中的引擎标识不再显示\n (engine/runtimeContract 数据层保留,审计不受影响)\n- 证据:typecheck 绿;check:ui 7/7(2026-07-21 实跑);\n 真实空洞点实测(句内 52.40s 整行保持、句间 63.88s 三层空态)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/e35b3d57744e6178a7c3fdeae0aab051c6f2408f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T20:43:46-07:00","added":[],"removed":[],"modified":["apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","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/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"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":29611,"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-22T10:55: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
|
6
|
1784691828
|
1784691919
|
0
|
1784691828
|
1784691920
|
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
|
|
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
|
|
23640
|
feat(voiceprint): harden recognition and add froze feat(voiceprint): harden recognition and add frozen evaluation workflow...
|
62
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
550f0c01417925fdf38c4bfe8b949a7fa3ef72e3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","after":"550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/ca134d5514b10ecb8b367c953c3284aaa5984f8a...550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","commits":[{"id":"550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","message":"feat(voiceprint): harden recognition and add frozen evaluation workflow\n\nKeep identity decisions independent of display topK, reject inconsistent\nenrollment, correct activity evidence, and rerank changed scoring weights.\nAdd frozen datasets, open-set evaluation, scoring experiments, and model,\ntemplate, policy and pipeline compatibility checks.\n\nInclude reviewed workspace improvements for tenant fallback rejection,\nbounded sidecar waits, VM Redis capacity and responsive recording workflows.\nUpdate contracts, regressions, documentation and machine evidence together.\nThe change spans the full recognition workflow and its governance assets.\n\nValidation: 84 backend/contracts tests, 83 Python tests, 9 browser tests;\nlint, typecheck, build and diff checks passed.\nGovernance remains blocked by two expired real-model/calibration reports.\nTarget-domain accuracy, model adaptation and production rollout remain open.\nNo production algorithm deployment or calibration activation performed.\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-05T02:04:57-07:00","added":["apps/api-fastify/test/sidecar-timeout.test.ts","apps/api-nestjs/test/sidecar-timeout.test.ts","configs/voiceprint-dataset.example.json","docs/analysis/voiceprint-accuracy-2026-09-05/evidence.json","docs/analysis/voiceprint-accuracy-2026-09-05/reproduce.py","docs/voiceprint-accuracy-implementation.md","docs/voiceprint-accuracy-improvement-plan.md","scripts/compare_voiceprint.py","scripts/evaluate_voiceprint.py","scripts/run-python.sh","scripts/validate_voiceprint_dataset.py","src/speaker_embedding/dataset.py","src/speaker_embedding/evaluation.py","src/speaker_embedding/experiments.py","src/speaker_embedding/quality.py","tests/test_accuracy.py"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/voiceprint/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/voiceprint/AudioPicker.tsx","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/SpeakersPanel.tsx","deploy/vm/.env.vm.example","deploy/vm/compose.yaml","docs/README.md","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","package.json","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/calibrate_voiceprint.py","scripts/check_voiceprint_real.py","src/speaker_embedding/calibration.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/singing_activity.py","src/speaker_embedding/speaker_db.py","tests/test_sidecar.py","tests/test_speaker_db.py"]}],"total_commits":0,"head_commit":{"id":"550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","message":"feat(voiceprint): harden recognition and add frozen evaluation workflow\n\nKeep identity decisions independent of display topK, reject inconsistent\nenrollment, correct activity evidence, and rerank changed scoring weights.\nAdd frozen datasets, open-set evaluation, scoring experiments, and model,\ntemplate, policy and pipeline compatibility checks.\n\nInclude reviewed workspace improvements for tenant fallback rejection,\nbounded sidecar waits, VM Redis capacity and responsive recording workflows.\nUpdate contracts, regressions, documentation and machine evidence together.\nThe change spans the full recognition workflow and its governance assets.\n\nValidation: 84 backend/contracts tests, 83 Python tests, 9 browser tests;\nlint, typecheck, build and diff checks passed.\nGovernance remains blocked by two expired real-model/calibration reports.\nTarget-domain accuracy, model adaptation and production rollout remain open.\nNo production algorithm deployment or calibration activation performed.\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-05T02:04:57-07:00","added":["apps/api-fastify/test/sidecar-timeout.test.ts","apps/api-nestjs/test/sidecar-timeout.test.ts","configs/voiceprint-dataset.example.json","docs/analysis/voiceprint-accuracy-2026-09-05/evidence.json","docs/analysis/voiceprint-accuracy-2026-09-05/reproduce.py","docs/voiceprint-accuracy-implementation.md","docs/voiceprint-accuracy-improvement-plan.md","scripts/compare_voiceprint.py","scripts/evaluate_voiceprint.py","scripts/run-python.sh","scripts/validate_voiceprint_dataset.py","src/speaker_embedding/dataset.py","src/speaker_embedding/evaluation.py","src/speaker_embedding/experiments.py","src/speaker_embedding/quality.py","tests/test_accuracy.py"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/voiceprint/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/voiceprint/AudioPicker.tsx","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/SpeakersPanel.tsx","deploy/vm/.env.vm.example","deploy/vm/compose.yaml","docs/README.md","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","package.json","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/calibrate_voiceprint.py","scripts/check_voiceprint_real.py","src/speaker_embedding/calibration.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/singing_activity.py","src/speaker_embedding/speaker_db.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1966,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-15T08:42:42+08:00","updated_at":"2026-09-05T17:05:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1788599193
|
1788599219
|
0
|
1788599192
|
1788599220
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23517
|
chore: record post-merge acceptance evidence
|
62
|
5
|
governance.yml
|
9
|
5
|
0
|
refs/heads/main
|
ca134d5514b10ecb8b367c953c3284aaa5984f8a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","after":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59...ca134d5514b10ecb8b367c953c3284aaa5984f8a","commits":[{"id":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","message":"chore: record post-merge acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/ca134d5514b10ecb8b367c953c3284aaa5984f8a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T02:39:15-07:00","added":[],"removed":[],"modified":["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"]},{"id":"d674e4aa3b5af117d85713a1e9d05ccb6b82ce3f","message":"merge: consolidate voiceprint UI branch\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/d674e4aa3b5af117d85713a1e9d05ccb6b82ce3f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T02:34:29-07:00","added":[],"removed":[],"modified":["apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/app/voiceprint/page.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","packages/contracts/src/voiceprint.ts","reports/contract-consumers.latest.json","reports/naming.latest.json","reports/ui-acceptance.latest.json"]},{"id":"e9053d78ad792bc6dc023b7e1cc96fd2d7d9ea9a","message":"test: 补齐候选分项分数的 UI 断言覆盖\n\n反证发现:把候选行「证据A」改回「W」后 check:ui 仍然 8/8 全绿——\n说明分项分数那一行此前零断言覆盖,改文案不会红。既有断言只覆盖了\n判定原因文案、证据分歧徽章和底栏两条权重。\n\n新增一条对 identify-result 的 toContainText,锁住标签与数值:\n「证据A 0.920 · 证据B 0.900 · 分歧 0.020」(对应 stub match 分支\nwavlmScore=0.92 / ecapaScore=0.90 / scoreDisagreement=0.02)。\n\n断言有牙已实证:源码停在旧标签时该用例红(uiTestsPassed 7/8,\nReceived「W 0.920 · 证据B 0.900」),还原后 8/8 绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/e9053d78ad792bc6dc023b7e1cc96fd2d7d9ea9a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-05T21:07:07-07:00","added":[],"removed":[],"modified":["apps/web/e2e/acceptance.spec.ts","reports/ui-acceptance.latest.json"]},{"id":"ccf8759df88298d325908e7a56837fe1c7778736","message":"feat: 声纹 UI 改用中性证据标签与巨嗨品牌口径\n\n展示层不再出现模型名,技术真源保持不变。\n\n- 候选分项 W/E → 证据A/证据B,「差」→「分歧」,徽章「模型分歧」→「证据分歧」\n- 底栏决策有效权重 / 召回投影 W../E.. → A../B..\n- 判定原因单源(contracts)「WavLM 与 ECAPA 证据分歧过大」→「两路声纹证据分歧过大」\n- 页面主标题与首页入口「声纹工作台」→「巨嗨声音画像工作台」\n- 副标题「WavLM + ECAPA 融合」→「双路证据融合」\n\n刻意不动的部分:contracts 字段名(wavlmScore / retrievalWavlmWeight 等)与\nsidecar JSON 逐字对齐,改名会打断三层真源并触发 check:contract-consumers;\n路由段 /voiceprint 与组件名保持不变。分项分数继续展示,兑现\n「双模型可观测、不能只看黑盒融合分」的既有承诺。\n\nE2E 四条硬编码断言同步(分歧原因文案、证据分歧徽章、两条权重正则)。\n验证:typecheck 5/5、lint、check:naming、check:contract-consumers 全绿;\n真实运行服务上复验 7 人库与历史辨认结果渲染正确,控制台 0 错误。\ncheck:ui 未跑(需独立测试库 PG:55432 + Redis:6382)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/ccf8759df88298d325908e7a56837fe1c7778736","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-05T21:00:27-07:00","added":[],"removed":[],"modified":["apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/app/voiceprint/page.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","packages/contracts/src/voiceprint.ts","reports/contract-consumers.latest.json","reports/naming.latest.json"]}],"total_commits":0,"head_commit":{"id":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","message":"chore: record post-merge acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/ca134d5514b10ecb8b367c953c3284aaa5984f8a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T02:39:15-07:00","added":[],"removed":[],"modified":["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"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1713,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":2,"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-08-24T17:33: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
|
1787564571
|
1787564661
|
0
|
1787564570
|
1787564662
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23458
|
feat: harden voiceprint query integrity
|
62
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","after":"3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/3d3d1a4d8c4ab00b1cefbc239838007a04296172...3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","commits":[{"id":"3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","message":"feat: harden voiceprint query integrity\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T02:09:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/IdentifyPanel.tsx","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},{"id":"7d5bf03ace3e1daf460a271e6fabff8c5da00b8b","message":"feat: improve voiceprint recognition governance\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/7d5bf03ace3e1daf460a271e6fabff8c5da00b8b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T01:32:56-07:00","added":["scripts/repair-vm-redis-aof.sh","scripts/run-python-tests.sh"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/src/modules/voiceprint/tasks.service.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/src/voiceprint/voiceprint.service.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/AudioPicker.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","docs/research-age-gender.md","package.json","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs","scripts/governance-report.mjs","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","tests/test_age_gender_research.py","tests/test_age_gender_sidecar.py","tests/test_sidecar.py","tests/test_speaker_db.py"]}],"total_commits":0,"head_commit":{"id":"3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","message":"feat: harden voiceprint query integrity\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T02:09:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/IdentifyPanel.tsx","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1473,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":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-22T09:58:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1785407063
|
1785410372
|
0
|
1785407062
|
1785410372
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23432
|
Harden recording release E2E assertion
|
62
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
3d3d1a4d8c4ab00b1cefbc239838007a04296172
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"73bd623dfedff79a02fac961d1c16f106137e2df","after":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/73bd623dfedff79a02fac961d1c16f106137e2df...3d3d1a4d8c4ab00b1cefbc239838007a04296172","commits":[{"id":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","message":"Harden recording release E2E assertion\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3d3d1a4d8c4ab00b1cefbc239838007a04296172","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T18:58:06-07:00","added":[],"removed":[],"modified":[".gitignore","apps/web/e2e/acceptance.spec.ts","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"]}],"total_commits":0,"head_commit":{"id":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","message":"Harden recording release E2E assertion\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3d3d1a4d8c4ab00b1cefbc239838007a04296172","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T18:58:06-07:00","added":[],"removed":[],"modified":[".gitignore","apps/web/e2e/acceptance.spec.ts","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"]},"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":1460,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":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-22T01:13: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
|
8
|
1784685492
|
1784685545
|
0
|
1784685491
|
1784685545
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23430
|
Strengthen voiceprint governance and runtime accep Strengthen voiceprint governance and runtime acceptance...
|
62
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
73bd623dfedff79a02fac961d1c16f106137e2df
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"99c0c69becb251d64b434b6ab315d0562888ad8d","after":"73bd623dfedff79a02fac961d1c16f106137e2df","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/99c0c69becb251d64b434b6ab315d0562888ad8d...73bd623dfedff79a02fac961d1c16f106137e2df","commits":[{"id":"73bd623dfedff79a02fac961d1c16f106137e2df","message":"Strengthen voiceprint governance and runtime acceptance\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/73bd623dfedff79a02fac961d1c16f106137e2df","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T10:13:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/IdentifyPanel.tsx","docs/domain/voiceprint-blueprint.md","docs/product-prd.md","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","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/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_age_gender_research.py","tests/test_age_gender_sidecar.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},{"id":"40a5c4ef3404ccd2f51b8244626d95d1b5939512","message":"fix: stabilize UI acceptance runner\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/40a5c4ef3404ccd2f51b8244626d95d1b5939512","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-18T23:52:59-07:00","added":[],"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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"73bd623dfedff79a02fac961d1c16f106137e2df","message":"Strengthen voiceprint governance and runtime acceptance\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/73bd623dfedff79a02fac961d1c16f106137e2df","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T10:13:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/IdentifyPanel.tsx","docs/domain/voiceprint-blueprint.md","docs/product-prd.md","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","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/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_age_gender_research.py","tests/test_age_gender_sidecar.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1293,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":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-16T12:03:58+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
|
1784654024
|
1784655050
|
0
|
1784654024
|
1784655050
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23428
|
fix: harden microphone recording fallback
|
62
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
99c0c69becb251d64b434b6ab315d0562888ad8d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"32c70bb2198cf25b362a49e4f74387dd1a47768a","after":"99c0c69becb251d64b434b6ab315d0562888ad8d","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/32c70bb2198cf25b362a49e4f74387dd1a47768a...99c0c69becb251d64b434b6ab315d0562888ad8d","commits":[{"id":"99c0c69becb251d64b434b6ab315d0562888ad8d","message":"fix: harden microphone recording fallback\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/99c0c69becb251d64b434b6ab315d0562888ad8d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-15T21:03:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/AudioPicker.tsx","docs/deployment-vm.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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"99c0c69becb251d64b434b6ab315d0562888ad8d","message":"fix: harden microphone recording fallback\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/99c0c69becb251d64b434b6ab315d0562888ad8d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-15T21:03:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/AudioPicker.tsx","docs/deployment-vm.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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},"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":1195,"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-15T13:19:41+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1784174640
|
1784174731
|
0
|
1784174638
|
1784174731
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23427
|
feat: complete calibrated voiceprint workflow
|
62
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
32c70bb2198cf25b362a49e4f74387dd1a47768a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e795edf9d8130692c02ac8d6083ddbd41edcdc0c","after":"32c70bb2198cf25b362a49e4f74387dd1a47768a","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/e795edf9d8130692c02ac8d6083ddbd41edcdc0c...32c70bb2198cf25b362a49e4f74387dd1a47768a","commits":[{"id":"32c70bb2198cf25b362a49e4f74387dd1a47768a","message":"feat: complete calibrated voiceprint workflow\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/32c70bb2198cf25b362a49e4f74387dd1a47768a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T22:19:23-07:00","added":["configs/voiceprint-calibration.json","reports/ui-audit-registration/01-disabled-registration.png","reports/ui-audit-registration/02-registration-validation-fixed.png","reports/ui-audit-registration/03-registration-validation-viewport.png","reports/voiceprint-calibration.latest.json","scripts/calibrate_voiceprint.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/audio_payload.py","src/speaker_embedding/calibration.py","tests/test_age_gender_sidecar.py","tests/test_calibration.py"],"removed":[],"modified":[".dockerignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","deploy/vm/.env.vm.example","deploy/vm/Dockerfile.research","deploy/vm/Dockerfile.sidecar","deploy/vm/compose.yaml","deploy/vm/requirements-research.txt","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","docs/research-age-gender.md","package.json","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","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/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/deploy-vm.sh","scripts/governance-report.mjs","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/__init__.py","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_sidecar.py","tests/test_speaker_db.py"]}],"total_commits":0,"head_commit":{"id":"32c70bb2198cf25b362a49e4f74387dd1a47768a","message":"feat: complete calibrated voiceprint workflow\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/32c70bb2198cf25b362a49e4f74387dd1a47768a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T22:19:23-07:00","added":["configs/voiceprint-calibration.json","reports/ui-audit-registration/01-disabled-registration.png","reports/ui-audit-registration/02-registration-validation-fixed.png","reports/ui-audit-registration/03-registration-validation-viewport.png","reports/voiceprint-calibration.latest.json","scripts/calibrate_voiceprint.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/audio_payload.py","src/speaker_embedding/calibration.py","tests/test_age_gender_sidecar.py","tests/test_calibration.py"],"removed":[],"modified":[".dockerignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","deploy/vm/.env.vm.example","deploy/vm/Dockerfile.research","deploy/vm/Dockerfile.sidecar","deploy/vm/compose.yaml","deploy/vm/requirements-research.txt","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","docs/research-age-gender.md","package.json","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","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/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/deploy-vm.sh","scripts/governance-report.mjs","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/__init__.py","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":918,"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-15T11:24:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784092782
|
1784092836
|
0
|
1784092781
|
1784092836
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23426
|
feat: harden voiceprint deployment and profile wor feat: harden voiceprint deployment and profile workflow...
|
62
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
e795edf9d8130692c02ac8d6083ddbd41edcdc0c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76","after":"e795edf9d8130692c02ac8d6083ddbd41edcdc0c","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/64bd1beaac8e1a4c1063707c3d0bbf5f7e466c76...e795edf9d8130692c02ac8d6083ddbd41edcdc0c","commits":[{"id":"e795edf9d8130692c02ac8d6083ddbd41edcdc0c","message":"feat: harden voiceprint deployment and profile workflow\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/e795edf9d8130692c02ac8d6083ddbd41edcdc0c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T20:24:11-07:00","added":["apps/api-fastify/src/lib/redis-connection.ts","apps/api-fastify/test/redis-connection.test.ts","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","deploy/vm/Dockerfile.sidecar","deploy/vm/requirements-sidecar.txt","scripts/voiceprint-sidecar-ui-stub.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/voiceprint.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.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/test/http.acceptance.test.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/AudioPicker.tsx","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/SpeakersPanel.tsx","deploy/vm/compose.yaml","deploy/vm/systemd/voiceprint-compose.service","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","packages/contracts/src/index.ts","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/voiceprint-real-acceptance.latest.json","scripts/check-ui-acceptance.mjs","scripts/deploy-vm.sh","scripts/vm-status.sh","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","tests/test_sidecar.py","tests/test_speaker_db.py"]}],"total_commits":0,"head_commit":{"id":"e795edf9d8130692c02ac8d6083ddbd41edcdc0c","message":"feat: harden voiceprint deployment and profile workflow\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/e795edf9d8130692c02ac8d6083ddbd41edcdc0c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T20:24:11-07:00","added":["apps/api-fastify/src/lib/redis-connection.ts","apps/api-fastify/test/redis-connection.test.ts","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","deploy/vm/Dockerfile.sidecar","deploy/vm/requirements-sidecar.txt","scripts/voiceprint-sidecar-ui-stub.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/voiceprint.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.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/test/http.acceptance.test.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/AudioPicker.tsx","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/SpeakersPanel.tsx","deploy/vm/compose.yaml","deploy/vm/systemd/voiceprint-compose.service","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","packages/contracts/src/index.ts","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/voiceprint-real-acceptance.latest.json","scripts/check-ui-acceptance.mjs","scripts/deploy-vm.sh","scripts/vm-status.sh","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":747,"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-15T09:11: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
|
8
|
1784085875
|
1784085931
|
0
|
1784085873
|
1784085931
|
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
|
|
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
|
|
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
|
|
23423
|
C68:未接线主对齐器 fail-closed——修复 STARS/mms_fa 挂名造假调度陷阱
|
60
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
d4524b485b6859714b59ff6e265c6d3cc79941c6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"226033fd7f9e6266a679a585a26dfb935d56b1e2","after":"d4524b485b6859714b59ff6e265c6d3cc79941c6","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/226033fd7f9e6266a679a585a26dfb935d56b1e2...d4524b485b6859714b59ff6e265c6d3cc79941c6","commits":[{"id":"d4524b485b6859714b59ff6e265c6d3cc79941c6","message":"C68:未接线主对齐器 fail-closed——修复 STARS/mms_fa 挂名造假调度陷阱\n\n调度层曾对无 local_align 生产者的主对齐器(STARS/mms_fa)静默回退\nHubertFA CLI:产物挂着所选模型的名字实际是 HubertFA 对齐的。四层收口:\n- contracts:LOCAL_ALIGN_WIRED_MAIN_ALIGNER_IDS 单源 + hasWiredLocalAlignProducer\n + 契约测试锁(默认主对齐器必须已接线)\n- 执行器:resolvePipelineCommand 对未接线 id 抛 SPAWN_FAILED(桩注入不受影响)\n- 双后端:assertPipelineReady 先于状态判责返回 409\n MAIN_ALIGNER_PRODUCER_NOT_WIRED(逐字节对等 + 各 +1 判责用例)\n- UI:LoadModal 未接线模型禁选 + 琥珀徽标「生产者未接线 · 仅 CLI 研究直跑」\n (浏览器实测研究环境 5 模型清单灰显禁选)\n证据:check:runtime 324/324(floor 320→324)、check:ui 34/34、pnpm check 全绿\n\n本提交同时包含并行会话的 C65-C67 工作树改动(SOFA 校验洗绿修复/KAS 校准\n判责治理/HubertFA 直对齐路由)与 alignment-quality 新门禁。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/d4524b485b6859714b59ff6e265c6d3cc79941c6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T04:50:36-07:00","added":["reports/alignment-quality-governance.latest.json","reports/model-evidence/qingtian-human-kas-calibration.artifact.json","reports/model-evidence/qingtian-human-kas-calibration.latest.json","reports/model-evidence/qingtian-human-kas-calibration.report.html","scripts/check-alignment-quality-governance.mjs","workers/pipeline/analyze_kas_calibration.py","workers/pipeline/build_kas_calibration_artifact.py"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/alignment/alignment-pipeline.ts","apps/api-fastify/src/modules/alignment/alignment-scoring.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/test/alignment.pipeline.test.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/test/alignment.pipeline.test.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","apps/web/e2e/lyra-studio.spec.ts","apps/web/src/features/lyra-studio/components/modals/LoadModal.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/runMapping.ts","docs/domain/lyric-alignment-production-blueprint.md","package.json","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","reports/alignment-models.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-project-truth.mjs","scripts/governance-report.mjs","workers/pipeline/run_pipeline.py"]}],"total_commits":0,"head_commit":{"id":"d4524b485b6859714b59ff6e265c6d3cc79941c6","message":"C68:未接线主对齐器 fail-closed——修复 STARS/mms_fa 挂名造假调度陷阱\n\n调度层曾对无 local_align 生产者的主对齐器(STARS/mms_fa)静默回退\nHubertFA CLI:产物挂着所选模型的名字实际是 HubertFA 对齐的。四层收口:\n- contracts:LOCAL_ALIGN_WIRED_MAIN_ALIGNER_IDS 单源 + hasWiredLocalAlignProducer\n + 契约测试锁(默认主对齐器必须已接线)\n- 执行器:resolvePipelineCommand 对未接线 id 抛 SPAWN_FAILED(桩注入不受影响)\n- 双后端:assertPipelineReady 先于状态判责返回 409\n MAIN_ALIGNER_PRODUCER_NOT_WIRED(逐字节对等 + 各 +1 判责用例)\n- UI:LoadModal 未接线模型禁选 + 琥珀徽标「生产者未接线 · 仅 CLI 研究直跑」\n (浏览器实测研究环境 5 模型清单灰显禁选)\n证据:check:runtime 324/324(floor 320→324)、check:ui 34/34、pnpm check 全绿\n\n本提交同时包含并行会话的 C65-C67 工作树改动(SOFA 校验洗绿修复/KAS 校准\n判责治理/HubertFA 直对齐路由)与 alignment-quality 新门禁。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/d4524b485b6859714b59ff6e265c6d3cc79941c6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T04:50:36-07:00","added":["reports/alignment-quality-governance.latest.json","reports/model-evidence/qingtian-human-kas-calibration.artifact.json","reports/model-evidence/qingtian-human-kas-calibration.latest.json","reports/model-evidence/qingtian-human-kas-calibration.report.html","scripts/check-alignment-quality-governance.mjs","workers/pipeline/analyze_kas_calibration.py","workers/pipeline/build_kas_calibration_artifact.py"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/alignment/alignment-pipeline.ts","apps/api-fastify/src/modules/alignment/alignment-scoring.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/test/alignment.pipeline.test.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/test/alignment.pipeline.test.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","apps/web/e2e/lyra-studio.spec.ts","apps/web/src/features/lyra-studio/components/modals/LoadModal.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/runMapping.ts","docs/domain/lyric-alignment-production-blueprint.md","package.json","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","reports/alignment-models.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-project-truth.mjs","scripts/governance-report.mjs","workers/pipeline/run_pipeline.py"]},"repository":{"id":60,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":4063,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T18:48:41+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1784029847
|
1784029937
|
0
|
1784029846
|
1784029937
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23422
|
真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)
|
60
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
226033fd7f9e6266a679a585a26dfb935d56b1e2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"05d910e9c48177e24723827b424c2f8919bde17d","after":"226033fd7f9e6266a679a585a26dfb935d56b1e2","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/05d910e9c48177e24723827b424c2f8919bde17d...226033fd7f9e6266a679a585a26dfb935d56b1e2","commits":[{"id":"226033fd7f9e6266a679a585a26dfb935d56b1e2","message":"真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)\n\n- 用户提供的人工听感纠正 v2 登记进曲库 assets(check:library 绿);\n 补齐 v1 缺失的 4 行真值 + 12 行几十毫秒级精修\n- 全链复评(73/73 覆盖):拼接链行级 median 181/p90 531/≤500ms 89.0%,\n 切片基线 189/750/74.0%——C61 优势保持;SOFA 推算 median 64ms、\n 逐行判胜 41:21——根因分析结论(HubertFA 歌唱边界质量为主因)在\n 精修真值下全部稳定,排除真值口径伪影\n- 证据 reports/model-evidence/qingtian-precision-truth-v2.latest.json\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/226033fd7f9e6266a679a585a26dfb935d56b1e2","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T03:48:35-07:00","added":["reports/model-evidence/qingtian-precision-truth-v2.latest.json"],"removed":[],"modified":["曲库/library.latest.json"]}],"total_commits":0,"head_commit":{"id":"226033fd7f9e6266a679a585a26dfb935d56b1e2","message":"真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)\n\n- 用户提供的人工听感纠正 v2 登记进曲库 assets(check:library 绿);\n 补齐 v1 缺失的 4 行真值 + 12 行几十毫秒级精修\n- 全链复评(73/73 覆盖):拼接链行级 median 181/p90 531/≤500ms 89.0%,\n 切片基线 189/750/74.0%——C61 优势保持;SOFA 推算 median 64ms、\n 逐行判胜 41:21——根因分析结论(HubertFA 歌唱边界质量为主因)在\n 精修真值下全部稳定,排除真值口径伪影\n- 证据 reports/model-evidence/qingtian-precision-truth-v2.latest.json\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/226033fd7f9e6266a679a585a26dfb935d56b1e2","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T03:48:35-07:00","added":["reports/model-evidence/qingtian-precision-truth-v2.latest.json"],"removed":[],"modified":["曲库/library.latest.json"]},"repository":{"id":60,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":4057,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T15:16:29+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1784026122
|
1784026213
|
0
|
1784026121
|
1784026213
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23420
|
分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)
|
60
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
05d910e9c48177e24723827b424c2f8919bde17d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"13be1d708476428e5788727ffd735f54b027cb9f","after":"05d910e9c48177e24723827b424c2f8919bde17d","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/13be1d708476428e5788727ffd735f54b027cb9f...05d910e9c48177e24723827b424c2f8919bde17d","commits":[{"id":"05d910e9c48177e24723827b424c2f8919bde17d","message":"分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/05d910e9c48177e24723827b424c2f8919bde17d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:16:23-07:00","added":["reports/model-evidence/alignment-imprecision-root-cause.latest.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"05d910e9c48177e24723827b424c2f8919bde17d","message":"分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/05d910e9c48177e24723827b424c2f8919bde17d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:16:23-07:00","added":["reports/model-evidence/alignment-imprecision-root-cause.latest.json"],"removed":[],"modified":[]},"repository":{"id":60,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":4051,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T15:12:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784013389
|
1784013443
|
0
|
1784013389
|
1784013443
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23419
|
C64 收尾:CLAUDE.md 回灌远端 CI 双 job 绿盘证据(G14 收窄)
|
60
|
5
|
governance.yml
|
9
|
5
|
0
|
refs/heads/main
|
13be1d708476428e5788727ffd735f54b027cb9f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a7536ce9426fa12786e46db761420ec63c26b09d","after":"13be1d708476428e5788727ffd735f54b027cb9f","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/a7536ce9426fa12786e46db761420ec63c26b09d...13be1d708476428e5788727ffd735f54b027cb9f","commits":[{"id":"13be1d708476428e5788727ffd735f54b027cb9f","message":"C64 收尾:CLAUDE.md 回灌远端 CI 双 job 绿盘证据(G14 收窄)\n\nci-gate 基线行与 G14 缺口更新:GitHub run a7536ce 双 job 绿盘\n(static + runtime 316 tests + UI 34 用例);仍缺 PR 拦截实证与\n分支保护,ci-gate 保持 🟡 不放行拦截能力宣称。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/13be1d708476428e5788727ffd735f54b027cb9f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:12:15-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/alignment/alignment-verification.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","reports/alignment-models.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"13be1d708476428e5788727ffd735f54b027cb9f","message":"C64 收尾:CLAUDE.md 回灌远端 CI 双 job 绿盘证据(G14 收窄)\n\nci-gate 基线行与 G14 缺口更新:GitHub run a7536ce 双 job 绿盘\n(static + runtime 316 tests + UI 34 用例);仍缺 PR 拦截实证与\n分支保护,ci-gate 保持 🟡 不放行拦截能力宣称。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/13be1d708476428e5788727ffd735f54b027cb9f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:12:15-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/alignment/alignment-verification.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","reports/alignment-models.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"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":3898,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T15:02:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784013143
|
1784013197
|
0
|
1784013142
|
1784013197
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23418
|
C64f:UI 编排失败判责输出 + CI 跳过 macOS 视觉基线 + 失败工件上传
|
60
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
a7536ce9426fa12786e46db761420ec63c26b09d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","after":"a7536ce9426fa12786e46db761420ec63c26b09d","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/6d7311f3c50d0894683ed1b0681f23bde45a35c4...a7536ce9426fa12786e46db761420ec63c26b09d","commits":[{"id":"a7536ce9426fa12786e46db761420ec63c26b09d","message":"C64f:UI 编排失败判责输出 + CI 跳过 macOS 视觉基线 + 失败工件上传\n\n- check-ui-acceptance 失败步补打 stdout 尾巴(playwright 细节在 stdout)\n- 4 张视觉基线为 macOS chromium 生成,CI Linux 中文字体渲染差异远超容差\n (跨平台结构性差异非回归):UI_SKIP_VISUAL_BASELINES=true 显式跳过截图\n 断言(DOM/契约断言照跑),本机默认不跳、check:lyra-parity 继续守护基线\n- workflow 失败时上传 reports + playwright traces 工件(远端判责不再盲抓)\n- 本机回归:check:ui 34/34(视觉基线照跑)、lyra-parity 绿\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/a7536ce9426fa12786e46db761420ec63c26b09d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:02:33-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","apps/web/e2e/lyra-studio.spec.ts","reports/lyra-prototype-parity.latest.json","reports/ui-acceptance.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"a7536ce9426fa12786e46db761420ec63c26b09d","message":"C64f:UI 编排失败判责输出 + CI 跳过 macOS 视觉基线 + 失败工件上传\n\n- check-ui-acceptance 失败步补打 stdout 尾巴(playwright 细节在 stdout)\n- 4 张视觉基线为 macOS chromium 生成,CI Linux 中文字体渲染差异远超容差\n (跨平台结构性差异非回归):UI_SKIP_VISUAL_BASELINES=true 显式跳过截图\n 断言(DOM/契约断言照跑),本机默认不跳、check:lyra-parity 继续守护基线\n- workflow 失败时上传 reports + playwright traces 工件(远端判责不再盲抓)\n- 本机回归:check:ui 34/34(视觉基线照跑)、lyra-parity 绿\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/a7536ce9426fa12786e46db761420ec63c26b09d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:02:33-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","apps/web/e2e/lyra-studio.spec.ts","reports/lyra-prototype-parity.latest.json","reports/ui-acceptance.latest.json","scripts/check-ui-acceptance.mjs"]},"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":3866,"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-14T14:49:27+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784012560
|
1784012617
|
0
|
1784012558
|
1784012617
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23417
|
C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stde C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)...
|
60
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
6d7311f3c50d0894683ed1b0681f23bde45a35c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"262802ed1be2f708784260d2fd49e110a9c365f9","after":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/262802ed1be2f708784260d2fd49e110a9c365f9...6d7311f3c50d0894683ed1b0681f23bde45a35c4","commits":[{"id":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","message":"C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)\n\n远端 api-fastify#test 失败但 CI 日志只有 turbo 的「exited (1)」——失败步\n此前只打 stderrTail,vitest 具体失败用例(stdout 经 turbo 转发)全部丢失。\n失败时补打 stdout 尾巴(test 步扩到 12KB),远端判责不再需要登机。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/6d7311f3c50d0894683ed1b0681f23bde45a35c4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:49:21-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","message":"C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)\n\n远端 api-fastify#test 失败但 CI 日志只有 turbo 的「exited (1)」——失败步\n此前只打 stderrTail,vitest 具体失败用例(stdout 经 turbo 转发)全部丢失。\n失败时补打 stdout 尾巴(test 步扩到 12KB),远端判责不再需要登机。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/6d7311f3c50d0894683ed1b0681f23bde45a35c4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:49:21-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]},"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":3860,"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-14T14:40: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
|
8
|
1784011769
|
1784011850
|
0
|
1784011767
|
1784011850
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23416
|
C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)
|
60
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
262802ed1be2f708784260d2fd49e110a9c365f9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2358c119b985d2797496bd76d8683556005f5998","after":"262802ed1be2f708784260d2fd49e110a9c365f9","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/2358c119b985d2797496bd76d8683556005f5998...262802ed1be2f708784260d2fd49e110a9c365f9","commits":[{"id":"262802ed1be2f708784260d2fd49e110a9c365f9","message":"C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)\n\nCI 判责输出(C64c 新增)直接暴露根因:turbo/vitest 在 CI 上强制彩色,\n「Tests ⎋[1m⎋[32m95 passed」的转义序列夹在关键词与数字之间使\n/Tests\\s+(\\d+)\\s+passed/ 失配、汇总恒 0;本机非 TTY 无色码故从未复现。\n解析前剥 \\x1b[..m 序列,彩色/无色输入均验证正确;本机 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/262802ed1be2f708784260d2fd49e110a9c365f9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:39:54-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"262802ed1be2f708784260d2fd49e110a9c365f9","message":"C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)\n\nCI 判责输出(C64c 新增)直接暴露根因:turbo/vitest 在 CI 上强制彩色,\n「Tests ⎋[1m⎋[32m95 passed」的转义序列夹在关键词与数字之间使\n/Tests\\s+(\\d+)\\s+passed/ 失配、汇总恒 0;本机非 TTY 无色码故从未复现。\n解析前剥 \\x1b[..m 序列,彩色/无色输入均验证正确;本机 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/262802ed1be2f708784260d2fd49e110a9c365f9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:39:54-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json","scripts/check-runtime-acceptance.mjs"]},"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":3851,"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-14T14:32:58+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
|
1784011490
|
1784011581
|
0
|
1784011200
|
1784011582
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23415
|
C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出
|
60
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
2358c119b985d2797496bd76d8683556005f5998
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2454d24e46f12337b9574f9d677ddf051fb17005","after":"2358c119b985d2797496bd76d8683556005f5998","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/2454d24e46f12337b9574f9d677ddf051fb17005...2358c119b985d2797496bd76d8683556005f5998","commits":[{"id":"2358c119b985d2797496bd76d8683556005f5998","message":"C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出\n\n远端 CI runtime job「Tests passed 0」判责:CI 无 TTY 时 turbo 任务日志\n可能走 stderr,本机 TTY 正常——输出口径分叉。测试数汇总改为解析\nstdout+stderr;解析为 0 时把原始输出尾巴打进失败日志(远端无法登机\n时可从 CI 日志直接定位)。本机 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/2358c119b985d2797496bd76d8683556005f5998","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:32:52-07:00","added":[],"removed":[],"modified":["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/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"2358c119b985d2797496bd76d8683556005f5998","message":"C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出\n\n远端 CI runtime job「Tests passed 0」判责:CI 无 TTY 时 turbo 任务日志\n可能走 stderr,本机 TTY 正常——输出口径分叉。测试数汇总改为解析\nstdout+stderr;解析为 0 时把原始输出尾巴打进失败日志(远端无法登机\n时可从 CI 日志直接定位)。本机 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/2358c119b985d2797496bd76d8683556005f5998","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:32:52-07:00","added":[],"removed":[],"modified":["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/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]},"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":3835,"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-14T14:24: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
|
4
|
0
|
1784011200
|
0
|
1784010778
|
1784011200
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23414
|
C64b:CI MinIO 迁官方镜像 step(bitnami/minio 已从 Docker H C64b:CI MinIO 迁官方镜像 step(bitnami/minio 已从 Docker Hub 下架)...
|
60
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
2454d24e46f12337b9574f9d677ddf051fb17005
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1270a9b62cf64e8bf85e71686a39728438f36160","after":"2454d24e46f12337b9574f9d677ddf051fb17005","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/1270a9b62cf64e8bf85e71686a39728438f36160...2454d24e46f12337b9574f9d677ddf051fb17005","commits":[{"id":"2454d24e46f12337b9574f9d677ddf051fb17005","message":"C64b:CI MinIO 迁官方镜像 step(bitnami/minio 已从 Docker Hub 下架)\n\n首次远端 runtime job 实证 bitnami/minio:latest manifest unknown(Bitnami\n目录变更下架)。GH services 不支持启动命令,改为 step 直跑\n`docker run minio/minio server /data`——与 CLAUDE.md 本机口径同一条命令,\n消除第二套镜像来源。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/2454d24e46f12337b9574f9d677ddf051fb17005","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:24:38-07:00","added":["reports/project-truth.latest.json","scripts/check-project-truth.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","package.json","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/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"2454d24e46f12337b9574f9d677ddf051fb17005","message":"C64b:CI MinIO 迁官方镜像 step(bitnami/minio 已从 Docker Hub 下架)\n\n首次远端 runtime job 实证 bitnami/minio:latest manifest unknown(Bitnami\n目录变更下架)。GH services 不支持启动命令,改为 step 直跑\n`docker run minio/minio server /data`——与 CLAUDE.md 本机口径同一条命令,\n消除第二套镜像来源。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/2454d24e46f12337b9574f9d677ddf051fb17005","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:24:38-07:00","added":["reports/project-truth.latest.json","scripts/check-project-truth.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","package.json","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/validation-source.latest.json","scripts/governance-report.mjs"]},"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":3730,"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-14T14:21: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
|
3
|
4
|
0
|
1784010778
|
0
|
1784010285
|
1784010778
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23413
|
C64:CI 静态门禁与本机磁盘资产门禁解耦(首次远端 CI 红盘判责)
|
60
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
1270a9b62cf64e8bf85e71686a39728438f36160
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","after":"1270a9b62cf64e8bf85e71686a39728438f36160","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3...1270a9b62cf64e8bf85e71686a39728438f36160","commits":[{"id":"1270a9b62cf64e8bf85e71686a39728438f36160","message":"C64:CI 静态门禁与本机磁盘资产门禁解耦(首次远端 CI 红盘判责)\n\n首推 GitHub 后 governance.yml 静态 job 如预期红盘:check:models/\ncheck:alignment-models/check:library 的本质是「登记 ↔ 磁盘实况」本机门禁,\n而模型权重(~13GB)与曲库音频按体积/版权纪律不入库,CI runner 必红且\n不构成真实信号。\n\n- 三脚本加 GOVERNANCE_SKIP_LOCAL_ASSET_GATES=true 显式跳过 seam:醒目声明\n + 不产报告不伪造绿盘;本机默认不设、照常硬校验(本机双路径已验证)\n- workflow 静态 job 设置该变量并注释证据真源(已提交的本机\n reports/*.latest.json,由 check:governance 棘轮消费)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/1270a9b62cf64e8bf85e71686a39728438f36160","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:21:23-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","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/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/validation-source.latest.json","scripts/check-alignment-models.mjs","scripts/check-model-assets.mjs","scripts/check-song-library.mjs"]}],"total_commits":0,"head_commit":{"id":"1270a9b62cf64e8bf85e71686a39728438f36160","message":"C64:CI 静态门禁与本机磁盘资产门禁解耦(首次远端 CI 红盘判责)\n\n首推 GitHub 后 governance.yml 静态 job 如预期红盘:check:models/\ncheck:alignment-models/check:library 的本质是「登记 ↔ 磁盘实况」本机门禁,\n而模型权重(~13GB)与曲库音频按体积/版权纪律不入库,CI runner 必红且\n不构成真实信号。\n\n- 三脚本加 GOVERNANCE_SKIP_LOCAL_ASSET_GATES=true 显式跳过 seam:醒目声明\n + 不产报告不伪造绿盘;本机默认不设、照常硬校验(本机双路径已验证)\n- workflow 静态 job 设置该变量并注释证据真源(已提交的本机\n reports/*.latest.json,由 check:governance 棘轮消费)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/1270a9b62cf64e8bf85e71686a39728438f36160","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:21:23-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","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/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/validation-source.latest.json","scripts/check-alignment-models.mjs","scripts/check-model-assets.mjs","scripts/check-song-library.mjs"]},"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":3710,"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-14T14:17:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
4
|
0
|
1784010285
|
0
|
1784010092
|
1784010285
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-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
|
|
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
|
|
23799
|
docs: record the uiux-workbench1 release
|
57
|
5
|
governance.yml
|
169
|
5
|
0
|
refs/heads/main
|
433f9988d44348bc35577d08e7a8bc3e69ad5649
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8d57841881cc5270b1ef893be3ff0d5b9599cd20","after":"433f9988d44348bc35577d08e7a8bc3e69ad5649","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/8d57841881cc5270b1ef893be3ff0d5b9599cd20...433f9988d44348bc35577d08e7a8bc3e69ad5649","commits":[{"id":"433f9988d44348bc35577d08e7a8bc3e69ad5649","message":"docs: record the uiux-workbench1 release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/433f9988d44348bc35577d08e7a8bc3e69ad5649","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T09:04:24-07:00","added":["docs/releases/2026-09-09-uiux-workbench1.md"],"removed":[],"modified":["docs/governance/log/2026-09-09-uiux-workbench.md","docs/releases/current.md"]}],"total_commits":0,"head_commit":{"id":"433f9988d44348bc35577d08e7a8bc3e69ad5649","message":"docs: record the uiux-workbench1 release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/433f9988d44348bc35577d08e7a8bc3e69ad5649","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T09:04:24-07:00","added":["docs/releases/2026-09-09-uiux-workbench1.md"],"removed":[],"modified":["docs/governance/log/2026-09-09-uiux-workbench.md","docs/releases/current.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":810765,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T23:51:40+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788969870
|
1788969993
|
0
|
1788969870
|
1788969993
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23798
|
test: re-verify the workbench UI/UX round together test: re-verify the workbench UI/UX round together with rate limiting...
|
57
|
5
|
governance.yml
|
168
|
5
|
0
|
refs/heads/main
|
8d57841881cc5270b1ef893be3ff0d5b9599cd20
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9c6389b174f411b411ccacd32f2d6816afeeb337","after":"8d57841881cc5270b1ef893be3ff0d5b9599cd20","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/9c6389b174f411b411ccacd32f2d6816afeeb337...8d57841881cc5270b1ef893be3ff0d5b9599cd20","commits":[{"id":"8d57841881cc5270b1ef893be3ff0d5b9599cd20","message":"test: re-verify the workbench UI/UX round together with rate limiting\n\nSeven gates and the dependency audit passed again on the tree that\nmerges main (rate-limit round, cc0ce5e4) into this branch, bound to\nsha256:1d2a755beec5a59f51b245d59adbc2ba16d2f6448882247e713eb237e991dd3d; pnpm check passes. Heavy baseline rows re-marked.\nEvidence: acceptance-artifacts/uiux-workbench-2026-09-09/ (round1/ holds\nthe pre-merge run).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8d57841881cc5270b1ef893be3ff0d5b9599cd20","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:50:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"7ab708798635a9690f6f989f18c0cae1fb268e35","message":"Merge branch 'main' into feat/uiux-workbench-20260909\n\n# Conflicts:\n#\tCLAUDE.md\n#\treports/contract-consumers.latest.json\n#\treports/dependency-audit.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/inference-acceptance.latest.json\n#\treports/material-review-concurrency-guard.latest.json\n#\treports/migrations.latest.json\n#\treports/module-boundary.latest.json\n#\treports/naming.latest.json\n#\treports/order-concurrency-guard.latest.json\n#\treports/production-acceptance.latest.json\n#\treports/production-security.latest.json\n#\treports/public-file-acceptance.latest.json\n#\treports/public-file-integration.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/script-acceptance.latest.json\n#\treports/sidecar-tests.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/toolchain.latest.json\n#\treports/ui-acceptance.latest.json\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7ab708798635a9690f6f989f18c0cae1fb268e35","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:41:48-07:00","added":["apps/api-fastify/src/modules/rate-limit.ts","apps/api-fastify/src/plugins/rate-limit.ts","apps/api-fastify/test/rate-limit.test.ts","apps/api-nestjs/src/rate-limit/rate-limit.module.ts","apps/api-nestjs/src/rate-limit/rate-limit.service.ts","apps/api-nestjs/src/rate-limit/submission-rate-limit.guard.ts","apps/api-nestjs/test/rate-limit.test.ts","apps/web/src/lib/bff-rate-limit.test.mjs","apps/web/src/lib/bff-rate-limit.ts","apps/web/src/lib/server/rate-limit.ts","docs/governance/log/2026-09-09-rate-limit.md","packages/contracts/src/rate-limit-policy.test.ts","packages/contracts/src/rate-limit-policy.ts","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/director-workbench.desktop.png","reports/director-workbench.mobile.png","reports/image-creation-1135.png","reports/image-creation-1440.png","reports/image-creation-390.png","reports/image-creation-768.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-mobile-form.png","reports/image-edit-result.png","reports/rate-limit-2026-09-09/README.md","reports/rate-limit-2026-09-09/gate-results.round1.jsonl","reports/rate-limit-2026-09-09/gate-results.round2.jsonl","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-asset-dialog.mobile.png","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.first.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-making.390.png","reports/template-making.768.png","reports/template-preview.edit.png","reports/template-preview.templates.png","reports/template-save-ready.APPLICATION.png","reports/template-save-ready.GENERAL.png","reports/template-save-ready.SCENE.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.png"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/routes/creative-project.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/src/routes/shijie.ts","apps/api-fastify/src/types.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/creative-project/creative-project.controller.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/shooting-script.controller.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/shijie/shijie.controller.ts","apps/web/src/app/api/[...path]/route.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","packages/contracts/src/index.ts","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ui-failure.png","reports/ui-failure.txt","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png","scripts/check-production-security.mjs"]},{"id":"02b7a3da9c36632dd84fad950334446c74913b00","message":"Merge branch 'main' into feat/uiux-workbench-20260909\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/02b7a3da9c36632dd84fad950334446c74913b00","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:36:04-07:00","added":["docs/governance/log/2026-09-09-deep-analysis.md","reports/project-deep-analysis-2026-09-09.md","reports/project-deep-analysis-2026-09-09/README.md"],"removed":[],"modified":["CLAUDE.md","reports/project-deep-analysis.latest.md"]},{"id":"47ae7b7c711428134cc222f3544e4f59c936de4d","message":"test: verify the workbench UI/UX round on an isolated stack\n\nSeven gates (runtime 10 / public-file 10 / inference 6 / script 6 /\nproduction 13 / ui 41 steps + dependency audit) passed on a throwaway\nPostgreSQL/Redis/MinIO stack with the host ClamAV, bound to source\nfingerprint sha256:c416ae79…; pnpm check passes on the same tree. The\neleven heavy baseline rows are re-marked accordingly. Logs and report\ncopies: acceptance-artifacts/uiux-workbench-2026-09-09/.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/47ae7b7c711428134cc222f3544e4f59c936de4d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:36:04-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"39d24383427a77895470147c6670d2a5332dd326","message":"docs: record the workbench UI/UX round and its evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/39d24383427a77895470147c6670d2a5332dd326","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:28:10-07:00","added":["docs/governance/log/2026-09-09-uiux-workbench.md","reports/uiux-workbench-2026-09-09/README.md","reports/uiux-workbench-2026-09-09/screens/after-desktop-create.jpg","reports/uiux-workbench-2026-09-09/screens/after-desktop-home.jpg","reports/uiux-workbench-2026-09-09/screens/after-mobile-home-full.jpg","reports/uiux-workbench-2026-09-09/screens/before-desktop-home.jpg","reports/uiux-workbench-2026-09-09/screens/before-mobile-home.jpg"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"8d57841881cc5270b1ef893be3ff0d5b9599cd20","message":"test: re-verify the workbench UI/UX round together with rate limiting\n\nSeven gates and the dependency audit passed again on the tree that\nmerges main (rate-limit round, cc0ce5e4) into this branch, bound to\nsha256:1d2a755beec5a59f51b245d59adbc2ba16d2f6448882247e713eb237e991dd3d; pnpm check passes. Heavy baseline rows re-marked.\nEvidence: acceptance-artifacts/uiux-workbench-2026-09-09/ (round1/ holds\nthe pre-merge run).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8d57841881cc5270b1ef893be3ff0d5b9599cd20","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:50:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":810217,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T23:37: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
|
1788969101
|
1788969192
|
0
|
1788969100
|
1788969192
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23797
|
docs(governance): re-green heavy baseline rows for docs(governance): re-green heavy baseline rows for rate limiting at cc0ce5e4...
|
57
|
5
|
governance.yml
|
167
|
5
|
0
|
refs/heads/main
|
9c6389b174f411b411ccacd32f2d6816afeeb337
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"126e9c2c24fbb30db684112abf9128a291bb38b7","after":"9c6389b174f411b411ccacd32f2d6816afeeb337","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/126e9c2c24fbb30db684112abf9128a291bb38b7...9c6389b174f411b411ccacd32f2d6816afeeb337","commits":[{"id":"9c6389b174f411b411ccacd32f2d6816afeeb337","message":"docs(governance): re-green heavy baseline rows for rate limiting at cc0ce5e4\n\nSeven isolated gates passed on the second round after relaxing the default\nbudgets; evidence summary in reports/rate-limit-2026-09-09, G33 now merged\nand awaiting deployment.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9c6389b174f411b411ccacd32f2d6816afeeb337","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:34:58-07:00","added":["reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/director-workbench.desktop.png","reports/director-workbench.mobile.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-mobile-form.png","reports/image-edit-result.png","reports/rate-limit-2026-09-09/README.md","reports/rate-limit-2026-09-09/gate-results.round1.jsonl","reports/rate-limit-2026-09-09/gate-results.round2.jsonl"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-rate-limit.md","reports/admin-mobile.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1135.png","reports/image-creation-1440.png","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.png","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},{"id":"1b4745ed1000835ca9cbd402c33db1b4b71a1e9f","message":"fix(rate-limit): relax default budgets after acceptance hit the human actor limit\n\nThe first isolated gate round rejected one real submission (submit.human.actor=1)\nduring the storyboard save flow, so the initial 30/min per-actor budget also\nthrottles ordinary continuous editing. Raise defaults to BFF 3000/600, human\n300/1200, machine 600/3000 per minute; callback buckets unchanged.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1b4745ed1000835ca9cbd402c33db1b4b71a1e9f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:26:05-07:00","added":["reports/image-creation-1135.png","reports/image-creation-1440.png","reports/image-creation-390.png","reports/image-creation-768.png","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-asset-dialog.mobile.png","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.first.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-making.390.png","reports/template-making.768.png","reports/template-preview.edit.png","reports/template-preview.templates.png","reports/template-save-ready.APPLICATION.png","reports/template-save-ready.GENERAL.png","reports/template-save-ready.SCENE.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.png"],"removed":[],"modified":["deploy/vm/.env.example","docs/deploy-vm.md","docs/governance/log/2026-09-09-rate-limit.md","packages/contracts/src/rate-limit-policy.test.ts","packages/contracts/src/rate-limit-policy.ts","reports/admin-desktop.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/ui-failure.png","reports/ui-failure.txt","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/validation-source.latest.json"]},{"id":"1021c02a1e533a2237bd3b94371fc04c7289e846","message":"merge: bring main template-current and deep-analysis records into rate-limit branch\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1021c02a1e533a2237bd3b94371fc04c7289e846","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:15:30-07:00","added":["apps/web/src/components/material-factory/template-master-source.ts","docs/governance/log/2026-09-09-deep-analysis.md","docs/governance/log/2026-09-09-template-current.md","docs/releases/2026-09-09-template-current1.md","reports/project-deep-analysis-2026-09-09.md","reports/project-deep-analysis-2026-09-09/README.md","reports/template-current-20260909/README.md","reports/template-current-20260909/summary.json"],"removed":[],"modified":["apps/api-nestjs/test/material-production-modes.integration.test.ts","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/TemplateMakingCanvas.tsx","apps/web/src/components/material-factory/TemplatePreviewButton.tsx","docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/project-deep-analysis.latest.md","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/lib/template-types-ui-acceptance.mjs"]},{"id":"ceb98eba370833efd9e362b3963fe22030b2df29","message":"docs(governance): record rate-limit round as G33 and mark heavy rows pending re-verification\n\nSource fingerprint changed on this worktree, so the eleven source-bound heavy-gate rows are\nmarked pending instead of claiming GREEN; details, thresholds, evidence and open items in\ndocs/governance/log/2026-09-09-rate-limit.md.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ceb98eba370833efd9e362b3963fe22030b2df29","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:11:57-07:00","added":["docs/governance/log/2026-09-09-rate-limit.md"],"removed":[],"modified":["CLAUDE.md"]},{"id":"a2123e86fe02b4062f37dc58a46a6da63f0e445a","message":"feat(rate-limit): sliding-window request limits for BFF, callbacks and formal submissions\n\nPolicy single source in packages/contracts/src/rate-limit-policy.ts (RATE_LIMIT_* env,\nenabled with generous defaults when unset; Redis ZSET sliding window in one Lua script;\nmemory store for local runs and tests; no schema change).\n\n- Web BFF: per verified principal + client address, read and mutation budgets split,\n 429 with Retry-After in the existing { code, message } envelope.\n- NestJS + Fastify: provider callback burst limit per providerOperationId plus a shared\n callback identity budget (receipt dedup unchanged); SubmissionRateLimitGuard /\n registerSubmissionRateLimit after the trusted-runtime check on material-factory,\n scripts, creative-projects, shijie and material-productions write routes, per\n operator then per tenant with separate HUMAN and machine thresholds.\n- Rejections counted in \u003cprefix\u003e:rejections for observation; compose passes RATE_LIMIT_*\n through to web / api-nestjs / api-fastify; docs/deploy-vm.md lists the variables.\n- check-production-security accepts a guard list that still starts with MaterialRuntimeGuard.\n\nTests: contracts 10, web 3 (node --test), NestJS 4, Fastify 5 (both with a real Redis case).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a2123e86fe02b4062f37dc58a46a6da63f0e445a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:11:57-07:00","added":["apps/api-fastify/src/modules/rate-limit.ts","apps/api-fastify/src/plugins/rate-limit.ts","apps/api-fastify/test/rate-limit.test.ts","apps/api-nestjs/src/rate-limit/rate-limit.module.ts","apps/api-nestjs/src/rate-limit/rate-limit.service.ts","apps/api-nestjs/src/rate-limit/submission-rate-limit.guard.ts","apps/api-nestjs/test/rate-limit.test.ts","apps/web/src/lib/bff-rate-limit.test.mjs","apps/web/src/lib/bff-rate-limit.ts","apps/web/src/lib/server/rate-limit.ts","packages/contracts/src/rate-limit-policy.test.ts","packages/contracts/src/rate-limit-policy.ts"],"removed":[],"modified":["apps/api-fastify/src/app.ts","apps/api-fastify/src/routes/creative-project.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/src/routes/shijie.ts","apps/api-fastify/src/types.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/creative-project/creative-project.controller.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/shooting-script.controller.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/shijie/shijie.controller.ts","apps/web/src/app/api/[...path]/route.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","packages/contracts/src/index.ts","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","scripts/check-production-security.mjs"]}],"total_commits":0,"head_commit":{"id":"9c6389b174f411b411ccacd32f2d6816afeeb337","message":"docs(governance): re-green heavy baseline rows for rate limiting at cc0ce5e4\n\nSeven isolated gates passed on the second round after relaxing the default\nbudgets; evidence summary in reports/rate-limit-2026-09-09, G33 now merged\nand awaiting deployment.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9c6389b174f411b411ccacd32f2d6816afeeb337","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:34:58-07:00","added":["reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/director-workbench.desktop.png","reports/director-workbench.mobile.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-mobile-form.png","reports/image-edit-result.png","reports/rate-limit-2026-09-09/README.md","reports/rate-limit-2026-09-09/gate-results.round1.jsonl","reports/rate-limit-2026-09-09/gate-results.round2.jsonl"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-rate-limit.md","reports/admin-mobile.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1135.png","reports/image-creation-1440.png","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.png","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":790678,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T23:12: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
|
4
|
1788968267
|
1788968357
|
0
|
1788968267
|
1788968357
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23796
|
docs: add 2026-09-09 project deep analysis round
|
57
|
5
|
governance.yml
|
166
|
5
|
0
|
refs/heads/main
|
126e9c2c24fbb30db684112abf9128a291bb38b7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fcbee15d07deb0a3212286790442541c9a86de8b","after":"126e9c2c24fbb30db684112abf9128a291bb38b7","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/fcbee15d07deb0a3212286790442541c9a86de8b...126e9c2c24fbb30db684112abf9128a291bb38b7","commits":[{"id":"126e9c2c24fbb30db684112abf9128a291bb38b7","message":"docs: add 2026-09-09 project deep analysis round\n\nBind to HEAD 2af2a14c (= release-20260909-style1 source), reconcile the\n09-07 / r18 / business / frontend rounds, record 12 adversarial findings\non surfaces added since 09-08 and 5 new security findings; register the\nround in the index, the CLAUDE.md truth map row and the governance log.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/126e9c2c24fbb30db684112abf9128a291bb38b7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:11:46-07:00","added":["docs/governance/log/2026-09-09-deep-analysis.md","reports/project-deep-analysis-2026-09-09.md","reports/project-deep-analysis-2026-09-09/README.md"],"removed":[],"modified":["CLAUDE.md","reports/project-deep-analysis.latest.md"]}],"total_commits":0,"head_commit":{"id":"126e9c2c24fbb30db684112abf9128a291bb38b7","message":"docs: add 2026-09-09 project deep analysis round\n\nBind to HEAD 2af2a14c (= release-20260909-style1 source), reconcile the\n09-07 / r18 / business / frontend rounds, record 12 adversarial findings\non surfaces added since 09-08 and 5 new security findings; register the\nround in the index, the CLAUDE.md truth map row and the governance log.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/126e9c2c24fbb30db684112abf9128a291bb38b7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T08:11:46-07:00","added":["docs/governance/log/2026-09-09-deep-analysis.md","reports/project-deep-analysis-2026-09-09.md","reports/project-deep-analysis-2026-09-09/README.md"],"removed":[],"modified":["CLAUDE.md","reports/project-deep-analysis.latest.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":790602,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T22:54:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788966725
|
1788966765
|
0
|
1788966723
|
1788966765
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23795
|
docs: record verified template master display rele docs: record verified template master display release...
|
57
|
5
|
governance.yml
|
165
|
5
|
0
|
refs/heads/main
|
fcbee15d07deb0a3212286790442541c9a86de8b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a561550788227674837cb3738304f722c034785a","after":"fcbee15d07deb0a3212286790442541c9a86de8b","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/a561550788227674837cb3738304f722c034785a...fcbee15d07deb0a3212286790442541c9a86de8b","commits":[{"id":"fcbee15d07deb0a3212286790442541c9a86de8b","message":"docs: record verified template master display release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/fcbee15d07deb0a3212286790442541c9a86de8b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:54:32-07:00","added":["docs/releases/2026-09-09-template-current1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-current.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/template-current-20260909/README.md","reports/toolchain.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"fcbee15d07deb0a3212286790442541c9a86de8b","message":"docs: record verified template master display release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/fcbee15d07deb0a3212286790442541c9a86de8b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:54:32-07:00","added":["docs/releases/2026-09-09-template-current1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-current.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/template-current-20260909/README.md","reports/toolchain.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":790550,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T22:49:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788965678
|
1788965718
|
0
|
1788965677
|
1788965718
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23794
|
test: verify combined template master and image st test: verify combined template master and image style release...
|
57
|
5
|
governance.yml
|
164
|
5
|
0
|
refs/heads/main
|
a561550788227674837cb3738304f722c034785a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2af2a14c70c41fda3e2d492d31c54dd765c8b8de","after":"a561550788227674837cb3738304f722c034785a","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/2af2a14c70c41fda3e2d492d31c54dd765c8b8de...a561550788227674837cb3738304f722c034785a","commits":[{"id":"a561550788227674837cb3738304f722c034785a","message":"test: verify combined template master and image style release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a561550788227674837cb3738304f722c034785a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:49:13-07:00","added":["reports/template-current-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/test/material-production-modes.integration.test.ts","docs/governance/log/2026-09-09-template-current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"a72b104c2c9655dba3ad8fe20f71bc1d6248b0e9","message":"Merge branch 'main' into feat/template-making-uiux\n\n# Conflicts:\n#\tCLAUDE.md\n#\treports/inference-acceptance.latest.json\n#\treports/production-acceptance.latest.json\n#\treports/public-file-acceptance.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/script-acceptance.latest.json\n#\treports/sidecar-tests.latest.json\n#\treports/ui-acceptance.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a72b104c2c9655dba3ad8fe20f71bc1d6248b0e9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:36:20-07:00","added":["docs/governance/log/2026-09-09-image-style.md","docs/releases/2026-09-09-style1.md","packages/contracts/src/image-visual-style.ts","reports/image-style-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/image-size.integration.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/image-size.integration.test.ts","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/brand.ts","docs/releases/current.md","packages/contracts/src/image-type-prompt.test.ts","packages/contracts/src/index.ts","packages/contracts/src/material.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/lib/image-creation-ui-acceptance.mjs"]},{"id":"4825b30909c987d841b72552e7b30b56d4d7ff3b","message":"fix(template): display each saved template master in canvas and preview\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4825b30909c987d841b72552e7b30b56d4d7ff3b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:35:55-07:00","added":["apps/web/src/components/material-factory/template-master-source.ts","docs/governance/log/2026-09-09-template-current.md","reports/template-current-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/TemplateMakingCanvas.tsx","apps/web/src/components/material-factory/TemplatePreviewButton.tsx","reports/inference-acceptance.latest.json","reports/production-acceptance.latest.json","reports/public-file-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/ui-acceptance.latest.json","scripts/lib/template-types-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"a561550788227674837cb3738304f722c034785a","message":"test: verify combined template master and image style release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a561550788227674837cb3738304f722c034785a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:49:13-07:00","added":["reports/template-current-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/test/material-production-modes.integration.test.ts","docs/governance/log/2026-09-09-template-current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":790332,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T22:30: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
|
4
|
1788965375
|
1788965466
|
0
|
1788965374
|
1788965466
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23793
|
docs: record image style deployment and verificati docs: record image style deployment and verification boundary...
|
57
|
5
|
governance.yml
|
163
|
5
|
0
|
refs/heads/main
|
2af2a14c70c41fda3e2d492d31c54dd765c8b8de
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","after":"2af2a14c70c41fda3e2d492d31c54dd765c8b8de","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac...2af2a14c70c41fda3e2d492d31c54dd765c8b8de","commits":[{"id":"2af2a14c70c41fda3e2d492d31c54dd765c8b8de","message":"docs: record image style deployment and verification boundary\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2af2a14c70c41fda3e2d492d31c54dd765c8b8de","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:30:44-07:00","added":["docs/releases/2026-09-09-style1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-image-style.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"2af2a14c70c41fda3e2d492d31c54dd765c8b8de","message":"docs: record image style deployment and verification boundary\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2af2a14c70c41fda3e2d492d31c54dd765c8b8de","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:30:44-07:00","added":["docs/releases/2026-09-09-style1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-image-style.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":790280,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T22:21:57+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788964255
|
1788964295
|
0
|
1788964255
|
1788964295
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23792
|
merge: retain completed template save deployment r merge: retain completed template save deployment records...
|
57
|
5
|
governance.yml
|
162
|
5
|
0
|
refs/heads/main
|
d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cb557111869e1e2a4374646ab0043e21bf988d16","after":"d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/cb557111869e1e2a4374646ab0043e21bf988d16...d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","commits":[{"id":"d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","message":"merge: retain completed template save deployment records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:21:39-07:00","added":["docs/releases/2026-09-09-template-save1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-save.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/template-save-20260909/README.md"]},{"id":"876caa602067a040ebf9a19fb7258de402d0f837","message":"test: verify combined image style and template save release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/876caa602067a040ebf9a19fb7258de402d0f837","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:21:31-07:00","added":["reports/image-style-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-image-style.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"f8e5c27dfbccb74bd6209c73ffccb9d3a7940507","message":"merge: retain template save fix alongside image styles\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f8e5c27dfbccb74bd6209c73ffccb9d3a7940507","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:12:33-07:00","added":["docs/governance/log/2026-09-09-template-save.md","reports/template-save-20260909/README.md","reports/template-save-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/NewTemplateButton.tsx","scripts/lib/template-types-ui-acceptance.mjs"]},{"id":"56f6a3d5d9742171a9acf9d915878b074b33658c","message":"fix(images): preserve selected visual style through generation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/56f6a3d5d9742171a9acf9d915878b074b33658c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:12:19-07:00","added":["docs/governance/log/2026-09-09-image-style.md","packages/contracts/src/image-visual-style.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/image-size.integration.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/image-size.integration.test.ts","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/brand.ts","packages/contracts/src/image-type-prompt.test.ts","packages/contracts/src/index.ts","packages/contracts/src/material.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/lib/image-creation-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","message":"merge: retain completed template save deployment records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:21:39-07:00","added":["docs/releases/2026-09-09-template-save1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-save.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/template-save-20260909/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":790015,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T22:20:00+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788963718
|
1788963759
|
0
|
1788963717
|
1788963759
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23791
|
docs: record verified template save feedback relea docs: record verified template save feedback release...
|
57
|
5
|
governance.yml
|
161
|
5
|
0
|
refs/heads/main
|
cb557111869e1e2a4374646ab0043e21bf988d16
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"81310a3c02e577fe6aff78bf48018620c185ecc8","after":"cb557111869e1e2a4374646ab0043e21bf988d16","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/81310a3c02e577fe6aff78bf48018620c185ecc8...cb557111869e1e2a4374646ab0043e21bf988d16","commits":[{"id":"cb557111869e1e2a4374646ab0043e21bf988d16","message":"docs: record verified template save feedback release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cb557111869e1e2a4374646ab0043e21bf988d16","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:19:54-07:00","added":["docs/releases/2026-09-09-template-save1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-save.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/template-save-20260909/README.md"]}],"total_commits":0,"head_commit":{"id":"cb557111869e1e2a4374646ab0043e21bf988d16","message":"docs: record verified template save feedback release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cb557111869e1e2a4374646ab0043e21bf988d16","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:19:54-07:00","added":["docs/releases/2026-09-09-template-save1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-save.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/template-save-20260909/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":789968,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T22:10:59+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788963601
|
1788963642
|
0
|
1788963600
|
1788963642
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23790
|
fix(template): explain blocked saves and focus mis fix(template): explain blocked saves and focus missing name...
|
57
|
5
|
governance.yml
|
160
|
5
|
0
|
refs/heads/main
|
81310a3c02e577fe6aff78bf48018620c185ecc8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"30fdd1609a7af216bfda2d4363ca21820d7114f4","after":"81310a3c02e577fe6aff78bf48018620c185ecc8","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/30fdd1609a7af216bfda2d4363ca21820d7114f4...81310a3c02e577fe6aff78bf48018620c185ecc8","commits":[{"id":"81310a3c02e577fe6aff78bf48018620c185ecc8","message":"fix(template): explain blocked saves and focus missing name\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/81310a3c02e577fe6aff78bf48018620c185ecc8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:10:54-07:00","added":["docs/governance/log/2026-09-09-template-save.md","reports/template-save-20260909/README.md","reports/template-save-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/NewTemplateButton.tsx","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/lib/template-types-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"81310a3c02e577fe6aff78bf48018620c185ecc8","message":"fix(template): explain blocked saves and focus missing name\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/81310a3c02e577fe6aff78bf48018620c185ecc8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T07:10:54-07:00","added":["docs/governance/log/2026-09-09-template-save.md","reports/template-save-20260909/README.md","reports/template-save-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/NewTemplateButton.tsx","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/lib/template-types-ui-acceptance.mjs"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":789873,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T20:21: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
|
1788963061
|
1788963151
|
0
|
1788963059
|
1788963151
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23789
|
docs: record complete pending-worktree reconciliat docs: record complete pending-worktree reconciliation...
|
57
|
5
|
governance.yml
|
159
|
5
|
0
|
refs/heads/main
|
30fdd1609a7af216bfda2d4363ca21820d7114f4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd","after":"30fdd1609a7af216bfda2d4363ca21820d7114f4","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd...30fdd1609a7af216bfda2d4363ca21820d7114f4","commits":[{"id":"30fdd1609a7af216bfda2d4363ca21820d7114f4","message":"docs: record complete pending-worktree reconciliation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/30fdd1609a7af216bfda2d4363ca21820d7114f4","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T05:19:04-07:00","added":["reports/worktree-archive-20260909/README.md","reports/worktree-archive-20260909/release-lfs-equivalence.json"],"removed":[],"modified":[]},{"id":"7a81df71a7ead4c010becb7f39b97fe10177f7b3","message":"docs: preserve outstanding r25 release acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7a81df71a7ead4c010becb7f39b97fe10177f7b3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T05:18:41-07:00","added":["reports/worktree-archive-20260909/release-20260907-r25/manifest.json","reports/worktree-archive-20260909/release-20260907-r25/original-diff.json","reports/worktree-archive-20260909/release-20260907-r25/reports/admin-desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/admin-mobile.png","reports/worktree-archive-20260909/release-20260907-r25/reports/content-detail.brief-desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/content-detail.images-desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/content-detail.output-desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/content-detail.output-mobile.png","reports/worktree-archive-20260909/release-20260907-r25/reports/content-detail.plans-desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/content-detail.review-desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/contract-consumers.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/dependency-audit.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/governance-docs.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/governance.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/inference-acceptance.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/material-review-concurrency-guard.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/migrations.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/model-api-key-saved.png","reports/worktree-archive-20260909/release-20260907-r25/reports/model-credential-error.desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/model-credential-error.mobile.png","reports/worktree-archive-20260909/release-20260907-r25/reports/module-boundary.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/naming.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/order-concurrency-guard.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/prd-retry.mobile.png","reports/worktree-archive-20260909/release-20260907-r25/reports/prd-review.desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/production-acceptance.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/production-security.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/public-file-acceptance.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/public-file-integration.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/runtime-acceptance.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/runtime-governance.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/schema-sync.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/script-acceptance.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/script-generation-queue.png","reports/worktree-archive-20260909/release-20260907-r25/reports/storyboard-director-guard.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/toolchain.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/ui-acceptance.desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/ui-acceptance.draft-import.png","reports/worktree-archive-20260909/release-20260907-r25/reports/ui-acceptance.latest.json","reports/worktree-archive-20260909/release-20260907-r25/reports/ui-acceptance.production.png","reports/worktree-archive-20260909/release-20260907-r25/reports/ux-edit.desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/ux-home.desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/ux-intake.desktop.png","reports/worktree-archive-20260909/release-20260907-r25/reports/validation-source.latest.json"],"removed":[],"modified":[]},{"id":"6d9d4c576989fde7d1f79acd9ba8a5350269178a","message":"docs: preserve image UI evidence and reconciled type config snapshot\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6d9d4c576989fde7d1f79acd9ba8a5350269178a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T05:18:10-07:00","added":["reports/worktree-archive-20260909/image-generation-image-uiux/manifest.json","reports/worktree-archive-20260909/image-generation-image-uiux/original-diff.json","reports/worktree-archive-20260909/image-generation-image-uiux/reports/admin-brands.desktop.png","reports/worktree-archive-20260909/image-generation-image-uiux/reports/admin-brands.mobile.png","reports/worktree-archive-20260909/image-generation-image-uiux/reports/image-creation-1135.png","reports/worktree-archive-20260909/image-generation-image-uiux/reports/image-creation-1440.png","reports/worktree-archive-20260909/image-generation-image-uiux/reports/image-creation-390.png","reports/worktree-archive-20260909/image-generation-image-uiux/reports/image-creation-768.png","reports/worktree-archive-20260909/uiux-detail-pages/apps/web/tsconfig.json","reports/worktree-archive-20260909/uiux-detail-pages/manifest.json","reports/worktree-archive-20260909/uiux-detail-pages/original-diff.json"],"removed":[],"modified":[]},{"id":"d651c07c5743dbd68a83a1ea51052a262365e870","message":"docs: preserve pending subtitle burn validation records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d651c07c5743dbd68a83a1ea51052a262365e870","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T05:18:10-07:00","added":["reports/worktree-archive-20260909/image-generation-subtitle-burn/manifest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/models/material-factory/README.md","reports/worktree-archive-20260909/image-generation-subtitle-burn/models/material-factory/z-image-turbo/README.md","reports/worktree-archive-20260909/image-generation-subtitle-burn/original-diff.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/admin-desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/admin-mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/content-detail.output-mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/content-detail.review-desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/contract-consumers.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/creative-quality.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/dependency-audit.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/governance-docs.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/governance.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/inference-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/material-review-concurrency-guard.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/migrations.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/model-api-key-saved.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/model-credential-error.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/model-credential-error.mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/module-boundary.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/naming.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/order-concurrency-guard.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/prd-retry.mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/prd-review.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-delivery-released.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-delivery-revoked.mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-pagination.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-pagination.mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-review-preview.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-security.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-single-tenant-create.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/production-single-tenant-separation.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/public-file-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/public-file-integration.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/runtime-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/runtime-governance.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/schema-sync.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/script-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/script-generation-queue.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/sidecar-tests.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/storyboard-director-guard.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/README.md","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/api.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/output.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/post-production.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/subtitle-burn-mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/subtitle-burn.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/subtitle-regression.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/ui.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/subtitle-burn-2026-09-08/validation.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/template-types.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/template-types.mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/toolchain.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/ui-acceptance.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/ui-acceptance.draft-import.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/ui-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/ui-acceptance.production.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/ux-edit.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/ux-intake.desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/validation-source.latest.json","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/video-batch-paused.mobile.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/video-regenerate-2026-09-08/desktop.png","reports/worktree-archive-20260909/image-generation-subtitle-burn/reports/video-regenerate-2026-09-08/mobile.png"],"removed":[],"modified":[]},{"id":"bd718aa062579703ef58af7e176eeedfe309f6e8","message":"docs: preserve pending brand rename acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/bd718aa062579703ef58af7e176eeedfe309f6e8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T05:18:00-07:00","added":["reports/worktree-archive-20260909/image-generation-brand-rename/manifest.json","reports/worktree-archive-20260909/image-generation-brand-rename/original-diff.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/admin-brands.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/admin-brands.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/admin-desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/admin-mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/content-detail.brief-desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/content-detail.images-desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/content-detail.output-desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/content-detail.output-mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/content-detail.plans-desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/content-detail.review-desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/contract-consumers.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/creative-quality.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/dependency-audit.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/governance-docs.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/governance.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/inference-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/material-review-concurrency-guard.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/migrations.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/model-api-key-saved.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/model-credential-error.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/model-credential-error.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/module-boundary.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/naming.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/order-concurrency-guard.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/prd-retry.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/prd-review.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-delivery-released.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-delivery-revoked.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-pagination.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-pagination.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-review-preview.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-security.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-single-tenant-create.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/production-single-tenant-separation.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/public-file-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/public-file-integration.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/runtime-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/runtime-governance.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/schema-sync.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/script-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/script-generation-queue.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/sidecar-tests.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/storyboard-director-guard.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/template-types.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/template-types.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/toolchain.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ui-acceptance.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ui-acceptance.draft-import.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ui-acceptance.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ui-acceptance.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ui-acceptance.production.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ux-edit.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ux-home.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ux-home.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/ux-intake.desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/validation-source.latest.json","reports/worktree-archive-20260909/image-generation-brand-rename/reports/video-batch-paused.mobile.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/video-regenerate-2026-09-08/desktop.png","reports/worktree-archive-20260909/image-generation-brand-rename/reports/video-regenerate-2026-09-08/mobile.png"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"30fdd1609a7af216bfda2d4363ca21820d7114f4","message":"docs: record complete pending-worktree reconciliation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/30fdd1609a7af216bfda2d4363ca21820d7114f4","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T05:19:04-07:00","added":["reports/worktree-archive-20260909/README.md","reports/worktree-archive-20260909/release-lfs-equivalence.json"],"removed":[],"modified":[]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":774326,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T19:41:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788956476
|
1788956566
|
0
|
1788956476
|
1788956566
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23788
|
docs: record verified template making rollout and docs: record verified template making rollout and compact layout checks...
|
57
|
5
|
governance.yml
|
158
|
5
|
0
|
refs/heads/main
|
cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5be805bc68721833734282a6940007a275583165","after":"cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/5be805bc68721833734282a6940007a275583165...cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd","commits":[{"id":"cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd","message":"docs: record verified template making rollout and compact layout checks\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:41:01-07:00","added":["docs/releases/2026-09-09-template-making-uiux2.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/template-making-uiux-20260909/README.md"]}],"total_commits":0,"head_commit":{"id":"cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd","message":"docs: record verified template making rollout and compact layout checks\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cd58dfcef9e9b68a1c93d3d3fab5a6663e133cbd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:41:01-07:00","added":["docs/releases/2026-09-09-template-making-uiux2.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/template-making-uiux-20260909/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":774277,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T19:36:39+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788954066
|
1788954106
|
0
|
1788954066
|
1788954106
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23787
|
test(template): verify combined release and settle test(template): verify combined release and settled director locking...
|
57
|
5
|
governance.yml
|
157
|
5
|
0
|
refs/heads/main
|
5be805bc68721833734282a6940007a275583165
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","after":"5be805bc68721833734282a6940007a275583165","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ab568e701b98d0e678ee9af7b1c56ccf1937e576...5be805bc68721833734282a6940007a275583165","commits":[{"id":"5be805bc68721833734282a6940007a275583165","message":"test(template): verify combined release and settled director locking\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5be805bc68721833734282a6940007a275583165","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:36:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-making-uiux-20260909/README.md","reports/template-making-uiux-20260909/summary.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"3568643a79588fcc4a9f76c1aabc201291379048","message":"docs: retain verified frame rollout records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/3568643a79588fcc4a9f76c1aabc201291379048","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:26:07-07:00","added":["docs/releases/2026-09-09-storyboard-frames1.md","reports/storyboard-frame-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json"]},{"id":"6c0025e13c2f8abdef7332129ae9407570093694","message":"merge: preserve published frame dialogs before template release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6c0025e13c2f8abdef7332129ae9407570093694","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:24:27-07:00","added":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/director-review-20260909/summary.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/desktop.first.png","reports/storyboard-frame-dialog-20260909/desktop.last.png","reports/storyboard-frame-dialog-20260909/mobile.first.png","reports/storyboard-frame-dialog-20260909/mobile.last.png","reports/storyboard-frame-dialog-20260909/mobile.saved.png","reports/storyboard-frame-dialog-20260909/summary.json","scripts/lib/storyboard-frame-dialog-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/StoryboardFrameGeneration.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","docs/governance/log/2026-09-09-director-review.md","reports/contract-consumers.latest.json","reports/director-review-20260909/README.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"1f75c207f4de0e7dfe94b0184b74d3e9d1f0fba2","message":"fix(template): keep focused fields visible in compact editor layouts\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1f75c207f4de0e7dfe94b0184b74d3e9d1f0fba2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:24:13-07:00","added":["docs/releases/2026-09-09-template-making-uiux1.md"],"removed":[],"modified":["apps/web/src/components/material-factory/EditStudio.tsx","docs/governance/log/2026-09-09-template-making-uiux.md","reports/dependency-audit.latest.json","reports/inference-acceptance.latest.json","reports/production-acceptance.latest.json","reports/public-file-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/template-making-uiux-20260909/summary.json","reports/ui-acceptance.latest.json","scripts/lib/template-making-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"5be805bc68721833734282a6940007a275583165","message":"test(template): verify combined release and settled director locking\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5be805bc68721833734282a6940007a275583165","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:36:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-making-uiux-20260909/README.md","reports/template-making-uiux-20260909/summary.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":774066,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T19:25:17+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788953800
|
1788953840
|
0
|
1788953798
|
1788953840
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23786
|
docs: record verified first and last frame dialog docs: record verified first and last frame dialog rollout...
|
57
|
5
|
governance.yml
|
156
|
5
|
0
|
refs/heads/main
|
ab568e701b98d0e678ee9af7b1c56ccf1937e576
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ed9b5df870bf72edcc8be883dec811b649aa13db","after":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ed9b5df870bf72edcc8be883dec811b649aa13db...ab568e701b98d0e678ee9af7b1c56ccf1937e576","commits":[{"id":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","message":"docs: record verified first and last frame dialog rollout\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ab568e701b98d0e678ee9af7b1c56ccf1937e576","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:25:11-07:00","added":["docs/releases/2026-09-09-storyboard-frames1.md","reports/storyboard-frame-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json"]}],"total_commits":0,"head_commit":{"id":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","message":"docs: record verified first and last frame dialog rollout\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ab568e701b98d0e678ee9af7b1c56ccf1937e576","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:25:11-07:00","added":["docs/releases/2026-09-09-storyboard-frames1.md","reports/storyboard-frame-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":774044,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T19:17:40+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788953118
|
1788953158
|
0
|
1788953117
|
1788953158
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23785
|
test(storyboard): freeze verified frame dialog rel test(storyboard): freeze verified frame dialog release scope...
|
57
|
5
|
governance.yml
|
155
|
5
|
0
|
refs/heads/main
|
ed9b5df870bf72edcc8be883dec811b649aa13db
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"588c69a848df6f7ee9e42b0f099f2eb02b4d9a74","after":"ed9b5df870bf72edcc8be883dec811b649aa13db","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/588c69a848df6f7ee9e42b0f099f2eb02b4d9a74...ed9b5df870bf72edcc8be883dec811b649aa13db","commits":[{"id":"ed9b5df870bf72edcc8be883dec811b649aa13db","message":"test(storyboard): freeze verified frame dialog release scope\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ed9b5df870bf72edcc8be883dec811b649aa13db","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:17:35-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"12eee55db00f40d5c4fb930a449700862494e72a","message":"Merge branch 'main' into fix/storyboard-draft-model\n\n# Conflicts:\n#\tCLAUDE.md\n#\treports/contract-consumers.latest.json\n#\treports/dependency-audit.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/inference-acceptance.latest.json\n#\treports/material-review-concurrency-guard.latest.json\n#\treports/migrations.latest.json\n#\treports/module-boundary.latest.json\n#\treports/naming.latest.json\n#\treports/order-concurrency-guard.latest.json\n#\treports/production-acceptance.latest.json\n#\treports/production-security.latest.json\n#\treports/public-file-acceptance.latest.json\n#\treports/public-file-integration.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/script-acceptance.latest.json\n#\treports/sidecar-tests.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/toolchain.latest.json\n#\treports/ui-acceptance.latest.json\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/12eee55db00f40d5c4fb930a449700862494e72a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:13:25-07:00","added":["reports/director-review-20260909/summary.json","reports/template-making-uiux-20260909/summary.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-director-review.md","docs/governance/log/2026-09-09-template-making-uiux.md","reports/director-review-20260909/README.md","reports/template-making-uiux-20260909/README.md"]},{"id":"4350b3cecf43560fc8329e34a7386e4f0725da9f","message":"test(storyboard): verify frame dialogs through real save workflows\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4350b3cecf43560fc8329e34a7386e4f0725da9f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:11:01-07:00","added":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/desktop.first.png","reports/storyboard-frame-dialog-20260909/desktop.last.png","reports/storyboard-frame-dialog-20260909/mobile.first.png","reports/storyboard-frame-dialog-20260909/mobile.last.png","reports/storyboard-frame-dialog-20260909/mobile.saved.png","reports/storyboard-frame-dialog-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"f8483010baee1e8dafb866c4cb554133ca515ad2","message":"Merge commit '7f9a6766' into fix/storyboard-draft-model\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f8483010baee1e8dafb866c4cb554133ca515ad2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:03:10-07:00","added":["apps/web/src/components/material-factory/TemplateMakingCanvas.tsx","docs/governance/log/2026-09-09-template-making-uiux.md","reports/template-making-uiux-20260909/README.md","scripts/lib/template-making-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/NewTemplateButton.tsx","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-asset-dialog-ui-acceptance.mjs"]},{"id":"7c71e290d79de068685c7848ad40423059ef9cb3","message":"Merge branch 'main' into fix/storyboard-draft-model\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7c71e290d79de068685c7848ad40423059ef9cb3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:02:47-07:00","added":["docs/governance/log/2026-09-09-director-review.md","docs/releases/2026-09-09-template-preview1.md","reports/director-review-20260909/README.md","reports/template-preview-20260909/live-browser.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","docs/governance/log/2026-09-09-template-preview.md","docs/releases/current.md","reports/template-preview-20260909/README.md","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"ed9b5df870bf72edcc8be883dec811b649aa13db","message":"test(storyboard): freeze verified frame dialog release scope\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ed9b5df870bf72edcc8be883dec811b649aa13db","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:17:35-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":773297,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T19:09:40+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788952660
|
1788952721
|
0
|
1788952660
|
1788952721
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23784
|
docs: merge director workbench acceptance and live docs: merge director workbench acceptance and live verification...
|
57
|
5
|
governance.yml
|
154
|
5
|
0
|
refs/heads/main
|
588c69a848df6f7ee9e42b0f099f2eb02b4d9a74
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"83ca52c75109e9efbdc06a0891bc15c0a859ad21","after":"588c69a848df6f7ee9e42b0f099f2eb02b4d9a74","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/83ca52c75109e9efbdc06a0891bc15c0a859ad21...588c69a848df6f7ee9e42b0f099f2eb02b4d9a74","commits":[{"id":"588c69a848df6f7ee9e42b0f099f2eb02b4d9a74","message":"docs: merge director workbench acceptance and live verification\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/588c69a848df6f7ee9e42b0f099f2eb02b4d9a74","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:09:27-07:00","added":["reports/director-review-20260909/summary.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"]},{"id":"18e7d3c37f5f7cc6be36e0c0b4676f97d4b27ae5","message":"docs: record director workbench validation and joint deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/18e7d3c37f5f7cc6be36e0c0b4676f97d4b27ae5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:09:16-07:00","added":["reports/director-review-20260909/summary.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"]}],"total_commits":0,"head_commit":{"id":"588c69a848df6f7ee9e42b0f099f2eb02b4d9a74","message":"docs: merge director workbench acceptance and live verification\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/588c69a848df6f7ee9e42b0f099f2eb02b4d9a74","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:09:27-07:00","added":["reports/director-review-20260909/summary.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":773265,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T19:03:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788952182
|
1788952222
|
0
|
1788952180
|
1788952222
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23783
|
Merge branch 'main' into feat/template-mak Merge branch 'main' into feat/template-making-uiux...
|
57
|
5
|
governance.yml
|
153
|
5
|
0
|
refs/heads/main
|
83ca52c75109e9efbdc06a0891bc15c0a859ad21
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2ffa994dd2e7905004da4ba204e7fc38fc491694","after":"83ca52c75109e9efbdc06a0891bc15c0a859ad21","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/2ffa994dd2e7905004da4ba204e7fc38fc491694...83ca52c75109e9efbdc06a0891bc15c0a859ad21","commits":[{"id":"83ca52c75109e9efbdc06a0891bc15c0a859ad21","message":"Merge branch 'main' into feat/template-making-uiux\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/83ca52c75109e9efbdc06a0891bc15c0a859ad21","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:02:57-07:00","added":["docs/releases/2026-09-09-storyboard-assets1.md","docs/releases/2026-09-09-template-preview1.md","reports/storyboard-asset-dialog-20260909/live-verification.json","reports/template-preview-20260909/live-browser.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-asset-dialog.md","docs/governance/log/2026-09-09-template-preview.md","docs/releases/current.md","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/summary.json","reports/template-preview-20260909/README.md"]},{"id":"7764b0fe9bd4e75717d55a15714ed5c3ec38dce2","message":"test: record complete template making acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7764b0fe9bd4e75717d55a15714ed5c3ec38dce2","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:02:57-07:00","added":["reports/template-making-uiux-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-making-uiux-20260909/README.md","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"7f9a67663e90ee81dc1d8219c2f4cda76a049147","message":"test(web): wait for storyboard image catalog readiness\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7f9a67663e90ee81dc1d8219c2f4cda76a049147","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:57:00-07:00","added":[],"removed":[],"modified":["scripts/lib/storyboard-asset-dialog-ui-acceptance.mjs"]},{"id":"e449ca48b347b2897711ac767363066627acbc4f","message":"Merge branch 'main' into feat/template-making-uiux\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e449ca48b347b2897711ac767363066627acbc4f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:46:40-07:00","added":["docs/governance/log/2026-09-09-storyboard-asset-dialog.md","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/desktop.png","reports/storyboard-asset-dialog-20260909/mobile.png","reports/storyboard-asset-dialog-20260909/summary.json","scripts/lib/storyboard-asset-dialog-ui-acceptance.mjs"],"removed":[],"modified":["apps/web/src/components/material-factory/StoryboardAssetGeneration.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs"]},{"id":"9762116a19c287d5a537d6c01ca135a743f48c7a","message":"test(web): account for explicitly injected master image failures\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9762116a19c287d5a537d6c01ca135a743f48c7a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:45:53-07:00","added":[],"removed":[],"modified":["scripts/check-ui-acceptance.mjs","scripts/lib/template-making-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"83ca52c75109e9efbdc06a0891bc15c0a859ad21","message":"Merge branch 'main' into feat/template-making-uiux\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/83ca52c75109e9efbdc06a0891bc15c0a859ad21","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T04:02:57-07:00","added":["docs/releases/2026-09-09-storyboard-assets1.md","docs/releases/2026-09-09-template-preview1.md","reports/storyboard-asset-dialog-20260909/live-verification.json","reports/template-preview-20260909/live-browser.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-asset-dialog.md","docs/governance/log/2026-09-09-template-preview.md","docs/releases/current.md","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/summary.json","reports/template-preview-20260909/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":773070,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T18:56: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
|
4
|
1788951794
|
1788951834
|
0
|
1788951793
|
1788951834
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23782
|
Merge branch 'fix/storyboard-draft-model'
|
57
|
5
|
governance.yml
|
152
|
5
|
0
|
refs/heads/main
|
2ffa994dd2e7905004da4ba204e7fc38fc491694
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"257a004bb69bd2f85cb1fb75105e6cdc4e51b43c","after":"2ffa994dd2e7905004da4ba204e7fc38fc491694","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/257a004bb69bd2f85cb1fb75105e6cdc4e51b43c...2ffa994dd2e7905004da4ba204e7fc38fc491694","commits":[{"id":"2ffa994dd2e7905004da4ba204e7fc38fc491694","message":"Merge branch 'fix/storyboard-draft-model'\n\n# Conflicts:\n#\tdocs/releases/current.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2ffa994dd2e7905004da4ba204e7fc38fc491694","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:56:27-07:00","added":["docs/releases/2026-09-09-storyboard-assets1.md","reports/storyboard-asset-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-asset-dialog.md","docs/releases/current.md","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/summary.json"]},{"id":"8bc9cb7853ab99b1886f416dbf6f4a3119a76756","message":"docs: record verified storyboard asset dialog rollout\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8bc9cb7853ab99b1886f416dbf6f4a3119a76756","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:54:57-07:00","added":["docs/releases/2026-09-09-storyboard-assets1.md","reports/storyboard-asset-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-asset-dialog.md","docs/releases/current.md","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/summary.json"]}],"total_commits":0,"head_commit":{"id":"2ffa994dd2e7905004da4ba204e7fc38fc491694","message":"Merge branch 'fix/storyboard-draft-model'\n\n# Conflicts:\n#\tdocs/releases/current.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2ffa994dd2e7905004da4ba204e7fc38fc491694","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:56:27-07:00","added":["docs/releases/2026-09-09-storyboard-assets1.md","reports/storyboard-asset-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-asset-dialog.md","docs/releases/current.md","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/summary.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":773034,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T18:46:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788951392
|
1788951453
|
0
|
1788951392
|
1788951453
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23781
|
Merge branch 'feat/template-preview'
|
57
|
5
|
governance.yml
|
151
|
5
|
0
|
refs/heads/main
|
257a004bb69bd2f85cb1fb75105e6cdc4e51b43c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"020ee8bcef399296b6afe1d19b912d8e7fcba72f","after":"257a004bb69bd2f85cb1fb75105e6cdc4e51b43c","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/020ee8bcef399296b6afe1d19b912d8e7fcba72f...257a004bb69bd2f85cb1fb75105e6cdc4e51b43c","commits":[{"id":"257a004bb69bd2f85cb1fb75105e6cdc4e51b43c","message":"Merge branch 'feat/template-preview'\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/257a004bb69bd2f85cb1fb75105e6cdc4e51b43c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:46:03-07:00","added":["docs/releases/2026-09-09-template-preview1.md","reports/template-preview-20260909/live-browser.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-template-preview.md","docs/releases/current.md","reports/template-preview-20260909/README.md"]},{"id":"207f19c3f9c6c63a6595fa2c0b0358b3866027dd","message":"docs: record verified template preview rollout\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/207f19c3f9c6c63a6595fa2c0b0358b3866027dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:45:29-07:00","added":["docs/releases/2026-09-09-template-preview1.md","reports/template-preview-20260909/live-browser.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-template-preview.md","docs/releases/current.md","reports/template-preview-20260909/README.md"]}],"total_commits":0,"head_commit":{"id":"257a004bb69bd2f85cb1fb75105e6cdc4e51b43c","message":"Merge branch 'feat/template-preview'\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/257a004bb69bd2f85cb1fb75105e6cdc4e51b43c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:46:03-07:00","added":["docs/releases/2026-09-09-template-preview1.md","reports/template-preview-20260909/live-browser.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-template-preview.md","docs/releases/current.md","reports/template-preview-20260909/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":772999,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T18:46:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1788950773
|
1788950878
|
0
|
1788950773
|
1788950878
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23780
|
Merge branch 'fix/storyboard-draft-model'
|
57
|
5
|
governance.yml
|
150
|
5
|
0
|
refs/heads/main
|
020ee8bcef399296b6afe1d19b912d8e7fcba72f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a7dc208b0a3f74330404cf65e778593857233112","after":"020ee8bcef399296b6afe1d19b912d8e7fcba72f","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/a7dc208b0a3f74330404cf65e778593857233112...020ee8bcef399296b6afe1d19b912d8e7fcba72f","commits":[{"id":"020ee8bcef399296b6afe1d19b912d8e7fcba72f","message":"Merge branch 'fix/storyboard-draft-model'\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/020ee8bcef399296b6afe1d19b912d8e7fcba72f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:45:46-07:00","added":["docs/governance/log/2026-09-09-storyboard-asset-dialog.md","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/desktop.png","reports/storyboard-asset-dialog-20260909/mobile.png","reports/storyboard-asset-dialog-20260909/summary.json","scripts/lib/storyboard-asset-dialog-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/StoryboardAssetGeneration.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs"]},{"id":"cf8a43869accb16e1d0c5cea296cb3aef1c08493","message":"test(storyboard): verify frozen dialog release candidate\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cf8a43869accb16e1d0c5cea296cb3aef1c08493","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:45:15-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/desktop.png","reports/storyboard-asset-dialog-20260909/summary.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"468f1626bf6182702b2f0588d493ff370b0e7942","message":"Merge branch 'main' into fix/storyboard-draft-model\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/468f1626bf6182702b2f0588d493ff370b0e7942","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:35:49-07:00","added":["docs/releases/2026-09-09-image-edit-uiux1.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/TemplateStudio.tsx","docs/governance/log/2026-09-09-image-edit-uiux.md","docs/governance/log/2026-09-09-template-preview.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-edit-uiux-20260909/README.md","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-preview-20260909/README.md","reports/template-preview-20260909/summary.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/lib/template-preview-ui-acceptance.mjs"]},{"id":"bdf50df95829cfd505c2109cb70ae12e8179771e","message":"Merge branch 'main' into fix/storyboard-draft-model\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/bdf50df95829cfd505c2109cb70ae12e8179771e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:28:10-07:00","added":["apps/web/src/components/material-factory/useImageEditMask.ts","docs/governance/log/2026-09-09-image-edit-uiux.md","docs/releases/2026-09-09-history2.md","reports/image-edit-uiux-20260909/README.md","reports/image-edit-uiux-20260909/summary.json","reports/industry-trend-sources-20260909/live-verification.json","reports/industry-trend-sources-20260909/summary.json","scripts/lib/image-edit-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/specs/create-studio.spec.ts","apps/web/src/components/material-factory/InpaintStudio.tsx","docs/governance/log/2026-09-09-industry-trend-sources.md","docs/governance/log/2026-09-09-project-history.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/industry-trend-sources-20260909/README.md","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs"]},{"id":"e05f8bf3c4519bd7c8135ca93fc28c3f267db906","message":"test(storyboard): record verified asset generation dialog\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e05f8bf3c4519bd7c8135ca93fc28c3f267db906","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:26:51-07:00","added":["reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/desktop.png","reports/storyboard-asset-dialog-20260909/mobile.png","reports/storyboard-asset-dialog-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-storyboard-asset-dialog.md"]}],"total_commits":0,"head_commit":{"id":"020ee8bcef399296b6afe1d19b912d8e7fcba72f","message":"Merge branch 'fix/storyboard-draft-model'\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/020ee8bcef399296b6afe1d19b912d8e7fcba72f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:45:46-07:00","added":["docs/governance/log/2026-09-09-storyboard-asset-dialog.md","reports/storyboard-asset-dialog-20260909/README.md","reports/storyboard-asset-dialog-20260909/desktop.png","reports/storyboard-asset-dialog-20260909/mobile.png","reports/storyboard-asset-dialog-20260909/summary.json","scripts/lib/storyboard-asset-dialog-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/StoryboardAssetGeneration.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":772416,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T18:40: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
|
3
|
4
|
1788950764
|
1788950773
|
0
|
1788950764
|
1788950773
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23779
|
merge: integrate completed director review workben merge: integrate completed director review workbench...
|
57
|
5
|
governance.yml
|
149
|
5
|
0
|
refs/heads/main
|
a7dc208b0a3f74330404cf65e778593857233112
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5607ab611f1e74673856aa25aa3f8393e3140e35","after":"a7dc208b0a3f74330404cf65e778593857233112","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/5607ab611f1e74673856aa25aa3f8393e3140e35...a7dc208b0a3f74330404cf65e778593857233112","commits":[{"id":"a7dc208b0a3f74330404cf65e778593857233112","message":"merge: integrate completed director review workbench\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a7dc208b0a3f74330404cf65e778593857233112","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:39:45-07:00","added":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","scripts/check-ui-acceptance.mjs"]},{"id":"748bb0072649cec3aa2503c079a8b9f14f8c8c4c","message":"fix(web): clarify completed director review and read-only fields\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/748bb0072649cec3aa2503c079a8b9f14f8c8c4c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:30:43-07:00","added":[],"removed":[],"modified":["apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","scripts/check-ui-acceptance.mjs"]},{"id":"79c831a0a59a1a6328fe9a3166a9072da4854adb","message":"Merge branch 'main' into codex/director-review-20260909\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/79c831a0a59a1a6328fe9a3166a9072da4854adb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:27:57-07:00","added":["apps/web/src/components/material-factory/useImageEditMask.ts","docs/governance/log/2026-09-09-image-edit-uiux.md","docs/releases/2026-09-09-history2.md","reports/image-edit-uiux-20260909/README.md","reports/image-edit-uiux-20260909/summary.json","reports/industry-trend-sources-20260909/live-verification.json","reports/industry-trend-sources-20260909/summary.json","scripts/lib/image-edit-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/specs/create-studio.spec.ts","apps/web/src/components/material-factory/InpaintStudio.tsx","docs/governance/log/2026-09-09-industry-trend-sources.md","docs/governance/log/2026-09-09-project-history.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/industry-trend-sources-20260909/README.md","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs"]},{"id":"73f881750e86aec935991a2dfd1dc3e25c31cf46","message":"feat(web): complete director review workbench workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/73f881750e86aec935991a2dfd1dc3e25c31cf46","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:26:42-07:00","added":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"a7dc208b0a3f74330404cf65e778593857233112","message":"merge: integrate completed director review workbench\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a7dc208b0a3f74330404cf65e778593857233112","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-09T03:39:45-07:00","added":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","scripts/check-ui-acceptance.mjs"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":772118,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T18:35: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
|
2
|
4
|
1788950404
|
1788950494
|
0
|
1788950403
|
1788950494
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|