Skip to content

chore: upgrade toolchain majors (TypeScript 6, Vite 8, svgr 5, tsconfig-paths 6)#165

Merged
rchalamala merged 1 commit into
devin/1781144811-audit-fix-bumpsfrom
devin/1781144816-toolchain-majors
Jun 11, 2026
Merged

chore: upgrade toolchain majors (TypeScript 6, Vite 8, svgr 5, tsconfig-paths 6)#165
rchalamala merged 1 commit into
devin/1781144811-audit-fix-bumpsfrom
devin/1781144816-toolchain-majors

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Build-toolchain-only major upgrades; no runtime/MUI deps touched:

  • typescript 5.9 → 6.0.3, vite 7 → 8.0.16, vite-plugin-svgr 4 → 5.2.0, vite-tsconfig-paths 5 → 6.1.1
  • @vitejs/plugin-react-swc, @tailwindcss/vite/tailwindcss bumped to latest minors for Vite 8 compatibility
  • tsconfig target/lib ES2020 → ES2022

Two fallout fixes required:

  • TS 6 introduces TS2882 (side-effect imports must resolve to type declarations), so added src/css.d.ts with declare module "*.css" to cover CSS imports like import "./css/planner.css".
  • Vite 8 minifies CSS with LightningCSS, which hard-errors on flatpickr's legacy IE hack (@media (min-width:0\0)). Set css.lightningcss.errorRecovery: true in vite.config.ts so the invalid query is stripped (warning only) instead of failing the build.

Validated: npm run verify (oxlint + prettier + tsc + vite build) and npx react-doctor@latest -y --offline --fail-on error (100/100) pass.

Link to Devin session: https://app.devin.ai/sessions/2eb2f53798ef4b36806b3b68cee6bbd5
Requested by: @rchalamala


Open in Devin Review

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 11, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
caltech-dev 95088ab Commit Preview URL

Branch Preview URL
Jun 11 2026, 04:18 AM

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Open in Devin Review

Comment thread package.json
Comment on lines +49 to +52
"typescript": "^6.0.3",
"vite": "^8.0.16",
"vite-plugin-svgr": "^5.2.0",
"vite-tsconfig-paths": "^6.1.1",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Major version bumps may require migration steps

This PR bumps four dev dependencies across major versions: TypeScript 5→6, Vite 7→8, vite-plugin-svgr 4→5, and vite-tsconfig-paths 5→6. Major version bumps can introduce breaking changes. The new src/css.d.ts (declare module "*.css") and the css.lightningcss.errorRecovery config addition suggest some migration work was already done (Vite 8 uses lightningcss by default and may no longer provide built-in CSS type declarations). It would be worth verifying the build succeeds end-to-end with these versions and that no other migration steps are needed.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread src/css.d.ts
@@ -0,0 +1 @@
declare module "*.css";

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: css.d.ts added to compensate for Vite 8 dropping CSS type declarations

The addition of declare module "*.css" is needed because newer versions of Vite/vite-plugin-svgr may no longer provide ambient CSS module declarations via vite/client types. This is confirmed by the CSS imports in src/Planner.tsx:11-14 and src/index.tsx:5 which import .css files directly. Without this declaration, TypeScript would error on those imports. This is a correct migration step.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

Test results — ran the Vite 8 dev server locally and exercised the app end-to-end in Chrome (Devin session).

  • It should serve the app via Vite 8 dev server with intact styling — passed
  • It should search and add a course (fzf fuzzy search, 39 results for "cs 1") — passed
  • It should render schedule events + styled flatpickr time picker — passed (Ma/CS 106 a at 1 PM MWF+R)
  • It should remove/restore calendar events on course toggle — passed (0 units ↔ 9 units)
  • npm run verify and npx react-doctor@latest -y --offline --fail-on error (100/100) — passed
  • CI: all 6 checks passed
