Retire the dead --text-2xl-compact type step - #1797
Conversation
`--text-2xl-compact` was declared in the globals.css `@theme` block and selected by zero production surfaces — the one step the new declared-but-unconsumed gate found on the day it landed, carried since as the only entry in `UNUSED_TYPE_STEP_EXEMPTIONS` with its retirement tracked as outstanding-issues `#297`. Deleting a step nothing selects renders identically, so this is a no-op for users; it is isolated in its own commit because it edits `@theme`. - delete the declaration from `src/app/globals.css` - drop `2xl-compact` from `CLINICAL_TWMERGE_THEME.text` and its docstring (the paired test asserting the config tracks globals.css keeps the two lists honest) - drop `text-2xl-compact` from `CUSTOM_TEXT_STEPS` - delete the exemption entry; the Map is now empty, which its header records as the intended resting state - repoint the one synthetic `var(--text-2xl-compact)` test fixture at `--text-2xl-minus` so no fixture names a token that no longer exists - TOKENS.md legacy-step row and GATES.md (eight steps, not nine — the 705-consumer total is unchanged because this step contributed 0) - close `#297` in the outstanding-issues ledger Verified: check:design-system-contract passed (705 production files), check:type-scale --strict passed, lint and typecheck exit 0, and the full offline unit suite is 5993 passed with one pre-existing environment failure in tests/pr-handoff-stop.test.ts that reproduces unchanged on the clean tree (it chmods a directory to 0555 to force a write failure, which root ignores). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q5u4VXpSFGfucKWwSBtdtd
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 21 minutes Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (9)
Comment |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q5u4VXpSFGfucKWwSBtdtd
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6bf3c7b2a0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…p-to-date mergeability
…p-to-date mergeability
CI triageCI failed on this PR. Automated classification of the 3 failed job(s):
Compared with main CI run #9571 (cancelled). Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger. |
…etire-dead-type-8wq9ta
Babysit / thread disposition (#1797)Unresolved Codex P2 on outstanding-issues ledger wording: claimed full Proceeding to squash-merge once branch policy clears. |
Summary
--text-2xl-compactfrom thesrc/app/globals.css@themeblock. It was declared but selected by zero production surfaces — the one step the declared-but-unconsumed gate found on the day it landed, carried since as the only entry inUNUSED_TYPE_STEP_EXEMPTIONSwith its retirement tracked as outstanding-issues#297. Deleting a step nothing selects renders identically; it gets its own revertible PR only because it edits@theme.2xl-compactfromCLINICAL_TWMERGE_THEME.textinsrc/lib/tailwind-merge.tsand from that file's docstring. The paired test "declares exactly the--text-*tokens globals.css defines" keeps the config and the@themeblock honest in both directions, so the two edits have to move together.text-2xl-compactfromCUSTOM_TEXT_STEPSintests/tailwind-merge-config.test.ts.scripts/check-design-system-contract.mjs. The Map is now empty, and its header records that as the intended resting state rather than a list awaiting entries — an addition needs a ledger row saying when it leaves again. The gate itself is unchanged and still fails, by name, on any future declared-but-unconsumed step.var(--text-2xl-compact)fixture intests/design-system-contract-utils.test.tsat--text-2xl-minus, so no fixture names a token that no longer exists. That fixture exercises the extraction utility on arbitrary strings; it was never a real consumer, which is why the step measured as unused.docs/design-system/TOKENS.mdlegacy-type-steps row no longer lists the step, anddocs/design-system/GATES.mdnow reads eight non-standard steps rather than nine. The 705-consumer total there is unchanged, precisely because this step contributed 0.#297indocs/outstanding-issues.mdvianpm run issues:done.docs/site-map.mdand.design-sync/design-system-adoption.jsonare regenerated by the pre-commit hook, not hand-edited.Verification
npm run verify:pr-local— completedcheck:runtime,check:installed-lock-parity,format:changed,sitemap:check,docs:check-index,docs:check-inventory,docs:check-scripts,docs:check-links,check:branch-review-ledger,check:outstanding-issues,lint,typecheck. It then stopped atteston a pre-existing environment failure unrelated to this diff, sobuildandcheck:rag:fixtureswere not reached by the chain; both were then run directly, see below.The failure is
tests/pr-handoff-stop.test.ts→ "emits handoff context only when the marker file exists". The testchmods a directory to0555to force a marker write to fail; this container runs as root, which ignores the mode bits, so the write succeeds and the assertionmarkerExists === falseis false. It reproduces unchanged on a clean tree atd812c76(verified by stashing this diff and re-running the file), so it is a root-user environment artefact, not a regression here. Full suite otherwise:Test Files 1 failed | 552 passed (553),Tests 1 failed | 5993 passed | 4 skipped (5998).Gates run directly for this change:
npm run check:design-system-contract— passed: "Design-system contract passed (705 production files; raw colors 2; literal shadows 0; legacy tap classes 0; edge conflicts 27; 1px shadow spreads 2)", plus adoption (54 components, 59 roots) and design-sync (54 components, 7 guidelines). This is the gate that owns the retired exemption.npm run check:type-scale(--strict) — "✓ type-scale: no arbitrary text-[px|rem|em] font sizes in src."npm run lint— exit 0.npm run typecheck— exit 0.npm run buildafterrm -rf .next(no cache reuse) — exit 0, "✓ Compiled successfully in 63s", "Client bundle secret surface check passed." This is the check that matters for a@themeedit: the stylesheet still compiles with the step gone.npm run check:outstanding-issues— "Outstanding-issues guard passed: 299 rows (146 open, 153 archived), unique ids, next-id=302 above the highest".npm run formatwas run whole-tree and committed; Prettier reflowed the TOKENS.md table columns as a consequence of the shortened cell.UI verification not run: no rendered output can change.
--text-2xl-compacthad zero class-utility and zerovar(--text-*)consumers across the contract check's own walk of production sources — that measured absence is the entire premise of the change, and it is re-asserted mechanically by the gate above. Spending a Chromium journey run to confirm that deleting an unreferenced custom property changed nothing would not test a plausible changed failure path.Risk and rollout
var(--text-*)references, andcheck:type-scaleindependently forbids the arbitrary-value escape hatch (text-[1.45rem]) that would otherwise reproduce the step's 1.45rem by hand. Mockups are excluded from the walk but were also grepped: no reference.git revertthis commit. It is deliberately a single self-contained commit touching one token, so the revert restores the declaration, the twMerge entry, both test lists and the exemption together; nothing else rides along.clinicalRisk: false,operationalRisk: false,ragRanking: falsefor this file set.Clinical Governance Preflight
Not applicable. This change touches none of ingestion, answer generation, search/ranking, source rendering, document access, privacy, production env, or clinical output — it deletes one unused typography custom property and its config/test/doc references.
classifyPullRequestFilesover the changed paths returnsclinicalRisk: falseandragRanking: false, so neither this section nor aRAG impact:line is required byscripts/pr-policy.mjs.Notes
#297verbatim: delete the declaration, drop the twMerge entry and the test list entry, update the TOKENS.md row, then delete the exemption. The row also anticipated the outcome — "deleting a step with zero consumers renders identically, but it edits@theme, so give it its own revertible PR rather than bundling it with a gate change" — which is why nothing else is bundled here despite the diff being small.Generated by Claude Code