diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-08-30 17:05:15 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-08-30 17:05:15 +0200 |
| commit | d5fc45ff907e618d884a8d2d91c1f2b45e6898d1 (patch) | |
| tree | b368ee90e99254e6d66f0a22324d9d25c5dd0a4a /docs/mediacenter.md | |
| parent | b206dc86221d453c699074749f59f1d7cb3d47dc (diff) | |
| download | meshbay-d5fc45ff907e618d884a8d2d91c1f2b45e6898d1.tar.gz | |
chore: scrub copyrighted names from tests, comments and docs
Real franchise / show / release-group names had crept back into test
fixtures, code comments, a docstring and docs/mediacenter.md while fixing
the saga-match and misclassification bugs. Replace them all with invented
placeholders ("Some Saga", "A Different Show") and shape descriptions
("a franchise-origin film", "a 3-season show"). Behaviour and assertions
unchanged; 738 node tests still pass.
Record the rule in CLAUDE.md so it stops recurring.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018BMLQjqFGCize2KtNBT79v
Diffstat (limited to 'docs/mediacenter.md')
| -rw-r--r-- | docs/mediacenter.md | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/docs/mediacenter.md b/docs/mediacenter.md index 3a6b733..7a712d9 100644 --- a/docs/mediacenter.md +++ b/docs/mediacenter.md @@ -317,7 +317,7 @@ real, currently-readable directory, or the request is refused immediately signing prompt. The client-side filter is a plain path-prefix test against `IndexEntry.path` -(already root-relative, e.g. `"Séries/OVNI/S1/ep01.mkv"`) — no new index +(already root-relative, e.g. `"Series/SomeShow/S1/ep01.mkv"`) — no new index field, no server-side filtering; the node still sends the whole index, and narrowing to the configured folder is exactly the same kind of view-over- the-index work Files' own current-folder filter already does. @@ -510,7 +510,7 @@ used *at all* used to live here too — moved per-group, below.) **Added 2026-08-24**: a third field, `tmdb_language` (e.g. `"fr-FR"`), travels the same way — one node-wide setting, not a per-viewer request. Live against a real French-language show, the node's TMDB matches came back -in English by default (`"UFOs"` for a show whose real title and audience +in English by default (an English title for a show whose real title and audience are French) purely because no language was ever requested; TMDB honors a `language` parameter on every search/details call, so `tmdb.py`'s `_get()` now attaches whichever language is configured (or none, TMDB's own English @@ -740,8 +740,8 @@ centralization was for (one computation, reused by every member). | V3 | TMDB metadata cache TTL (30 days proposed) | Needs no more than a config constant; not worth deciding without seeing real staleness complaints | | V4 | Multi-audio-track / subtitle-track surfacing in the detail view | Out of scope for this pass — `video-player.js`'s existing track handling is unchanged; Videos only adds discovery and metadata | | V5 | `Music`/`Photos` apps | Explicitly out of scope, per `apps.md` — this document only builds `video-app.js` and the shared node-side machinery (TMDB client, thumbnail cache, title parser) that a future audio/photo app could also reuse | -| ~~V6~~ | ~~Two folders of the same show, named by different release groups, can produce two separate poster-grid cards~~ | **Closed, 2026-08-24.** Rather than fuzzy title matching (real design decision, still deferred), `PosterGrid` now merges raw show-groups client-side once each group's TMDB lookup resolves to the same confident `tmdb_id` (`onMetaResolved` reports each `PosterCard`'s resolved meta upward; a `useMemo` groups by id, combining episodes/seasons into one card). This only merges what TMDB already agrees is one show — a genuinely unmatched show still gets its own card, which is correct. Confirmed live: `OVNIs.S01...`/`Ovnis-S01...` now render as a single "OVNI(s)" card with both seasons | -| ~~V7~~ | ~~A show's automatic TMDB match can be wrong at the show level (not just mis-ranked locally), and a wrong match's `overview` can read as scoped to one season~~ | **Closed, 2026-08-24 — §5.7.** Per-season tabs (own `overview`/`air_date`, falling back to the show-level text when empty) plus an operator-only "Fix match…" search-and-correct affordance, applied to every file sharing the resolved `display_title`. Confirmed live on the operator's real "War of the Worlds" 3-season show, itself matched to a wrong season-3-specific 1988 promotional TMDB entry: season tabs correctly filtered episodes and swapped in each season's own air_date, and the search overlay returned real TMDB candidates for a manual correction | +| ~~V6~~ | ~~Two folders of the same show, named by different release groups, can produce two separate poster-grid cards~~ | **Closed, 2026-08-24.** Rather than fuzzy title matching (real design decision, still deferred), `PosterGrid` now merges raw show-groups client-side once each group's TMDB lookup resolves to the same confident `tmdb_id` (`onMetaResolved` reports each `PosterCard`'s resolved meta upward; a `useMemo` groups by id, combining episodes/seasons into one card). This only merges what TMDB already agrees is one show — a genuinely unmatched show still gets its own card, which is correct. Confirmed live: two release-group spellings of one show's season folders now render as a single card with both seasons | +| ~~V7~~ | ~~A show's automatic TMDB match can be wrong at the show level (not just mis-ranked locally), and a wrong match's `overview` can read as scoped to one season~~ | **Closed, 2026-08-24 — §5.7.** Per-season tabs (own `overview`/`air_date`, falling back to the show-level text when empty) plus an operator-only "Fix match…" search-and-correct affordance, applied to every file sharing the resolved `display_title`. Confirmed live on a real 3-season show, itself matched to a wrong season-specific promotional TMDB entry: season tabs correctly filtered episodes and swapped in each season's own air_date, and the search overlay returned real TMDB candidates for a manual correction | ### 10.1 Movie-matching bugs — a batch found live (2026-08-29) @@ -788,16 +788,15 @@ file. A "this is a movie / a show" toggle would close that. ### 10.3 A whole saga matched to its first film (2026-08-30) -Every `Star Wars Episode <N> - <subtitle>` file resolved to the 1977 original (TMDB id 11). -Cause: `sequel_variants` stripped `Episode <N>` and offered the bare `Star Wars` as a -candidate query — which matches the 1977 film's `original_title` at ratio 1.0, beating -PASS 1's correct (but lower-ratio) hit. A franchise's bare name is very often a real, -different film. **Fixed** (`fix/starwars-saga-match`): when a `Part`/`Episode`/… keyword is -what carried the index, `sequel_variants` no longer emits the bare base — only -`<base> <digit>` and `<base> <roman>`. Without a keyword (`Jurassic Park 3`) the bare base -is still offered. Verified live: Star Wars I–VI now each resolve to their own episode; -Jurassic Park / Kill Bill / Bond regressions all hold. V12's movie merge, reverted the -same day, would have compounded this into one card for the saga. +Every `<Saga> Episode <N> - <subtitle>` file in a numbered franchise resolved to the +series' first entry. Cause: `sequel_variants` stripped `Episode <N>` and offered the bare +`<Saga>` as a candidate query — which matches the first film's `original_title` at ratio +1.0, beating PASS 1's correct (but lower-ratio) hit. A franchise's bare name is very often +a real, different film. **Fixed** (`fix/saga-match`): when a `Part`/`Episode`/… +keyword is what carried the index, `sequel_variants` no longer emits the bare base — only +`<base> <digit>` and `<base> <roman>`. Without a keyword (`<Franchise> 3`) the bare base is +still offered. Verified live against a numbered franchise's episodes plus the earlier +numbered-sequel / two-part-film / franchise-subtitle regressions. ## 11. Acceptance before shipping |