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:
@@ -122,12 +122,12 @@ export function PlexInfoView({
|
||||
);
|
||||
}
|
||||
|
||||
// How often, and for how long, a person page asks again for a bio that is on its way (E30 S6). The
|
||||
// How often, and for how long, a person page asks again for a bio that is on its way. The
|
||||
// background fetch takes a second or two; twenty seconds covers a slow TMDB without waiting on a dead one.
|
||||
const BIO_POLL_MS = 1500;
|
||||
// From this many "Known for" titles the rail gets half the hero. Fewer (about one person in five) sit
|
||||
// right beside the text, at their posters' width, and what is left over is the panel's end — not a hole
|
||||
// between the text and a lone poster at the far edge (E30 S6, owner pick "b").
|
||||
// between the text and a lone poster at the far edge (owner pick "b").
|
||||
const KNOWN_FOR_HALF = 4;
|
||||
const BIO_WAIT_MS = 20_000;
|
||||
|
||||
@@ -158,8 +158,8 @@ export function PlexPersonView({
|
||||
const menu = useContextMenu<PlexCard>();
|
||||
const lang = plexLang(i18n.language);
|
||||
const personKey = qk.plexPerson(name, lang);
|
||||
// A person the people_enrich job hasn't reached yet gets their bio fetched when the page opens (E30
|
||||
// S6); the answer says so (`enriching`) and the page asks again until it lands — for a while, not
|
||||
// A person the people_enrich job hasn't reached yet gets their bio fetched when the page opens;
|
||||
// the answer says so (`enriching`) and the page asks again until it lands — for a while, not
|
||||
// forever: BIO_WAIT_MS after the page opened (by the clock, not by the last answer — a failing ask
|
||||
// leaves that where it was) a TMDB that is down stops being waited on, and a failing ask ends it at
|
||||
// once (the next open tries again). The page is keyed on the person, so the wait starts per person;
|
||||
@@ -179,7 +179,7 @@ export function PlexPersonView({
|
||||
: false,
|
||||
});
|
||||
const bioOnItsWay = !!q.data?.enriching && !waitOver && !q.isError;
|
||||
// E5 S8: cross-dissolve the backdrop through the person's films' art (the touch the roadmap calls
|
||||
// Cross-dissolve the backdrop through the person's films' art (the touch the roadmap calls
|
||||
// out). Reuses the shared art-backdrop / crossfade prefs the detail pages own — no per-page control.
|
||||
const { artBg, crossfade } = useDetailPrefs();
|
||||
const pd = q.data;
|
||||
@@ -264,7 +264,7 @@ export function PlexPersonView({
|
||||
<LoadingState label={t("plex.loading")} />
|
||||
) : (
|
||||
<div className="p-4">
|
||||
{/* Hero (E30 S6, owner pick "A"): the person — headshot, facts, a clamped bio — on the left,
|
||||
{/* Hero (owner pick "A"): the person — headshot, facts, a clamped bio — on the left,
|
||||
what they are known for on the right, so the bio doesn't sit in a full-width panel with an
|
||||
empty half beside it. One column where the panel is narrow. */}
|
||||
<section className={`${SURFACE.panel} @container p-4 sm:p-5 mb-6`}>
|
||||
@@ -357,7 +357,7 @@ export function PlexPersonView({
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* "Known for" — the person's most-popular titles that are in our library (E5 S6). */}
|
||||
{/* "Known for" — the person's most-popular titles that are in our library. */}
|
||||
{d.known_for.length > 0 && (
|
||||
<div className="min-w-0">
|
||||
<Carousel
|
||||
@@ -453,7 +453,7 @@ export function PlexShowView({
|
||||
toggleRelated,
|
||||
toggleCrossfade,
|
||||
} = useDetailPrefs();
|
||||
// The facts / keywords / crew (E31): TMDB enriches shows too, and the page showed none of it.
|
||||
// The facts / keywords / crew: TMDB enriches shows too, and the page showed none of it.
|
||||
const aside = useDetailAside(show ?? {});
|
||||
useCrossfadeBackdrop(
|
||||
[
|
||||
@@ -494,7 +494,7 @@ export function PlexShowView({
|
||||
title: `${show.title} — ${seasonTitle(se, t)}`,
|
||||
})
|
||||
: undefined;
|
||||
// A season's one action list (E28 C1): the rows its card shows on hover, plus copy.
|
||||
// A season's one action list: the rows its card shows on hover, plus copy.
|
||||
const seasonItems = (se: PlexSeasonDetail) => {
|
||||
const seWatched = se.status === "watched";
|
||||
const add = addSeason(se);
|
||||
@@ -607,7 +607,7 @@ export function PlexShowView({
|
||||
)}
|
||||
{(() => {
|
||||
// IMDb score when present, else the Plex audience score — mirrors PlexInfo so a show
|
||||
// with no imdb:// entry (imdb_rating NULL after the S6 IMDb-only change) still shows a
|
||||
// with no imdb:// entry (imdb_rating NULL since the IMDb-only change) still shows a
|
||||
// rating instead of dropping the badge entirely.
|
||||
const badge = pickRatingBadge(show.imdb_rating, show.rating);
|
||||
if (!badge) return null;
|
||||
|
||||
Reference in New Issue
Block a user