feat: enforce browser audio media gate - #18
Conversation
…ect-audio-input # Conflicts: # hooks/useBrowserSourceClient.ts
|
Claude finished @guoweichen-ai's task in 2m 41s —— View job 任务清单
Review 结论有条件通过 问题及建议
未发现阻塞合并的正确性问题: 残余风险:未在本地实际运行 |
|
Claude finished @guoweichen-ai's task in 1m 42s —— View job 任务清单
Review 结论通过 问题及建议本次新增提交
残余风险:未在本地实际运行 |
|
已处理 review:P1 在 |
|
已修复该 P2( |
|
Claude finished @guoweichen-ai's task in 1m 30s —— View job 任务清单
Review 结论通过 问题及建议本次 push(
未发现新的阻塞合并问题。残余风险:未在本地实际运行 |
lanyue-llk
left a comment
There was a problem hiding this comment.
发现 1 个阻塞恢复性问题:late controller bind 的首次状态发布若失败,adapter 与 executor 的 controller 状态会分叉,后续无法自动恢复或绑定替代 Agent。其余检查通过:本地 pnpm test(238/238)、pnpm lint、pnpm exec tsc --noEmit 均成功,GitHub Actions 的 Lint and Build 也为 success。
|
Claude finished @guoweichen-ai's task in 1m 55s —— View job 任务清单
Review 结论通过 问题及建议本次核实针对 lanyue-llk 提出的 P1 阻塞问题(late controller bind 首次状态发布失败导致 adapter/executor controller 状态分叉)在
未发现新的阻塞合并问题。残余风险:沙箱环境无网络权限、未预装依赖,无法本地执行 |
Summary
This PR completes the browser side of LexVoice's unified media-control contract. The existing Browser participant now consumes
lk.media.control, applies the command to the real microphone track, and reports the observed result onlk.media.state.Changes
1. Add the media-control protocol and executor
2. Bind control to the real Browser microphone
3. Preserve current sandbox startup behavior
lex-mainprewarm and observability changes.agentNameoverride from the final input role before media startup.Impact
lk.media.control; commands change the real track and receivelk.media.stateacknowledgements.lk.agent.name: it requires exactly one eligible anonymous agent and pins that controller.lexmount/lex-voice#228.Verification
npm test✅ passed: 238 tests
npm run lint✅ passed: ESLint completed without errors
npx tsc --noEmit✅ passed: TypeScript completed without errors
Prettier check for all changed frontend files
✅ passed: all changed files match Prettier style