Repository navigation
chore(deps): upgrade Vite 8, Tailwind CSS 4 and Electron Forge 8 - #38
Merged
Merged
Conversation
Combines the three Dependabot major upgrades that could not pass CI individually: PRs 30, 33 and 34. Electron Forge 7 to 8, with @electron/fuses 2 - Forge 8 requires Node 22.13 or newer, so CI and release use Node 22. - plugin-vite now emits main.cjs and preload.cjs; update the package "main" field and the preload path in the main process. - Type-check with moduleResolution "bundler" so the ESM-only Forge packages resolve. Vite 5 to 8, with @vitejs/plugin-react 6 - Rename the Vite configs to .mts so they load as native ESM. Tailwind CSS 3 to 4 - Use @tailwindcss/vite instead of the PostCSS plugin; drop postcss.config.js, autoprefixer and postcss. - Move tailwind.config.js into @theme in globals.css. - Pin v3 defaults that v4 changed, namely border colour, placeholder colour, button cursor, unconditional hover and sRGB gradients. - Rename flex-shrink-0, outline-none and bg-gradient-to-*. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lands the three Dependabot major upgrades that each fail CI on their own, as one change. They interact (Forge's Vite plugin, the Vite version and the Tailwind build integration), so they are done together.
Supersedes
postcss-selector-parser, which is no longer in the tree at all)tar→ 7.5.22Those PRs are left open; close them once this merges.
What changed
Electron Forge 8
@electron/fuses^1.8.0→^2.1.3(peer ofplugin-fuses@8; this was thenpm ciERESOLVE in chore(deps): bump tar, @electron-forge/cli, @electron-forge/maker-squirrel, @electron-forge/maker-zip, @electron-forge/plugin-auto-unpack-natives, @electron-forge/plugin-fuses and @electron-forge/plugin-vite #34).ci.ymlandrelease.ymlmove from Node 20 to Node 22.plugin-vite@8emitsmain.cjs/preload.cjsinstead of.js:package.jsonmainand thepreload:path insrc/main/main.tsare updated. Without this the app packages fine but starts without its preload API.tsconfig.json:module: ESNext+moduleResolution: bundler(type-check only) so the ESM-only Forge 8 / Vite 8 type declarations resolve.Vite 8
@vitejs/plugin-react^4.3.4→^6.1.2(v4 only peers Vite 4–7; this was the ERESOLVE in chore(deps-dev): bump vite from 5.4.21 to 8.3.4 #33). The config never used the removedbabeloption.vite.*.config.ts→vite.*.config.mts(and the references inforge.config.ts) so the configs load as native ESM.Tailwind CSS 4
@tailwindcss/viteplugin;postcss.config.js,autoprefixerand the directpostcssdependency are removed.tailwind.config.jsis replaced by@themeinsrc/renderer/styles/globals.css(surface colours, Inter / JetBrains Mono font stacks,pulse-slowandglowanimations, class-based dark variant).globals.css: default border colour (gray-200), placeholder colour (gray-400),cursor: pointeron buttons,hover:applying unconditionally, and gradients interpolating in sRGB (bg-linear-to-*/srgb).flex-shrink-0→shrink-0,outline-none→outline-hidden,bg-gradient-to-*→bg-linear-to-*/srgb.package-lock.jsonwas regenerated with npm 10 (Node 22). Every version change in it follows from the bumps above.One intended visual difference
The status dot in the target input (
status-dot-idle,-running, …) is now coloured. Onmainthose classes are built dynamically (status-dot-${status}), so Tailwind 3 purged them and the dot rendered transparent. Tailwind 4 does not purge plain CSS in@layer components, so the dot now shows as the stylesheet always intended.Tailwind 4's default palette is defined in OKLCH rather than hex, so palette colours can differ by an imperceptible amount.
Verified (Linux, Node 22.23 / npm 10.9)
npm cifrom a clean tree,npx tsc --noEmit,npm run package(the three CI steps).electron-forge makefor the zip maker.window.mtrApi) is present, and the start screen matches amainbuild in a side-by-side screenshot and computed-style check, apart from the status dot above.Not verified
release.ymlflow (npm run make,latest.ymlgeneration, auto-update) under Forge 8.npm startdev server / HMR.🤖 Generated with Claude Code