Fix PTT screen grounding and canonical agent status#9775
Open
Git-on-my-level wants to merge 10 commits into
Open
Fix PTT screen grounding and canonical agent status#9775Git-on-my-level wants to merge 10 commits into
Git-on-my-level wants to merge 10 commits into
Conversation
0211aef to
39ae598
Compare
Make visual evidence receipts truthful at the local websocket enqueue boundary, fail no-transport sends through the terminal session path, and reject only direct contradictory foreground-app claims. Isolate named-bundle, harness, and local backend logs so concurrent QA runs cannot contaminate diagnostics. Keep one-shot TTS fallback from speaking a cancelled turn.\n\nVerification: focused Swift screen/transport/voice/lifecycle suites (133 tests); cargo check + fmt; omi harness, hardening smoke, and named backend log-isolation tests.
Allowlist three existing file-isolated configuration tests whose measured CPU cost consistently exceeds the local 120ms guard. The test guide prescribes exact-node allowlisting for this structural cost; the global budget remains unchanged.\n\nVerification: backend/test.sh (604 selected unit test files).
Apply the repository Flutter formatter to historical files carried by this branch so the protected pre-push formatter gate is reproducible.\n\nVerification: dart format --line-length 120 on all ten affected files.
39ae598 to
6085f2d
Compare
Collaborator
Author
|
Monitor summary for PR #9775:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Product invariants affected
Root cause
The screen report was accepted locally, but the reducer's generic tool-start path also set a provider-continuation obligation. The screen-report path presented a local result without discharging that obligation. When Gemini finished its provider turn with no further narration, the controller parked in
awaitingResponseuntil the generic 20-second provider-response deadline. The live trace for turn4645612Fshowsreport_acceptedat 00:07:35.587,provider_turn_doneat 00:07:52.064, then cancellation at 00:08:12.528.Durable guard
VoiceScreenEvidenceProtocolTokenmakes the screenshot/report handshake an explicit reducer-owned protocol tied to the original turn, screenshot effect, session, and epoch. Only a matching verified report may close it; enqueue failure, rejected report, provider terminal without a report, hub error, freshness expiry, cancellation, and barge-in all resolve the exact protocol fail-closed. Its deadline is the remaining five-second evidence lifetime, not the generic 20-second narration timeout. A stale deadline is rejected if its effect identity no longer matches the live state. The result remains fenced by persistence, playback, and journal completion; deterministic screen audio can preempt speculative native speech through the same output-lease ownership path used by canonical spawn acknowledgement.Verification
xcrun swift test --package-path desktop/macos/Desktop --skip-build --filter 'VoiceTurnOutputOwnershipTests|VoiceTurnReducerTests|RealtimeScreenEvidenceTests|VoiceTurnReducerFuzzTests'— 99 passed.xcrun swift test --package-path desktop/macos/Desktop --skip-build --filter 'VoiceTurnReducerTests|VoiceTurnCoordinatorTests|RealtimeScreenEvidenceTests|RealtimeHubSpawnAgentTests'— 130 passed.bash desktop/macos/scripts/agent-logic-harness.sh --cross-surface-smoke— 242 Swift agent-contract tests and 13 Rust retrieval-contract tests passed.python3 desktop/macos/scripts/check_desktop_test_quality.py— passed.git diff --check— passed.Manual QA
Build and launch the existing
/Applications/omi-qa-live-fix.appagainst development GCP. A PTT "what is on my screen" request should produce a current-screen answer or the deterministic verification failure within five seconds; it must not remain in a 20-second post-tool spinner. Barge-in remains silent unless there is an actionable failure.