Skip to content

chore(ops-console): update npm dependencies to the newest supported versions - #1420

Merged
raydocs merged 2 commits into
mainfrom
claude/deps-ops-console-20261006
Oct 6, 2026
Merged

raydocs merged 2 commits into
mainfrom
claude/deps-ops-console-20261006

Conversation

@raydocs

@raydocs raydocs commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Owned by the ops plan (docs/ops/plan-2026-09-11.md); not a ship gate. Supersedes dependabot #1382, whose CI is red because it moves TypeScript to 7.

What changes

  • Every package to its newest release except TypeScript: motion / framer-motion 13 → 14, eslint and @eslint/js 9 → 10, eslint-plugin-react-hooks 5 → 7, typescript-eslint 8.44 → 8.71.1, lucide-react 1.44 → 1.52, tailwindcss 4.1 → 4.3, cn, tailwind-merge, geist, radix-ui, vite, vitest 5.0.3, jsdom, @types/node, tw-animate-css, @vitejs/plugin-react. The full old → new table is in the changelog fragment.
  • eslint 10's recommended set adds preserve-caught-error: six throw new Error(...) inside catch now pass { cause: error }; messages unchanged.
  • eslint.config.js names the two react-hooks rules the v5 preset enforced (rules-of-hooks error, exhaustive-deps warn) instead of spreading the v7 preset.

Held, and why

  • typescript stays on ~6.0.3. typescript-eslint 8.71.1 declares typescript >=4.8.4 <6.1.0. Tried anyway, not committed: on TypeScript 7.0.2 eslint cannot load its config (Error: typescript-eslint does not support TS 7.0.); typecheck, build and 43 of 44 test files pass.

Verification

  • MacBook, Node 24: rm -rf node_modules && npm ci ok, npm audit 0 vulnerabilities; npm run lint pass; npm run typecheck pass (ratchet 197, baseline 219); vitest 44 files / 345 tests, same as main; npm run build pass, budgets green (initial JS 205.1 → 206.7 KB gzip, total 318.6 → 321.9).
  • Not run locally: Playwright e2e (hosted ops-console-e2e runs it). ci-gate on the exact head is read on GitHub.

Limitations

  • eslint-plugin-react-hooks 7's React Compiler rules are not adopted: they report 21 existing findings (16 set-state-in-effect, 5 refs) whose fixes are component rewrites.
  • Nobody looked at the pages after the motion 14 and lucide-react bumps; the jsdom tests, the build and the hosted screenshot e2e are the evidence.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Cq68RQJmV6Xiao13p3SEat

raydocs and others added 2 commits October 6, 2026 13:12
…oads

eslint 10 no longer installs @eslint/eslintrc, so js-yaml stopped arriving as a
transitive package and tooling/scripts/tests/desktop-update-sign-workflow.test.mjs
could not load it from this lockfile.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cq68RQJmV6Xiao13p3SEat
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor
check measured budget
console initial JS gzip 207.8 KB 400.0 KB
console total JS gzip 322.9 KB 600.0 KB
console files over 400 lines 0 0
Worker src/index.ts lines 3783 3783

@raydocs

raydocs commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

Review record (jev-route)

  • Decision b8c5057d, run e75e7280, range origin/main...9ea9a0f5f: dual cross-family, Opus 5.5 + Codex gpt-6.1-sol, cross-verified. BLOCKED on one major.
    • opus:F1 (major) = codex:F1: eslint 10 no longer installs @eslint/eslintrc, so js-yaml left this lockfile while tooling/scripts/tests/desktop-update-sign-workflow.test.mjs loads it from here. Same failure as ci-gate run 37517212598 (services / ops-contract, Cannot find module 'js-yaml').
    • opus:F2 = codex:F2 (minor, record): the changelog said "not pushed, no PR".
  • Fix 40c8f44c7: js-yaml ^5.4.3 declared as a devDependency; changelog names chore(ops-console): update npm dependencies to the newest supported versions #1420 and the fix. Local: node --test "tooling/scripts/tests/*.test.mjs" 116 pass / 0 fail; rm -rf node_modules && npm ci, lint, typecheck (ratchet 197, baseline 219), vitest 44 files / 345 tests, npm audit 0 vulnerabilities.
  • Re-review of the fix, run b4706431, range 9ea9a0f5f...40c8f44c7: Opus 5.5. PASSED, clean; states F1 and F2 closed. It could not open the js-yaml 5 package offline; the guard test itself parses the real workflow with it and passes on this head in CI.
  • ci-gate on the exact head 40c8f44c7abcbce2e398b052e67c067892ed042f: run 37519534695 SUCCESS
  • Review threads: 0 unresolved; no CHANGES_REQUESTED.
  • Limitations (unchanged): typescript stays ~6.0.3 (typescript-eslint 8.71.1 throws on TS 7); the React Compiler rules of eslint-plugin-react-hooks 7 are not adopted (21 existing findings); motion 14 and lucide-react 1.52 were not looked at in a browser beyond the Playwright suite. Supersedes dependabot chore(deps): bump the ops-console group across 1 directory with 15 updates #1382.

@raydocs
raydocs marked this pull request as ready for review October 6, 2026 20:02
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@raydocs
raydocs merged commit 70af58a into main Oct 6, 2026
18 checks passed
@raydocs
raydocs deleted the claude/deps-ops-console-20261006 branch October 6, 2026 20:02
Sign up for free to 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.

1 participant