Releases: shuiandy/Reframe
Release list
Reframe v1.3.1
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; the0x80070490/InvalidCastExceptionvariants were the same crash surfacing elsewhere. - Monitor combo item mutation is deferred out of
SelectionChanged(a classic0x80070490source while the popup is closing).
373 tests green.
Full changelog: v1.3.0...v1.3.1
Reframe v1.3.0
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
schtasksinherit 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
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
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.