| event_payload |
{"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"}}... |