4588126bbd
The desktop journal synchronously read, parsed, cloned, and rewrote one aggregate localStorage value while streamed turns were repainting. Large tool results and multi-session state could therefore block the renderer and leave the app unresponsive, while the existing macOS diagnostic path lacked a real native hide/restore regression check. Store bounded recovery projections under per-session keys, migrate legacy v1 data once, isolate quota and storage failures, and preserve the newest recoverable tail without allowing oversized writes to replace valid state. Add a real Electron/CDP macOS-arm64 A/B harness with native visibility control, renderer heartbeat and Settings/composer/transcript checks, plus focused regressions. Keep bulk tool payloads, diagnostics, and the existing recovery merge behavior out of the hot path. Fixes #63047