Skip to content

fix(voice): keep clicked calls bound to their chat - #247

Merged
johnmatthewtennant merged 2 commits into
mainfrom
jtennant/voice-call-routing
Aug 30, 2026
Merged

fix(voice): keep clicked calls bound to their chat#247
johnmatthewtennant merged 2 commits into
mainfrom
jtennant/voice-call-routing

Conversation

@johnmatthewtennant

Copy link
Copy Markdown
Contributor

Summary

Keeps Voice Conversation bound to the chat and window that initiated it without relying on transient focus.

  • Authorizes starts against the foreground session generation and window ownership.
  • Allows focus to move to voice controls without rejecting the clicked call.
  • Rejects stale starts after a different window or session replaces the foreground target.

Reviewer example

Click the call control in a chat, then let focus move to the voice controls while startup is in flight. The call remains attached to that chat; a stale start from another foreground generation is rejected.

Testing

  • just check
  • just tauri-check
  • just clippy

@johnmatthewtennant
johnmatthewtennant marked this pull request as ready for review August 29, 2026 13:03
@johnmatthewtennant
johnmatthewtennant requested a review from a team August 29, 2026 13:03

@morgmart morgmart left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Automated code review

APPROVE. Fresh static review of the exact three-dot comparison 1366fb9...7dac06f found no publishable findings. The change removes window-focus as an authorization proxy while retaining renderer epoch, foreground-session generation, stable session ownership, and serialized lifecycle validation. The replacement-stop and voice-start paths were traced through validation and lifecycle boundaries; the changed unit test discriminates ownership acceptance and rejection. Final self-check covered the changed voice start/replacement flows, accessibility, localization, navigation/consent guards, async/error/never-completes/lifecycle/race behavior, test honesty, project laws and design-system rules, duplicate overlap, and blocking-evidence quality. This backend-only change introduces no visual, accessibility, or localization surface. Supplied GitHub evidence was inspected: all nine check runs for the exact head SHA completed successfully, while the legacy combined commit status is pending with no contexts; required checks still independently govern merge readiness.

Deterministic publication result: 0 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.

Pending checks: 1 check(s) are not complete.

This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.

@johnmatthewtennant
johnmatthewtennant merged commit 33f885e into main Aug 30, 2026
9 checks passed
@johnmatthewtennant
johnmatthewtennant deleted the jtennant/voice-call-routing branch August 30, 2026 02:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants