Skip to content

Release 1.7.0 - #163

Merged
retransmit merged 149 commits into
mainfrom
development
Sep 20, 2026
Merged

retransmit merged 149 commits into
mainfrom
development

Conversation

@retransmit

Copy link
Copy Markdown
Owner

Four new services (MySpeed, Ombi, Navidrome, Gluetun), Transmission at parity with its web UI and out of beta, the qBittorrent log tab, Plex sign-in, the Sonarr and Radarr search carry-over, and fixes. Build 23, version codes 231, 232 and 233.

lxBlazarxl and others added 30 commits September 12, 2026 12:18
The README and the site both advertise reverse-proxy support with nowhere to
go from there, so anyone fronting their stack with Authelia or an nginx access
list had to work the header name out by trial and error, and the name that
looks obvious is the one that breaks.

Covers the two header scopes and the order they merge in, why Authorization
collides with five services and is refused outright by qBittorrent, the
Authelia and nginx configurations tested against real containers while fixing
1.6.1, sub-paths, artwork, and what a Warning dot means behind a proxy.
lxBlazarxl and others added 28 commits September 20, 2026 18:52
…ve look

Rounded panels, tinted icon blocks, state and speed pills, stat badges,
filled fields and wavy progress bars, all from one transmission_visuals
module, across the torrent list, the rows, the detail tabs, the files
tree, the Settings tab and the Add sheet. Sort moves to a bottom sheet.
… and tab before leaving

The service shell wraps a module body in its own PopScope that leaves for
the dashboard on every back press, and two PopScopes on one route both
fire, so the module's could never hold a long-press selection or the
Settings tab. The home now builds its own scaffold with the drawer the
shell hands it, and back closes the drawer, clears the selection, returns
to Torrents, then leaves. The shell returns it early.
…history

GET api/speedtests answers with the last 24 hours and ten rows unless told
otherwise, so the History tab was a day and the day's list was ten tests.
The list call now takes hours, limit and start, the three parameters the
server reads; hour and afterId did nothing. The run call posts to
api/speedtests/run alone, which is the endpoint that exists.
…, and poll the day's list less

Labels follow the app's sentence case. The status poll re-reads the day's
list when a run ends and once a minute, instead of every five seconds,
and no longer touches its ref after the widget is gone.
…king layer

Support optional password authentication for MySpeed across models, networking, health probes, and UI.

- Update ServiceKind.myspeed auth style from none to apiKey.
- Send password and x-password headers via AuthInterceptor when apiKey is configured.
- Register password and x-password headers in serviceAuthHeaderNames.
- Switch MySpeed health probe mode to _HealthMode.authed on api/speedtests.
- Render obscured optional password field in InstanceFormScreen with helper text for creation and edit settings.
- Add unit and widget tests covering interceptor headers, health response interpretation, and form hydration.
…rt will let it through

MySpeed 1.0.9 reads a raw password header and newer builds prefer the
URL-encoded x-password one, so both go out. Dart's HttpHeaders throws on
a value outside printable ASCII, from inside the request, so a password
with an accented or non-Latin character broke every call instead of
merely missing the older header. The raw one now goes only when it fits;
the header-name map says the same.
Complete MySpeed service integration
… up with everything since 1.6.1

Ombi, Navidrome, Gluetun and MySpeed join every service list; the README
table marks the beta modules and says what Transmission, qBittorrent and
Plex gained; STATUS.md gets entries for Navidrome and Gluetun, the
dashboard widget list, the qBittorrent log tab, the Sonarr and Radarr
search carry-over, the Plex sign-in, MySpeed's password support and the
Transmission restyle, and drops the two TODOs that shipped.
…est trigger

Introduce a dedicated compact dashboard widget for MySpeed instances.

- Add DashboardWidgetKind.myspeed with label, icon, and serviceKinds mapping.
- Implement DashboardMySpeedWidget rendering DOWN, UP, and PING metrics using MySpeedMetricBox.
- Adhere strictly to dynamic theme colors across badge, metrics, and indicators.
- Display dedicated timestamp pill box alongside server information.
- Add compact 'Run test' button with confirmation dialog, API trigger, AnimatedSwitcher running spinner, and automatic status polling to refresh recent results upon completion.
- Integrate into DashboardBoard widget builder and refresh cycle.
- Add comprehensive widget tests covering metrics rendering, confirmation dialog, execution state, dynamic theme colors, and navigation.
… tests at any age

MySpeed keeps a failed run as a row with an error and no speeds, so the
model now carries that error and a helper picks the newest run that
produced figures. A new provider reads the five newest tests across the
whole history: the day's window is empty for a weekly schedule, and the
History tab's thousand rows are far more than a card needs.
…e history

The card read the day's list and, when that was empty, the History tab's
keep-alive thousand-row list; pull to refresh reloaded that list for every
MySpeed instance, and a run's end fetched it too. The card now reads the
newest few tests at any age, shows the latest one that produced figures,
and leaves the History to the History tab.
feat(dashboard): add compact myspeed widget with recent results and t…
@retransmit
retransmit merged commit b28eb04 into main Sep 20, 2026
2 checks passed

This branch was successfully deployed

1 active deployment
github-pages — f23398f0 Deployed Sep 20, 2026 by retransmit via deploy #24
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.

4 participants