* feat: WIP service setup GUI
* fix: avoid crash when closing dialog with app already running
* wip
* feat: make it more usable
* wip logs
* feat: working logs display
* feat: use new dialog for version mismatch
* chore: cleanup
* fix: tcp functionality
* feat: handle setup errors
* perf: avoid refetching system info
* fix test
* feat: add detach/reattach option to temporarily ignore a GPU
* chore: require explicit gpu id arg for detach
* feat: keep NVML and NvAPI behind a refcount instead of global init
* fix: clippy
* feat: add hold/release cookie mechanism for profile state management
Clients that need to temporarily activate a profile had no safe
way to restore the previous state on cleanup, and concurrent clients
would silently overwrite each other's profile choice.
Introduce HoldProfile/ReleaseProfile commands modelled after
power-profiles-daemon's HoldProfile/ReleaseProfile API. Acquiring a
hold activates the requested profile and returns an opaque cookie; the
previous state is saved automatically. Releasing the cookie restores
it. Multiple concurrent holds are supported with last-write-wins
semantics — releasing the active hold falls back to the next most
recent one, and releasing the last hold restores the original state.
If the client connection drops without releasing, the hold is released
automatically.
* fix: extract type aliases for profile hold fields
* refactor: remove requester field from HoldProfile request
* refactor: improve hold lifecycle signalling
* feature: Cache dependencies install in CI
* feature: Implement CI check for feature powerset
* fix: Fix dependency feature issues in subcrates
* fix: Add libadwaita to CI
* feat: profile ordering
* feat: profile matching logic
* feat: automatic switching
* perf: optimize profile rules evaluation
* feat: detect gamemode process start
* feat: add benchmark for profiles matching
* perf: string interner, inline hot function
* feat: option to enable auto profile switching
* wip
* chore: change label
* chore: minor profile switching fixes
* chore: drop interner
* wip
* refactor: header messages
* feat: delay profile evaluation
* fix: moving profiles around
* feat: initial profile rule editor UI
* refactor: only create one RuleWindow instead of creating it per-row
* feat: add option to include profile watcher state in api response
* feat: ui for selecting process name
* feat: API endpoint to evaluate a single profile rule
* perf: store process names in a map to speed up profile evaluation
* feat: full configurability in the UI, many improvements
* fix: downgrade dependency to build on older rust
* fix: deleting currently active profile
* fix: populate profiles list when it's empty
* fix: pin project to rust 1.78
* fix: setting args
* fix: running benchmarks
* feat: use relm4 for vulkan window
* feat: WIP relm4 for app
* feat: applying settings
* wip
* feat: implement all the main actions
* feat: avoid full reloads when they are not needed
* fix: don't save vbios dump when the dialog was cancelled
* feat: OC control
* feat: use relm for the software page
* refactor: Add bunch of .context calls to get more detailed error messages
* refactor: Use serde-error to serialize error with proper backtrace in client/server boundary
* fix: Workaround weird driver bug with RX 7900 XTX and power limit