chore(release): v1.0.2#4
Conversation
Bug-fix release. - Monitor: skip modal/owned windows and their parents (P0); HWND-level foreground guard; broader fullscreen detection; DWM cloaked filtering; monotonic-gap clamp for resume-from-sleep; action-log enriched with rule source + timeout; title redaction in info logs. - Config: fsync temp + parent dir on save for durability. - Main: replace startup unwraps with fallible reads. - UI: force_repaint helper bumps a bounded redraw_tick sentinel so the Slint software renderer doesn't paint a stale framebuffer after a long hide-to-tray. - CI: pinned actions/checkout SHA, dropped mutable third-party actions from the release workflow, idempotent publish step.
There was a problem hiding this comment.
Code Review
This pull request updates the project version to 1.0.2 and adds the Win32_Graphics_Dwm feature to Cargo.toml. The reviewer noted that the addition of this feature should be accompanied by moving related DWM logic into src/winapi.rs to maintain the architectural requirement of isolating unsafe Win32 calls within that module.
| "Win32_System_Threading", | ||
| "Win32_System_ProcessStatus", | ||
| "Win32_Graphics_Gdi", | ||
| "Win32_Graphics_Dwm", |
There was a problem hiding this comment.
The Win32_Graphics_Dwm feature is added here to support DwmGetWindowAttribute (as mentioned in the PR description). However, this API call is not present in src/winapi.rs. Given that src/winapi.rs is documented as the module where all unsafe Win32 calls are isolated (line 2), using DWM APIs in other modules (such as src/monitor.rs) would violate this architectural rule. This makes the codebase harder to maintain and test, as the WindowApi trait is intended to be the sole abstraction for window operations. Consider moving any DWM-related logic into src/winapi.rs and exposing it through the WindowApi trait.
Summary
Cuts the v1.0.2 bug-fix release.
Cargo.toml/Cargo.lockto1.0.2.Win32_Graphics_Dwmwindows-rs feature so the recently-addedDwmGetWindowAttributecall compiles on the release target.Changes since v1.0.1
force_repainthelper with a boundedredraw_ticksentinel — fixes the stale-framebuffer artifact when re-opening from the tray.actions/checkoutSHA, dropped mutable third-party actions from the release workflow, idempotent publish step.After merge, push the
v1.0.2tag to trigger the release workflow.Generated by Claude Code