Skip to content

fix: recover streaming sessions and preserve confirmation ownership - #328

Merged
yuxino merged 2 commits into
mainfrom
fix/session-state-reliability
Oct 26, 2026
Merged

yuxino merged 2 commits into
mainfrom
fix/session-state-reliability

Conversation

@yuxino

@yuxino yuxino commented Oct 26, 2026

Copy link
Copy Markdown
Owner

Changes

  • Restore bounded recovery when an established xAI streaming recognition connection fails. Share the provider error policy with desktop so Gemini/xAI authentication, missing credentials and unsupported languages stop with the actionable error instead of being retried.
  • Refresh the display confirmation time when a new session accepts identical final text. Also fix duplicate admission in the shared reducer's zero-history contract; current production controllers retain 20 rows, so this is a component-boundary fix rather than a claim of duplicated saved sessions in the app.
  • Allow a complete valid custom ASR credential replacement to repair a malformed saved slot, while preserving partial-edit validation, the independent text slot, durable read-back and rollback.

Each defect has a failing regression followed by the same passing case. Provider protocols, retry budgets and credential-store fallback are unchanged.

Validation

  • Full ./scripts/check.sh: core 108 tests plus 4 contracts, runtime 942 tests, JNI Rust 30 tests, desktop 671 tests and frontend 2,803 tests passed; existing ignored tests remain.
  • Android testDebugUnitTest testReleaseUnitTest lintDebug lintRelease: 299 JVM tests in each variant, no failures or skips, with the actual host JNI library.
  • Actual JNI local TLS/WebSocket scenarios: xAI reconnects after an established transport closes; authentication rejection ends after one connection with a sanitized code.
  • Independent review of recovery and subtitle changes; synthetic credential repair, restart, malformed-document rejection and rollback checks.

The running production app was preserved. No real credentials, capture, live-provider session, physical-device acceptance, release or deployment was performed. Detailed evidence and limits are in docs/development/integration-runs.md.

@yuxino
yuxino merged commit 99dc2dd into main Oct 26, 2026
16 checks passed
@yuxino
yuxino deleted the fix/session-state-reliability branch October 26, 2026 05:49
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