feat: add transfer service adapters

This commit is contained in:
2026-07-23 03:39:33 +00:00
parent 2ec90b6a2d
commit 68db3ec4c5
5 changed files with 610 additions and 4 deletions
+9 -3
View File
@@ -19,9 +19,12 @@ derives canonical resource identities and selection ranges, builds lazy content
trees, and reports only safe Syncthing folders below the configured root.
Renamed/noncanonical torrent paths remain visible but are marked noncanonical
so later job preflight can reject them without hiding the resource.
The qBittorrent read adapter uses cookie authentication, bounded responses,
one reauthentication attempt on session expiry, hash-scoped file/metainfo
fetches, and never logs credentials, cookies, response bodies, or endpoints.
The qBittorrent adapter uses cookie authentication, bounded responses, one
reauthentication attempt on session expiry, and hash-scoped file/metainfo
fetches. Its mutation boundary adds targets stopped, applies only selected vs
skipped state, supports qBittorrent 4 pause and qBittorrent 5 stop semantics,
performs guarded full rechecks, and removes entries without requesting data
deletion. It never logs credentials, cookies, response bodies, or endpoints.
Durable inventory commands now stream bounded atomic summary, lookup, and
content-tree chunks. Page tokens are guarded by timestamp-independent snapshot
revisions, stale trees fail explicitly, and slow scans run outside the socket
@@ -39,6 +42,9 @@ then sparse-aware copy fallback; every intent/result is journaled in SQLite.
Receiver materialization never overwrites a path, can reuse a same-size regular
file for later qBittorrent verification, and replays completed operations
idempotently after a database reopen.
The Syncthing transfer observer requests scoped rescans and combines verified
local manifest payloads, folder completion, and outstanding job-prefix needs;
an advisory percentage alone is never treated as transfer completion.
```bash
archive-client --config /etc/archive-control/client.toml --check-config