|
18092
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"73bd623df {"Commits":[{"Sha1":"73bd623dfedff79a02fac961d1c16f106137e2df","Message":"Strengthen voiceprint governance and runtime acceptance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T10:13:40-07:00"},{"Sha1":"40a5c4ef3404ccd2f51b8244626d95d1b5939512","Message":"fix: stabilize UI acceptance runner\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-18T23:52:59-07:00"}],"HeadCommit":{"Sha1":"73bd623dfedff79a02fac961d1c16f106137e2df","Message":"Strengthen voiceprint governance and runtime acceptance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T10:13:40-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/99c0c69becb251d64b434b6ab315d0562888ad8d...73bd623dfedff79a02fac961d1c16f106137e2df","Len":2}...
|
1784654024
|
Edit
Delete
|
|
18097
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"3d3d1a4d8 {"Commits":[{"Sha1":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","Message":"Harden recording release E2E assertion\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T18:58:06-07:00"}],"HeadCommit":{"Sha1":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","Message":"Harden recording release E2E assertion\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T18:58:06-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/73bd623dfedff79a02fac961d1c16f106137e2df...3d3d1a4d8c4ab00b1cefbc239838007a04296172","Len":1}...
|
1784685491
|
Edit
Delete
|
|
20045
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"3e9e11cd8 {"Commits":[{"Sha1":"3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","Message":"feat: harden voiceprint query integrity\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-30T02:09:01-07:00"},{"Sha1":"7d5bf03ace3e1daf460a271e6fabff8c5da00b8b","Message":"feat: improve voiceprint recognition governance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-30T01:32:56-07:00"}],"HeadCommit":{"Sha1":"3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","Message":"feat: harden voiceprint query integrity\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-30T02:09:01-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/3d3d1a4d8c4ab00b1cefbc239838007a04296172...3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59","Len":2}...
|
1785407062
|
Edit
Delete
|
|
25443
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/feat/voiceprint-ui-neutral-labels
|
0
|
|
1787563985
|
Edit
Delete
|
|
25445
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/feat/voiceprint-ui-neutral-labels
|
0
|
{"Commits":[{"Sha1":"e9053d78a {"Commits":[{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-05T21:07:07-07:00"},{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-05T21:00:27-07:00"}],"HeadCommit":{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-05T21:07:07-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59...e9053d78ad792bc6dc023b7e1cc96fd2d7d9ea9a","Len":2}...
|
1787563985
|
Edit
Delete
|
|
25471
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"ca134d551 {"Commits":[{"Sha1":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","Message":"chore: record post-merge acceptance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:39:15-07:00"},{"Sha1":"d674e4aa3b5af117d85713a1e9d05ccb6b82ce3f","Message":"merge: consolidate voiceprint UI branch\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:34:29-07:00"},{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-05T21:07:07-07:00"},{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-05T21:00:27-07:00"}],"HeadCommit":{"Sha1":"ca134d5514b10ecb8b367c953c3284aaa5984f8a","Message":"chore: record post-merge acceptance evidence\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-24T02:39:15-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/3e9e11cd8aef1d8572f13e41bfc4a9ad091cea59...ca134d5514b10ecb8b367c953c3284aaa5984f8a","Len":4}...
|
1787564570
|
Edit
Delete
|
|
28167
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/codex/voiceprint-accuracy-p0-p3
|
0
|
|
1788599116
|
Edit
Delete
|
|
28169
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/codex/voiceprint-accuracy-p0-p3
|
0
|
{"Commits":[{"Sha1":"550f0c014 {"Commits":[{"Sha1":"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","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-05T02:04:57-07:00"}],"HeadCommit":{"Sha1":"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","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-05T02:04:57-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/ca134d5514b10ecb8b367c953c3284aaa5984f8a...550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","Len":1}...
|
1788599116
|
Edit
Delete
|
|
28171
|
7
|
5
|
5
|
62
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"550f0c014 {"Commits":[{"Sha1":"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","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-05T02:04:57-07:00"}],"HeadCommit":{"Sha1":"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","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-05T02:04:57-07:00"},"CompareURL":"luoanwu/voiceprint-recognition/compare/ca134d5514b10ecb8b367c953c3284aaa5984f8a...550f0c01417925fdf38c4bfe8b949a7fa3ef72e3","Len":1}...
|
1788599192
|
Edit
Delete
|
|
18093
|
5
|
1
|
5
|
63
|
0
|
0
|
|
1
|
|
1784681809
|
Edit
Delete
|
|
18094
|
5
|
5
|
5
|
63
|
0
|
0
|
refs/heads/main
|
1
|
|
1784681969
|
Edit
Delete
|
|
18095
|
5
|
5
|
5
|
63
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"f7f58401d {"Commits":[{"Sha1":"f7f58401d267fffa37e2c7282f531354478eeebf","Message":"feat: initialize forced alignment workbench\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T17:58:39-07:00"}],"HeadCommit":{"Sha1":"f7f58401d267fffa37e2c7282f531354478eeebf","Message":"feat: initialize forced alignment workbench\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T17:58:39-07:00"},"CompareURL":"","Len":1}...
|
1784681969
|
Edit
Delete
|
|
18098
|
5
|
5
|
5
|
63
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"1b55d1eec {"Commits":[{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T19:55:12-07:00"}],"HeadCommit":{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T19:55:12-07:00"},"CompareURL":"luoanwu/forced-alignment/compare/f7f58401d267fffa37e2c7282f531354478eeebf...1b55d1eece101ec72f25af96f62713da05ae06ff","Len":1}...
|
1784688943
|
Edit
Delete
|
|
18099
|
5
|
5
|
5
|
63
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"e35b3d577 {"Commits":[{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T20:43:46-07:00"}],"HeadCommit":{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T20:43:46-07:00"},"CompareURL":"luoanwu/forced-alignment/compare/1b55d1eece101ec72f25af96f62713da05ae06ff...e35b3d57744e6178a7c3fdeae0aab051c6f2408f","Len":1}...
|
1784691828
|
Edit
Delete
|
|
18100
|
5
|
5
|
5
|
63
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"bbe7744fc {"Commits":[{"Sha1":"bbe7744fc0df50ca87397478731523692d59a867","Message":"Add Cantonese support and language contract validation\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T21:35:50-07:00"}],"HeadCommit":{"Sha1":"bbe7744fc0df50ca87397478731523692d59a867","Message":"Add Cantonese support and language contract validation\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T21:35:50-07:00"},"CompareURL":"luoanwu/forced-alignment/compare/e35b3d57744e6178a7c3fdeae0aab051c6f2408f...bbe7744fc0df50ca87397478731523692d59a867","Len":1}...
|
1784694954
|
Edit
Delete
|
|
18209
|
5
|
5
|
5
|
63
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"7c3af0f0e {"Commits":[{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:40:35-07:00"}],"HeadCommit":{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:40:35-07:00"},"CompareURL":"luoanwu/forced-alignment/compare/bbe7744fc0df50ca87397478731523692d59a867...7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","Len":1}...
|
1784706047
|
Edit
Delete
|
|
18210
|
5
|
5
|
5
|
63
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"dbb8444dc {"Commits":[{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:53:29-07:00"}],"HeadCommit":{"Sha1":"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","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:53:29-07:00"},"CompareURL":"luoanwu/forced-alignment/compare/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf...dbb8444dc97bba3e8ebc715efb82d803001981cd","Len":1}...
|
1784706813
|
Edit
Delete
|
|
18199
|
5
|
1
|
5
|
64
|
0
|
0
|
|
1
|
|
1784702232
|
Edit
Delete
|
|
18200
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
|
1784702255
|
Edit
Delete
|
|
18201
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"07bdfd6b5 {"Commits":[{"Sha1":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","Message":"docs: refresh published SHA snapshot\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T23:33:33-07:00"},{"Sha1":"515f82aceaa7057454f2b135a8c82e980cef442d","Message":"feat(svc): 音色军火库三件套——CFM/CFG 全链旋钮 + 参考自动去混响 + 多段拼接\n\n- nSteps/cfgScale:contracts 限幅 coerce → cover_jobs 增量列(迁移)→ 双后端\n 持久化+worker 透传 → sidecar 表单 → 前端「高级参数」区(含一直未露出的移调)\n- 音色参考默认走 分离+去混响 增强链(enhance_timbre 可关);干录音≈无损通过\n- build_prompt_multiseg:按静音切段→时长×能量排序→时间序 50ms 交叉淡化拼接,\n 合成用例验证三段唱段拿满 29.9s、段间静音全剔除(单窗口法会夹带静音)\n- 门禁:check exit 0 / runtime 87 tests(地板 87)/ ui 6 用例;参数贯通冒烟\n 实证(nSteps=8 存库→sidecar 接收;越界 400;垃圾文件秒级人话错误)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T23:32:27-07:00"},{"Sha1":"8c2000bfc0f0f515f3e85cc32184c5e64aeeb1c8","Message":"feat(svc): 音色获取质量三连修——录音关通话处理 + 参考智能选段 + 上限30s\n\n- 浏览器录音显式关闭 echoCancellation/noiseSuppression/autoGainControl:\n 通话向处理会削唱声谐波/抽压动态,是音色相似度的隐形杀手\n- sidecar prepare_timbre 智能选段:去首尾静音 + 选「有声占比×能量」最高的\n 连续窗口(合成用例验证:25s 静音开头场景有效信息 2.4×于盲取开头)\n- 音色参考上限 20s→30s;UI 文案建议 20-30 秒清唱;蓝图已知约束同步\n\ncheck:ui 6/6 全绿(假麦克风带新约束)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T23:20:33-07:00"},{"Sha1":"e019e32157a468c1e93b874228ee37bf39989c9f","Message":"docs: 发布快照登记双远端状态(GitHub 已核对,Gitea 待建仓)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T22:27:08-07:00"},{"Sha1":"6614c0cee2254d7cf2c4e081e816642cc2c8aff7","Message":"docs: 发布状态快照登记首提交 b13df4a(远端待建立)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T22:18:59-07:00"}],"HeadCommit":{"Sha1":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","Message":"docs: refresh published SHA snapshot\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T23:33:33-07:00"},"CompareURL":"","Len":6}...
|
1784702255
|
Edit
Delete
|
|
18202
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"fbc7ad833 {"Commits":[{"Sha1":"fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","Message":"docs: record dual-remote publication\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T23:38:36-07:00"}],"HeadCommit":{"Sha1":"fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","Message":"docs: record dual-remote publication\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T23:38:36-07:00"},"CompareURL":"luoanwu/voice-conversion/compare/07bdfd6b5c1898d76a113986ab5a6e7ade243839...fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c","Len":1}...
|
1784702338
|
Edit
Delete
|
|
18203
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"8bcd22698 {"Commits":[{"Sha1":"8bcd226984997589864354a5c357a5acaf8221b8","Message":"fix(svc): worker 启动对账——救活无队列背书的处理态任务\n\n优雅关停下 BullMQ 任务连续 stalled 超限被判死时,若无 worker 在场监听\nfailed 事件,DB 状态会永久卡在处理态(实证:重启后任务停 CONVERTING、\nsidecar 空闲、队列无任务)。修复:\n- 双后端 boot 时扫描 QUEUED/处理态任务重新入队(processJob 对处理态可\n 安全续跑、终态 no-op、concurrency=1 不双跑;单实例语义,G16 类边界)\n- maxStalledCount 1→3:重启窗口 stalled 是常态,一次即判死太苛刻\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T23:46:44-07:00"}],"HeadCommit":{"Sha1":"8bcd226984997589864354a5c357a5acaf8221b8","Message":"fix(svc): worker 启动对账——救活无队列背书的处理态任务\n\n优雅关停下 BullMQ 任务连续 stalled 超限被判死时,若无 worker 在场监听\nfailed 事件,DB 状态会永久卡在处理态(实证:重启后任务停 CONVERTING、\nsidecar 空闲、队列无任务)。修复:\n- 双后端 boot 时扫描 QUEUED/处理态任务重新入队(processJob 对处理态可\n 安全续跑、终态 no-op、concurrency=1 不双跑;单实例语义,G16 类边界)\n- maxStalledCount 1→3:重启窗口 stalled 是常态,一次即判死太苛刻\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-21T23:46:44-07:00"},"CompareURL":"luoanwu/voice-conversion/compare/fbc7ad83338fb810bc574c8b00a6679b8ed3ca0c...8bcd226984997589864354a5c357a5acaf8221b8","Len":1}...
|
1784702847
|
Edit
Delete
|
|
18204
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"40cf16918 {"Commits":[{"Sha1":"40cf16918b6f6ee673e92651e5a0a5edb79d86dd","Message":"fix(svc): 中文文件名 multipart 乱码修复(latin1→UTF-8 还原)\n\nbusboy/multer 按 latin1 解码 multipart filename 而浏览器发 UTF-8 字节,\n中文文件名入库必乱码(魏翔→éç¿)。修复:\n- 双后端 svc 服务层 normalizeUploadFilename 统一还原(latin1 取回原字节按\n UTF-8 重解码;产生替换符=本就是正确 UTF-8 则保留——对 ASCII 幂等)\n- @fastify/busboy 3.x 无 defParamCharset 配置项,配置路线不可用,注释留档\n- 双端 HTTP 验收各 +1 中文文件名用例(runtime 89 tests,地板 89)\n- 存量脏行已按同法修复(dev 库《时差》任务)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:07:31-07:00"}],"HeadCommit":{"Sha1":"40cf16918b6f6ee673e92651e5a0a5edb79d86dd","Message":"fix(svc): 中文文件名 multipart 乱码修复(latin1→UTF-8 还原)\n\nbusboy/multer 按 latin1 解码 multipart filename 而浏览器发 UTF-8 字节,\n中文文件名入库必乱码(魏翔→éç¿)。修复:\n- 双后端 svc 服务层 normalizeUploadFilename 统一还原(latin1 取回原字节按\n UTF-8 重解码;产生替换符=本就是正确 UTF-8 则保留——对 ASCII 幂等)\n- @fastify/busboy 3.x 无 defParamCharset 配置项,配置路线不可用,注释留档\n- 双端 HTTP 验收各 +1 中文文件名用例(runtime 89 tests,地板 89)\n- 存量脏行已按同法修复(dev 库《时差》任务)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:07:31-07:00"},"CompareURL":"luoanwu/voice-conversion/compare/8bcd226984997589864354a5c357a5acaf8221b8...40cf16918b6f6ee673e92651e5a0a5edb79d86dd","Len":1}...
|
1784704057
|
Edit
Delete
|
|
18205
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"49daee39a {"Commits":[{"Sha1":"49daee39ae62e162a700622733a58a3b0d5fb27c","Message":"fix(governance): close G22 report provenance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:20:31-07:00"}],"HeadCommit":{"Sha1":"49daee39ae62e162a700622733a58a3b0d5fb27c","Message":"fix(governance): close G22 report provenance\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:20:31-07:00"},"CompareURL":"luoanwu/voice-conversion/compare/40cf16918b6f6ee673e92651e5a0a5edb79d86dd...49daee39ae62e162a700622733a58a3b0d5fb27c","Len":1}...
|
1784704846
|
Edit
Delete
|
|
18206
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"915504518 {"Commits":[{"Sha1":"91550451861f997024b06c845897ea59af85e238","Message":"fix(governance): normalize colored test summaries\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:25:23-07:00"}],"HeadCommit":{"Sha1":"91550451861f997024b06c845897ea59af85e238","Message":"fix(governance): normalize colored test summaries\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:25:23-07:00"},"CompareURL":"luoanwu/voice-conversion/compare/49daee39ae62e162a700622733a58a3b0d5fb27c...91550451861f997024b06c845897ea59af85e238","Len":1}...
|
1784705137
|
Edit
Delete
|
|
18207
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"b0381bdeb {"Commits":[{"Sha1":"b0381bdeb68a35d172581d6736b9059720e3ad1b","Message":"fix(governance): snapshot report inputs before runners\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:34:03-07:00"}],"HeadCommit":{"Sha1":"b0381bdeb68a35d172581d6736b9059720e3ad1b","Message":"fix(governance): snapshot report inputs before runners\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:34:03-07:00"},"CompareURL":"luoanwu/voice-conversion/compare/91550451861f997024b06c845897ea59af85e238...b0381bdeb68a35d172581d6736b9059720e3ad1b","Len":1}...
|
1784705657
|
Edit
Delete
|
|
18208
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"f78049d48 {"Commits":[{"Sha1":"f78049d487372e5538b1d202b65aa252031c8887","Message":"fix(governance): preserve porcelain status columns\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:39:59-07:00"}],"HeadCommit":{"Sha1":"f78049d487372e5538b1d202b65aa252031c8887","Message":"fix(governance): preserve porcelain status columns\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T00:39:59-07:00"},"CompareURL":"luoanwu/voice-conversion/compare/b0381bdeb68a35d172581d6736b9059720e3ad1b...f78049d487372e5538b1d202b65aa252031c8887","Len":1}...
|
1784706012
|
Edit
Delete
|
|
18225
|
5
|
5
|
5
|
64
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"759c0261a {"Commits":[{"Sha1":"759c0261a1cbec386f37f0c7f096f9f4efd57289","Message":"fix(svc): complete worker control surface\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T01:48:47-07:00"},{"Sha1":"ee66fa978cf5dfc16f7001f805c48f2993cb8b44","Message":"Add cover worker controls and document voice conversion product\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T01:40:28-07:00"}],"HeadCommit":{"Sha1":"759c0261a1cbec386f37f0c7f096f9f4efd57289","Message":"fix(svc): complete worker control surface\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-22T01:48:47-07:00"},"CompareURL":"luoanwu/voice-conversion/compare/f78049d487372e5538b1d202b65aa252031c8887...759c0261a1cbec386f37f0c7f096f9f4efd57289","Len":2}...
|
1784710407
|
Edit
Delete
|
|
18532
|
5
|
1
|
5
|
65
|
0
|
0
|
|
1
|
|
1784867090
|
Edit
Delete
|
|
18533
|
5
|
5
|
5
|
65
|
0
|
0
|
refs/heads/main
|
1
|
|
1784867121
|
Edit
Delete
|
|
18534
|
5
|
5
|
5
|
65
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"a0a9bdffc {"Commits":[{"Sha1":"a0a9bdffc87d21f9adb6e398513a0ad917d7c2d9","Message":"Merge drag rollback fix and document business logic\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-23T21:20:28-07:00"},{"Sha1":"4fcae4cbcc18b3a5cd50a6ae7a0d50bde8f1ec1a","Message":"Expand output formats and add revision workflow\n\n- Canonical alignment-result.v2 JSON with KAS / ASS \\kf / enhanced LRC /\n SRT / LRC derived per independent quality scopes (base_subtitle vs\n precise_karaoke), non-passing scopes emit draft.* only\n- New wfa/revision.py + tests for the revision workflow\n- Document format rules in docs/output-formats.md; update README,\n quality-governance, server and web UI accordingly\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-23T21:06:44-07:00"},{"Sha1":"6bcc2c0c97694fb87125ddda8cc06b01ba33b552","Message":"Improve alignment workflow and validation\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-23T20:23:00-07:00"},{"Sha1":"5ec402cd099f4e26f2d316ef8e469cfebb69b840","Message":"Improve forced-alignment workflow and user experience\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-23T20:06:52-07:00"},{"Sha1":"3c4ed6f70232edf37a1de658959f8d45a0d94945","Message":"Expand alignment workflow and runtime validation\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-23T18:55:07-07:00"}],"HeadCommit":{"Sha1":"a0a9bdffc87d21f9adb6e398513a0ad917d7c2d9","Message":"Merge drag rollback fix and document business logic\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-23T21:20:28-07:00"},"CompareURL":"luoanwu/whisper-forced-alignment/compare/d1c89ccd106505c4c08cc8ebc8b2d50724aa0bd6...a0a9bdffc87d21f9adb6e398513a0ad917d7c2d9","Len":10}...
|
1784867121
|
Edit
Delete
|
|
18783
|
5
|
5
|
5
|
65
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"969453a0d {"Commits":[{"Sha1":"969453a0d791aad1e66df93e3af667f642266327","Message":"perf: reduce repeated evidence governance work\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-24T17:58:16-07:00"},{"Sha1":"c0f2c8c42f347b8f8d145990e923fd1a3d2c12ea","Message":"Add governed vocal separation and revision workflow\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-24T17:51:11-07:00"}],"HeadCommit":{"Sha1":"969453a0d791aad1e66df93e3af667f642266327","Message":"perf: reduce repeated evidence governance work\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-07-24T17:58:16-07:00"},"CompareURL":"luoanwu/whisper-forced-alignment/compare/a0a9bdffc87d21f9adb6e398513a0ad917d7c2d9...969453a0d791aad1e66df93e3af667f642266327","Len":2}...
|
1784941384
|
Edit
Delete
|
|
18808
|
1
|
1
|
1
|
66
|
0
|
0
|
|
1
|
|
1785118567
|
Edit
Delete
|
|
18857
|
1
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18865
|
1
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18939
|
1
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18810
|
3
|
1
|
1
|
66
|
0
|
0
|
|
1
|
|
1785118567
|
Edit
Delete
|
|
18859
|
3
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18867
|
3
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18940
|
3
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18811
|
4
|
1
|
1
|
66
|
0
|
0
|
|
1
|
|
1785118567
|
Edit
Delete
|
|
18860
|
4
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18868
|
4
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18941
|
4
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18812
|
7
|
1
|
1
|
66
|
0
|
0
|
|
1
|
|
1785118567
|
Edit
Delete
|
|
18861
|
7
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|
|
18869
|
7
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"6afdc03c6 {"Commits":[{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"}],"HeadCommit":{"Sha1":"6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6","Message":"chore: import room API codebase\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-07-27T10:27:52+08:00"},"CompareURL":"","Len":1}...
|
1785120100
|
Edit
Delete
|
|
18942
|
7
|
5
|
8
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
{"Commits":[{"Sha1":"1a41dd78e {"Commits":[{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"}],"HeadCommit":{"Sha1":"1a41dd78ef391213f361fa08e302f1478ea8faa4","Message":"需求 包厢暂停语音配置 16708\n","AuthorEmail":"developer.jeff.c@gmail.com","AuthorName":"chenjunfeng","CommitterEmail":"developer.jeff.c@gmail.com","CommitterName":"chenjunfeng","Timestamp":"2026-07-27T14:03:43+08:00"},"CompareURL":"vodtest/room_api/compare/6afdc03c68058ef9bbea47552f0bc2db4e1dc9a6...1a41dd78ef391213f361fa08e302f1478ea8faa4","Len":1}...
|
1785132227
|
Edit
Delete
|
|
18813
|
8
|
1
|
1
|
66
|
0
|
0
|
|
1
|
|
1785118567
|
Edit
Delete
|
|
18862
|
8
|
5
|
1
|
66
|
0
|
0
|
refs/heads/room_api
|
1
|
|
1785120100
|
Edit
Delete
|