Post-theme cleanup: drop unused premiumHeaderSurface and orphaned app-shell tokens - #122
Merged
Conversation
…-shell tokens - Remove premiumHeaderSurface from ui-primitives.tsx: it has no consumers since the theme migration (PRs #112/#116) and still referenced the old dark app-shell gradient. - Prune the now-orphaned --app-shell-muted / --app-shell-accent tokens from the light and dark blocks in globals.css. --app-shell itself stays: it is still consumed by forms-search-results-page (live under the global search shell), the settings-search mockups, and the forced-colors override. - Mark docs/redesign/04-deferred.md item 1 (ESLint 10 / eslint-plugin-react incompatibility) resolved: package-lock.json now pins eslint 9.39.4 and lint passes on a fresh worktree install (verified July 1, 2026). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR performs post-theme cleanup by removing unused styling exports and pruning orphaned CSS custom properties introduced before the theme migration, plus updates redesign documentation to reflect the now-resolved ESLint lockfile situation.
Changes:
- Removed the unused
premiumHeaderSurfaceexport fromsrc/components/ui-primitives.tsx(confirmed no remaining references). - Removed orphaned
--app-shell-mutedand--app-shell-accenttokens from both light and dark theme blocks insrc/app/globals.css(confirmed no remaining references). - Updated
docs/redesign/04-deferred.mdto mark the ESLint 10 incompatibility as resolved, consistent with the repo’s currentpackage-lock.json(showseslint: ^9.39.4and no10.4.1pin).
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/components/ui-primitives.tsx | Drops an unused theme-era surface class export to reduce dead styling surface area. |
| src/app/globals.css | Removes unused app-shell token variants while keeping --app-shell intact. |
| docs/redesign/04-deferred.md | Records the ESLint mismatch as resolved, keeping historical context. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
BigSimmo added a commit
that referenced
this pull request
Jul 30, 2026
…indings (#1424) * docs(ledger): record PR #1400 closeout and capture three unrecorded findings Documentation only — two ledger files, no code. **Review closeout for PR #1400** appended with `ledger:append` (never hand-written), recording the 17 findings fixed, the verification behind each, and the post-merge check that all 8 commits are ancestors of main with the 4 changed files byte-identical. **Three findings from that session that nothing else records:** - `#125` — `@codex fix` produced 11 commits across a branch named `work`, none fetchable, the same finding rewritten four times. It reads as success while the branch is unchanged, which is the actual hazard. - `#126` — both client-side push guards are inert for agent pushes: `gh` absent makes the auto-merge sentinel fail open, and `core.hooksPath` is set only by a local install. They protect the environment least likely to need them. - `#127` — this ledger's fixed-width padding makes one row's edit re-pad all 59, so it conflicts on nearly every main advance; each conflict silently stopped all CI on #1400 via `#116`. Records that `merge=union` is the wrong fix, with the evidence. CircleCI was deliberately not filed — already captured as `#122`. Checked before writing rather than after. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY * docs(issues): correct unsafe pull_request_target advice in #129 Review caught a real problem in the guidance I filed, not in code: #129's next-action suggested moving *both* push guards server-side into a `pull_request_target` job. That context carries secrets and a write token, and a format check must execute PR-head code — including the dynamic `prettier.config.*` this very PR taught the guard to load. That is the classic privileged-context vector, and `.github/workflows/pr-policy.yml` already avoids it deliberately by checking out only `github.workflow_sha`. Corrected, and the row now records why the whole idea was unnecessary: formatting is already enforced server-side by `Static PR checks` running `format:check` on ordinary `pull_request` CI, so the guard's only unique value is failing fast before the push. Only the metadata-only auto-merge sentinel could safely live in a target job. Bad advice in a durable ledger is worse than no advice — someone would have acted on it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY * fix(issues): repair the duplicated table from the sixth main merge Sixth conflict today, and the first that auto-merged *wrongly*: git's text merge concatenated both tables, duplicating all 63 open rows. PR #1421 had landed on main using #128/#129/#130 — the exact id collision #112 describes — so both sides had those ids with different content and the merge kept both. `npm run check:outstanding-issues` caught it and stated the correct resolution verbatim: renumber the incoming rows above the marker and bump it, rather than taking one side wholesale and dropping the other's rows. Done exactly that — main's table is authoritative, this branch's four rows renumber to #131/#132/#133/#134, marker to 135. Verified both sides' rows survive: main's #128-#130 and mine are all present and distinct. Worth noting main's new #129 (`update-branch` API does not honour the `merge=ledger` driver) is the server-side twin of my #134 (the driver is absent wherever `npm install` was skipped). Same root cause from two directions. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY * docs: record PR 1424 review --------- Co-authored-by: Claude <noreply@anthropic.com>
BigSimmo pushed a commit
that referenced
this pull request
Jul 30, 2026
My push of dd3a1b6 reported "[new branch]", which was the warning sign. The remote ref was absent at push time, so git created it instead of rejecting a non-fast-forward, and the branch tip moved from 1831cd2 back to a commit built on a14d9e7 — silently dropping three commits authored from a codex/review-pr1428 session between 09:57 and 10:07: 8d2710f Merge remote-tracking branch 'origin/main' into codex/review-pr1428 6157021 docs: record PR 1428 review 1831cd2 docs: align issue 109 resolution date They were recoverable: the objects still fetch by SHA and refs/pull/1428/head still pointed at 1831cd2, so nothing was lost permanently. Saved as recovered/pr1428-head and merged back here. Both of their real changes are kept: - 6157021 appends one record to docs/branch-review-ledger.md, which is append-only — losing it would have meant the PR #1428 review was never recorded and would be run again. - 1831cd2 corrects the Resolved date on the #109 archive row I wrote, from 2026-07-30 to 2026-07-29, aligning the column with the "RESOLVED 2026-07-29" in its own Outcome text. Their version is kept; mine was inconsistent. Resolved by taking their ledger wholesale — it already contained a14d9e7, so it carries every earlier commit of mine — and re-applying only the #122 move on top. Proven against their head rather than assumed: their head : 61 open + 71 archived = 132 merged : 60 open + 72 archived = 132 IDs lost from their head: NONE IDs invented: NONE duplicates: 0 #122 archived: True the five earlier archives still archived: True their #109 date fix kept: True The #122 replay script now refuses when #122 is already archived, rather than appending a second row, so a later merge cannot duplicate it. Verified: npm run verify:cheap -> EXIT=0; "Test Files 434 passed (434)"; "Tests 4563 passed | 4 skipped (4567)"; "Outstanding-issues guard passed: 132 rows (60 open, 72 archived), unique ids, next-id=135 above the highest, union merge active". npm run check:branch-review-ledger -> "113 live table records + 1206 archived ... no conflict markers, mojibake, heading records, or duplicates". npx prettier --check . -> "All matched files use Prettier code style!" Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011YdPS2KhKqz2buzsUgmX3c
BigSimmo added a commit
that referenced
this pull request
Jul 30, 2026
…gn (#1455) * issues: close#122, capture the container Playwright pin mismatch Three related ledger items, each independently revertible. Close#122 (`ci/circleci: verify` fails on every branch). Its outcome allowed either "trustworthy signal again, or it stops reporting"; the second happened. `.circleci/config.yml` was deleted by 9779828 (PR #1412), and PR #1452's head reported 21 check runs with none named `ci/circleci: verify`, so the status no longer reports on new PRs. No operator log read is needed and the quota hypothesis is retired unproven. Capture #145: the remote container ships Chromium 1194 while the repo's Playwright pin wants 1234, so every browser test dies at launch and zero assertions run while the output reads like product breakage. This has cost time twice — the 2026-07-30 handoff records 13 launch failures read as a code defect, and #120 was filed on a gate reading taken under the same condition. The row gives the start-of-session check and keeps the existing "never run npx playwright install" stop rule. Fix a stale rule found while verifying #122: AGENTS.md cited `ci/circleci: verify` as a check that fails on unformatted files. It cannot report again, so the rule now names `Static PR checks` and records the CircleCI failures as history. The outstanding-issues diff is 4 insertions / 3 deletions ignoring whitespace; the rest is Prettier re-padding the archive table, because #122's original summary is wider than that column and was kept verbatim. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018K7sEKH35KZkWxvCnQcNN2 * issues: fold the Playwright pin evidence into #121, drop duplicate #145 Codex review was right: #121 ("Container Playwright browser build lags the pinned client") already tracks this exact condition — client 1234 versus container 1194, every browser test failing at launch — so #145 created a second canonical action for one problem. The row was allocated without first searching the open table, which is the dedupe step the issues skill requires. #145 is removed and its distinct content folded into #121: the reproduction on main at c5c1a86, the fact that the condition has now been misread twice (the handoff's 13 launch failures, and #120 filed as a gate defect under it), the detection command to run before trusting a browser gate, and the stop rule against filing a gate defect from a run whose tests never launched. #121's own workaround, PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD note and open Next decision are unchanged. The id marker rolls back 146 -> 145 because #145 was never used by a live row. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018K7sEKH35KZkWxvCnQcNN2 * issues: record #98 delivery and #130 pre-paint guard design Sync main, then update two rows against evidence rather than adding new ones. #98: PR #1450 landed the counting proxy and answer-path budgets while this branch was open. Verified rather than assumed — the helper counts on execution not construction, tests/rag-round-trip-budget.test.ts pins two answer-path scenarios plus three counter self-tests, and it is registered in the offline contract fixture so it runs there. Ran it: Test Files 1 passed (1), Tests 5 passed (5). The row stays open with its Next narrowed to the two real gaps: /api/search has no budget, and eval-rag-offline/test-rag-offline were not wired. Also records the helper's own blind spot — it sees only traffic through the wrapped client. #130: already owns the unfiled pre-paint/cold-load guard, so its design goes there instead of a new row. Records what the guard must test (the pre-paint reserve seed, sampled before and after hydration rather than once after), why a zero-inset profile is required for it to be able to fail at all, and that it must be proven against the broken shape first. Also records the environment blocker: browser gates cannot launch here per #121, and the symlink bridge writes under /opt, which the sandbox refuses. No new ids allocated; both are updates to rows that already own the work. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018K7sEKH35KZkWxvCnQcNN2 --------- Co-authored-by: Claude <noreply@anthropic.com>
BigSimmo pushed a commit
that referenced
this pull request
Jul 30, 2026
Second real conflict on docs/outstanding-issues.md, this time in the archive table: main's #1455 archived #122 while this branch archived #105. Kept both rows and took main's separator width. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01361jh3eYVjJCzXWjAhdZiF
BigSimmo pushed a commit
that referenced
this pull request
Jul 30, 2026
…and #146 Conflict was docs/outstanding-issues.md only. Took main's copy wholesale (it carries #122's closure and the #98/#130 records from #1455) and re-applied the two one-line relocation notes, rather than hand-editing the conflict region. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JHLPEV4o1rzipPDqshCSHY
16 tasks
BigSimmo pushed a commit
that referenced
this pull request
Jul 30, 2026
Fifth consecutive genuine conflict on docs/outstanding-issues.md, confirmed with git merge-tree before acting. Main's d8b034c (PR #1441) deleted three rows from the Open items table and archived none of them: #85, which that PR genuinely resolved by adding check-upload-limit-parity.mjs; #119, a duplicate of #122; and #105, which is open and unresolved — its LoadingPanel half is still unverified. This resolution mirrors main on #85 and #119, which were dispositionable, and keeps #105, which was not. #105 survived only because this resolution was done row by row and then diffed with column padding normalised away. Taking either side wholesale would have lost it silently, which is what AGENTS.md forbids for this file and what appears to have happened upstream. Filed as #148: check:outstanding-issues validates duplicate ids, ids in both tables, stale markers and malformed rows, but never compares against the previous revision, so a row that simply disappears is invisible to it in verify:cheap and static-pr alike. The fix is a deletion check against the merge base, not a union merge driver — #133 removed that driver deliberately and reinstating it would bring back the duplicate-row damage it was removed to stop. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01361jh3eYVjJCzXWjAhdZiF
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
premiumHeaderSurfacefromsrc/components/ui-primitives.tsx. It has had zero consumers since the theme migration (PRs Clinical White / Aegean Graphite theme + Geist Mono codes #112/Polish: de-halo selection glows, neutral answer skeleton, verified gates #116, decision log D11) — even the settings-search mockup no longer references it — and it still styled against the old dark app-shell gradient.--app-shell-muted/--app-shell-accenttokens from the light and dark blocks insrc/app/globals.css.--app-shellitself is kept: it is still consumed byforms-search-results-page.tsx(live under the/forms,/services,/differentials,/favouritessearch shell), the settings-search mockups, and the forced-colors override.docs/redesign/04-deferred.mditem 1 (ESLint 10 / eslint-plugin-react incompatibility) resolved with a dated note:package-lock.jsonnow pins eslint 9.39.4 andnpm run lintpasses on a fresh worktree install (verified July 1, 2026). The original entry is kept below the note as history.Deliberately not done here: migrating the ~228
--clinical-chat-teal/--clinical-chat-teal-soft/--clinical-chat-readycall-sites to role tokens. That is being handled separately (a concurrent session is already migrating the mockups and removing the teal aliases), and the compat aliases are harmless in the meantime.Verification
npm run verify:cheap— components run individually on a freshnpm ciinstall:check:runtimePASS,lintclean,typecheckclean,test772 passed / 2 skipped (one flaky RAG fallback test failed on the first run and passed on re-run; unrelated to this change)npx playwright test tests/ui-smoke.spec.ts --project=chromium— 28/29 passed; the one failure was a Playwright worker crash (not an assertion) that coincided with concurrent file churn in the shared worktree, and that test passed on an isolated re-runnpm run verify:ui— not run in full; the ui-smoke Chromium subset above was the requested gate for this token-only changenpm run format:check— the three changed files are Prettier-clean; the repo-wide check flags 9 pre-existing files untouched by this PRnpm run check:production-readiness— not applicable: no clinical workflow, privacy, environment, Supabase, source governance, or deployment behavior changedClinical Governance Preflight
Not applicable — this change touches only unused CSS custom properties, an unused styling constant, and redesign documentation. No ingestion, answer generation, search/ranking, source rendering, document access, privacy, production env, or clinical output behavior changed.
Notes
main, isolated from the concurrent mockup-cleanup work in the shared worktree (only the three files above were committed).🤖 Generated with Claude Code