legacy-arrflix/playbooks/import-media/CHANGELOG.md
s8n 5b80cfd095
Some checks are pending
secret-scan / gitleaks (HEAD + history) (push) Waiting to run
secret-scan / detect-secrets (entropy + cross-tool) (push) Waiting to run
secret-scan / summary (push) Blocked by required conditions
playbooks/import-media: v1.1 — fix two Jellyfin endpoint bugs + nullstone alias
Step 4 rewritten: /Library/Refresh is a silent no-op on this build,
must POST to /ScheduledTasks/Running/<scan-task-id> directly. Old
endpoint moved to known-broken table.

Step 5 rewritten: /Items/Counts is scope-cached and stays stale
even after items are indexed. Use /Shows/<id>/Episodes?Season=<NN>
as authoritative verify with provider + image-tag checks.

Both bugs surfaced in archer-s02-2009 run. LibraryMonitor inotify
auto-fire also confirmed broken (failed on lilo-stitch-2002 and
archer-s02-2009 runs).

Replaced user@192.168.0.100 (LAN IP, RFC1918 — flagged by
gitleaks lan-ip-rfc1918) with user@nullstone throughout. SSH config
already aliases nullstone -> 192.168.0.100. Aligns with CLAUDE.md
two-file doc rule: IPs belong in SYSTEM.md, not operational docs.
2026-05-10 06:49:17 +01:00

1.9 KiB

Import-media playbook changelog

v1.1 — 2026-05-10

Two Jellyfin endpoint bugs found during archer-s02-2009 run, codified into the playbook:

  • POST /Library/Refresh is a silent no-op on this Jellyfin build — returns HTTP 204 but the Scan Media Library scheduled task does NOT execute. Step 4 rewritten to fetch the scan-task ID from /ScheduledTasks and POST to /ScheduledTasks/Running/<id> instead. Old endpoint added to a "known broken" table.
  • /Items/Counts is scope-cached and stays stale even after items are indexed (counts stayed at 230 after 13 new eps landed). Step 5 rewritten to use the per-series authoritative query /Shows/<id>/Episodes?Season=<NN> with provider + image-tag verification, plus a per-series Items/<id>/Refresh recipe for missing metadata.
  • LibraryMonitor inotify auto-fire wording removed from Step 4 (failed on both recorded runs — Lilo & Stitch + Archer S02). Manual task trigger is now mandatory.
  • Verification checklist updated to reference the task-trigger endpoint and per-series query.
  • Rollback section: replaced /Library/Refresh invocation with /ScheduledTasks/Running/<id>.

v1.0 — 2026-05-10

Initial playbook. 7 steps from staging on onyx → rsync to nullstone → verify scan + counts → optional subtitle pass → run-log.

Gaps flagged for future versions:

  • v1.2 will add canonical bin/import-media.sh wrapper once bin/cleanup-import.sh and bin/normalize.py are extracted from docs/07 and docs/08 (ROADMAP M6). (Bumped from v1.1 since v1.1 was needed for the Jellyfin endpoint fixes.)
  • v1.3 will add a TV multi-season import section (currently only single-season example).
  • v1.4 will add NFO override pattern with worked example for a wrong-TMDb-match recovery.
  • v1.5: document API-token retrieval (mint a permanent ApiKeys row labelled import-pipeline instead of pulling a session token from Devices table).