chore(comments): drop epic, sprint and review-round ids from the code

The code cited its plan instead of saying why: `E28 review J4`, `(R6 S3b)`, `S1 justified…`,
`deep-review round 5`. That plan lives in the private ops repo, so for every reader of this one the
citation was noise, and a sentence whose subject was the plan step ("round 2 showed…") hid its
lesson behind an id. Each one is gone and the "why" kept: a bare citation is deleted, a sentence
carrying a lesson is reworded around it ("a later attempt showed…").

Measured (`scripts/audit_metrics.py`, product code): 652 lines in 270 files carried an epic code by
the definition the next commit holds (507 / 241 by the old, two-digit-only one) -> 0. Across all
code, tests, scripts and configs: ~1100 epic-code lines plus ~320 sprint/round ids.

Behaviour unchanged, checked mechanically: every changed .py file has the same AST once docstrings
are blanked; css/sh/toml/yml/json files are identical once comments are stripped; the only
non-comment changes in TS/JS are test titles, one description string in a contract table, and five
ESLint messages, whose text is all the gates snapshot diff holds. Not touched: Markdown (docs and
the changelog keep their history), Alembic migrations, TV episode notation (`S2 · E5`), DESIGN.md
ids (`C1`, `B4`, `S3h`), tracker ids (`SEC-16`, `DX-17`).

One stale claim fixed on the way: test_hls_reaper's docstring said the player checkpoints "every
10 s whether or not it is playing", which plex/stream.py calls wrong; it now says what the code does.
This commit is contained in:
2026-10-05 00:19:39 +02:00
parent c73d8be094
commit 4aaaaa7860
669 changed files with 1831 additions and 1904 deletions
+5 -5
View File
@@ -15,7 +15,7 @@ export function useDetailPrefs() {
const [artBg, setArtBg] = usePref<boolean>("plexInfoArtBg", true);
const [showCast, setShowCast] = usePref<boolean>("plexInfoCast", true);
const [showRelated, setShowRelated] = usePref<boolean>("plexInfoRelated", true);
// E5 S8: slowly cross-dissolve the art backdrop through the item's backdrops/related art. Untouched,
// Slowly cross-dissolve the art backdrop through the item's backdrops/related art. Untouched,
// it follows the system: off where the reader asked for less motion (prefers-reduced-motion — which
// Windows also reports whenever its animation effects are off). Once the reader turns it on or off
// here, that pick wins on every device: the owner never saw the crossfade, because the system signal
@@ -52,10 +52,10 @@ export type AsideSection = "facts" | "keywords" | "crew";
// The movie and the show page's poster. It keeps its 2:3 (self-start, never stretched to the row: the
// second column beside the text runs taller than the poster), and a wide hero (the @container
// panel at 64rem+) gives it a bigger rung, so it is not a stamp beside a full text column (E31).
// panel at 64rem+) gives it a bigger rung, so it is not a stamp beside a full text column.
export const DETAIL_POSTER = "w-32 sm:w-44 @5xl:w-56";
// The detail pages' second column (plexDetailAside, E31): which of its three sections — the TMDB facts,
// The detail pages' second column (plexDetailAside): which of its three sections — the TMDB facts,
// keywords and key crew — have something to show, which the reader keeps on (three per-user prefs,
// default ON, the same on the movie and the show page), and the toggles' flips.
export function useDetailAside(f: DetailFacts) {
@@ -101,7 +101,7 @@ export function tmdbBackdropUrl(path: string): string {
return `https://image.tmdb.org/t/p/w1280${path}`;
}
// A faint full-viewport art backdrop that slowly cross-dissolves through a pool of images (E5 S8).
// A faint full-viewport art backdrop that slowly cross-dissolves through a pool of images.
//
// Painting layer: the SETTLED image lives on the app root (#root) background — the proven full-viewport
// layer (#root is exactly the viewport, transparent by default so the art shows through the glassy nav
@@ -211,7 +211,7 @@ export function epLabel(ep?: PlexCard | null): string | undefined {
}
// Plex names seasons in the library's language ("Season 1", "Specials"), so a Hungarian reader got
// English there (E30). A generic name is rebuilt from the number in the reader's language; a season
// English there. A generic name is rebuilt from the number in the reader's language; a season
// with a name of its own ("Book One: Water") keeps it.
const GENERIC_SEASON = /^(season \d+|specials)$/i;