# Omarchy release smoke test Run this checklist on a target Omarchy machine before tagging a release. The automated suite cannot reproduce compositor, monitor, fullscreen, suspend, or Flatpak behavior from macOS/CI. ## Setup ```bash npm run check npm run omarchy:validate omarchy plugin add "$(pwd)" --enable omarchy-shell com.mirashif.omarest status | jq ``` Create short one-minute focus boundaries for the applications under test and use **Settings → Test break screen** before starting the longer mixed-use run. ## Required checks - [ ] Firefox, Chromium, Steam, Discord, and one Flatpak report stable classes. - [ ] The anchored popup opens beside the OmaRest bar widget on every bar edge. - [ ] The popup lists every visible Omarchy launcher application with search and icons. - [ ] Focus time advances only while the matching application is in front. - [ ] A brief app switch preserves the continuous session. - [ ] Staying away for the configured reset duration restores the allowance. - [ ] Lock and screensaver time are not charged. - [ ] Suspend/resume does not add the suspended interval. - [ ] A warning appears once at the configured threshold. - [ ] The gate covers every connected monitor. - [ ] The gate remains above fullscreen video and a fullscreen game. - [ ] Completing a break closes every gate surface and records completion. - [ ] Holding the override closes every surface and records an override. - [ ] `Ctrl+Shift+Esc` always dismisses the gate immediately. - [ ] Reduced motion stops breathing/orbit animation. - [ ] Hot-reloading the shell restores rules and does not double-count time. - [ ] Malformed state files recover to safe defaults without blocking input. - [ ] Configuration above 256 KiB and state above 1 MiB are rejected without stalling the shell. - [ ] Oversized `hyprctl -j activewindow` output is rejected without replacing the Wayland result. - [ ] Missing `hyprctl` leaves Wayland tracking operational and reports status. - [ ] **Delete local data** clears focus boundaries and daily activity. ## Thirty-minute attribution run Alternate among at least two monitored apps, an unmonitored app, lock, and a short suspend. Compare `status`, the popup countdowns, and a stopwatch. Total attributed foreground time should remain within one timer tick per transition, with no attribution during lock or suspend.