Skip to content

Post-theme cleanup: drop unused premiumHeaderSurface and orphaned app-shell tokens - #122

Merged
BigSimmo merged 1 commit into
mainfrom
claude/post-theme-cleanup
Jul 2, 2026
Merged

Post-theme cleanup: drop unused premiumHeaderSurface and orphaned app-shell tokens#122
BigSimmo merged 1 commit into
mainfrom
claude/post-theme-cleanup

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

  • Remove premiumHeaderSurface from src/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.
  • Prune the now-orphaned --app-shell-muted / --app-shell-accent tokens from the light and dark blocks in src/app/globals.css. --app-shell itself is kept: it is still consumed by forms-search-results-page.tsx (live under the /forms, /services, /differentials, /favourites 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 with a dated note: package-lock.json now pins eslint 9.39.4 and npm run lint passes 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-ready call-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 fresh npm ci install: check:runtime PASS, lint clean, typecheck clean, test 772 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-run
  • npm run verify:ui — not run in full; the ui-smoke Chromium subset above was the requested gate for this token-only change
  • npm run format:check — the three changed files are Prettier-clean; the repo-wide check flags 9 pre-existing files untouched by this PR
  • npm run check:production-readiness — not applicable: no clinical workflow, privacy, environment, Supabase, source governance, or deployment behavior changed

Clinical 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

  • The branch contains exactly one commit on top of main, isolated from the concurrent mockup-cleanup work in the shared worktree (only the three files above were committed).

🤖 Generated with Claude Code

…-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>
CopilotAI review requested due to automatic review settings July 2, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 premiumHeaderSurface export from src/components/ui-primitives.tsx (confirmed no remaining references).
  • Removed orphaned --app-shell-muted and --app-shell-accent tokens from both light and dark theme blocks in src/app/globals.css (confirmed no remaining references).
  • Updated docs/redesign/04-deferred.md to mark the ESLint 10 incompatibility as resolved, consistent with the repo’s current package-lock.json (shows eslint: ^9.39.4 and no 10.4.1 pin).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

FileDescription
src/components/ui-primitives.tsxDrops an unused theme-era surface class export to reduce dead styling surface area.
src/app/globals.cssRemoves unused app-shell token variants while keeping --app-shell intact.
docs/redesign/04-deferred.mdRecords the ESLint mismatch as resolved, keeping historical context.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@BigSimmo
BigSimmo merged commit 4cd669c into mainJul 2, 2026
4 checks passed
@BigSimmo
BigSimmo deleted the claude/post-theme-cleanup branch July 2, 2026 08:12
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
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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@BigSimmo