Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions docs/redesign/04-deferred.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -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.
Expand Down
4 changes: 0 additions & 4 deletions src/app/globals.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -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;
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 0 additions & 2 deletions src/components/ui-primitives.tsx
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down
Loading