- Branch created:
feat/books-backend - SQLite schema + migration system
- Settings + auth migration off JSON files
- Torznab search and normalization
- Snatch + rTorrent integration
- Download/import worker loop
- Asset streaming/feed parity
- Mock services and e2e tests
- Review feedback pass (rTorrent methods, infohash handling, snatch behavior)
- Legacy JSON cache state moved into SQLite (
app_state) - Open Library search endpoint + add-to-library by OL key/ISBN
- README refresh
- Manual import controls for box sets (
import.inspect+ file selection) - Optional Responses-API decision scaffolding (
agent.search.plan,agent.import.plan) with deterministic fallback - Import failure recovery path: deterministic import -> forced agent import -> forced agent reacquire scan; user can trigger via
library.acquire - User-reported semantic import issue path via
library.reportImportIssue(forced agent import attempt -> forced agent reacquire)
- None currently. Any blockers encountered during implementation will be recorded here with context and fallback action.
- API surface replaced in
server.tsand/src/books/http.ts. - Worker handles
download,import,scan, andreconcilewith retry/backoff. - Next: continue API/tests hardening and close any follow-up review comments.
- Playback position APIs are intentionally out of scope in v1 per
PLAN.md. - rTorrent transport is HTTP XML-RPC only.
- During early development we can recreate the local test DB when schema changes.