Skip to content

Releases: shuiandy/Reframe

Reframe v1.3.1

Choose a tag to compare

@shuiandy shuiandy released this 02 Aug 06:47

v1.3.1

Patch release fixing #1.

  • Layout editor no longer crashes when changing the reference resolution (LayoutCycleException, reported on Windows 10, reproducible on 11). The canvas height budget read a value that depended on the canvas's own height — off by one border thickness per layout pass — so a large aspect change crawled toward its target ~2 DIP at a time until it exhausted WinUI's layout-iteration budget. The budget now comes from the window-sized row, which cannot feed back; the 0x80070490 / InvalidCastException variants were the same crash surfacing elsewhere.
  • Monitor combo item mutation is deferred out of SelectionChanged (a classic 0x80070490 source while the popup is closing).

373 tests green.

Full changelog: v1.3.0...v1.3.1

Reframe v1.3.0

Choose a tag to compare

@shuiandy shuiandy released this 02 Aug 05:52

What's new in v1.3.0

Window-position persistence, rebuilt

Remember-and-restore now actually survives the real world:

  • Windows are identified by process + window class, not by handle — an app that restarts (a browser update, a crash, a reboot) is re-claimed and moved back to its remembered place instead of being forgotten.
  • Layouts persist to disk (%LOCALAPPDATA%\Reframe\window-layouts.json, atomic writes, corruption-tolerant) and survive reboots.
  • Each display scale factor keeps its own layout. Changing Windows scaling (say 150% → 175%) leaves the physical resolution unchanged, so it used to silently corrupt the remembered layout; scale is now part of the layout key, and switching back finds the old layout intact.
  • A window is only moved when Reframe can tell which window it is. Multi-window Electron apps (QQ, and friends) share one window class for every window; pairing them by guesswork used to reshape a chat window into the main panel's rect. Restores are now gated on confident identification (a unique caption, or an unambiguous 1:1) — when in doubt, Reframe records where a window is instead of guessing where it belongs.
  • Post-wake scrambling grace extended so a monitor waking up slowly can't overwrite a freshly restored layout.

Fullscreen handling

  • Exclusive-fullscreen games have no manipulable window; Reframe now detects that state and tells you to switch the game to windowed/borderless instead of failing silently. Borderless-fullscreen windows are taken over normally.

Fixes

  • Start-on-login task no longer kills the app after 3 days. Tasks created by schtasks inherit a default 3-day execution limit that the command line cannot disable; the task is now registered via XML with no limit, and existing installs self-heal on the next launch.
  • WER crash dumps are now actually registered (previously written to a hive WER never reads).
  • Crash log now brackets every session and records exit/toggle provenance, so a vanished process is diagnosable after the fact.

356 tests green.

Full changelog: v1.2.0...v1.3.0

Reframe v1.2.0

Choose a tag to compare

@shuiandy shuiandy released this 14 Jun 17:56

Reframe v1.2.0

New since v1.1.0:

  • Proper Windows installer (Reframe-Setup-...exe): wizard, installs to Program Files, Start menu + optional desktop shortcut, Add/Remove Programs entry. Auto-downloads the .NET 9 Desktop Runtime if it is missing.
  • Full UI localization (English + Simplified Chinese) with an in-app language switch.
  • Start-on-login can launch silently minimized to the tray (optional, default on).

Two download options:

  • Reframe-Setup-v1.2.0-win-x64.exe - the installer (recommended).
  • Reframe-v1.2.0-win-x64.zip - portable / green build.

Requires Windows 10 1809+/11 x64. Runs as administrator (to manage anti-cheat game windows via standard Win32 APIs; no injection, no memory access). 219 unit tests.

Reframe v1.1.0

Choose a tag to compare

@shuiandy shuiandy released this 11 Jun 02:49

First public release. Borderless-window manager with per-monitor adaptive layouts: first-class reusable layouts (ratio-based zones), per-monitor placement rules, FancyZones-style editor, Shift drag-snap, game launcher with Unity resolution presets, configurable hotkeys, tray-resident engine with full restore. Requires .NET 9 Desktop Runtime; runs elevated (UIPI - no injection, no memory access). 206 unit tests.