Skip to content

v2026.06.12 - Various bug fixes #42

Merged
coreyeaston merged 10 commits into
mainfrom
develop
Jun 12, 2026
Merged

v2026.06.12 - Various bug fixes #42
coreyeaston merged 10 commits into
mainfrom
develop

Conversation

@coreyeaston

Copy link
Copy Markdown
Contributor

No description provided.

coreyeaston and others added 10 commits March 4, 2026 19:00
The hardcoded relative path (3 slashes) resolved to /app/data/speedarr.db
instead of the actual database at /data/speedarr.db. Import the URL from
app.config.settings to stay consistent with the main app.
Make duration_hours optional for temporary bandwidth limits, allowing
indefinite limits that persist until explicitly cleared. Add UnRaid
parity check, mover start/stop script examples to the API Keys
integration guide with smart per-integration API key matching,
red-highlighted placeholders for unmatched keys, and collapsible
sections.
Fix qBittorrent authentication with 204 No Content response
qBittorrent supports auth bypass (and qui proxies handle auth upstream),
but the test endpoint hard-required username and password while NZBGet
and Transmission only require url. Align qBittorrent with that pattern
and stop backfilling the visible username field from stored config,
which produced misleading test results.
The set path converted Mbps to KB/s with a 1000-byte KB (x125), but
NZBGet treats KB as 1024 bytes and the read path converts bytes/s back
with the binary factor - so a 200 Mbps decision was applied as 204.8
Mbps and displayed as 195. Use x128 so set and get are symmetric and
the dashboard matches the decision log exactly.
The bandwidth_calculation and manual_per_stream settings were saved but
never read - calculate_stream_bandwidth() always used the Plex-reported
bitrate plus overhead. In manual mode the configured value is now the
exact per-stream reservation (no overhead applied) across the decision
engine, dashboard reserved display, and post-stream bandwidth holds.
The overhead field is hidden in the UI when manual mode is selected.

Fixes #37
Failsafe shutdown speed toggles reset on revisit: the UI sends null when
toggled off, the config store deletes keys on null, and reload restored
the Pydantic defaults of 10.0. Defaults are now None so the null state
round-trips. The client split sliders were never persisted at all - they
now live in new shutdown_*_client_percents config fields (equal split
when empty, defaults summing to exactly 100).

The shutdown behavior itself was also unimplemented: shutdown now applies
the configured speeds across clients per the percent split (upload only
to torrent clients, unset directions restored) instead of always
restoring full speeds. Both-off keeps the previous restore behavior.

Fixes #38
With 3+ download clients the allocation percent getters normalized
stored values against their sum on every render while edits wrote raw
values, so each keystroke was redisplayed as a different number and
spinners could move backwards. Getters now return raw stored values
(the decision engine already normalizes at allocation time) and
equal-split defaults sum to exactly 100 (e.g. 33/33/34).
@coreyeaston coreyeaston merged commit 285fe71 into main Jun 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants