Changelog
Recent technical changes, by date. For the long-form version of how the project got here — the V1 prototype, the V2 breadth push, the V3 physics rewrite, and the V4 UI rebuild — see the Milestones page.
V4.1 / 2.0.0 release polish (May 2026)
The ship-readiness pass for v2.0 on Steam and the Microsoft Store.
- Steam release — OLED Guard Pro is now live on Steam (Steam App ID 4558060) alongside the existing Microsoft Store editions.
- Single-instance enforcement — launching a second copy now raises the existing window instead of spawning a duplicate engine that fights for D3D capture resources.
- Window placement persistence — the dashboard remembers its size, position, and maximised state across launches, validated against the current monitor layout so an unplugged display doesn't strand the window off-screen.
- Morphological noise-gap filter is now the default in Auto Mode (was Off). Every factory preset ships with it on.
- Per-profile Intensity override — App Profiles can now scale just the Intensity slider for one application without editing the preset itself.
- Exe-claim collision UI — the App Profiles page surfaces the conflict inline if two profiles try to own the same executable, and rejects the save until resolved.
- Browse... — native file dialog for picking an executable when the running-apps list and Steam library browser don't have what you want.
- Occlusion-aware capture exclusion — registered app windows now contribute only their visible region to the exclusion mask, closing the app-gap behind a covering window.
- Visibility-aware WDA exclude — the screen-capture-protection flag now toggles based on how much of the OLED Guard window is visible, eliminating the residual app-gap on fully-visible windows.
- Overlay visibility floor (gamma 0.6) so detected HUDs land at a visible protection level instead of a near-invisible green-heatmap floor.
- Settings.json
.bakrecovery — an unreadable settings file is now quarantined tosettings.json.bakand logged, instead of silently resetting to defaults with no trail. - Tray balloon on close — first-of-session "still running in the tray" notification so users don't think the app quit when they hit the X.
- app.manifest 2.0.0.0 — bumped version, added
longPathAware, added the Windows 11 supportedOS GUID, opted into UTF-8 active code page. engine.logfromLog.Warn/Error— the bridge and engine's catch blocks now write structured entries to%LOCALAPPDATA%\OLEDGuard\engine.loginstead of relying onDebug.WriteLine(which is stripped in Release).- CA2014 stackalloc-in-loop fix in the render hot path.
- In-game tuning HUD (
Ctrl+Shift+G) — an optional always-on-top compact overlay that exposes the live Auto-Mode reasoning, hot-bindable from the Hotkeys page.
V4 in flight (April 27 onwards)
- Hot-plug awareness across the whole monitor list. Plug a USB-C OLED in, the engine picks it up; unplug it, the protection stops cleanly without disturbing other displays.
- Per-monitor DDC/CI re-probe when capabilities change at runtime.
- 24h threat-history ring persisted for the Statistics timeline.
- Per-app screen-time persistence across restarts.
- Classifier confidence score on the metrics stream so the Auto controller surfaces uncertainty.
- DDC startup probe extended from 150 ms to 1.2 s — removes a class of "No DDC" false reports on monitors that take a moment to wake.
- External-link routing — clicks inside the WebView2 shell now open in your default browser instead of disappearing into the embedded view.
- v4 visual system across every page: dashboard, monitors, overlay, vignette, settings, advanced, profiles, hotkeys, and about, each rebuilt to match the v4 design source.
- New shield logo replaces the OG monogram in the desktop app and on the website.
V3 — physics engine (April 18 – April 26)
- Per-pixel exposure shader (
ExposureAccumulatePS_v3) replaces the v2 heuristic accumulator. - Motion envelope + stability gate as separate GPU passes.
- Auto Mode V3 controller with explicit UI sync and a pause-banner that follows manual edits.
- Live classifier readout on the Advanced page, streaming controller knob history at 60 Hz.
- Per-pixel motion envelope replaces the cell-based intelligence layer (which produced staircase artefacts at content boundaries and is now retired for good).
- L4 per-preset tuning suites — 24/24 green before every release.
- Window Border Protection retired (it was a v2-era heuristic that the V3 engine subsumes).
- Phase 8 of the V3 redesign closed with the v2 preset fields, engine properties, and legacy UI sliders deleted.
V2 — the complete app (Feb 13 – Apr 17)
- Multi-monitor architecture with independent capture and render pipelines per display.
- DDC/CI brightness & contrast through VESA MCCS commands.
- Per-app profiles with foreground-window watcher and debounced switching.
- Auto Mode v1/v2 controller predates the V3 redesign.
- Noise / Vignette / Mosaic protection-mode set with separate shaders.
- Gaming presets with edge-weighted protection and proportional brightness gate.
- Hierarchical test harness (L1 unit / L2 physics / L3 scenarios / L4 per-preset) with 81 tagged assertions.
- Quality presets (Low / Medium / High / Ultra at 432p) trade detection accuracy against capture cost.
- Microsoft Store trial flow plus Free / Pro entitlement split.
V1 — proof of concept (2024)
The first version. Hardware-accelerated screen capture, single-monitor overlay composition through DWM, the kernel of the engine that everything since has built on. Predates this public repository.