Skip to content

chore(deps): update all dependencies except TypeScript - #208

Merged
ryota-murakami merged 1 commit into
mainfrom
codex/update-deps-except-typescript
Aug 25, 2026
Merged

chore(deps): update all dependencies except TypeScript#208
ryota-murakami merged 1 commit into
mainfrom
codex/update-deps-except-typescript

Conversation

@ryota-murakami

@ryota-murakami ryota-murakami commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Updates every dependency to latest except TypeScript, which is deliberately held at ^6.0.3.

Why TypeScript is excluded

pnpm outdated offered typescript 6.0.3 → 7.0.2. Holding it back turned out to be load-bearing, not just cautious: eslint-config-ts-prefixer@4.3.0 declares its TypeScript peer as ^5.0.2 || ~6.0.3. Upgrading TypeScript would have fallen outside that range.

pnpm install reports zero peer-dependency warnings, and only one copy of typescript resolves 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.

Major From To
msw-storybook-addon 2.0.7 3.0.0
@testing-library/jest-dom 6.9.1 7.0.1
framer-motion 12.42.2 13.1.1

Source changes, and why each was needed

Everything below is a consequence of the upgrade — no unrelated edits.

1. msw-storybook-addon 2 → 3 (.storybook/preview.tsx)

v3 removed the initialize export, which broke all 50 Storybook test files at import time. Migrated to the v3 CSF 3.0 API per the addon's own docs:

  • mswLoader now comes from the msw-storybook-addon/csf3 entrypoint
  • mswLoader is a factory: loaders: [mswLoader()]
  • initialize() is gone — v3 creates and starts the worker itself
  • parameters.msw: { handlers: [...] } is unchanged — v3 still types the object form as valid
  • .storybook/main.ts keeps 'msw-storybook-addon' in addons, which is what the v3 CSF 3.0 docs prescribe

2. New @typescript-eslint/no-unnecessary-type-assertion findings

The newer typescript-eslint flagged 15 type assertions. --fix resolved 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 required
  • useSidebar.test.ts — without it, 'default' widens to string and fails the reducer's ThemeType

Those three are restored with a targeted eslint-disable-next-line and a comment explaining the tsc/lint disagreement. tsc is treated as authoritative.

Test plan

Gate Result
pnpm typecheck pass
pnpm lint pass
pnpm build pass
pnpm test pass — 102 files, 1371 tests
pnpm e2e:parallel pass — 12/12 shards, 409 tests

framer-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-valid dependency, which affects CSS-in-JS setups; this project is Tailwind-only and uses no MotionConfig/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 lint fails on supabase/.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

  • Maintenance
    • Updated core frameworks, UI libraries, editor packages, monitoring tools, and development tooling to newer versions.
    • Improved Storybook’s mock API integration for more reliable component previews.
  • Refactor
    • Simplified internal type handling and error propagation without changing application behavior.
    • Improved code clarity and linting across authentication, rate limiting, editor, and project features.
  • Tests
    • Refined test setup and mocks while preserving existing coverage and expectations.

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.
@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
gitbox Ready Ready Preview Aug 25, 2026 1:41pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 54e990d0-f16a-4425-83ee-6639ef0da818

📥 Commits

Reviewing files that changed from the base of the PR and between 20e5fec and b8b1f67.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml, !pnpm-lock.yaml
📒 Files selected for processing (15)
  • .storybook/preview.tsx
  • package.json
  • src/components/ui/link-node.tsx
  • src/lib/actions/auth-guard.ts
  • src/lib/actions/auth.ts
  • src/lib/actions/shared-project-info.ts
  • src/lib/rate-limit/memory.ts
  • src/lib/supabase/server.ts
  • src/lib/utils/slate-utils.ts
  • src/tests/unit/components/Board/AddRepositoryCombobox.test.tsx
  • src/tests/unit/components/editor/transforms.test.ts
  • src/tests/unit/hooks/useSidebar.test.ts
  • src/tests/unit/lib/auth/require-claims.test.ts
  • src/tests/unit/lib/events.test.ts
  • src/tests/unit/lib/utils/board-timing.test.ts

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.


📝 Walkthrough

Walkthrough

The change updates Storybook MSW configuration, upgrades runtime and development dependencies, and removes or documents unnecessary TypeScript assertions in application code and unit tests.

Changes

Tooling and type cleanup

Layer / File(s) Summary
Storybook MSW and dependency updates
.storybook/preview.tsx, package.json
Storybook uses the CSF3 MSW addon and invokes mswLoader(). Runtime and development dependency versions are updated.
Application type assertion cleanup
src/components/ui/link-node.tsx, src/lib/actions/*.ts, src/lib/rate-limit/memory.ts, src/lib/supabase/server.ts, src/lib/utils/slate-utils.ts
Application code uses inferred types and validated narrowing. Targeted ESLint suppressions document required assertions.
Test fixture type cleanup
src/tests/unit/components/**/*.test.*, src/tests/unit/hooks/*.test.ts, src/tests/unit/lib/**/*.test.ts
Unit test fixtures and callbacks remove unnecessary assertions while preserving existing values and behavior.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to b8b1f

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)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: updating dependencies while excluding TypeScript.
Docstring Coverage ✅ Passed 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 …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

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
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/update-deps-except-typescript

Comment @coderabbitai help to get the list of available commands.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 75.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 70.68%. Comparing base (20e5fec) to head (b8b1f67).

Files with missing lines Patch % Lines
src/lib/rate-limit/memory.ts 0.00% 1 Missing ⚠️
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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown

🧪 E2E Coverage Report (Sharded: 12 parallel jobs)

Metric Coverage
Lines 92.96%
Functions 23.01%
Branches 18.77%
Statements 31.83%

📊 Full report available in workflow artifacts

@ryota-murakami
ryota-murakami merged commit f5ea3a2 into main Aug 25, 2026
20 checks passed
@ryota-murakami
ryota-murakami deleted the codex/update-deps-except-typescript branch August 25, 2026 13:53
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.

2 participants