mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-27 11:22:03 +00:00
The desktop window opened at a hardcoded 1220×800 every launch, discarding whatever size and position the user left it at (#39101) — on macOS the dock reopen was the most visible case, but every restart reset it. A small window-state.json under userData (same pattern as connection.json / updates.json) records the window's normal bounds plus its maximized flag, written debounced on resize/move/maximize and flushed on close, applied on the next createWindow(). getNormalBounds() captures the pre-maximize size so an un-maximize next session lands where the user actually sized it. Restore is defensive: sanitize rejects garbage, drops off-screen positions (window falls back to Electron centering), and caps a size saved on a since-disconnected larger monitor to the largest current display. The geometry math lives in a side-effect-free window-state.cjs so it unit-tests with node --test, no Electron boot. No new dependency. Salvages #39154 by @jeffrobodie-glitch — same userData approach and validation intent, reimplemented tighter and folded into one module. Co-authored-by: jeffrobodie-glitch <jeffrobodie@gmail.com> |
||
|---|---|---|
| .. | ||
| bootstrap-installer | ||
| desktop | ||
| shared | ||