Compare commits

...

1 Commits

Author SHA1 Message Date
jay 9231a630a9 Merge T-2.10 Background lifecycle (TDD: tests → impl → review → fixup)
- AppState exposes lifecycleTransitions publisher (bg=true / fg=false)
- SessionConnection: suspend()/resume() with isStreamFrozen + isKeepAliveActive,
  injected ResumeCursor that updates on every binary frame (B-1 fix)
- MainTerminalView: scenePhase → AppState → suspend before background,
  resume(from: lastSeq) on foreground, 'Reconnecting…' status
- Post-Face-ID reconnect: re-emit foreground transition after successful auth
- #if DEBUG gating for all test launch args (--reset-state, --enable-faceid,
  --force-lock, --uitest-with-stub-connection, --pair-with-url) and stubMode
- 22 new lifecycle tests (10 SessionConnection + 6 AppState + 4 UI + 2 regression
  guards) + 6 follow-up tests (CG-1..CG-4)
- Final: 130 unit tests / 8 pre-existing failures; 12/12 UI tests
2026-05-17 13:24:30 +02:00

Diff Content Not Available