Skip to content

graft batch 60: 55 lands from fluent-1 - #302

Closed
thedancingdeveloper wants to merge 55 commits into
mainfrom
graft/batch-60
Closed

thedancingdeveloper wants to merge 55 commits into
mainfrom
graft/batch-60

Conversation

@thedancingdeveloper

Copy link
Copy Markdown
Collaborator

Batch 60 of graft line fluent-1, one commit per land, oldest first, by graft-mirror (decision D26). Merge it with rebase-merge to keep the commits (D28). graft never merges or queues this PR.

  • Base: main at 0c866ea (graft cea6bf67eccad89654576f9b5a2227b2cbb86daa3bfc59b83c49d0133fdfd7ed3)
  • Lands: 55 (c0529d83f69b5a5a9c6542da5cc054f83c4c43018c718c173c8917dd0b701563d..c209f33b578517f0fcc985e513da2d9a4b4c7d73f50b242bcad916855360538c4)
Changeset Author Session Work item Attestations Subject
c209f33b57851 thedancingdeveloper ses_01M6F23M0YR1JNMPDRDK6X3F4J WI-2895 none WI-2895: shared SSRF-safe fetcher for URL add, RSS and blocklists
cd00de4fc3f57 thedancingdeveloper ses_01M6F23M5194HWZPTXQ8QGR9BM WI-2891 none Recheck throughput: concurrent-recheck cap (default 2), live resize, MiB/s read cap, persisted Advan
c73c586310fa5 thedancingdeveloper ses_01M6F23M8R5RP79HRWE6RBHVEV WI-2894 none feat: show Files missing status with Set location / Force recheck (WI-2894)
c639a62591e10 thedancingdeveloper ses_01M6F2EP8X0E0MH54SCKE721AY WI-3085 none Fix clippy needless_borrows_for_generic_args in qbit tags handler
c6cf9b789a5aa thedancingdeveloper ses_01M6F1P1PW951DF5MVFNJ0TE44 WI-3084 none style: cargo fmt
c08558f572cd3 thedancingdeveloper ses_01M6F02AFF97TZGEH0KGD9XVQJ WI-3072 none feat(qbit): report in-flight piece states and refresh parity notes (Fixes #295, Fixes #294)
cf1a2989b1406 graft ses_01M6F02A692D1DZTZS94XJ9P32 WI-3076 none Harden session recovery and torrent locations
c81cacd338451 thedancingdeveloper ses_01M6EZD6RZ876EHC09Q5EYDFDW WI-3074 none chore: fold Dependabot updates and group scheduling
c12da96b58d30 thedancingdeveloper ses_01M6EZQA1T65D9E7QTZ2T73DP3 WI-3075 none Fix release dry-run runner policy
c2582298f8b9a thedancingdeveloper ses_01M6EXE3VF023QB9Q16K0GYSDS WI-3070 none Implement qbit app network and shutdown endpoints (Fixes #293)
c416cfb53bcb9 thedancingdeveloper ses_01M6EV7T7MWBTVMAKVKTS9ZFBS WI-3054 none Add torrent location and rename dialogs; Fixes #298
c4fedb55e3cb3 thedancingdeveloper ses_01M6ESZY63KNZYCGPAJBM7KXKV WI-3050 none Fixes #291: add torrent metadata and management controls
cb668a88eb679 thedancingdeveloper ses_01M6ESZY63KNZYCGPAJBM7KXKV WI-3050 none fix(fluent-1): restore build after concurrent lands
c7bb25441a13b thedancingdeveloper ses_01M6ET9ZPQZJ87FWR03N8DPED3 WI-3051 none rtbit-fluent: add status bar speed controls (Fixes #296)
c141366d88cb1 thedancingdeveloper ses_01M6ETA0RW4KWYCFYMFJAC9688 WI-3052 none rtbit-fluent: add filter sidebar (Fixes #297)
c90a56fff2053 thedancingdeveloper ses_01M6ESN45B69E4VQG9H58MVBCR WI-3048 none fix: add tracker and DHT retry backoff (Fixes #299)
cd8630e6412a7 thedancingdeveloper ses_01M6ESNN18TXPWF2ZD23JTK7CB WI-3049 none Fixes #290: bound graceful shutdown save
c1925bf3de46f thedancingdeveloper ses_01M6ESA0K30F1P2H0905SC010P WI-3046 none Low-disk guard: default 1 GiB floor and 'low disk space' status error
c3a5ce2efbb9d thedancingdeveloper ses_01M6ES9ZJHSFSFCD2ATH31SW5R WI-3045 none librtbit: crash-safe atomic state writes; quarantine corrupt state files
c7c9c2a6ded0b thedancingdeveloper ses_01M6EMY9SW1KDT9FJY9WVC86JR WI-2777 none Add fluent per-file priority controls
ce48968181e27 thedancingdeveloper ses_01M6EMYAZKX7JMG7N2AR70M1D0 WI-2902 none CI: smoke test daemon container in merge queue
c8c37c5d99d2a thedancingdeveloper ses_01M6EMAJB93WJX9Z5V2K5J4H4E WI-2901 none Release: smoke-test fluent artifacts before publishing
ce52ad047d7e8 thedancingdeveloper ses_01M6EK2C6TH2P38ZW00PPWTNCD WI-2883 none Add real per-file priority levels
cfb5917f382c0 thedancingdeveloper ses_01M6EGVXTQ22PA0CQS37YATC3Y WI-2881 none Add bulk category and tag editing
c605932d70058 thedancingdeveloper ses_01M6EGHTZSZGNX6VQ3QMY0RV4Q WI-2893 none Add missing payload diagnosis
c22cf7c271061 thedancingdeveloper ses_01M6EG7XCG1XR53PGQ04QM3Q2B WI-2896 none Add Radarr and Lidarr replay fixtures (WI-2896)
c53084ba9e761 thedancingdeveloper ses_01M6EF9CBR04RGN1HTW9D973SD WI-2900 none ci: test fluent app for client dependency changes
c77d2ac48f9b7 thedancingdeveloper ses_01M6EF9DWWRCK4E2FQG7FQCNVS WI-2903 none CI: check generated parity summary drift
c4719bbbc4c47 thedancingdeveloper ses_01M6EC3GNPATJ2JGJ8BD2HGN5S WI-2887 none Resolve metadata test merge
c92f3ddb489a7 thedancingdeveloper ses_01M6ED2SHDWV4Y2161KPS57A3E WI-2888 none Report real qbit API build information
cbaf35aa2b84d thedancingdeveloper ses_01M6EAJDX3MMBT297VP0T249SM WI-2889 none Add per-category share limits (WI-2889)
cf2eeba275b1c thedancingdeveloper ses_01M6E9KH6RNW4V5S3H7YR83SXY WI-2975 none rtbit-fluent: add trackers from torrent detail (#286)
ced094f14caf2 thedancingdeveloper ses_01M6E9XN038RYE2NEVJZE05F6E WI-2976 none rtbit-fluent: add RSS rule priority selector (#287)
cd2623039e2b7 thedancingdeveloper ses_01M6E8C1WJ138C38AQ1DCPPB74 WI-2880 none feat(rtbit-fluent): open add dialog from torrent drops
c74c7f4b4bc82 thedancingdeveloper ses_01M6E8P1M2E6XDA8VFWHY5RMA1 WI-2877 none docs: audit Fluent client parity (WI-2877)
cc1ff936e8117 thedancingdeveloper ses_01M6E819JBQQ4WQA3AE08PQ102 WI-2879 none rtbit-fluent: persist table sort and column widths; add Up column (WI-2879)
ca49245f7b652 thedancingdeveloper ses_01M6E81ARBC68C5FKM4NVWZD05 WI-2886 none qbit API: add torrents/pieceAvailability (WI-2886)
cddb4b95424e4 thedancingdeveloper ses_01M6E7AP4NJ97K36ZBXTT18YZX WI-2878 none rtbit-fluent: right-click context menu on torrent rows (WI-2878)
c9af5a53001c4 thedancingdeveloper ses_01M6E7AQB1GZD9A0V8CNZ5M55V WI-2885 none qbit API: app/getFreeSpaceAtPath and real free_space_on_disk in sync/maindata (WI-2885)
c76c340f8829c thedancingdeveloper ses_01M6E69G09H4BZ3AYER47B0AKM WI-2876 none rtbit-fluent: tests for status bar, shell navigation and bridge error mapping (WI-2876)
c3b4942544751 thedancingdeveloper ses_01M6E5Y87GV1HB0HGM764R91GV WI-2875 none rtbit-fluent: tests for detail pane tabs (WI-2875)
c9a79fc00e75b thedancingdeveloper ses_01M6E5JTYYA4CPD0TM8A566B4W WI-2874 none rtbit-fluent: daemon-lost banner with 1s-30s backoff reconnect (WI-2874)
c47ef50a29978 thedancingdeveloper ses_01M6E57H1601MCX7SCYYJF33CY WI-2871 none rtbit-fluent: dialogs close on Escape and confirm on Enter (WI-2871)
c43067cabcf54 thedancingdeveloper ses_01M6E0QV5S2JVC5H4BR57GWKJQ WI-2872 none Improve toolbar accessibility and focus visibility
cdbc860500cef thedancingdeveloper ses_01M6E1KFMX0Y7F2P313FGHQ0Q0 WI-2873 none rtbit-fluent: add detail pane empty states
c1cbcb4b9aff3 thedancingdeveloper ses_01M6DYBD0P4YV0ZM7NX9BEFFFP WI-2870 none Add torrent table keyboard navigation
c82a0eb429c05 thedancingdeveloper ses_01M6DYNQHK108T6G7T4F3Y232C WI-2899 none ci: enforce cargo-deny dependency policy
c19e3399040ad thedancingdeveloper ses_01M6DXYSMYFKHRHXGMYTMCQDES WI-2869 none rtbit-fluent: main-screen keyboard shortcuts (WI-2869)
ca5387aaea0af thedancingdeveloper ses_01M6DYBE52ZEEZ5PCWD369EJQK WI-2898 none ci: report nightly release dry-run failures (WI-2898)
cd61e66bebb49 thedancingdeveloper ses_01M6DXYTWR4NVGKZF97MR2GZA2 WI-2884 none qbit: real app/preferences share limits and dht/pex/lsd; apply on setPreferences (WI-2884)
cfd351f0321b2 thedancingdeveloper ses_01M6DXW561BFCPQZXE3J8EGWQS WI-2781 none test(swarmforge): router-level tests for POST /torrents/{id}/files/{index}/included (WI-2781)
cad73c6b8f7ad thedancingdeveloper ses_01M6DMMHKZW8MT7WR9C8Y9C245 WI-2777 none rtbit-fluent: Files tab as a folder Tree with include/skip priority (WI-2777)
ca0ee701024db thedancingdeveloper ses_01M6DMMHKZW8MT7WR9C8Y9C245 WI-2777 none Revert "rtbit-fluent: Files tab as a folder Tree with include/skip priority (WI-2777)"
c6066d2d40606 graft ses_01M6DGSAQVQQJKBFWCM7F03RJF WI-2770 none rtbit-ui-core: drop last egui reference from error doc comment (WI-2770)
cf1ff39dc50f6 thedancingdeveloper ses_01M6DFF3NYTAXMNZ41GPYGHVRF WI-2777 none rtbit-fluent: Files tab as a folder Tree with include/skip priority (WI-2777)

Graft-Batch: 60
Graft-Line: fluent-1
Graft-Changeset: c209f33b578517f0fcc985e513da2d9a4b4c7d73f50b242bcad916855360538c4

thedancingdeveloper and others added 30 commits November 2, 2026 06:43
…WI-2777)

Graft-Changeset: cf1ff39dc50f6add70830bf3552f5e7bf4254c0f61068ef8f31cba8cd7daddf17
Graft-Session: ses_01M6DFF3NYTAXMNZ41GPYGHVRF
Graft-Work-Item: WI-2777
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Claimed-Author: thedancingdeveloper
Graft-Batch: 60
Graft-Changeset: c6066d2d40606c27b17b7bba6fb871739ec8dc23f07a4cf61604cae3a537c0091
Graft-Session: ses_01M6DGSAQVQQJKBFWCM7F03RJF
Graft-Work-Item: WI-2770
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Graft-Batch: 60
…iority (WI-2777)"

This reverts changeset cf1ff39dc50f6, whose author address fails the migration policy; the same change is re-landed next.

Graft-Changeset: ca0ee701024dbec75201ffa3c9576836dea7cc8ba7cc3bb32e78d5d122840a4f1
Graft-Session: ses_01M6DMMHKZW8MT7WR9C8Y9C245
Graft-Work-Item: WI-2777
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Graft-Batch: 60
…WI-2777)

Re-land of cf1ff39dc50f6 with the noreply author address.

Graft-Changeset: cad73c6b8f7add08f52c136907d0a59971557dc1a420e91881d0559e27c5f4ea6
Graft-Session: ses_01M6DMMHKZW8MT7WR9C8Y9C245
Graft-Work-Item: WI-2777
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Graft-Batch: 60
…ndex}/included (WI-2781)

Graft-Changeset: cfd351f0321b26cc81132b14c851ddde4f7c421d3fc10345381700f23814e943c
Graft-Session: ses_01M6DXW561BFCPQZXE3J8EGWQS
Graft-Work-Item: WI-2781
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Graft-Batch: 60
…Preferences (WI-2884)

Graft-Changeset: cd61e66bebb49e36f744e834eda0edcc330b4bb10036922de4091c70693e3bf9c
Graft-Session: ses_01M6DXYTWR4NVGKZF97MR2GZA2
Graft-Work-Item: WI-2884
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
Graft-Changeset: ca5387aaea0afe5d4a251f7acf2ac0cecc32f3563ad3e28a68404d624a69f356f
Graft-Session: ses_01M6DYBE52ZEEZ5PCWD369EJQK
Graft-Work-Item: WI-2898
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c19e3399040ad100862419b336c5fb1bdc8827594f47cb5a1a5fe2c3ea05dcd6c
Graft-Session: ses_01M6DXYSMYFKHRHXGMYTMCQDES
Graft-Work-Item: WI-2869
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
Graft-Changeset: c82a0eb429c050c52f9a1402379b76555350e10885c0565c9569e0ffdef903f60
Graft-Session: ses_01M6DYNQHK108T6G7T4F3Y232C
Graft-Work-Item: WI-2899
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c1cbcb4b9aff396c02b9ad4580bafcb7d58b8d637024faccd4015bcf02c4788a8
Graft-Session: ses_01M6DYBD0P4YV0ZM7NX9BEFFFP
Graft-Work-Item: WI-2870
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: cdbc860500cef117872782d7cac0246297a159f6ff0a180e411e0cc3f888725c5
Graft-Session: ses_01M6E1KFMX0Y7F2P313FGHQ0Q0
Graft-Work-Item: WI-2873
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c43067cabcf541c41522337d4c7573d957ab9456cc17093be734850ef4b6075f0
Graft-Session: ses_01M6E0QV5S2JVC5H4BR57GWKJQ
Graft-Work-Item: WI-2872
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Add dialog, delete confirm and RSS rule editor take initial focus, cancel on Escape,
submit on Enter only when valid, and return focus to the opener.

Graft-Changeset: c47ef50a2997856c4d2a6f7a6aea01e8b38ec4f5265343ee9fd1f77addce739f1
Graft-Session: ses_01M6E57H1601MCX7SCYYJF33CY
Graft-Work-Item: WI-2871
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
After 3 failed polls the shell shows a lost-connection banner, polling backs
off 1s to 30s, daemon actions are refused, and the first good poll clears it.
A 401 routes back to the connect screen. wiremock tests cover drop, recover and 401.

Graft-Changeset: c9a79fc00e75bf9d3d0b9848c92546ce88baa98ed464aa63da74002ba671983d1
Graft-Session: ses_01M6E5JTYYA4CPD0TM8A566B4W
Graft-Work-Item: WI-2874
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
Graft-Changeset: c3b494254475108cf2e9e495b40ce3a5c6c7f0e695e3326098355e1cdb7e0ae8d
Graft-Session: ses_01M6E5Y87GV1HB0HGM764R91GV
Graft-Work-Item: WI-2875
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
… mapping (WI-2876)

Graft-Changeset: c76c340f8829cc7c092497366995019c3eb65a9722e3f732a6c274cf012377999
Graft-Session: ses_01M6E69G09H4BZ3AYER47B0AKM
Graft-Work-Item: WI-2876
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
…maindata (WI-2885)

Graft-Changeset: c9af5a53001c4a62ea47568a9c374bf5e45a8d43dee945c03f6978590bfb9dbf4
Graft-Session: ses_01M6E7AQB1GZD9A0V8CNZ5M55V
Graft-Work-Item: WI-2885
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
Start, Stop, Force recheck, Set category, Copy magnet link, Copy name and
Delete act on the whole selection; items grey out by state. Opens on right
click and Shift+F10/Menu. Adds recheck and set-category calls to rtbit-client.

Graft-Changeset: cddb4b95424e4ba960b4bf9593b6fac335877d7a089a4f47f324ab84beb5255f5
Graft-Session: ses_01M6E7AP4NJ97K36ZBXTT18YZX
Graft-Work-Item: WI-2878
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
Graft-Changeset: ca49245f7b652430618b64f33d521a008e6ce92b0c2e1457cbe03575361638d52
Graft-Session: ses_01M6E81ARBC68C5FKM4NVWZD05
Graft-Work-Item: WI-2886
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
…-2879)

Graft-Changeset: cc1ff936e81179a47480a5d5842e7815427f7a141dcd7eab6ae3e3cba32112c02
Graft-Session: ses_01M6E819JBQQ4WQA3AE08PQ102
Graft-Work-Item: WI-2879
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Graft-Batch: 60
Graft-Changeset: c74c7f4b4bc82300495f70e184e443ee225cc4812c2d969b0ccc23e0b3aa2ec65
Graft-Session: ses_01M6E8P1M2E6XDA8VFWHY5RMA1
Graft-Work-Item: WI-2877
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: cd2623039e2b77c22f7cc17a0ea4162dda82fdf3c6061adcafd30553c5388689e
Graft-Session: ses_01M6E8C1WJ138C38AQ1DCPPB74
Graft-Work-Item: WI-2880
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: ced094f14caf2e445a0e4166d60d1b02804d03e148ffd44a4d7443b40cb143562
Graft-Session: ses_01M6E9XN038RYE2NEVJZE05F6E
Graft-Work-Item: WI-2976
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: cf2eeba275b1c2d263de4a67008bc15e826f9062a3ae5ec43e491de0cc76c5300
Graft-Session: ses_01M6E9KH6RNW4V5S3H7YR83SXY
Graft-Work-Item: WI-2975
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: cbaf35aa2b84d82a930079a83dbecdb86cdb283365f781bb009591251929ece4f
Graft-Session: ses_01M6EAJDX3MMBT297VP0T249SM
Graft-Work-Item: WI-2889
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c92f3ddb489a7561fbbf3013f2928a13f3677c1ee65adefa19de354ceb286d581
Graft-Session: ses_01M6ED2SHDWV4Y2161KPS57A3E
Graft-Work-Item: WI-2888
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c4719bbbc4c47476f1ab16839e52fb17ab1ba5d037bb38484ad62f8e97c360fdd
Graft-Session: ses_01M6EC3GNPATJ2JGJ8BD2HGN5S
Graft-Work-Item: WI-2887
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c77d2ac48f9b7735eed32e66ad332825684153152ff82e1596678914eda5e937f
Graft-Session: ses_01M6EF9DWWRCK4E2FQG7FQCNVS
Graft-Work-Item: WI-2903
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c53084ba9e761a178678adada6b4a77c41429f3e068cb98bb0f1e6593a62722d9
Graft-Session: ses_01M6EF9CBR04RGN1HTW9D973SD
Graft-Work-Item: WI-2900
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c22cf7c271061529b5cb1ee7296c0d6440e06338874611f2c7e9956826706e2ef
Graft-Session: ses_01M6EG7XCG1XR53PGQ04QM3Q2B
Graft-Work-Item: WI-2896
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
thedancingdeveloper and others added 25 commits November 2, 2026 16:28
Graft-Changeset: c605932d7005879c5e1af8ab7d6fa68a97c91965e0ac7152431cb3cf0646c2141
Graft-Session: ses_01M6EGHTZSZGNX6VQ3QMY0RV4Q
Graft-Work-Item: WI-2893
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: cfb5917f382c0dee8a3a86e8795073920c3c27b5dcc3fce5948c66ec464e5d505
Graft-Session: ses_01M6EGVXTQ22PA0CQS37YATC3Y
Graft-Work-Item: WI-2881
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: ce52ad047d7e8e4a9388ec5f3c0c592b6b509996e074cde0069c849fd3b9d6ca7
Graft-Session: ses_01M6EK2C6TH2P38ZW00PPWTNCD
Graft-Work-Item: WI-2883
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c8c37c5d99d2aa07204ed8d6e4eae8d98dae9a7f830930c3d8d9d8f5dcf748765
Graft-Session: ses_01M6EMAJB93WJX9Z5V2K5J4H4E
Graft-Work-Item: WI-2901
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: ce48968181e27592136c7ae2b1333ef08c92fb6793ad33d279ac5cec421d67fbb
Graft-Session: ses_01M6EMYAZKX7JMG7N2AR70M1D0
Graft-Work-Item: WI-2902
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c7c9c2a6ded0bce27d2e9e06045f76fd99118ca0650d87260770d1c50b33d1fe3
Graft-Session: ses_01M6EMY9SW1KDT9FJY9WVC86JR
Graft-Work-Item: WI-2777
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Session db, tags, categories and the initial bitv are written via temp file,
fsync, rename and parent dir fsync. Unparseable state files are renamed
.corrupt with a warning and the daemon starts with empty state.

Fixes #288

Graft-Changeset: c3a5ce2efbb9d1e557c4eef0c0afba79912d5a032bc373abe4bd3aae9df9507ad
Graft-Session: ses_01M6ES9ZJHSFSFCD2ATH31SW5R
Graft-Work-Item: WI-3045
Co-authored-by: Claude Sonnet <noreply@anthropic.com>
Graft-Batch: 60
Downloads held by the low-disk guard now report 'low disk space' in native
torrent stats, and the guard is on by default with a 1 GiB floor.

Fixes #289

Graft-Changeset: c1925bf3de46f3b65bd011cb676a05c0d9d5cbc04bb00c9532dd65aa22c523aa5
Graft-Session: ses_01M6ESA0K30F1P2H0905SC010P
Graft-Work-Item: WI-3046
Co-authored-by: Claude Sonnet <noreply@anthropic.com>
Graft-Batch: 60
Graft-Changeset: cd8630e6412a7f5f471378c86ba1eee3940e3d56700d525c35af0d9494114d189
Graft-Session: ses_01M6ESNN18TXPWF2ZD23JTK7CB
Graft-Work-Item: WI-3049
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c90a56fff205388014619715e071ad60b72c2ecefdab4b191d306edbf4388872f
Graft-Session: ses_01M6ESN45B69E4VQG9H58MVBCR
Graft-Work-Item: WI-3048
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c141366d88cb1660e5fac595e84302e8e522639d22a67c0393c6ad0912e3900e9
Graft-Session: ses_01M6ETA0RW4KWYCFYMFJAC9688
Graft-Work-Item: WI-3052
Graft-Batch: 60
Graft-Changeset: c7bb25441a13b9707d238119a52d3935cefd2ec7dd0ab148520921b0429f6ce07
Graft-Session: ses_01M6ET9ZPQZJ87FWR03N8DPED3
Graft-Work-Item: WI-3051
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: cb668a88eb679a59cdeaff40315ab353a6aa92b04d7db56fb252900f92fb7e476
Graft-Session: ses_01M6ESZY63KNZYCGPAJBM7KXKV
Graft-Work-Item: WI-3050
Graft-Batch: 60
Graft-Changeset: c4fedb55e3cb371dbae79256f521aa61540f5a9347cb545ba2f2e546ffb9b5f92
Graft-Session: ses_01M6ESZY63KNZYCGPAJBM7KXKV
Graft-Work-Item: WI-3050
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c416cfb53bcb9cb9d9f876a2f6ca9b2632efecfd469df42874e3bee4476b8319e
Graft-Session: ses_01M6EV7T7MWBTVMAKVKTS9ZFBS
Graft-Work-Item: WI-3054
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c2582298f8b9a5e1ec37c307e5a226cf93358ae28c736b3ed61952ae8738d744f
Graft-Session: ses_01M6EXE3VF023QB9Q16K0GYSDS
Graft-Work-Item: WI-3070
Graft-Batch: 60
Graft-Changeset: c12da96b58d30e607eac0b1730da106b0b2cf10d402b724018acf4ed8bef5e365
Graft-Session: ses_01M6EZQA1T65D9E7QTZ2T73DP3
Graft-Work-Item: WI-3075
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c81cacd3384515c5704f076da67a4a446c7f52ec64a1e0fbc03f45368d65d6cc8
Graft-Session: ses_01M6EZD6RZ876EHC09Q5EYDFDW
Graft-Work-Item: WI-3074
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: cf1a2989b1406f8b9162deaec130624ad8718a1755a8071bf3d6d842ad1f9d8dd
Graft-Session: ses_01M6F02A692D1DZTZS94XJ9P32
Graft-Work-Item: WI-3076
Graft-Batch: 60
…ixes #295, Fixes #294)

Graft-Changeset: c08558f572cd33a7b1672679f16275e2bb8c4acdca1dfaf207bc891edd16f4ae3
Graft-Session: ses_01M6F02AFF97TZGEH0KGD9XVQJ
Graft-Work-Item: WI-3072
Co-authored-by: gpt-5.6-sol <noreply@openai.com>
Graft-Batch: 60
Graft-Changeset: c6cf9b789a5aa0fb60a90328898423a905187237a5f2bdb1094d816c8bde01815
Graft-Session: ses_01M6F1P1PW951DF5MVFNJ0TE44
Graft-Work-Item: WI-3084
Co-authored-by: Claude Sonnet <noreply@anthropic.com>
Graft-Batch: 60
Graft-Changeset: c639a62591e104d0845a29dc308f1ea3092b4f386eaaf4ff7ab8cca8dfad586de
Graft-Session: ses_01M6F2EP8X0E0MH54SCKE721AY
Graft-Work-Item: WI-3085
Co-authored-by: Claude Sonnet <noreply@anthropic.com>
Graft-Batch: 60
…-2894)

Graft-Changeset: c73c586310fa58a3a715e19adc071298aa8a499eec9ac47ee70197bbbda39ce67
Graft-Session: ses_01M6F23M8R5RP79HRWE6RBHVEV
Graft-Work-Item: WI-2894
Co-authored-by: Claude Sonnet <noreply@anthropic.com>
Graft-Batch: 60
…MiB/s read cap, persisted Advanced knobs (WI-2891)

Graft-Changeset: cd00de4fc3f573950b559664e821e9eef40d55df9902f59a4322b3bef13738289
Graft-Session: ses_01M6F23M5194HWZPTXQ8QGR9BM
Graft-Work-Item: WI-2891
Co-authored-by: Claude Sonnet <noreply@anthropic.com>
Graft-Batch: 60
Graft-Changeset: c209f33b578517f0fcc985e513da2d9a4b4c7d73f50b242bcad916855360538c4
Graft-Session: ses_01M6F23M0YR1JNMPDRDK6X3F4J
Graft-Work-Item: WI-2895
Co-authored-by: Claude Sonnet <noreply@anthropic.com>
Graft-Batch: 60
@thedancingdeveloper

Copy link
Copy Markdown
Collaborator Author

webui and desktop fail on one TS2303 circular import in webui/src/helper/missingFiles.ts (WI-2894). Fix landed on fluent-1; re-cut.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment