fix(qbittorrent): serve stale app info/preferences when refresh fails - #2054
Conversation
On a saturated qBittorrent WebUI the per-stream app version and preferences refreshes time out and currently fail the whole torrent stream tick. Serve the last-known cached value on refresh error instead, surfacing the error only when nothing is cached. Mirrors the existing active-task serve-stale pattern.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
Walkthrough
ChangesStale cache fallback for AppInfo and AppPreferences
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…#160) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.20.0` → `v1.21.0` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/7) for more information. --- ### Release Notes <details> <summary>autobrr/qui (ghcr.io/autobrr/qui)</summary> ### [`v1.21.0`](https://github.com/autobrr/qui/releases/tag/v1.21.0) [Compare Source](autobrr/qui@v1.20.0...v1.21.0) ##### Changelog ##### New Features - [`51b29a1`](autobrr/qui@51b29a1): feat(api): add GET /api/version reporting the running version ([#​2060](autobrr/qui#2060)) ([@​s0up4200](https://github.com/s0up4200)) - [`98348f1`](autobrr/qui@98348f1): feat(automations): add RLS\_YEAR release-year condition ([#​2003](autobrr/qui#2003)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`58cc7cb`](autobrr/qui@58cc7cb): feat(automations): add tracker status and message conditions ([#​2006](autobrr/qui#2006)) ([@​luckylittle](https://github.com/luckylittle)) - [`2176a92`](autobrr/qui@2176a92): feat(automations): list configured indexer trackers in workflow selector ([#​2005](autobrr/qui#2005)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`2de926e`](autobrr/qui@2de926e): feat(i18n): add Italian (it) translation ([#​2011](autobrr/qui#2011)) ([@​s0up4200](https://github.com/s0up4200)) - [`7b66655`](autobrr/qui@7b66655): feat(i18n): add Korean (ko) translation ([#​2042](autobrr/qui#2042)) ([@​jussaw](https://github.com/jussaw)) - [`2c06a3d`](autobrr/qui@2c06a3d): feat(i18n): add Ukrainian (uk) translation ([#​2032](autobrr/qui#2032)) ([@​rodion981](https://github.com/rodion981)) - [`ef8da0b`](autobrr/qui@ef8da0b): feat(sse): keep cached torrents with a staleness badge when qBittorrent is slow ([#​2057](autobrr/qui#2057)) ([@​s0up4200](https://github.com/s0up4200)) - [`38ebb6e`](autobrr/qui@38ebb6e): feat(web): add file priority controls to torrent file views ([#​2062](autobrr/qui#2062)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`12ac536`](autobrr/qui@12ac536): fix(ci): skip release binary build on main pushes ([#​2008](autobrr/qui#2008)) ([@​s0up4200](https://github.com/s0up4200)) - [`57210a3`](autobrr/qui@57210a3): fix(crossseed): drop resolution token from TV search queries ([#​2017](autobrr/qui#2017)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`791bc7d`](autobrr/qui@791bc7d): fix(crossseed): inject rootless single-file adds into matched folder ([#​2029](autobrr/qui#2029)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`3da437f`](autobrr/qui@3da437f): fix(crossseed): re-query indexers with no usable hit in the alternate connector pass ([#​2002](autobrr/qui#2002)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`8e8b6d9`](autobrr/qui@8e8b6d9): fix(database): prevent int4 sequence exhaustion in Postgres string interning ([#​2015](autobrr/qui#2015)) ([@​s0up4200](https://github.com/s0up4200)) - [`c7e08b9`](autobrr/qui@c7e08b9): fix(db): index string\_pool FK columns so GC stops timing out ([#​2051](autobrr/qui#2051)) ([@​s0up4200](https://github.com/s0up4200)) - [`2553f75`](autobrr/qui@2553f75): fix(docs): use relative file paths for markdown links ([#​2013](autobrr/qui#2013)) ([@​nasenov](https://github.com/nasenov)) - [`8a9c2fc`](autobrr/qui@8a9c2fc): fix(i18n): improve French translation, fix hardcoded UI statuses, and update agent rules ([#​2014](autobrr/qui#2014)) ([@​OlziYT](https://github.com/OlziYT)) - [`190d936`](autobrr/qui@190d936): fix(jackett): decouple cache persistence from SkipHistory ([#​2056](autobrr/qui#2056)) ([@​jussaw](https://github.com/jussaw)) - [`91ad7e4`](autobrr/qui@91ad7e4): fix(pprof): bind to configurable loopback address instead of :6060 ([#​2044](autobrr/qui#2044)) ([@​s0up4200](https://github.com/s0up4200)) - [`10e2d02`](autobrr/qui@10e2d02): fix(qbittorrent): serve stale app info/preferences when refresh fails ([#​2054](autobrr/qui#2054)) ([@​s0up4200](https://github.com/s0up4200)) - [`6d3b04c`](autobrr/qui@6d3b04c): fix(sse): resolve sync-error staleness stamp off the sync-loop callback ([#​2065](autobrr/qui#2065)) ([@​s0up4200](https://github.com/s0up4200)) - [`677e8f4`](autobrr/qui@677e8f4): fix(sse): send torrent page deltas instead of full snapshots ([#​2047](autobrr/qui#2047)) ([@​s0up4200](https://github.com/s0up4200)) - [`a4d252b`](autobrr/qui@a4d252b): fix(sse): size full-sync timeout to prevent permanent disconnect on large instances ([#​2037](autobrr/qui#2037)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`4f375c6`](autobrr/qui@4f375c6): fix(torrents): route unified view exports to the owning instance ([#​2018](autobrr/qui#2018)) ([@​s0up4200](https://github.com/s0up4200)) - [`d49e168`](autobrr/qui@d49e168): fix(web): move instance status bar back to bottom of screen ([#​2024](autobrr/qui#2024)) ([@​OlziYT](https://github.com/OlziYT)) - [`a69ae69`](autobrr/qui@a69ae69): fix(web): prevent framer-motion tab indicator from triggering layout shifts ([#​2025](autobrr/qui#2025)) ([@​OlziYT](https://github.com/OlziYT)) ##### Other Changes - [`860b5bb`](autobrr/qui@860b5bb): chore(deps): bump anthropics/claude-code-action from 1.0.140 to 1.0.148 in the github group ([#​2045](autobrr/qui#2045)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`0b23a7d`](autobrr/qui@0b23a7d): chore(deps): bump the github group with 2 updates ([#​2031](autobrr/qui#2031)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`1fea36b`](autobrr/qui@1fea36b): docs: document frontend testing conventions ([#​1984](autobrr/qui#1984)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`f3443ec`](autobrr/qui@f3443ec): docs: promote multi-language support ([#​2009](autobrr/qui#2009)) ([@​s0up4200](https://github.com/s0up4200)) - [`df88e63`](autobrr/qui@df88e63): test(web): add coverage for hooks and lib/api.ts contract layer ([#​1931](autobrr/qui#1931)) ([#​1998](autobrr/qui#1998)) ([@​nitrobass24](https://github.com/nitrobass24)) **Full Changelog**: <autobrr/qui@v1.20.0...v1.21.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.21.0` - `docker pull ghcr.io/autobrr/qui:latest` ##### What to do next? - Join our [Discord server](https://discord.autobrr.com/qui) Thank you for using qui! </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Warsaw) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDMuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=--> Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/160
… (#200) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.20.0` → `v1.22.0` | --- ### Release Notes <details> <summary>autobrr/qui (ghcr.io/autobrr/qui)</summary> ### [`v1.22.0`](https://github.com/autobrr/qui/releases/tag/v1.22.0) [Compare Source](autobrr/qui@v1.21.0...v1.22.0) ##### Changelog ##### New Features - [`5b9326e`](autobrr/qui@5b9326e): feat(web): add copy path option to content tab context menu ([#​933](autobrr/qui#933)) ([@​lenisko](https://github.com/lenisko)) - [`3a4383d`](autobrr/qui@3a4383d): feat(web): add kanagawa themes ([#​2069](autobrr/qui#2069)) ([@​notmarek](https://github.com/notmarek)) - [`db77a17`](autobrr/qui@db77a17): feat(web): shift+click range select in torrent content tab ([#​2081](autobrr/qui#2081)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`b563d4b`](autobrr/qui@b563d4b): fix(sync): keep SSE aggregates fresh without tracker hydration ([#​2072](autobrr/qui#2072)) ([@​Audionut](https://github.com/Audionut)) ##### Other Changes - [`d428313`](autobrr/qui@d428313): chore(deps): bump the github group with 5 updates ([#​2073](autobrr/qui#2073)) ([@​dependabot](https://github.com/dependabot)\[bot]) **Full Changelog**: <autobrr/qui@v1.21.0...v1.22.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.22.0` - `docker pull ghcr.io/autobrr/qui:latest` ##### What to do next? - Join our [Discord server](https://discord.autobrr.com/qui) Thank you for using qui! ### [`v1.21.0`](https://github.com/autobrr/qui/releases/tag/v1.21.0) [Compare Source](autobrr/qui@v1.20.0...v1.21.0) ##### Changelog ##### New Features - [`51b29a1`](autobrr/qui@51b29a1): feat(api): add GET /api/version reporting the running version ([#​2060](autobrr/qui#2060)) ([@​s0up4200](https://github.com/s0up4200)) - [`98348f1`](autobrr/qui@98348f1): feat(automations): add RLS\_YEAR release-year condition ([#​2003](autobrr/qui#2003)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`58cc7cb`](autobrr/qui@58cc7cb): feat(automations): add tracker status and message conditions ([#​2006](autobrr/qui#2006)) ([@​luckylittle](https://github.com/luckylittle)) - [`2176a92`](autobrr/qui@2176a92): feat(automations): list configured indexer trackers in workflow selector ([#​2005](autobrr/qui#2005)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`2de926e`](autobrr/qui@2de926e): feat(i18n): add Italian (it) translation ([#​2011](autobrr/qui#2011)) ([@​s0up4200](https://github.com/s0up4200)) - [`7b66655`](autobrr/qui@7b66655): feat(i18n): add Korean (ko) translation ([#​2042](autobrr/qui#2042)) ([@​jussaw](https://github.com/jussaw)) - [`2c06a3d`](autobrr/qui@2c06a3d): feat(i18n): add Ukrainian (uk) translation ([#​2032](autobrr/qui#2032)) ([@​rodion981](https://github.com/rodion981)) - [`ef8da0b`](autobrr/qui@ef8da0b): feat(sse): keep cached torrents with a staleness badge when qBittorrent is slow ([#​2057](autobrr/qui#2057)) ([@​s0up4200](https://github.com/s0up4200)) - [`38ebb6e`](autobrr/qui@38ebb6e): feat(web): add file priority controls to torrent file views ([#​2062](autobrr/qui#2062)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`12ac536`](autobrr/qui@12ac536): fix(ci): skip release binary build on main pushes ([#​2008](autobrr/qui#2008)) ([@​s0up4200](https://github.com/s0up4200)) - [`57210a3`](autobrr/qui@57210a3): fix(crossseed): drop resolution token from TV search queries ([#​2017](autobrr/qui#2017)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`791bc7d`](autobrr/qui@791bc7d): fix(crossseed): inject rootless single-file adds into matched folder ([#​2029](autobrr/qui#2029)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`3da437f`](autobrr/qui@3da437f): fix(crossseed): re-query indexers with no usable hit in the alternate connector pass ([#​2002](autobrr/qui#2002)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`8e8b6d9`](autobrr/qui@8e8b6d9): fix(database): prevent int4 sequence exhaustion in Postgres string interning ([#​2015](autobrr/qui#2015)) ([@​s0up4200](https://github.com/s0up4200)) - [`c7e08b9`](autobrr/qui@c7e08b9): fix(db): index string\_pool FK columns so GC stops timing out ([#​2051](autobrr/qui#2051)) ([@​s0up4200](https://github.com/s0up4200)) - [`2553f75`](autobrr/qui@2553f75): fix(docs): use relative file paths for markdown links ([#​2013](autobrr/qui#2013)) ([@​nasenov](https://github.com/nasenov)) - [`8a9c2fc`](autobrr/qui@8a9c2fc): fix(i18n): improve French translation, fix hardcoded UI statuses, and update agent rules ([#​2014](autobrr/qui#2014)) ([@​OlziYT](https://github.com/OlziYT)) - [`190d936`](autobrr/qui@190d936): fix(jackett): decouple cache persistence from SkipHistory ([#​2056](autobrr/qui#2056)) ([@​jussaw](https://github.com/jussaw)) - [`91ad7e4`](autobrr/qui@91ad7e4): fix(pprof): bind to configurable loopback address instead of :6060 ([#​2044](autobrr/qui#2044)) ([@​s0up4200](https://github.com/s0up4200)) - [`10e2d02`](autobrr/qui@10e2d02): fix(qbittorrent): serve stale app info/preferences when refresh fails ([#​2054](autobrr/qui#2054)) ([@​s0up4200](https://github.com/s0up4200)) - [`6d3b04c`](autobrr/qui@6d3b04c): fix(sse): resolve sync-error staleness stamp off the sync-loop callback ([#​2065](autobrr/qui#2065)) ([@​s0up4200](https://github.com/s0up4200)) - [`677e8f4`](autobrr/qui@677e8f4): fix(sse): send torrent page deltas instead of full snapshots ([#​2047](autobrr/qui#2047)) ([@​s0up4200](https://github.com/s0up4200)) - [`a4d252b`](autobrr/qui@a4d252b): fix(sse): size full-sync timeout to prevent permanent disconnect on large instances ([#​2037](autobrr/qui#2037)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`4f375c6`](autobrr/qui@4f375c6): fix(torrents): route unified view exports to the owning instance ([#​2018](autobrr/qui#2018)) ([@​s0up4200](https://github.com/s0up4200)) - [`d49e168`](autobrr/qui@d49e168): fix(web): move instance status bar back to bottom of screen ([#​2024](autobrr/qui#2024)) ([@​OlziYT](https://github.com/OlziYT)) - [`a69ae69`](autobrr/qui@a69ae69): fix(web): prevent framer-motion tab indicator from triggering layout shifts ([#​2025](autobrr/qui#2025)) ([@​OlziYT](https://github.com/OlziYT)) ##### Other Changes - [`860b5bb`](autobrr/qui@860b5bb): chore(deps): bump anthropics/claude-code-action from 1.0.140 to 1.0.148 in the github group ([#​2045](autobrr/qui#2045)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`0b23a7d`](autobrr/qui@0b23a7d): chore(deps): bump the github group with 2 updates ([#​2031](autobrr/qui#2031)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`1fea36b`](autobrr/qui@1fea36b): docs: document frontend testing conventions ([#​1984](autobrr/qui#1984)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`f3443ec`](autobrr/qui@f3443ec): docs: promote multi-language support ([#​2009](autobrr/qui#2009)) ([@​s0up4200](https://github.com/s0up4200)) - [`df88e63`](autobrr/qui@df88e63): test(web): add coverage for hooks and lib/api.ts contract layer ([#​1931](autobrr/qui#1931)) ([#​1998](autobrr/qui#1998)) ([@​nitrobass24](https://github.com/nitrobass24)) **Full Changelog**: <autobrr/qui@v1.20.0...v1.21.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.21.0` - `docker pull ghcr.io/autobrr/qui:latest` ##### What to do next? - Join our [Discord server](https://discord.autobrr.com/qui) Thank you for using qui! </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/London) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Reviewed-on: https://forgejo.hayden.moe/hayden/phoebe/pulls/200
…#160) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.20.0` → `v1.21.0` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/7) for more information. --- ### Release Notes <details> <summary>autobrr/qui (ghcr.io/autobrr/qui)</summary> ### [`v1.21.0`](https://github.com/autobrr/qui/releases/tag/v1.21.0) [Compare Source](autobrr/qui@v1.20.0...v1.21.0) ##### Changelog ##### New Features - [`51b29a1`](autobrr/qui@51b29a1): feat(api): add GET /api/version reporting the running version ([#​2060](autobrr/qui#2060)) ([@​s0up4200](https://github.com/s0up4200)) - [`98348f1`](autobrr/qui@98348f1): feat(automations): add RLS\_YEAR release-year condition ([#​2003](autobrr/qui#2003)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`58cc7cb`](autobrr/qui@58cc7cb): feat(automations): add tracker status and message conditions ([#​2006](autobrr/qui#2006)) ([@​luckylittle](https://github.com/luckylittle)) - [`2176a92`](autobrr/qui@2176a92): feat(automations): list configured indexer trackers in workflow selector ([#​2005](autobrr/qui#2005)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`2de926e`](autobrr/qui@2de926e): feat(i18n): add Italian (it) translation ([#​2011](autobrr/qui#2011)) ([@​s0up4200](https://github.com/s0up4200)) - [`7b66655`](autobrr/qui@7b66655): feat(i18n): add Korean (ko) translation ([#​2042](autobrr/qui#2042)) ([@​jussaw](https://github.com/jussaw)) - [`2c06a3d`](autobrr/qui@2c06a3d): feat(i18n): add Ukrainian (uk) translation ([#​2032](autobrr/qui#2032)) ([@​rodion981](https://github.com/rodion981)) - [`ef8da0b`](autobrr/qui@ef8da0b): feat(sse): keep cached torrents with a staleness badge when qBittorrent is slow ([#​2057](autobrr/qui#2057)) ([@​s0up4200](https://github.com/s0up4200)) - [`38ebb6e`](autobrr/qui@38ebb6e): feat(web): add file priority controls to torrent file views ([#​2062](autobrr/qui#2062)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`12ac536`](autobrr/qui@12ac536): fix(ci): skip release binary build on main pushes ([#​2008](autobrr/qui#2008)) ([@​s0up4200](https://github.com/s0up4200)) - [`57210a3`](autobrr/qui@57210a3): fix(crossseed): drop resolution token from TV search queries ([#​2017](autobrr/qui#2017)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`791bc7d`](autobrr/qui@791bc7d): fix(crossseed): inject rootless single-file adds into matched folder ([#​2029](autobrr/qui#2029)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`3da437f`](autobrr/qui@3da437f): fix(crossseed): re-query indexers with no usable hit in the alternate connector pass ([#​2002](autobrr/qui#2002)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`8e8b6d9`](autobrr/qui@8e8b6d9): fix(database): prevent int4 sequence exhaustion in Postgres string interning ([#​2015](autobrr/qui#2015)) ([@​s0up4200](https://github.com/s0up4200)) - [`c7e08b9`](autobrr/qui@c7e08b9): fix(db): index string\_pool FK columns so GC stops timing out ([#​2051](autobrr/qui#2051)) ([@​s0up4200](https://github.com/s0up4200)) - [`2553f75`](autobrr/qui@2553f75): fix(docs): use relative file paths for markdown links ([#​2013](autobrr/qui#2013)) ([@​nasenov](https://github.com/nasenov)) - [`8a9c2fc`](autobrr/qui@8a9c2fc): fix(i18n): improve French translation, fix hardcoded UI statuses, and update agent rules ([#​2014](autobrr/qui#2014)) ([@​OlziYT](https://github.com/OlziYT)) - [`190d936`](autobrr/qui@190d936): fix(jackett): decouple cache persistence from SkipHistory ([#​2056](autobrr/qui#2056)) ([@​jussaw](https://github.com/jussaw)) - [`91ad7e4`](autobrr/qui@91ad7e4): fix(pprof): bind to configurable loopback address instead of :6060 ([#​2044](autobrr/qui#2044)) ([@​s0up4200](https://github.com/s0up4200)) - [`10e2d02`](autobrr/qui@10e2d02): fix(qbittorrent): serve stale app info/preferences when refresh fails ([#​2054](autobrr/qui#2054)) ([@​s0up4200](https://github.com/s0up4200)) - [`6d3b04c`](autobrr/qui@6d3b04c): fix(sse): resolve sync-error staleness stamp off the sync-loop callback ([#​2065](autobrr/qui#2065)) ([@​s0up4200](https://github.com/s0up4200)) - [`677e8f4`](autobrr/qui@677e8f4): fix(sse): send torrent page deltas instead of full snapshots ([#​2047](autobrr/qui#2047)) ([@​s0up4200](https://github.com/s0up4200)) - [`a4d252b`](autobrr/qui@a4d252b): fix(sse): size full-sync timeout to prevent permanent disconnect on large instances ([#​2037](autobrr/qui#2037)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`4f375c6`](autobrr/qui@4f375c6): fix(torrents): route unified view exports to the owning instance ([#​2018](autobrr/qui#2018)) ([@​s0up4200](https://github.com/s0up4200)) - [`d49e168`](autobrr/qui@d49e168): fix(web): move instance status bar back to bottom of screen ([#​2024](autobrr/qui#2024)) ([@​OlziYT](https://github.com/OlziYT)) - [`a69ae69`](autobrr/qui@a69ae69): fix(web): prevent framer-motion tab indicator from triggering layout shifts ([#​2025](autobrr/qui#2025)) ([@​OlziYT](https://github.com/OlziYT)) ##### Other Changes - [`860b5bb`](autobrr/qui@860b5bb): chore(deps): bump anthropics/claude-code-action from 1.0.140 to 1.0.148 in the github group ([#​2045](autobrr/qui#2045)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`0b23a7d`](autobrr/qui@0b23a7d): chore(deps): bump the github group with 2 updates ([#​2031](autobrr/qui#2031)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`1fea36b`](autobrr/qui@1fea36b): docs: document frontend testing conventions ([#​1984](autobrr/qui#1984)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`f3443ec`](autobrr/qui@f3443ec): docs: promote multi-language support ([#​2009](autobrr/qui#2009)) ([@​s0up4200](https://github.com/s0up4200)) - [`df88e63`](autobrr/qui@df88e63): test(web): add coverage for hooks and lib/api.ts contract layer ([#​1931](autobrr/qui#1931)) ([#​1998](autobrr/qui#1998)) ([@​nitrobass24](https://github.com/nitrobass24)) **Full Changelog**: <autobrr/qui@v1.20.0...v1.21.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.21.0` - `docker pull ghcr.io/autobrr/qui:latest` ##### What to do next? - Join our [Discord server](https://discord.autobrr.com/qui) Thank you for using qui! </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Warsaw) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDMuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=--> Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/160
…#160) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.20.0` → `v1.21.0` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/7) for more information. --- ### Release Notes <details> <summary>autobrr/qui (ghcr.io/autobrr/qui)</summary> ### [`v1.21.0`](https://github.com/autobrr/qui/releases/tag/v1.21.0) [Compare Source](autobrr/qui@v1.20.0...v1.21.0) ##### Changelog ##### New Features - [`51b29a1`](autobrr/qui@51b29a1): feat(api): add GET /api/version reporting the running version ([#​2060](autobrr/qui#2060)) ([@​s0up4200](https://github.com/s0up4200)) - [`98348f1`](autobrr/qui@98348f1): feat(automations): add RLS\_YEAR release-year condition ([#​2003](autobrr/qui#2003)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`58cc7cb`](autobrr/qui@58cc7cb): feat(automations): add tracker status and message conditions ([#​2006](autobrr/qui#2006)) ([@​luckylittle](https://github.com/luckylittle)) - [`2176a92`](autobrr/qui@2176a92): feat(automations): list configured indexer trackers in workflow selector ([#​2005](autobrr/qui#2005)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`2de926e`](autobrr/qui@2de926e): feat(i18n): add Italian (it) translation ([#​2011](autobrr/qui#2011)) ([@​s0up4200](https://github.com/s0up4200)) - [`7b66655`](autobrr/qui@7b66655): feat(i18n): add Korean (ko) translation ([#​2042](autobrr/qui#2042)) ([@​jussaw](https://github.com/jussaw)) - [`2c06a3d`](autobrr/qui@2c06a3d): feat(i18n): add Ukrainian (uk) translation ([#​2032](autobrr/qui#2032)) ([@​rodion981](https://github.com/rodion981)) - [`ef8da0b`](autobrr/qui@ef8da0b): feat(sse): keep cached torrents with a staleness badge when qBittorrent is slow ([#​2057](autobrr/qui#2057)) ([@​s0up4200](https://github.com/s0up4200)) - [`38ebb6e`](autobrr/qui@38ebb6e): feat(web): add file priority controls to torrent file views ([#​2062](autobrr/qui#2062)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`12ac536`](autobrr/qui@12ac536): fix(ci): skip release binary build on main pushes ([#​2008](autobrr/qui#2008)) ([@​s0up4200](https://github.com/s0up4200)) - [`57210a3`](autobrr/qui@57210a3): fix(crossseed): drop resolution token from TV search queries ([#​2017](autobrr/qui#2017)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`791bc7d`](autobrr/qui@791bc7d): fix(crossseed): inject rootless single-file adds into matched folder ([#​2029](autobrr/qui#2029)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`3da437f`](autobrr/qui@3da437f): fix(crossseed): re-query indexers with no usable hit in the alternate connector pass ([#​2002](autobrr/qui#2002)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`8e8b6d9`](autobrr/qui@8e8b6d9): fix(database): prevent int4 sequence exhaustion in Postgres string interning ([#​2015](autobrr/qui#2015)) ([@​s0up4200](https://github.com/s0up4200)) - [`c7e08b9`](autobrr/qui@c7e08b9): fix(db): index string\_pool FK columns so GC stops timing out ([#​2051](autobrr/qui#2051)) ([@​s0up4200](https://github.com/s0up4200)) - [`2553f75`](autobrr/qui@2553f75): fix(docs): use relative file paths for markdown links ([#​2013](autobrr/qui#2013)) ([@​nasenov](https://github.com/nasenov)) - [`8a9c2fc`](autobrr/qui@8a9c2fc): fix(i18n): improve French translation, fix hardcoded UI statuses, and update agent rules ([#​2014](autobrr/qui#2014)) ([@​OlziYT](https://github.com/OlziYT)) - [`190d936`](autobrr/qui@190d936): fix(jackett): decouple cache persistence from SkipHistory ([#​2056](autobrr/qui#2056)) ([@​jussaw](https://github.com/jussaw)) - [`91ad7e4`](autobrr/qui@91ad7e4): fix(pprof): bind to configurable loopback address instead of :6060 ([#​2044](autobrr/qui#2044)) ([@​s0up4200](https://github.com/s0up4200)) - [`10e2d02`](autobrr/qui@10e2d02): fix(qbittorrent): serve stale app info/preferences when refresh fails ([#​2054](autobrr/qui#2054)) ([@​s0up4200](https://github.com/s0up4200)) - [`6d3b04c`](autobrr/qui@6d3b04c): fix(sse): resolve sync-error staleness stamp off the sync-loop callback ([#​2065](autobrr/qui#2065)) ([@​s0up4200](https://github.com/s0up4200)) - [`677e8f4`](autobrr/qui@677e8f4): fix(sse): send torrent page deltas instead of full snapshots ([#​2047](autobrr/qui#2047)) ([@​s0up4200](https://github.com/s0up4200)) - [`a4d252b`](autobrr/qui@a4d252b): fix(sse): size full-sync timeout to prevent permanent disconnect on large instances ([#​2037](autobrr/qui#2037)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`4f375c6`](autobrr/qui@4f375c6): fix(torrents): route unified view exports to the owning instance ([#​2018](autobrr/qui#2018)) ([@​s0up4200](https://github.com/s0up4200)) - [`d49e168`](autobrr/qui@d49e168): fix(web): move instance status bar back to bottom of screen ([#​2024](autobrr/qui#2024)) ([@​OlziYT](https://github.com/OlziYT)) - [`a69ae69`](autobrr/qui@a69ae69): fix(web): prevent framer-motion tab indicator from triggering layout shifts ([#​2025](autobrr/qui#2025)) ([@​OlziYT](https://github.com/OlziYT)) ##### Other Changes - [`860b5bb`](autobrr/qui@860b5bb): chore(deps): bump anthropics/claude-code-action from 1.0.140 to 1.0.148 in the github group ([#​2045](autobrr/qui#2045)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`0b23a7d`](autobrr/qui@0b23a7d): chore(deps): bump the github group with 2 updates ([#​2031](autobrr/qui#2031)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`1fea36b`](autobrr/qui@1fea36b): docs: document frontend testing conventions ([#​1984](autobrr/qui#1984)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`f3443ec`](autobrr/qui@f3443ec): docs: promote multi-language support ([#​2009](autobrr/qui#2009)) ([@​s0up4200](https://github.com/s0up4200)) - [`df88e63`](autobrr/qui@df88e63): test(web): add coverage for hooks and lib/api.ts contract layer ([#​1931](autobrr/qui#1931)) ([#​1998](autobrr/qui#1998)) ([@​nitrobass24](https://github.com/nitrobass24)) **Full Changelog**: <autobrr/qui@v1.20.0...v1.21.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.21.0` - `docker pull ghcr.io/autobrr/qui:latest` ##### What to do next? - Join our [Discord server](https://discord.autobrr.com/qui) Thank you for using qui! </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Warsaw) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDMuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=--> Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/160
When a qBittorrent WebUI is saturated, the per-torrent-stream
GetAppInfo/GetAppPreferencesrefreshes time out and currently fail the whole stream tick (theFailed to retrieve qBittorrent app info/preferences for torrent streamlog noise). This serves the last-known cached value on refresh error instead, surfacing the error only when nothing is cached — mirroring the existingactive_tasksserve-stale pattern.Related to #2052 (broader graceful-degradation work); this is the small standalone piece.
Summary by CodeRabbit
Release Notes
Bug Fixes
Tests