From 9be07877cff788f01dd0d93152994d66a9b9821b Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Thu, 2 Jul 2026 11:59:53 +0800 Subject: [PATCH] Post-theme cleanup: drop unused premiumHeaderSurface and orphaned app-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 --- docs/redesign/04-deferred.md | 10 ++++++---- src/app/globals.css | 4 ---- src/components/ui-primitives.tsx | 2 -- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/redesign/04-deferred.md b/docs/redesign/04-deferred.md index 45f2fcbfab..cb28fd880b 100644 --- a/docs/redesign/04-deferred.md +++ b/docs/redesign/04-deferred.md @@ -4,12 +4,14 @@ `/tools`, `src/app/tools/page.tsx`, and `src/lib/tools.ts` are no longer deferred. The launcher now has dedicated mobile and desktop Playwright coverage through `tests/ui-tools.spec.ts`, included in `npm run verify:ui`. -## 1. ESLint 10 / eslint-plugin-react incompatibility (pre-existing, Tier 3) +## 1. ESLint 10 / eslint-plugin-react incompatibility (resolved July 1, 2026) -There is a lockfile/install mismatch around ESLint that predates and is independent of the redesign: +Resolved: `package-lock.json` now pins **eslint 9.39.4**, so a clean install no longer pulls eslint 10, and `npm run lint` passes cleanly on a fresh worktree install (verified July 1, 2026). Original entry kept below for history. -- **On the working `main` checkout**, `node_modules` has **eslint 9.39.4** and `npm run lint` passes cleanly. ✅ -- **`package-lock.json` pins eslint 10.4.1.** A clean `npm ci` therefore installs eslint 10, which breaks `eslint-plugin-react@7.37.5` (`TypeError: contextOrFilename.getFilename is not a function` in `resolveBasedir`, thrown while linting `eslint.config.mjs` itself, before any source file). This was observed in the isolated worktree install. CI (`npm ci`) is therefore at risk even though the local checkout lints fine. +There was a lockfile/install mismatch around ESLint that predated and was independent of the redesign: + +- **On the working `main` checkout**, `node_modules` had **eslint 9.39.4** and `npm run lint` passed cleanly. ✅ +- **`package-lock.json` pinned eslint 10.4.1.** A clean `npm ci` therefore installed eslint 10, which broke `eslint-plugin-react@7.37.5` (`TypeError: contextOrFilename.getFilename is not a function` in `resolveBasedir`, thrown while linting `eslint.config.mjs` itself, before any source file). This was observed in the isolated worktree install. CI (`npm ci`) was therefore at risk even though the local checkout linted fine. - **Why deferred:** Resolving the mismatch means changing dependency versions (bump `eslint-plugin-react`/`eslint-config-next` to an ESLint-10-compatible release, or pin eslint to 9.x) — Tier 3, requires approval. The repo has a `dependency` maintenance shortcut for exactly this. - **Mitigation used:** redesign code was additionally linted via the eslint 9.39.4 engine against the same flat config — all changed TS/TSX files are lint-clean. diff --git a/src/app/globals.css b/src/app/globals.css index 5f738da61d..cf82e8dd47 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -107,8 +107,6 @@ --background: #ffffff; --app-shell: #101a27; - --app-shell-muted: #182536; - --app-shell-accent: #2d948d; --surface: var(--neutral-0); --surface-chrome: #f7f8fa; --surface-raised: #fcfcfd; @@ -252,8 +250,6 @@ --background: #060708; --app-shell: #090a0c; - --app-shell-muted: #0e0f11; - --app-shell-accent: #33a69f; --surface: #101214; --surface-chrome: #0b0d0f; --surface-raised: #171a1d; diff --git a/src/components/ui-primitives.tsx b/src/components/ui-primitives.tsx index 5d48335e90..d9a52d7ab8 100644 --- a/src/components/ui-primitives.tsx +++ b/src/components/ui-primitives.tsx @@ -56,8 +56,6 @@ export const iconTilePremium = "grid h-9 w-9 shrink-0 place-items-center rounded-lg border border-[color:var(--clinical-accent-border)] bg-[color:var(--clinical-accent-soft)] text-[color:var(--clinical-accent)]"; export const compactMetadataRow = "mt-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs font-semibold tabular-nums text-[color:var(--text-muted)]"; -export const premiumHeaderSurface = - "border-b border-[color:var(--border-lux)] bg-[radial-gradient(circle_at_16%_-45%,color-mix(in_srgb,var(--app-shell-accent)_16%,transparent),transparent_18rem),linear-gradient(180deg,var(--app-shell-muted)_0%,var(--app-shell)_100%)] text-[color:var(--neutral-900)] shadow-[var(--shadow-soft)]"; export const sheetSurface = "rounded-t-[var(--radius-xl)] border border-[color:var(--border-lux)] bg-[color:var(--surface-lux)] shadow-[var(--shadow-lux)] ring-1 ring-[color:var(--border-strong)]/20 backdrop-blur-xl dark:ring-[color:var(--border-strong)]/10 sm:rounded-[var(--radius-lg)]"; export const sheetHandle = "mx-auto block h-1 w-10 rounded-full bg-[color:var(--border-strong)]/70 sm:hidden";