Skip to main content

v1.27.0

Changelog​

New Features​

  • feat(cli): migrate Deluge, rTorrent and Transmission to qBittorrent with stats (#616) (@zze0s)
  • feat(crossseed): fall back to MKV metadata IDs when ARR supplies none (#2398) (@s0up4200)
  • feat(crossseed): search by MKV tag IDs first when no arr supplies them (#2404) (@s0up4200)
  • feat(crossseed): show why a manual search accepted or rejected candidates (#2427) (@s0up4200)
  • feat(docker): add PUID/PGID support (#858) (@s0up4200)
  • feat(docs): redesign landing page (#2347) (@s0up4200)
  • feat(fsops): add Backend interface, local implementation, and pool resolver (#1914) (@nitrobass24)
  • feat(i18n): add Traditional Chinese (zh-TW) translation (#2367) (@hkaden)
  • feat(mobile): add torrent export to actions sheet (#2421) (@s0up4200)
  • feat(preferences): add slow torrent settings to the queue form (#2428) (@s0up4200)
  • feat(settings): add client_settings key-value store and API (#2407) (@s0up4200)
  • feat(settings): sync UI state to the database (#2412) (@s0up4200)
  • feat(settings): sync localStorage user settings to the database (#2409) (@s0up4200)
  • feat(settings): sync table preferences and sidebar filters to the database (#2410) (@s0up4200)
  • feat(themes): store theme selection in the database (#2384) (@s0up4200)
  • feat(torrents): archive large exports (#2378) (@s0up4200)

Bug Fixes​

  • fix(automations): ignore absent skipped files in hardlink scans (#2370) (@s0up4200)
  • fix(automations): verify files before a cross-seed delete expands (#2351) (@s0up4200)
  • fix(build): add Windows executable extension (#2414) (@Audionut)
  • fix(crossseed): disable download path on recheck adds so complete cross-seeds don't stall at 0% (#2432) (@statelycurmudgeon)
  • fix(crossseed): don't reuse cached indexer sets across content types (#2420) (@s0up4200)
  • fix(crossseed): log repeated size-mismatch rejections at trace (#2371) (@s0up4200)
  • fix(crossseed): omit categories from ID-driven searches (#2395) (@s0up4200)
  • fix(crossseed): recover exact-size matches with compatible names (#2345) (@s0up4200)
  • fix(crossseed): retry per indexer when nothing usable comes back (#2400) (@s0up4200)
  • fix(crossseed): silence content fallback log (#2401) (@s0up4200)
  • fix(crossseed): trust disc layout for content detection (#2359) (@s0up4200)
  • fix(database): resolve the sqlite→postgres import against the connection's schema (#2383) (@nitrobass24)
  • fix(docker): honor configured non-root user (#2447) (@s0up4200)
  • fix(docker): make the standalone Dockerfile build again (#2416) (@s0up4200)
  • fix(lint): resolve the correctness findings in the golangci-lint backlog (#2386) (@s0up4200)
  • fix(mobile): make Back close torrent details instead of leaving the page (#2426) (@s0up4200)
  • fix(orphanscan): protect metadata-less paths (#2445) (@s0up4200)
  • fix(orphanscan): skip torrents without metadata (#2441) (@s0up4200)
  • fix(qbittorrent): treat request timeouts as slow instances, not dead ones (#2408) (@s0up4200)
  • fix(reflinktree): track root before support probe (#2341) (@s0up4200)
  • fix(rss): improve large feed performance (#2438) (@s0up4200)
  • fix(settings): preserve latest cross-tab write (#2444) (@s0up4200)
  • fix(ui): show sideloaded themes in the mobile theme picker (#2373) (@s0up4200)
  • fix(ui): show unknown for unavailable disk space (#2348) (@s0up4200)
  • fix(web): resolve dynamic imports relative to chunk for base_url deployments (#2442) (@MaKTaiL)

Other Changes​

  • chore(build): bump Go to 1.27 (#2369) (@s0up4200)
  • chore(deps): bump anthropics/claude-code-action from 1.0.189 to 1.0.193 in the github group (#2394) (@dependabot[bot])
  • chore(deps): bump go-mediainfo to v0.8.0 (#2399) (@s0up4200)
  • chore(docs): require field testing and refuse Gemini-authored PRs (#2391) (@s0up4200)
  • chore(github): trim pull request template (#2390) (@s0up4200)
  • chore(jackett): raise torznab torrent cache TTL to 24h (#2372) (@s0up4200)
  • chore(lint): clear the mechanical findings in the golangci-lint backlog (#2387) (@s0up4200)
  • chore(lint): take the backlog to zero and gate on the whole repo (#2393) (@s0up4200)
  • chore: bump golangci-lint to v2.13.0 and apply go fix for Go 1.27 (#2381) (@nitrobass24)
  • chore: merge main into develop (@s0up4200)
  • docs(agents): scope local test runs and keep caches off tmpfs (#2430) (@s0up4200)
  • docs(agents): stack cross-layer PRs and trim diffs before commit (#2419) (@s0up4200)
  • docs(config): explain UI preference persistence (#2443) (@s0up4200)
  • docs(crossseed): explain that Prowlarr indexer filters also apply (#2429) (@s0up4200)
  • docs(metrics): document exporter and add Grafana dashboard (#2431) (@s0up4200)
  • docs: correct tracker customizations location and document the feature (#2364) (@s0up4200)
  • docs: explain when to pick postgres over sqlite (#2424) (@s0up4200)
  • docs: link the community themes repository (#2377) (@s0up4200)
  • docs: move macOS Container install to the docs site (#2357) (@s0up4200)
  • perf(sse): compress stream sessions with gzip (#2358) (@s0up4200)
  • perf(torrents): trim magnet_uri from the torrent list payload (#2360) (@s0up4200)
  • perf(web): migrate torrent tables to TanStack Table v9 (#2379) (@s0up4200)
  • refactor(services): use fsops.Backend for all filesystem operations (#1915) (@nitrobass24)
  • refactor(themes): serve built-in themes from the backend (#2385) (@s0up4200)

Full Changelog: https://github.com/autobrr/qui/compare/v1.26.0...v1.27.0