# Changelog All notable changes to this project will be documented here. ## 0.2.1 - 2026-09-23 ### Fixed - Detect the active Hyprland config provider and use Lua DPMS/focus dispatchers for Lua sessions. Legacy hyprlang sessions retain their original commands. - Log the failing refresh operation, exit status and Hyprland error response; reject error responses even when hyprctl exits successfully. - Add regression coverage for Lua, older Hyprland without `status`, and refresh failures before and after the VT switch. Document the Lua startup hook. ### Validated - 30 behavioral tests, Bash syntax checks and ShellCheck 0.11.0 passed. - Full manual recovery completed on the desktop; the operator then confirmed physical HDMI input switching and recovery on Hyprland 0.56.2 with Lua and an iiyama PL3288UH on `HDMI-A-2`. See [validation details](docs/hardware-validation.md). ## 0.2.0 - 2026-09-23 ### Fixed - Session revalidation and Hyprland IPC/output checks before VT switching. - Emergency return on catchable signals and failed VT returns. - Private runtime directories, lock error handling and configuration validation. - Watcher restart on event-stream loss and honest recovery failure logs. - Explicit activation, safe update restart, consistent XDG paths and scoped uninstall. ### Added - Regression tests with mocked hardware/system services and Gitea CI checks. - Reproducible committed-source installer archives, source ZIP, Base64 and checksums. - Review findings, hardware acceptance notes and Hyprland environment startup hook. ## 0.1.0 - 2026-09-23 ### Added - DRM `HOTPLUG=1` event watcher using `udevadm monitor`. - Dynamic detection of the active Wayland session and its VT via `loginctl`. - VT-based HDMI recovery using `chvt`. - Hyprland DPMS and monitor-focus refresh before and after the VT switch. - Debounce protection for duplicate DRM events. - `flock` protection against overlapping recovery executions. - systemd user service. - Installation and uninstall scripts. - Configurable monitor name and timing values. - Restricted sudoers examples. - Boot-safety guard to avoid switching away from the display manager before login.