Commit fbed9e4
committed
fix(ui): pin TypeScript inside typescript-eslint's peer range, guard the UI build in CI
#141 bumped TypeScript to ~7.0.2, but typescript-eslint@8.61.1 declares
peer typescript '>=4.8.4 <6.1.0' — and no released typescript-eslint
supports TS 7. npm ci fails outright with ERESOLVE, so ui/ could not
install or build on main. Pin to ~6.0.3, the highest version inside the
peer range, and regenerate the lockfile.
This merged green because nothing in CI builds the UI: main is
source-only and the SPA is built at tag time, so a broken frontend
dependency tree stays invisible until a release tag fails or ships a
UI-less binary. Add a ui-build job — npm ci --ignore-scripts (matching
the release path, and the exact command that fails on an unsatisfiable
peer graph), tsc -b + vite build, an assertion that the embedded
entrypoint exists, and the vitest suite — on node 24 to match the
release environment.
Verified locally: clean npm ci, full build (601.9 KB, index.html
present, lucide-react 1.33 typechecks so every icon import resolves),
and 339 UI tests across 39 files passing.1 parent 99988fe commit fbed9e4
3 files changed
Lines changed: 45 additions & 369 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
0 commit comments