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
+7 -7
View File
@@ -33,7 +33,7 @@ export function subsColumn<T extends { subscriber_count: number | null }>(
};
}
/** Sync-status pre-filter for the subscribed table. The Sync COLUMN is gone (R14) — its status folded
/** Sync-status pre-filter for the subscribed table. The Sync COLUMN is gone — its status folded
* into a charm on Stored — so the top chips' `filters.sync` value is applied here instead of via a
* column predicate. Same vocab as the old column filter: "fully" | "needsFull" | "" (all). */
export function applySyncFilter(rows: ManagedChannel[], value: unknown): ManagedChannel[] {
@@ -53,9 +53,9 @@ export function tagsColumnTest(c: ManagedChannel, values: string[]): boolean {
/** The manager's tag-filter chip row (the Tags column filter's values): any picked id that is not one
* of the user's tags, then each user tag, then the "No tag" sentinel. A stored pick can outlive its
* tag (deleted here or on another device) and still narrows the table to nothing, so it stays a
* visible, removable chip — FIRST, so the row's "+N" overflow never folds the reason away (E32 S2) —
* visible, removable chip — FIRST, so the row's "+N" overflow never folds the reason away —
* and so does every pick while the tag list loads or after it failed, named by lib/tagPicks' rule
* (a placeholder, then the name, "Deleted tag" or the id), not hidden (E32 review). */
* (a placeholder, then the name, "Deleted tag" or the id), not hidden. */
export function tagFilterChips(o: {
userTags: Tag[];
tags: TagList;
@@ -107,7 +107,7 @@ export interface ChannelColumnDeps {
toggleTag: (channelId: string, tagId: number, hasTag: boolean) => void;
createAndAttachTag: (channelId: string, name: string) => void;
onFilterByTag: (tagId: number, name: string) => void;
// E8·S4 — suggested user tags per channel (resolved to Tag + confidence), plus accept/dismiss.
// Suggested user tags per channel (resolved to Tag + confidence), plus accept/dismiss.
suggestionsFor: (channelId: string) => SuggestedTag[];
onAcceptSuggestion: (channelId: string, tagId: number) => void;
onDismissSuggestion: (channelId: string, tagId: number) => void;
@@ -160,7 +160,7 @@ export function buildChannelColumns(deps: ChannelColumnDeps): Column<ManagedChan
sortValue: (c) => (c.title ?? c.id).toLowerCase(),
filter: { kind: "text", get: (c) => `${c.title ?? ""} ${c.handle ?? ""}` },
cardPrimary: true,
// A FLUID column (R14): no width cap. Under the manager table's fixed layout this cell takes a
// A FLUID column: no width cap. Under the manager table's fixed layout this cell takes a
// share of the leftover space and ChannelLink truncates the name to fit (full name on hover via
// title), so a long name can't push the table wider than its container at any zoom.
render: (c) => (
@@ -191,7 +191,7 @@ export function buildChannelColumns(deps: ChannelColumnDeps): Column<ManagedChan
width: "5rem",
sortable: true,
sortValue: (c) => c.stored_videos,
// The stored count carries the "fully synced" ✓ charm (R14 folded the retired Sync column in).
// The stored count carries the "fully synced" ✓ charm (the retired Sync column folded in).
render: (c) => <StoredCell c={c} />,
},
{ ...subsColumn<ManagedChannel>(t, lang), width: "6rem" },
@@ -252,7 +252,7 @@ export function buildChannelColumns(deps: ChannelColumnDeps): Column<ManagedChan
width: "3.25rem",
nowrap: true,
cardLabel: false,
// The row's full-history, hide and unsubscribe buttons went into the menu (E28 C1): the row
// The row's full-history, hide and unsubscribe buttons went into the menu: the row
// keeps what is read or tuned all the time — priority, tags, the ✓ — and ends in its "…".
render: more,
},