NotAShelf
044d6f2fa9
engine: get rid of unnecessary mutex wrapping
...
AtomicBooll in TurboHystersis already provides thread safety
2025-05-18 03:33:33 +03:00
NotAShelf
d671a9c73f
engine: deduplicate on_ac
detection logic
2025-05-18 03:24:25 +03:00
NotAShelf
72c2842227
engine: maintain previous state when CPU data is missing
2025-05-18 03:19:09 +03:00
NotAShelf
c570a327ab
engine: fix race condition
2025-05-18 03:15:34 +03:00
NotAShelf
8866eb4485
cpu: fix turbo management on systems without batteries (desktops)
2025-05-18 02:51:26 +03:00
NotAShelf
ceeb33b17d
docs: update example config
2025-05-18 02:29:45 +03:00
NotAShelf
e6d8f8c2da
engine: allow configuring initial turbo state
2025-05-18 02:25:35 +03:00
NotAShelf
a084f4e7b1
cpu: implement TurboHysteresis for managing turbo boost state
...
Hysteresis mechanism to prevent state bleeding across different
engine instances.
2025-05-18 02:01:53 +03:00
NotAShelf
04b01aa070
cpu: enhance document set_turbo
function and Auto
mode behavior
2025-05-17 19:06:07 +03:00
NotAShelf
a1c8190c28
docs: update minimum required rust version
2025-05-17 19:04:27 +03:00
NotAShelf
9c692dd103
meta: populate Cargo manifest
2025-05-17 19:04:11 +03:00
NotAShelf
aec7c6b9d4
config: set default turbo auto settings
2025-05-17 18:44:31 +03:00
NotAShelf
65e380635f
cpu: remove unused import
2025-05-17 18:27:08 +03:00
NotAShelf
2be0f41924
docs: clarify turbo management options
2025-05-17 17:43:18 +03:00
NotAShelf
cbaab9f160
cpu: simplify turbo management
2025-05-17 17:42:10 +03:00
NotAShelf
806cf64d29
engine: improve atomic operations for turbo state management
2025-05-17 14:25:37 +03:00
NotAShelf
1b31dd9e1e
cli: pad output to prevent misaligned text
2025-05-17 11:48:09 +03:00
NotAShelf
7a708c60d7
docs: mention new configuration options; document dynamic turbo mode
2025-05-17 11:41:42 +03:00
NotAShelf
9935ae9fe3
engine: allow users to explicitly disable auto-turbo
2025-05-17 11:11:24 +03:00
NotAShelf
23c526a61e
cpu: clean up dynamic CPU turbo management
2025-05-17 09:10:38 +03:00
NotAShelf
6ef0a60002
chore: v0.2.0
2025-05-17 08:11:08 +03:00
NotAShelf
c5ec148001
ci: set up build and release workflows
2025-05-17 08:06:14 +03:00
NotAShelf
c57c82ab71
debug: validate output of is_systemd_service_active
2025-05-17 08:00:09 +03:00
NotAShelf
601735957b
main: revert un-idiomatic \err.into()\
pattern
2025-05-17 08:00:09 +03:00
NotAShelf
b170fa0dd0
cli: replace ControlError
with AppError
for error handling
2025-05-17 08:00:09 +03:00
NotAShelf
ef096705fc
main: replace ControlError
with AppError
for invalid platform profile
2025-05-17 08:00:09 +03:00
NotAShelf
e83941d64b
treewide: unify error handling with special error type across modules
2025-05-17 08:00:09 +03:00
raf
506151ac79
Merge pull request #24 from NotAShelf/better-polling
...
daemon: improve adapting polling; more precise math
2025-05-17 06:30:55 +03:00
NotAShelf
862e090bc6
daemon: fix typo in comment
2025-05-17 06:23:07 +03:00
NotAShelf
c046c27376
daemon: prioritize load checks over idle state in system state determination
2025-05-17 06:20:26 +03:00
NotAShelf
f0932c64d9
daemon: prevent busy loops via minimum polling interval
2025-05-17 06:01:00 +03:00
NotAShelf
ff4e6e69c8
daemon: deduplicate idle state check logic
2025-05-17 05:47:39 +03:00
NotAShelf
139746069a
daemon: cross-platform safe arithmetic
2025-05-17 05:39:01 +03:00
NotAShelf
59602b0e3e
daemon: refactor SystemHistory
init; derive Default
for SystemState
2025-05-17 05:19:32 +03:00
NotAShelf
4aea53e060
daemon: refactor idle time multiplier calculation for adaptive polling
2025-05-17 04:59:39 +03:00
NotAShelf
0ecb02499a
docs: fix link casing and clarify Rust version requirement in README
2025-05-17 04:41:12 +03:00
NotAShelf
ff2f305d9e
daemon: optimize CPU usage averaging in SystemHistory
updates
2025-05-17 04:40:30 +03:00
NotAShelf
70a59cec82
daemon: cleaner idle time handling and progressive back-off adjustments
2025-05-17 04:31:05 +03:00
NotAShelf
035d7b8848
daemon: avoid potential u64
overflow when scaling long poll intervals
2025-05-17 04:02:09 +03:00
NotAShelf
f79d6385b4
docs: mention new adaptive polling features
2025-05-17 03:33:26 +03:00
NotAShelf
eea1f52c26
daemon: progressive logarithmic back-off for idle periods
...
1min -> 1.5x, 2min -> 2x, 4min -> 3x, etc.
Addresses poll interval inflation issues caused by noise in battery
measurements and hopefully improve power efficiency during extended
idle periods.
2025-05-17 03:22:30 +03:00
NotAShelf
6335f139f9
daemon: improve polling interval adjustment
...
Casting float ->→ u64 risks silent truncation & sub-second intervals. We now *round*
the computed interval, and ensure a minimum value of 1 to avoid zero or overly-small
polling intervals.
2025-05-17 03:02:51 +03:00
NotAShelf
4fcfeb073d
daemon: clamp battery discharge rate to a maximum of 100%/hour
2025-05-17 03:01:29 +03:00
NotAShelf
f71534f7ef
daemon: refactor polling interval calculation; use a struct
2025-05-17 02:45:57 +03:00
NotAShelf
7431c22825
daemon: refactor polling interval calculation into a separate function
2025-05-17 02:26:51 +03:00
NotAShelf
8d784b5d56
daemon: reset battery discharge tracking on AC connection; preserve history
2025-05-17 02:12:54 +03:00
NotAShelf
7047f64984
daemon: enforce user-configured min and max polling interval limits
2025-05-17 02:08:21 +03:00
NotAShelf
264cd6a4e9
daemon change CPU and temperature history to use VecDeque
2025-05-17 01:52:35 +03:00
NotAShelf
8c3a1848e1
daemon: more sophisticated adaptive polling
...
There are gains to be had.
2025-05-17 01:44:24 +03:00
raf
39736f2925
Merge pull request #22 from NotAShelf/complete-config-watcher
...
config: streamline hotreload; don't search in `$XDG_CONFIG_HOME`
2025-05-16 21:11:06 +03:00