Skip to content

Bind mobile assistant turns to current account and household - #455

Merged
NewWorldVenture merged 0 commit into
claude/roadmap-implementation-ld8bonfrom
codex/strategy-mobile-voice-lifecycle-20260909
Sep 10, 2026
Merged

NewWorldVenture merged 0 commit into
claude/roadmap-implementation-ld8bonfrom
codex/strategy-mobile-voice-lifecycle-20260909

Conversation

@NewWorldVenture

@NewWorldVenture NewWorldVenture commented Sep 9, 2026 •

Copy link
Copy Markdown
Owner

S-11 follow-up from #421 and the strategy queue: a recording or request could outlive a reset, household switch, sign-out or app background transition, then submit or display its result in the next conversation. The phone already recorded audio; this change gives recording, transcription and typed sends one context-bound turn lifecycle.

  • Serialize microphone preparation/stop/cleanup, exclude duplicate or overlapping turns, abort invalidated network work and discard late completions. Reset, auth/member/role/household changes, leaving the assistant and backgrounding all invalidate the turn. Owner-tagged conversation and family state hide prior content on the first changed-context render, before effects run; captured owner/conversation checks reject late native callbacks and queued updaters. A failed native stop still restores audio mode, and cleanup must finish before another recording starts.
  • Refresh household context before recording or sending. Late family reads cannot overwrite the current account. Explicit auth events take precedence over delayed session bootstrap, while an initial null session still preserves offline recovery evidence. Optional X-Bubaly-Family-Id assertions reject invalid or mismatched scopes before assistant/provider work; callers without the header remain compatible. Voice configuration errors and unavailable household reads have distinct codes and messages.
  • Generate an assistant-only mobile catalogue from the seven base catalogues, select its supported language from the device locale, and send Accept-Language on bearer requests. The same translated catalogue supplies iOS microphone permission copy. No locale dependency or new preference is introduced.
  • Declare the SDK-required @expo/metro-runtime and @expo/ui packages directly so the existing Metro resolver can find them. Expo install selected the SDK 57 metadata versions; both versions were already transitively locked. No Metro resolver change or unrelated package upgrade.

Validation on integration 85639a18 plus this change:

  • 185 targeted tests across 13 suites pass, including real component renders before passive effects, stale native callbacks, deferred permission/preparation/stop/transcription/reply stages, reset, household/role/account changes, sign-out, background/unmount, double taps, stop failures, bootstrap/event races, API guards, transports and catalogue parity.
  • Full native Windows suite: 1,004 files / 9,649 tests pass. Five known baseline path failures remain across household-trail, i18n-server-boundary (two), supabase-query-audit and untrusted-fence-ratchet; no new failure.
  • Web and mobile typechecks, changed-file ESLint (including normally ignored mobile files), i18n gate, generated-catalogue check and diff check pass. Web typecheck and the render/transport integration suites also pass with native dependencies absent, matching the separate web CI job.
  • Clean mobile npm ci, Expo config validation, and clean iOS + Android exports pass. Native binaries and physical-device microphone/permission/background behavior were not tested here; follow the device checks in mobile/README.md and docs/mobile.md before release.

Local cancellation cannot undo a request already accepted by the server. This remains a draft for integration review; it adds no schema, spoken replies, wake word or general navigation changes.

@vercel

vercel Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
bubaly Ready Ready Preview Sep 9, 2026 10:37pm UTC

Request Review

@NewWorldVenture
NewWorldVenture marked this pull request as ready for review September 9, 2026 22:46
@NewWorldVenture
NewWorldVenture force-pushed the claude/roadmap-implementation-ld8bon branch 3 times, most recently from 11aa925 to 677e44c Compare September 10, 2026 16:31
@NewWorldVenture
NewWorldVenture merged commit eaac213 into claude/roadmap-implementation-ld8bon Sep 10, 2026
7 checks passed
@NewWorldVenture
NewWorldVenture force-pushed the claude/roadmap-implementation-ld8bon branch from 56d8dd0 to 404d5d5 Compare September 10, 2026 20:53

This branch was successfully deployed

1 active deployment
Preview — eaac2139 Deployed Sep 9, 2026 by vercel[bot]
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.

1 participant