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:
@@ -1,6 +1,6 @@
|
||||
// @vitest-environment jsdom
|
||||
//
|
||||
// Library-row metadata (E7·S1): the completed row surfaces the concrete container/format alongside the
|
||||
// Library-row metadata: the completed row surfaces the concrete container/format alongside the
|
||||
// already-shown size. The format chip reads the raw `asset.container` (uppercased in the UI), so it must
|
||||
// render when present and be absent when the asset has no container yet (queued/running before the worker
|
||||
// fills it). i18n is key-passthrough here.
|
||||
@@ -95,7 +95,7 @@ describe("DownloadRow format chip", () => {
|
||||
});
|
||||
});
|
||||
|
||||
// E7·S5b — a generic uploaded file (media_kind='file') has no video frame and no timeline: the row
|
||||
// A generic uploaded file (media_kind='file') has no video frame and no timeline: the row
|
||||
// shows a neutral file glyph instead of a thumbnail <img>, and no duration chip (it stays media info
|
||||
// like the container/size). Media rows keep their thumbnail path (an <img>, or empty until a poster).
|
||||
describe("DownloadRow file kind", () => {
|
||||
@@ -144,7 +144,7 @@ describe("DownloadRow · keyboard", () => {
|
||||
expect(screen.getByTitle("delete").hasAttribute("data-nav-open")).toBe(false);
|
||||
});
|
||||
|
||||
// E28: the row once resized its actions with a `[&_button]:size-8` override, which a save LINK in the
|
||||
// The row once resized its actions with a `[&_button]:size-8` override, which a save LINK in the
|
||||
// same row escaped (28px beside 32px buttons). The size is the primitive's own rung, set by IconBtn.
|
||||
it("sizes its actions through the primitive's rung, not a descendant override", () => {
|
||||
const { container } = render(
|
||||
@@ -159,7 +159,7 @@ describe("DownloadRow · keyboard", () => {
|
||||
});
|
||||
});
|
||||
|
||||
// E28 S3f3: the row answers to its own width (a container query) and its meta line never wraps — on
|
||||
// The row answers to its own width (a container query) and its meta line never wraps — on
|
||||
// the iPad, zoomed in, its "18.9 / MB" pieces broke into a jumble (the owner, 2026-09-27). jsdom lays
|
||||
// nothing out, so this holds the structure the layout rests on; the widths were measured in a browser.
|
||||
describe("DownloadRow · narrow", () => {
|
||||
@@ -199,7 +199,7 @@ describe("DownloadRow · narrow", () => {
|
||||
expect(foot.className).toContain(c);
|
||||
});
|
||||
|
||||
it("gives the failure link a real 24px line on a mouse, not the text's 20 (DESIGN B1, S3g)", () => {
|
||||
it("gives the failure link a real 24px line on a mouse, not the text's 20 (DESIGN B1)", () => {
|
||||
render(
|
||||
<DownloadRow job={{ ...baseJob, status: "error", error: "boom" }} onShowError={() => {}} />,
|
||||
);
|
||||
@@ -237,7 +237,7 @@ describe("DownloadRow · a link with no details yet", () => {
|
||||
expect(container.textContent).not.toContain("https://");
|
||||
});
|
||||
|
||||
// E31 S5 (measured at 21px on the Downloads page): every link in the row stands on a 24px line on
|
||||
// Measured at 21px on the Downloads page: every link in the row stands on a 24px line on
|
||||
// a mouse (DESIGN B1), as the link line and the failure link already did.
|
||||
it("gives the title link and the channel link a 24px line", () => {
|
||||
const { container } = render(
|
||||
@@ -279,7 +279,7 @@ describe("DownloadRow · no picture", () => {
|
||||
);
|
||||
expect(audio.querySelector("svg.lucide-music")).not.toBeNull();
|
||||
});
|
||||
// E28 review C5: the remote thumbnail was the last resort with no fallback of its own — when it
|
||||
// The remote thumbnail was the last resort with no fallback of its own — when it
|
||||
// failed too (a dead CDN link), the row drew the browser's broken-image mark.
|
||||
it("falls back to the glyph when the remote picture fails too", () => {
|
||||
const { container } = render(
|
||||
|
||||
Reference in New Issue
Block a user