Skip to content

Make companion window freely resizable with persisted bounds#7

Merged
LordVicky merged 6 commits into
mainfrom
resizable-window
Jul 9, 2026
Merged

Make companion window freely resizable with persisted bounds#7
LordVicky merged 6 commits into
mainfrom
resizable-window

Conversation

@LordVicky

Copy link
Copy Markdown
Owner

Summary

  • Main window is now freely resizable and maximizable instead of hard-locked to 1120×630 × UI scale; minimum size still tracks the UI Scale setting so the layout never squeezes below its designed size
  • UI Scale changes now only raise the window minimum (growing it if needed) and never override a user-chosen size; scale keeps controlling zoom exactly as before
  • Window bounds (position, size, maximized) persist to window-state.json in userData, restored clamped on-screen at launch
  • showWindowCenteredshowMainWindow: only recenters when the window isn't visible on any display, so tray/show no longer stomps the saved position
  • 4px no-drag strip keeps the top resize edge usable on the frameless titlebar
  • New pure module window-state.ts with unit tests for clamp/restore/persistence edge cases

Testing

  • 333 companion tests pass (14 new), tsc clean
  • Hardware-verified on Hyprland/Wayland: edge/corner resize, maximize, state saving (note for testers: quit any running installed instance first — the single-instance lock otherwise shows the old window)

Spec: docs/superpowers/specs/2026-07-09-resizable-window-design.md
Plan: docs/superpowers/plans/2026-07-09-resizable-window.md

🤖 Generated with Claude Code

LordVicky and others added 6 commits July 9, 2026 22:35
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant