chore(deps): update all dependencies except TypeScript - #208
Conversation
Runs `pnpm update --latest '!typescript'`: 64 packages (3 major, 61
minor/patch). TypeScript stays at ^6.0.3 because
eslint-config-ts-prefixer@4.3.0 declares its peer as `^5.0.2 || ~6.0.3`,
which TypeScript 7 would fall outside of. `pnpm install` reports no peer
warnings and only one typescript resolves in the tree.
Source changes are all consequences of the upgrade:
- msw-storybook-addon 2 -> 3 dropped the `initialize` export, which broke
every Storybook test file at import. Migrated .storybook/preview.tsx to
the v3 CSF 3.0 API: mswLoader now comes from the /csf3 entrypoint and is
a factory. `parameters.msw: { handlers }` is unchanged, still valid in v3.
- The newer typescript-eslint flagged 15 type assertions. 12 were removed
cleanly by --fix. Three were false positives that broke tsc, so they are
restored with a targeted eslint-disable and a comment explaining the
disagreement: two in shared-project-info.ts, where the computed key
[fk.column] widens the object to a string index signature, and one in
useSidebar.test.ts, where 'default' otherwise widens to string.
framer-motion 12 -> 13 needs no code change here; its only breaking change
removes the optional @emotion/is-prop-valid dependency, which affects
CSS-in-JS setups only. Verified by recording the CommandPalette transition
and inspecting frames: the exit animation interpolates as expected.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (15)
Included review availability: 6 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 10 reviews per hour. 📝 WalkthroughWalkthroughThe change updates Storybook MSW configuration, upgrades runtime and development dependencies, and removes or documents unnecessary TypeScript assertions in application code and unit tests. ChangesTooling and type cleanup
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This PR updates dependencies and adapts the Storybook integration while preserving tested behavior; the reported validation gates pass and no actionable merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 87.50% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 14 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #208 +/- ##
=======================================
Coverage 70.67% 70.68%
=======================================
Files 172 172
Lines 4819 4820 +1
Branches 1251 1277 +26
=======================================
+ Hits 3406 3407 +1
Misses 1394 1394
Partials 19 19 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
🧪 E2E Coverage Report (Sharded: 12 parallel jobs)
📊 Full report available in workflow artifacts |
Updates every dependency to latest except TypeScript, which is deliberately held at
^6.0.3.Why TypeScript is excluded
pnpm outdatedofferedtypescript 6.0.3 → 7.0.2. Holding it back turned out to be load-bearing, not just cautious:eslint-config-ts-prefixer@4.3.0declares its TypeScript peer as^5.0.2 || ~6.0.3. Upgrading TypeScript would have fallen outside that range.pnpm installreports zero peer-dependency warnings, and only one copy oftypescriptresolves in the tree — so "everything except TypeScript" is a coherent set, not a set held together by luck.Scope
64 packages: 3 major, 61 minor/patch.
msw-storybook-addon@testing-library/jest-domframer-motionSource changes, and why each was needed
Everything below is a consequence of the upgrade — no unrelated edits.
1.
msw-storybook-addon2 → 3 (.storybook/preview.tsx)v3 removed the
initializeexport, which broke all 50 Storybook test files at import time. Migrated to the v3 CSF 3.0 API per the addon's own docs:mswLoadernow comes from themsw-storybook-addon/csf3entrypointmswLoaderis a factory:loaders: [mswLoader()]initialize()is gone — v3 creates and starts the worker itselfparameters.msw: { handlers: [...] }is unchanged — v3 still types the object form as valid.storybook/main.tskeeps'msw-storybook-addon'inaddons, which is what the v3 CSF 3.0 docs prescribe2. New
@typescript-eslint/no-unnecessary-type-assertionfindingsThe newer typescript-eslint flagged 15 type assertions.
--fixresolved 12 of them cleanly (all type-only, no runtime change) plus 2 imports that became unused as a result.The other 3 were false positives — removing those assertions broke
tsc:shared-project-info.ts×2 — the computed key[fk.column]widens the object to a string index signature, so the assertion is requireduseSidebar.test.ts— without it,'default'widens tostringand fails the reducer'sThemeTypeThose three are restored with a targeted
eslint-disable-next-lineand a comment explaining the tsc/lint disagreement.tscis treated as authoritative.Test plan
pnpm typecheckpnpm lintpnpm buildpnpm testpnpm e2e:parallelframer-motion 12 → 13: verified separately
The gates cannot speak for this one — the unit tests
vi.mock('framer-motion'), and the single e2e test asserting a transition checks a Tailwind class, not Motion. So it was checked directly.Statically: all six used exports (
m,motion,LazyMotion,domAnimation,AnimatePresence,useReducedMotion) resolve in v13. v13's only documented breaking change removes the optional@emotion/is-prop-validdependency, which affects CSS-in-JS setups; this project is Tailwind-only and uses noMotionConfig/isValidProp.Visually: recorded the Kanban board mount and the CommandPalette open/close, then extracted frames. The board renders correctly under
LazyMotion/m/AnimatePresence, and the palette's exit was captured mid-interpolation — panel semi-transparent with the backdrop blur partially lifted — rather than snapping, then completing with no residual backdrop. The transition runs roughly 300ms.Notes
pnpm lintfails onsupabase/.temp/start-secrets/**while local Supabase is running. That is a pre-existing, gitignored artifact absent in CI — verified unrelated to this change by re-running lint with the directory moved aside (exit 0).Summary by CodeRabbit