* 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
* fix: fixed the confirm apply dialog timer not stopping after choosing an option
* feat: added static fan control to the daemon and GUI
* fix: cleanup and validate static speed
The goal of this PR is to have a confirmation dialog that the user has to click before the settings are saved onto disk. This is useful because when tweaking some settings (especially memory frequency), it's possible to crash your system, and if the settings are saved right away you end up with a soft-bricked system that will apply the broken settings on the next daemon start.