Skip to content

v0.20.0 — Startup Performance & Draft Preservation

Choose a tag to compare

@OpenSource03 OpenSource03 released this 12 Mar 03:37
· 23 commits to master since this release

What's New

⚡ Startup Performance

  • Flash-free window launch — window starts hidden (show: false) and appears only after ready-to-show, eliminating the white flash on startup
  • Non-blocking analytics init — PostHog initialization in the main process is now fire-and-forget instead of await-blocking app.whenReady()
  • Deferred analytics sync — renderer-side syncAnalyticsSettings() moved from module-level to a useEffect so IPC calls don't block first paint
  • Lazy model cache revalidation — model list revalidation (which spawns a Claude SDK subprocess) is deferred by 3 seconds, reducing startup IPC contention while cached models serve the initial render
  • Relaxed session prefetch timing — idle callback timeout raised from 1.5s → 5s and fallback timeout from 250ms → 3s, with 50ms yields between sequential loads to let the main process event loop breathe

🎨 Draft Preservation

  • BottomComposer component — new wrapper keeps the InputBar always mounted (hidden via aria-hidden + inert) while a permission prompt is active, preserving any unsent text the user was composing
  • Test coverage — static-render tests verify both states: InputBar visible when no permission is pending, and InputBar hidden-but-mounted alongside the PermissionPrompt

Full Changelog: v0.19.1...v0.20.0