Jonathan McCumber
645ca19d76
fix: address reviewer feedback — rename scroll field to bool, relocate static, drop env var
...
- Rename `ui_scroll_tick_count: u64` → `should_text_scroll: bool` across all 33
call sites; `on_ui_scroll_tick` now assigns true/false instead of 0/1
- Remove two now-redundant comments from `test_on_ui_scroll_tick`
- Move `WHITESPACE_RE` static declaration below module imports in network/mod.rs
- Remove `MANAGARR_TICK_RATE_MS` env var and its parsing helpers; `recv()`-based
blocking already brings idle CPU to near-0, and tuning tick rate silently
stretches the poll cadence — keep `DEFAULT_TICK_RATE_MS` const only
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01C3FpbniZme9mJqgFkMVowz
2026-07-04 20:30:20 -05:00
Jonathan McCumber
6f697f64f4
fix: revert draw gating; replace frame-count scroll with wall-clock timer
...
- Revert src/main.rs to draw-at-top-of-loop (original structure) so
auto-scrolling is no longer coupled to event rate. Lock is released
before blocking on recv() so the network task is never starved.
- Replace ticks_until_scroll counter in on_ui_scroll_tick() with an
Instant + Duration (default 100ms). Scroll now advances at a fixed
wall-clock rate (10 chars/sec) regardless of draw rate or tick rate,
which is the correct long-term fix for the animation regression.
- Update tests: assert scroll_interval == 100ms in default/new tests;
rewrite test_on_ui_scroll_tick to cover zero-interval (always fires)
and long-interval (suppressed) cases.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01C3FpbniZme9mJqgFkMVowz
2026-06-30 20:05:00 -05:00
Jonathan McCumber
a72b2991fd
fix: address reviewer feedback — regex OnceLock and restore tick rate
...
- Compile whitespace regex once via OnceLock instead of on every
non-success response; makes format_error_body infallible (String
return, no Result) eliminating the only practical failure mode
- Revert default tick rate from 100ms back to 50ms to preserve the
existing 20-second Servarr poll cadence (tick_until_poll=400 × 50ms);
the recv() change is the real CPU fix — the tick rate change was
unnecessary and silently halved the data refresh rate
- Keep MANAGARR_TICK_RATE_MS as opt-in override; note that tuning it
proportionally stretches the poll interval alongside the tick rate
2026-06-28 13:00:16 -05:00
Jonathan McCumber
6c41e0704e
fix: reduce TUI idle CPU and improve server error banners
...
- Replace non-blocking try_recv() event loop with blocking recv() to
eliminate idle spin; the sender tick timeout still drives minimum
wakeup rate so the UI stays responsive
- Lower default tick rate from 50 ms to 100 ms (10 ticks/sec vs 20);
add MANAGARR_TICK_RATE_MS env var for runtime tuning
- Move terminal draws to event boundaries (key + tick) instead of every
loop pass, reducing unnecessary redraws
- In network error handling, prefer concise JSON fields (message /
errorMessage / error) over the raw HTTP body, so Radarr ASP.NET
stack traces don't flood the TUI banner; full body still logged
- Add unit tests for tick-rate parsing and Radarr-style JSON error body
Observed: ~0.6% total CPU at idle vs measurably higher with prod defaults
2026-06-28 12:35:37 -05:00
Dark-Alex-17
6df68b8a66
tests: Addressed additional CR comments and added tests for tail-logs
2026-06-25 14:21:57 -06:00
Dark-Alex-17
cbca6bd916
fix: addressed code review comments
2026-06-25 14:11:18 -06:00
Dark-Alex-17
92187c5f16
fix: tail-logs subcommand follows log rollovers and sleeps to minimize idle CPU loops
2026-06-25 13:51:32 -06:00
Dark-Alex-17
366809d8c6
fmt: applied formatting
2026-06-25 13:32:31 -06:00
Dark-Alex-17
dd93fe117d
feat: Implemented log rolling so the log file doesn't just grow exponentially [ #60 ]
2026-06-25 13:29:56 -06:00
Dark-Alex-17
03d134bec9
refactor: Refactored several usages of sort_by_key and match guards to utilize newer Rust version APIs
2026-06-25 13:18:43 -06:00
Dark-Alex-17
bbcd3f00a9
feat: Created a separate 'ssl' property for the config so users don't have to specify an ssl_cert_path to use SSL or use the uri workaround for HTTPS API access
2026-03-29 12:39:26 -06:00
Dark-Alex-17
5a4e6c9623
style: Addressed CR comments about adding an explicit Command::ConfigPath to the main command match statement
2026-02-04 10:24:59 -07:00
Dark-Alex-17
5556e48fc0
fix: Improved the system notification feature so it can persist between modals
2026-02-04 08:18:04 -07:00
Dark-Alex-17
af573cac2a
feat: Added support for a system-wide notification popup mechanism that works across Servarrs
2026-02-03 17:03:12 -07:00
Dark-Alex-17
447cf6a2b4
style: Applied formatting to the artist_details_ui
2026-02-03 08:10:02 -07:00
Dark-Alex-17
203bf9cb66
fix: Sonarr API updated to somtimes allow either seeders or leechers to be null
2026-02-03 08:00:31 -07:00
Dark-Alex-17
a2aa9507a9
fix: Improved the first-time run behavior so that it outputs the default configuration file it tries to load to help users locate the file on first-runs
2026-01-30 15:36:26 -07:00
Dark-Alex-17
5c517a748c
fix: 'managarr config-path' should work without a pre-existing config already in place [ #54 ]
2026-01-29 12:54:45 -07:00
Dark-Alex-17
c6d5b98e86
feat: Implemented a 'config-path' command to print out the default Managarr configuration file path to help address #54
2026-01-29 10:23:05 -07:00
Dark-Alex-17
67e5114ec2
build: Removed #[allow(dead_code)] from the LIDARR_LOGO since it is now being utilized
2026-01-26 11:56:05 -07:00
Dark-Alex-17
fdc331865e
feat: Full support for filtering disks and aggregating root folders in the UI's 'Stats' block
2026-01-26 11:10:59 -07:00
Dark-Alex-17
f388dccc08
feat: proper collapsing of root folder paths in the stats layer of the UI
2026-01-22 14:44:48 -07:00
Dark-Alex-17
64fad3b9bc
refactor: Removed the filtering of monitored_storage_paths from the networking module and migrated all of it to the UI
2026-01-22 13:12:51 -07:00
Dark-Alex-17
3be7b09da8
feat: Added config option to filter for specific disk space paths to display in the UI (CLI is unaffected)
2026-01-22 10:49:30 -07:00
Dark-Alex-17
5f3123cd79
test: Updated snapshot tests to assert the paths are updated in the UI
Check / stable / fmt (push) Successful in 9m57s
Check / beta / clippy (push) Successful in 10m59s
Check / stable / clippy (push) Successful in 10m59s
Check / nightly / doc (push) Successful in 59s
Check / 1.89.0 / check (push) Successful in 1m7s
Test Suite / ubuntu / beta (push) Successful in 1m48s
Test Suite / ubuntu / stable (push) Successful in 1m43s
Test Suite / ubuntu / stable / coverage (push) Successful in 12m55s
Test Suite / macos-latest / stable (push) Has been cancelled
Test Suite / windows-latest / stable (push) Has been cancelled
2026-01-22 09:39:44 -07:00
Dark-Alex-17
d8f7febfe1
feat: Improved disk-space UI and CLI that shows the actual path being monitored instead of just a disk number
Check / stable / fmt (push) Has been cancelled
Check / beta / clippy (push) Has been cancelled
Check / stable / clippy (push) Has been cancelled
Check / nightly / doc (push) Has been cancelled
Check / 1.89.0 / check (push) Has been cancelled
Test Suite / ubuntu / beta (push) Has been cancelled
Test Suite / ubuntu / stable (push) Has been cancelled
Test Suite / macos-latest / stable (push) Has been cancelled
Test Suite / windows-latest / stable (push) Has been cancelled
Test Suite / ubuntu / stable / coverage (push) Has been cancelled
2026-01-22 09:36:58 -07:00
Dark-Alex-17
0bfbb44e3e
feat: Implemented the forgotten lidarr list disk-space command
Check / stable / fmt (push) Successful in 9m59s
Check / beta / clippy (push) Successful in 10m58s
Check / stable / clippy (push) Has been cancelled
Check / nightly / doc (push) Has been cancelled
Check / 1.89.0 / check (push) Has been cancelled
Test Suite / ubuntu / beta (push) Has been cancelled
Test Suite / ubuntu / stable (push) Has been cancelled
Test Suite / macos-latest / stable (push) Has been cancelled
Test Suite / windows-latest / stable (push) Has been cancelled
Test Suite / ubuntu / stable / coverage (push) Has been cancelled
2026-01-22 09:06:38 -07:00
Dark-Alex-17
ddb869c341
docs: Reword some Sonarr manual search CLI docs to be more explicit about how the results are filtered
2026-01-20 14:37:42 -07:00
Dark-Alex-17
f17f542e8e
refactor: Refactored the SonarrEvent enum to not unnecessarily wrap dual series_id and season_number values in a tuple when both values can be passed directly
2026-01-19 16:44:10 -07:00
Dark-Alex-17
89f5ff6bc7
feat: Blocklist support in Lidarr in both the CLI and TUI
2026-01-19 16:13:11 -07:00
Dark-Alex-17
eff1a901eb
feat: CLI and TUI support for track history and track details in Lidarr
2026-01-19 14:50:20 -07:00
Dark-Alex-17
7add62b245
fix: Sonarr network wasn't checking for the user to be using the sorting block when populating season details
2026-01-19 14:50:01 -07:00
Dark-Alex-17
5fa9b08347
fix: Sonarr CLI was not properly filtering out episode and season releases when manually searching for releases
2026-01-19 14:49:17 -07:00
Dark-Alex-17
7bb5f83a56
feat: Lidarr UI support for album details popup
2026-01-16 23:21:25 -07:00
Dark-Alex-17
caf4ad1e64
feat: Implemented TUI handler support for the Album Details popup in Lidarr
2026-01-16 17:16:44 -07:00
Dark-Alex-17
bc6ecc39f4
feat: Bulk added CLI support for tracks and album functionalities in Lidarr
2026-01-16 14:38:08 -07:00
Dark-Alex-17
5e70d70758
test: Wrote tests for the Lidarr manual artist search key handler
2026-01-16 11:00:38 -07:00
Dark-Alex-17
1329589bd6
feat: Implemented the manual artist discography search tab in Lidarr's artist details UI
2026-01-15 14:36:09 -07:00
Dark-Alex-17
c6dc8f6090
feat: Lidarr CLI support for downloading a release
2026-01-15 12:57:54 -07:00
Dark-Alex-17
0ee275d58f
fix: Sonarr manual search TUI and CLI incorrectly displaying the same unfiltered results for both season and episode searches
2026-01-15 12:43:16 -07:00
Dark-Alex-17
8dfa664a06
feat: CLI support for searching for discography releases in Lidarr
2026-01-15 11:39:34 -07:00
Dark-Alex-17
d7f0dd5950
feat: Added TUI and CLI support for viewing Artist history in Lidarr
2026-01-14 16:09:37 -07:00
Dark-Alex-17
8b9467bd39
feat: Full Lidarr system support for both the CLI and TUI
2026-01-14 14:50:33 -07:00
Dark-Alex-17
c74d5936d2
feat: Full CLI and TUI support for the Lidarr Indexers tab
2026-01-14 13:30:51 -07:00
Dark-Alex-17
8abcf44866
feat: Full support for adding a root folder in Lidarr from both the CLI and TUI
2026-01-14 09:06:27 -07:00
Dark-Alex-17
d2217509f2
feat: naive lidarr root folder tab implementation. Needs improved add logic
2026-01-13 14:33:12 -07:00
Dark-Alex-17
c68cd75015
feat: Downloads tab support in Lidarr
2026-01-13 13:40:18 -07:00
Dark-Alex-17
e1a25bfaf2
refactor: Improved and simplified the implementation of history details for both Sonarr and Lidarr
2026-01-13 12:36:21 -07:00
Dark-Alex-17
ad9e2b3671
feat: Created a History tab in the Radarr UI and created a list history command and mark-history-item-as-failed command for Radarr
2026-01-13 12:35:54 -07:00
Dark-Alex-17
0172253d20
fix: Slowed down the automatic text scrolling in tables so the text is readable
2026-01-12 15:28:41 -07:00