App renders styled (Vite 8) Schedule events + flatpickr picker
App loaded Schedule + picker
Notes on required migration fixes
  • TS 6 new error TS2882 on side-effect CSS imports → added src/css.d.ts (declare module "*.css").
  • Vite 8's LightningCSS minifier hard-errors on flatpickr's legacy IE @media (min-width:0\0) hack → css.lightningcss.errorRecovery: true in vite.config.ts (the build logs a stripped-query warning; harmless, IE-only rule).
  • tsconfig target/lib ES2020 → ES2022 with no new errors.
  • Vite 8 suggests replacing vite-tsconfig-paths with native resolve.tsconfigPaths: true; kept the plugin per requested scope.

…ig-paths 6)

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>
@devin-ai-integration devin-ai-integration Bot force-pushed the devin/1781144816-toolchain-majors branch from 941e84b to 95088ab Compare June 11, 2026 04:16
@devin-ai-integration devin-ai-integration Bot changed the base branch from main to devin/1781144811-audit-fix-bumps June 11, 2026 04:16

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

Open in Devin Review

Comment thread package.json

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: @vitejs/plugin-react-swc version not bumped but compatible

The @vitejs/plugin-react-swc remains at ^4.3.1 while Vite was bumped to 8.x. Per the lockfile, version 4.3.1 declares peerDependencies: { "vite": "^4 || ^5 || ^6 || ^7 || ^8" }, so this is compatible. No version bump needed here.

(Refers to line 45)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread vite.config.ts
Comment on lines +9 to +14
css: {
lightningcss: {
// flatpickr's CSS contains legacy IE `@media (min-width:0\0)` hacks
errorRecovery: true,
},
},

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Vite 8 LightningCSS errorRecovery for flatpickr compatibility

Vite 8 uses LightningCSS as the default CSS processor (replacing PostCSS). The errorRecovery: true option is correctly added to handle flatpickr's legacy IE CSS hacks (@media (min-width:0\0)). Without this, the build would fail on flatpickr's CSS. This is a valid workaround, though longer-term the project could consider replacing flatpickr (which is unmaintained) with a modern date picker that doesn't require legacy CSS hacks.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@rchalamala rchalamala merged commit e6c7bf1 into devin/1781144811-audit-fix-bumps Jun 11, 2026
6 checks passed
rchalamala added a commit that referenced this pull request Jun 12, 2026
…catalogs, MUI 9, dep-shedding (#166)

* deps: bump vite to 7.3.5, wrangler to 4.98.0; npm audit clean

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* chore: upgrade toolchain majors (TypeScript 6, Vite 8, svgr 5, tsconfig-paths 6)

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* perf: lazy-load term catalogs and split vendor chunks

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: no-op workspace mutations while term catalog is loading

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: log error when term catalog fails to load

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: sync catalog state before paint when the term changes

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* build: use function-form manualChunks for rolldown compatibility

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* chore: upgrade MUI to v9.1.0 (HelpOutline -> HelpOutlined icon rename)

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: use HelpOutlineOutlined to preserve original HelpOutline glyph

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: re-sync search options after async catalog load

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: key search option re-sync on catalog identity

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* chore: upgrade toolchain majors (TypeScript 6, Vite 8, svgr 5, tsconfig-paths 6) (#165)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* perf: lazy-load term catalogs + vendor code splitting (8.2 MB → ~1.0 MB initial JS) (#164)

* perf: lazy-load term catalogs and split vendor chunks

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: no-op workspace mutations while term catalog is loading

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: log error when term catalog fails to load

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: sync catalog state before paint when the term changes

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* build: use function-form manualChunks for rolldown compatibility

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: re-sync search options after async catalog load

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: key search option re-sync on catalog identity

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* chore: upgrade MUI to v9.1.0 (#163)

* chore: upgrade MUI to v9.1.0 (HelpOutline -> HelpOutlined icon rename)

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: use HelpOutlineOutlined to preserve original HelpOutline glyph

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* Replace flatpickr and react-select with native/MUI inputs, bump auto-animate (#167)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* build: pin wrangler to exact 4.98.0 (4.99+ wrangler dev assets 404 regression)

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* chore: gitignore .wrangler local dev cache

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* review: restore Icon gitignore CRs, drop stale lightningcss errorRecovery (flatpickr removed)

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

* fix: alert instead of silent no-op for Import Workspace / Default Schedule while catalog loads

Co-Authored-By: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Rahul Chalamala <22563365+rchalamala@users.noreply.github.com>
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