Repository navigation
chore(deps): monthly dependency refresh #2557
Copy link
Copy link
Closed
Labels
choreMaintenance: deps, build tooling, CI, cleanup — no user-facing behavior changeMaintenance: deps, build tooling, CI, cleanup — no user-facing behavior changedependabotv2Issues and PRs for v2Issues and PRs for v2
Milestone
Description
Routine dependency refresh — npm outdated plus a workflow uses: check, run against v2/main on a monthly schedule. This sweep replaces Dependabot's version-update PRs (#2229, #2235); its security-update PRs are off too (#2233), and the alerts they used to act on are swept into their own issues daily.
This is a tracking issue, not a diff: pick what's worth bumping (wanted is the safe default; latest may cross a major and needs its own judgment call, especially for anything root-declared per Dependency placement) and open a normal PR against v2/main.
root
| Package | Current | Wanted | Latest |
|---|---|---|---|
@hono/node-server |
2.0.12 | 2.1.3 | 2.1.3 |
@napi-rs/keyring |
1.3.0 | 1.3.0 | 2.1.0 |
@types/node |
24.13.3 | 24.19.0 | 26.6.3 |
@vitest/coverage-v8 |
4.1.11 | 4.1.11 | 5.0.3 |
ajv |
8.18.0 | 8.20.0 | 8.20.0 |
chokidar |
4.0.3 | 4.0.3 | 5.0.0 |
commander |
13.1.0 | 13.1.0 | 15.0.0 |
eslint |
10.8.0 | 10.11.0 | 10.11.0 |
globals |
17.7.0 | 17.13.0 | 17.13.0 |
hono |
4.13.7 | 4.13.12 | 4.13.12 |
ink |
6.8.0 | 6.8.0 | 7.1.1 |
open |
10.2.0 | 10.2.0 | 11.0.4 |
pino |
9.14.0 | 9.14.0 | 10.3.1 |
prettier |
3.8.4 | 3.8.4 | 3.9.9 |
react |
19.2.8 | 19.3.0 | 19.3.0 |
typescript |
5.9.3 | 5.9.3 | 7.0.2 |
typescript-eslint |
8.65.0 | 8.71.0 | 8.71.0 |
vite |
8.2.0 | 8.3.1 | 8.3.1 |
vitest |
4.1.11 | 4.1.11 | 5.0.3 |
yaml |
2.9.0 | 2.9.1 | 2.9.1 |
zod |
4.4.3 | 4.6.5 | 4.6.5 |
clients/web
| Package | Current | Wanted | Latest |
|---|---|---|---|
@chromatic-com/storybook |
5.2.1 | 5.3.1 | 5.3.1 |
@dnd-kit/sortable |
8.0.0 | 8.0.0 | 10.0.0 |
@mantine/core |
8.3.18 | 8.3.18 | 9.6.3 |
@mantine/form |
8.3.18 | 8.3.18 | 9.6.3 |
@mantine/hooks |
8.3.18 | 8.3.18 | 9.6.3 |
@mantine/notifications |
8.3.18 | 8.3.18 | 9.6.3 |
@storybook/addon-a11y |
10.5.5 | 10.6.1 | 10.6.1 |
@storybook/addon-docs |
10.5.5 | 10.6.1 | 10.6.1 |
@storybook/addon-onboarding |
10.5.5 | 10.6.1 | 10.6.1 |
@storybook/addon-vitest |
10.5.5 | 10.6.1 | 10.6.1 |
@storybook/react-vite |
10.5.5 | 10.6.1 | 10.6.1 |
@testing-library/jest-dom |
6.9.1 | 6.9.1 | 7.0.1 |
@testing-library/react |
16.3.2 | 16.3.3 | 16.3.3 |
@testing-library/user-event |
14.6.1 | 14.6.7 | 14.6.7 |
@types/react |
19.2.18 | 19.3.0 | 19.3.0 |
@types/react-dom |
19.2.4 | 19.3.0 | 19.3.0 |
@vitest/browser-playwright |
4.1.11 | 4.1.11 | 5.0.3 |
eslint-plugin-react-refresh |
0.5.3 | 0.5.7 | 0.5.7 |
eslint-plugin-storybook |
10.5.5 | 10.6.1 | 10.6.1 |
papaparse |
5.5.4 | 5.7.0 | 5.7.0 |
playwright |
1.62.1 | 1.63.0 | 1.63.0 |
react-dom |
19.2.8 | 19.3.0 | 19.3.0 |
storybook |
10.5.5 | 10.6.1 | 10.6.1 |
vite |
8.2.0 | 8.3.1 | 8.3.1 |
yaml |
2.9.0 | 2.9.1 | 2.9.1 |
clients/tui
| Package | Current | Wanted | Latest |
|---|---|---|---|
@types/react |
19.2.18 | 19.3.0 | 19.3.0 |
ink |
6.8.0 | 6.8.0 | 7.1.1 |
ink-form |
2.0.1 | 2.0.2 | 2.0.2 |
ink-scroll-view |
0.3.7 | 0.3.7 | 0.4.0 |
tsx |
4.22.4 | 4.23.15 | 4.23.15 |
vite |
8.2.0 | 8.3.1 | 8.3.1 |
GitHub Actions
| Action | Current | Latest |
|---|---|---|
anthropics/claude-code-action |
v1.0.235 (756cc22) |
v1.0.238 |
A second run of this sweep before this issue closes updates this body in place rather than filing a duplicate.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
choreMaintenance: deps, build tooling, CI, cleanup — no user-facing behavior changeMaintenance: deps, build tooling, CI, cleanup — no user-facing behavior changedependabotv2Issues and PRs for v2Issues and PRs for v2
Activity
cliffhall commentedon Oct 7, 2026
Triage: Priority Low (total 5)
Board: #28, Status
Todo, milestone v2.11.0.cliffhall commentedon Oct 13, 2026
Refresh analysis — what moved, what stayed, and why (2026-10-12)
Written so the next sweep can reuse it: most of the held items below will be suggested again, and each has a revisit when line saying what would change the answer.
Baseline:
npm auditreported zero advisories on the then-current versions in all five installs (root, web, tui, cli, mcpdo). Nothing here was a security fix; the case for every move is staying current or a specific benefit named below.Method: each candidate was installed on a trial branch and run through
npm run local:gate, plusverify:dep-lockstep. Behavior changes the gate can't see were checked by hand against release notes (details per row).✅ Taken
@hono/node-server, vite,@vitejs/plugin-react, eslint, typescript-eslint, globals, zod, ajv, yaml, express, react / react-dom 19.3,@types/react{,-dom}, Storybook 10.6, Playwright 1.64, Testing Library patches, tsx, papaparse,react-syntax-highlighter,eslint-plugin-*,@types/node24.xnpm update <pkg …>, not a barenpm update: a whole-tree update re-resolved transitives and hoisted ajv 6, typescript 6 and commander 4 into client installs, creating new lockstep skews. Peer/transitive shadows also have to be moved by hand (eslint, react, zod in tui; eslint, zod in web).@types/node(web, transitive)^24.12.4@types/expressdepends on@types/node: *, so web's copy floated to 26.x and broke lockstep. Sameoverridesfix cli already carries.ink-form^2.0.2)@napi-rs/keyringnull/false, the same as "nothing stored".core/auth/node/secret-store.tswas written assuming those failures throw:getStrict("a keychain that cannot answer must not be reported as an empty one"),probeKeyringAvailable, anddelete("Only an unavailable keychain throws"). v2 rejects on store errors, which makes that true. The tolerantget()already catches, so it is unaffected. API surface is unchanged (AsyncEntry,getPassword/setPassword/deleteCredential,findCredentialsAsync), and a real set/get/find/delete round-trip on the macOS keychain passed.commander--no-*default is only implied for a lone negative option. Our only one,--no-revoke, has no--revokecounterpart, so it is unaffected.overrides.sucrase.commander, which deliberately pins sucrase's copy to the root's major so mcpdo's ownimport "commander"resolves the same version. Moving only the root fails lockstep.⏸️ Tried, works, but deliberately not taken
@vitest/coverage-v8,@vitest/browser-playwright, web'svitestoverride, all exact)include/excludeglobs too eager", and our webincludepatterns (src/components/**, absolutecore/…paths) stopped matching. The web coverage report went from 418 files to 11, the ≥90 per-file gate checked only those 11, andlocal:gatewent green. Separately, two auth tests assignedglobal.sessionStoragedirectly, which v5's getter-only globals reject (fix:vi.stubGlobal). Its other changes are stricter but welcome: an un-awaited async assertion fails the test,expect.pollfails on timeout, mocks are cleared before each test.prettier(exact pin)npm run formatwith no other changes.pino@testing-library/jest-dom@testing-library/dompeer. No value.toContainAnyBy*/toContainOneBy*.happy-domenableIframePageLoading.@dnd-kit/sortableanthropics/claude-code-action(SHA pin)sdk-watch.yml'sanalyzejob, which holdsANTHROPIC_API_KEY, so every bump brings new third-party code next to a credential. The 13 intervening releases were not reviewed.# vX.Y.Zcomment from the same tag lookup (verify:action-pins).❌ Not taken — blocked or needs a decision
@mantine/*9Collapsepropin→expanded(9 call sites; the only type error). (2) v9'sAutosizetextarea callsdocument.fonts.addEventListener, which happy-dom lacks, so the test setup needs adocument.fontspolyfill. (3)Select's input now hasrole="combobox"instead oftextbox, so ~59 test queries change. With (1) and (2) applied, all remaining failures were (3). AlsoCollapsenow keeps content mounted by default via React 19Activity, which needs a visual and Storybook pass.ink7 / 8 (+ink-scroll-view0.4, which needs ink^7)clients/tui/__tests__/tsupConfig.test.ts. ink is left unbundled on the premise that the rootreact: ^19.0.0range lets npm dedupe with any React 19 a consumer has, and the guard asserts ink's React peer floor is>=19.0.0. ink 7 requires>=19.2.0and ink 8>=19.3.0.reactfloor (consumers on older 19.x hit the #1952 split-React crash) or bundle ink (~+1.4 MB).chokidar5tsupdepends onchokidar ^4in every client install.verify:dep-locksteponly tolerates skew within one major, and overriding tsup onto a chokidar major it doesn't declare isn't worth it for no benefit.tsupwidens to chokidar 5.open11open ^10in web.typescript7typescript-eslint(8.71) peerstypescript >=4.8.4 <6.1.0.@types/node25 / 26enginesfloor rises.Gotchas worth remembering next time
coverage/coverage-summary.jsonfile counts per client before and after.overrides.sucrase.commandermust move with the rootcommanderrange.overrides["@types/node"](as cli has), or@types/expressdrags the newest major in.Merge pull request #2710 from modelcontextprotocol/v2/chore/2557-mont…
cliffhall commentedon Oct 13, 2026
Shipped in #2710 (merged as a6aa805 on v2/main).