v2.4.9 July 13, 2026 Latest
Fixed
- Boox mirroring no longer stalls or lags seconds after connect — the companion’s connection check was mistaken for a new screen every 2 seconds, forcing constant full-screen resends that saturated the USB link.
- Screen capture recovers automatically when macOS interrupts the capture stream during display changes, instead of freezing the session.
- Boox model names without spaces (e.g. Tab Ultra C Pro, Note Max) are now recognized correctly, so those devices get the e-ink-optimized output.
Changed
- Non-Daylight tablets now default to a landscape layout — a portrait default previously forced the Mac into a vertical mirror shape on connect. Orientation can be changed anytime in the resolution picker.
- Color e-ink devices now default to greyscale output (sharper, and a third of the USB bandwidth). A new Output picker in the menu bar lets you switch back to color.
v2.4.8 July 1, 2026
Added
- Time-limited license keys — license keys can now carry an expiry date, enabling 30-day evaluation licenses alongside permanent keys. Permanent keys are unchanged.
v2.4.7 July 1, 2026
Fixed
- Socket file-descriptor leak on client disconnect — under repeated reconnects the app could exhaust its file descriptors, wedging mirroring with a false “disconnected during setup” error until force-quit. Descriptors are now released immediately on disconnect.
v2.4.2 April 4, 2026
Fixed
- Companion version check uses major.minor — patch bumps no longer trigger false “update failed” error
v2.4.1 April 4, 2026
Fixed
- Menu bar icon missing after install from DMG — Sparkle framework was not bundled in v2.4.0 release
- macOS 26.4 Tahoe crash on launch — fixed-size menu bar label prevents _NSWindowTransformAnimation SIGSEGV
- License activation now shows specific error messages instead of generic “Invalid license key”
- Virtual display arrangement persists across launches (deterministic display serial per device)
- Thread-safe display serial claiming for multi-device scenarios
Changed
- Support email auto-includes diagnostic logs
- Version label in menu bar doubles as update check button
- Build script verifies Sparkle framework presence in DMG before notarization
v2.4.0 April 4, 2026
Added
- Sparkle 2.9.0 auto-update — check for updates from the menu bar
- Single-instance enforcement — prevents duplicate processes
- Brightness debounce — 3s dim delay, 5s restore grace, crash recovery
- Session limit overlay for trial users
- Unified logging (SMLog) + performance metrics + event timeline
- Frame pipeline instrumentation for Instruments.app
- Version sync enforcement across Mac and Android
Fixed
- Crash on resolution change — double-stop race condition eliminated
- Brightness flapping during transient connection drops
- Companion auto-update detecting stale bundled APK
- RTT metrics accuracy (proper percentile calculation)
v2.3.2 March 26, 2026
Added
- Companion app status checklist — real-time progress from Mac (USB connected → SuperMirror running → Virtual display → Mirroring)
- Start/Stop Mirror buttons on companion — trigger mirroring directly from your device
- Improved USB detection for Daylight DC-1
- Build safety tooling — pre-commit hooks, preflight checks, verify targets
Changed
- Companion app UI rewritten — centered checklist with USB/WiFi picker, debug logs, version footer
Removed
- Disable WiFi/BT on connect — was unreliable on modern Android
Fixed
- WiFi host accidentally passed to USB connections, causing companion “disconnected” state
- Unnecessary background polling during active mirroring
v2.3.1 March 26, 2026
Added
- Structured diagnostic logging (RingLogger) —
supermirror logs and supermirror report CLI commands
- Companion version check + auto-update via ADB
- Companion health monitoring — auto-relaunch if crashed (up to 3x)
- Timeout protection on all ADB operations
- WiFi mode restored — opt-in Bonjour discovery
- Periodic update check every 6 hours
Fixed
- Phantom virtual displays — eliminated all code paths that could create displays without a connected device
- APFS filename collision between CLI and GUI binary
- CLI no longer spawns duplicate engine when GUI is running
v2.2.0 March 25, 2026
Added
- Dynamic resolution for non-DC1 devices — Cozy (HiDPI 2x) and Sharp (1:1) from native panel size
- Landscape/Portrait orientation support for all devices
- Hardcoded resolution registry for 100+ devices as fallback
- Setup checklist in idle view
Fixed
- Port conflict on resolution change
- Virtual display not released on USB disconnect
v1.8.0 March 7, 2026
Added
- Clamshell mode — use DC-1 with MacBook lid closed (works on battery)
supermirror health CLI command
- ESC to dismiss menu bar popover
v1.7.0 March 7, 2026
Added
- Display profiles — Crisp Paper, Balanced, Custom
- Gamma correction for reflective paper displays
- GL_NEAREST texture filtering on Android for pixel-perfect text
Fixed
- Double-processing crushing greyscale range
- Pixel mapping destroyed by DC-1 display_size_forced override
v1.6.0 February 18, 2026
Added
- Developer ID signing + notarization
- Dim Mac display toggle