Skip to content

Import complete audiobook payloads and review per-book file mappings - #4

Closed
bandoracer wants to merge 2 commits into
codex/stabilize-librarryfrom
codex/multipart-imports
Closed

bandoracer wants to merge 2 commits into
codex/stabilize-librarryfrom
codex/multipart-imports

Conversation

@bandoracer

Copy link
Copy Markdown
Owner

Completed downloads previously supported only one book file. This change imports complete audiobook chapter sets and sidecars from exact client inventories, and sends uncertain or multi-book payloads to explicit per-file book mapping with a required destination preview.

  • Preserve selected/unselected/unknown inventory state; reject traversal, symlinks, duplicate resolved paths, incomplete files and conflicting metadata. SABnzbd uses successful completed history output, never archive filenames as extracted-file proof.
  • Extend durable manifests with per-file book identity (append-only migration 0032). Commit all chapter records/links together, resume published files after failure, preserve chapter order on retries, and verify the whole set before cleanup.
  • Add a responsive mapping review, stale-preview rejection, persistent Skip/Reject and Reopen. Explicitly retained required files block source deletion.
  • Keep existing single-book Calibre handoff; manual-path/Calibre crash recovery, replacement and temporary-stage reclamation remain follow-up work.

Validation: full Go race suite with disposable Postgres, Go vet, six frontend tests, production build, 17 desktop/mobile browser checks (one mobile-only case inapplicable on desktop), and diff checks pass. Locally built ARM64 containers passed missing-payload review, forced database failure, process-restart recovery, complete multi-disc/cover import, rescans, isolated database restore, and the forms/Basic/none auth matrix. The packaged test uses a read-only qBittorrent HTTP fixture; real-client/live homelab qualification remains pending.

Stacked on #3. This PR is unreleased, does not publish PR images, and does not certify the full S01–S25 plan or live deployment.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant