docs(media): the metadata view is live, and duplicate pruning gets a page
`Media Metadata View.md` said "Not deployed on Dankserver — verified 2026-10-31". That was true yesterday and is false now: the overlay is mounted and both installed quadlets bind it (`view:/data` rw for Jellyfin, `view:/mnt/entropy:ro` for Plex). The page now states the live shape and the order that proves it — `media-view.sh verify`, then the `Volume=` lines — because the whole point of the page is to answer "is the view really serving?". `AGENTS.md` carried the same stale claim in its summary table. `Media Duplicate Prune.md` is new: the screen ladder (size, then head+tail blake2b, then a sparse-window confirmation before anything moves), which copy survives and why, the guards that each encode a file that would otherwise have been destroyed (qBittorrent `.!qB` state, year-required with digits kept, feature length, disc/part exclusion, media containers only), and the law that a hold on the same volume frees nothing until it is purged. It also carries the different way `media-verify.py` has to be READ for a prune — `landed: 0` is the correct end state because no server may index the hold — and the planner bug that class explains: when the planner re-derived "largest wins" from the hold list alone it dropped every keeper out of its own group and pruned 17 files instead of 205. `Media Relayout.md` keeps a one-line pointer; carrying the whole procedure there pushed it past the vault's 500-line ceiling, which is the linter telling the truth about progressive disclosure.
This commit is contained in:
1 parent
649bbafa17
commit
50e0c5a786
5 files changed
+153
-15
No files matched your search
@@ -809,6 +809,7 @@ per-attempt page and no per-swap ledger anywhere else.
|
||||
| Deployment flow | `serverAppConfigs-docs/Architecture/Deployment Flow.md` |
|
||||
| Movie-library relayout (Jellyfin format, Dankserver) | `serverAppConfigs-docs/Dankserver/Media Relayout.md` |
|
||||
| SSD-backed metadata view (Jellyfin writes, Plex reads, Dankserver) | `serverAppConfigs-docs/Dankserver/Media Metadata View.md` |
|
||||
| Duplicate films and the purge hold (Dankserver) | `serverAppConfigs-docs/Dankserver/Media Duplicate Prune.md` |
|
||||
|
||||
There is no page for a retired endpoint and no change diary. A payload swap
|
||||
appends one row to the live endpoint's **Eras** table; when the endpoint itself
|
||||
@@ -851,6 +852,7 @@ history.
|
||||
| Benchmarking (only when ordered) | **Stop and mask the service first**, bench, unmask, restart, verify health. |
|
||||
| Deleting a file | **Move it to trash** — `.AGENTTRASH/` (in-repo) or `~/.AGENTTRASH/YYYYMMDD-topic`. Never `rm`. |
|
||||
| Relayout the movie library | **Census → plan → read the exceptions → `scripts/media-apply.py`** — renames only, journal before every move; never hand-rename, never copy. |
|
||||
| Making media metadata visible to both media servers | **Bind `/var/lib/media-meta/view`** — the overlay `scripts/media-view.sh` installs (array below, NVMe above). Never write the array; never delete through the view. **Not yet deployed on Dankserver: the live quadlets still bind the array read-only — see [[Media Metadata View]].** |
|
||||
| Duplicates in the library | **Prune into the hold** — byte-identical copies and smaller copies of the *same work* go to `.AGENTTRASH/`; a different cut is never touched. Screen by size, confirm by hash before moving, purge only on Frank's word. See [[Media Duplicate Prune]]. |
|
||||
| Making media metadata visible to both media servers | **Bind `/var/lib/media-meta/view`** — the overlay `scripts/media-view.sh` installs (array below, NVMe above). Never write the array; never delete through the view. **Deployed and live on Dankserver since 2026-11-01: both quadlets bind the view, not the raw array — see [[Media Metadata View]].** |
|
||||
| Tests exist | **Run them** — verify tests pass after every change. Do not commit failing tests. |
|
||||
| Real secrets | **Never commit** — host `.env` files; `.env.example` holds placeholders only. |
|
||||
Reference in new issue
Block a user