feat(ios): add talk tab realtime playback#88105
Conversation
|
Codex review: needs maintainer review before merge. Reviewed May 29, 2026, 3:50 PM ET / 19:50 UTC. Summary PR surface: Source +52, Other +785. Total +837 across 8 files. Reproducibility: not applicable. as a feature PR with a behavioral relay fix mixed in; I did not run the app or tests in this read-only review, but the PR discussion gives physical-device after-fix proof and the source path is clear. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the additive iOS Talk tab and response-scoped relay lifecycle after maintainer review confirms the audio boundary behavior and current checks are acceptable, keeping the new gateway event ignore-compatible for older clients. Do we have a high-confidence way to reproduce the issue? Not applicable as a feature PR with a behavioral relay fix mixed in; I did not run the app or tests in this read-only review, but the PR discussion gives physical-device after-fix proof and the source path is clear. Is this the best way to solve the issue? Yes, with maintainer review: the additive gateway event plus iOS response-scoped playback queue is the narrow maintainable shape for this PR's goal, while broader route coverage can stay as proof/merge judgment rather than a code rewrite. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 1e2fda9e6886. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +52, Other +785. Total +837 across 8 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b59cd9971b
ℹ️ 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".
b59cd99 to
104df8c
Compare
104df8c to
eb910d1
Compare
eb910d1 to
4d0b3e9
Compare
|
Addressed the review follow-ups on the latest head (
Verification:
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Latest head was rebuilt, installed, and launched on Nimrod’s iPhone after the filelist/format follow-up. Device proof:
@clawsweeper re-review |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
Dependency graph guard clearedThis PR no longer has blocked dependency graph changes. A future dependency graph change requires a fresh
|
d5f6af3 to
4d0b3e9
Compare
|
Merged via squash.
Thanks @ngutman! |
Summary
audioDonelifecycle events.Verification
node scripts/run-vitest.mjs src/gateway/server-methods/talk.test.ts extensions/openai/realtime-voice-provider.test.ts --reporter=dotNimrod’s iPhoneviaxcodebuild -project apps/ios/OpenClaw.xcodeproj -scheme OpenClaw -destination 'id=00008140-000848A92EE3001C' -configuration Debug buildxcrun devicectl device install appandxcrun devicectl device process launchCODEX_REVIEW_AUTO_TESTS=0 ~/.pi/agent/skills/codex-review/scripts/codex-review --mode local --parallel-tests "node scripts/run-vitest.mjs src/gateway/server-methods/talk.test.ts extensions/openai/realtime-voice-provider.test.ts --reporter=dot"Real behavior proof
Behavior addressed: iOS Talk now has a real tab and avoids self-listening loops by finishing response-scoped playback before re-enabling built-in speaker mic forwarding.
Real environment tested: Physical iPhone
Nimrod’s iPhoneusing bundleai.openclaw.ios.test.guti-gzs353x62eagainst the local OpenClaw gateway path.Exact steps or command run after this patch: Built with xcodebuild for the connected iPhone, installed with devicectl, launched the app, and exercised the Talk flow during development with phone diagnostics.
Evidence after fix: Phone diagnostics showed realtime speaker echo suppression during output; focused gateway/provider tests passed; Codex review reported no accepted/actionable findings.
Observed result after fix: Talk reply playback completed without the previous repeated self-trigger loop in the tested flow.
What was not tested: App Store/TestFlight packaging, alternate Bluetooth/headset routes beyond code-path preservation, and broad full-suite CI.