- Version the persisted window geometry schema (v1 → v2) and clean up
legacy UserDefaults keys so stale payloads from older releases don't
cause crashes on startup.
- Defer layout follow-up flush via asyncAfter(0) and track an attempt
version counter to invalidate stale retries, preventing re-entrant
displayIfNeeded crashes triggered by SwiftUI geometry change callbacks.
- Replace fixed RunLoop delays in tests with polling waitUntil helpers
and increase socket wait timeout for CI reliability.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>