feat: 增加测试版 Owner 声纹软拦截 - #2460
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (3)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2252d23d44
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if detector is self._asr_detector: | ||
| try: | ||
| await detector.reset() |
There was a problem hiding this comment.
Defer reset until the rejected candidate pauses
Resetting the detector here immediately discards the rejected candidate's VAD/endpointing state, but suppression is only cleared later when a CANDIDATE_PAUSE is observed. If this cleanup completes before the rejected speaker's trailing silence is fed (the normal asynchronous case), that silence cannot produce a pause for the old candidate; suppression then persists through the next real utterance and drops it until its pause arrives. Keep the detector state through the suppressed tail and reset only when _finish_owner_voice_soft_suppression observes the rejected candidate's pause.
Useful? React with 👍 / 👎.
Greptile Summary增加测试版 Owner 声纹软拦截,并在 Independent ASR 公共控制层按候选身份执行尾部抑制喵。
Confidence Score: 5/5在本次跟进审查允许的既有线程范围内,没有剩余的新阻塞问题,当前改动看起来可以合并喵。 没有发现符合跟进审查发布条件的阻塞故障喵。 Important Files Changed
|
2316db4 to
65c5705
Compare
2252d23 to
e3c7b38
Compare
e3c7b38 to
9452cc3
Compare
65c5705 to
479b6e6
Compare
9452cc3 to
2fe886b
Compare
概要
这是 #2459 之上的第二个新增堆栈 PR,为测试版 Owner 声纹增加宽松判定与 Independent ASR 当前候选软截断。
测试版目标只有一个:在尽量不影响 Owner 正常语音的前提下,截断一部分稳定、明显不匹配的长语音尾部,减少后续 ASR/LLM 消耗。它不是身份认证或安全边界。
包含 2 个逻辑 commit:
FORWARD/REJECT_CURRENT_CANDIDATE决策契约,以及版本化beta-v1两阶段策略。判定行为
would_block观测字段作为执行命令。执行行为
每个拒绝请求携带并在执行前复核:
命中后仅处理当前候选:
边界
验证结果
git diff --check通过。覆盖场景包括:Owner 不截断、短语音/分数波动放行、稳定低分长语音减少尾部上传、旧 final 不进 LLM、下一句恢复、6 类过期 identity 拒绝执行、detector reset 失败 fail-open、旧 transcript reservation 不被当前候选清除。
Regression Report
Scope
执行能力只存在于
IndependentAsrRuntime公共控制层;Core 负责组合当前 Profile/filter 状态并提交带完整 identity 的请求。Provider worker、模型协议和 endpointing 决策保持不变。Risk
GitNexus 提交前检测为 HIGH,原因是公共
IndependentAsrRuntime的 start/close/ingress 执行流受到类级变更影响,共映射到 7 条执行流程。实际变更没有改写既有 start/close/endpointing 分支,而是增加隔离的候选 fence、异步 cleanup 与 fail-open 状态;上述 552 项完整 ASR 回归用于覆盖该公共层风险。Provider Matrix
Candidate / Transcript Isolation
执行同时匹配 session、detector epoch、candidate generation、scope、profile revision 与 shadow observation generation。当前 candidate 只释放自己的 transcript reservation;先前 candidate 的 reservation/final 保留。pause 后再次 reset,将持续发声尾部与下一句分开。
Fail-open
任何 identity 不匹配、Profile 更新、策略异常、detector 不可用、reset 失败或清理失败都不会升级为 hard block。reset 失败会清除尾部抑制,恢复正常上传路径。