Uh oh!
There was an error while loading. Please reload this page.
chore: upgrade vite-plus to 0.3.0 - #9327
Conversation
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This updates the shared Vite-plus build, bundling, testing, linting, and formatting toolchain across the monorepo, including the implementation of the existing bundled-development path. Although no application source changes are included, the upgrade can affect generated web/desktop/server artifacts and the unverified remote HMR path. No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
3e51290 to
03de157Compare`vp run dev --share` defaults T3CODE_BUNDLED_DEV=1 so a remote browser on the tailnet pays a few chunk requests instead of a per-module round trip. On vite-plus 0.2.2 (vite 8.1.2 / rolldown 1.1.4) that bundled dev mode is flaky for the shared origin: the page throws "@vitejs/plugin-react can't detect preamble" and a base-ui namespace import resolves to undefined inside <Collapsible>, so the app never gets past the splash. vite-plus 0.3.0 bundles vite 8.2.2 / rolldown 1.2.5, which carry the batch of experimental.bundledDev fixes landed between 8.1.2 and 8.2.2 (reload once after rebuild, serve assets emitted during HMR/lazy compile, skip plugin transforms for rolldown-lazy stubs, HMR error printing, invalidate() stack overflow, duplicated buildEnd), plus the vp dev ENOENT-at-startup fix from 0.2.9. Only the two catalog entries in pnpm-workspace.yaml change; every package consumes them via "catalog:". The lockfile delta is limited to the vite-plus toolchain (vite-plus-core, vitest 4.1.11, oxlint 1.79, oxfmt 0.64, oxlint-tsgolint, oxc types) and its new transitive deps (lightningcss, yuku-parser/codegen). experimental.bundledDev is still `boolean` in 8.2.2, so apps/web/vite.config.ts and scripts/dev-runner.ts need no change. Verified: `vp i`, `vp run build` in apps/web, `vp run typecheck` in apps/web, two unit test files in apps/web, and a T3CODE_BUNDLED_DEV=1 `vp run dev` that served the real index with /assets/index.js at 200 and no server-side errors. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
03de157 to
095da29CompareThe toolchain bump moves oxfmt from 0.57 to 0.64, which hugs a sole trailing arrow-function argument instead of breaking it. Whitespace only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
## What's Changed * chore(ci): only run check-run agents on vouched contributors by @juliusmarminge in pingdotgg/t3code#9298 * fix(web): stop remounting markdown on every activity delta by @juliusmarminge in pingdotgg/t3code#9306 * fix(pull-requests): keep cached PR chrome on reopen by @maria-rcks in pingdotgg/t3code#9294 * feat(environments): draw each environment as the machine it runs on by @juliusmarminge in pingdotgg/t3code#9299 * feat(web): apply and remove labels from the pull request tab by @juliusmarminge in pingdotgg/t3code#9313 * fix(sidebar): collapse settled and snoozed shelves by default by @maria-rcks in pingdotgg/t3code#9314 * refactor(media): unify file and media previews across clients by @juliusmarminge in pingdotgg/t3code#9253 * fix(chat): keep live tool labels in present tense by @maria-rcks in pingdotgg/t3code#9316 * chore: audit lint directives and move plugin allowlists into config by @juliusmarminge in pingdotgg/t3code#9300 * chore(ci): narrow the Effect conventions check-run agent by @juliusmarminge in pingdotgg/t3code#9321 * refactor(mobile): style plain views with Uniwind classes instead of the theme bridge by @juliusmarminge in pingdotgg/t3code#9322 * fix(dev): share dev servers on the loopback Vite actually binds by @juliusmarminge in pingdotgg/t3code#9324 * fix(web): line up the titlebar wordmark label and version pill by @tristanmanchester in pingdotgg/t3code#9255 * fix(web): make the diff layout toggle a persisted setting by @juliusmarminge in pingdotgg/t3code#9326 * chore: dedupe lightningcss and tailwind node bindings by @juliusmarminge in pingdotgg/t3code#9331 * chore: upgrade vite-plus to 0.3.0 by @juliusmarminge in pingdotgg/t3code#9327 * feat(web): add a file tree to the diff panel and pull request code tab by @juliusmarminge in pingdotgg/t3code#9330 * feat(web): add PageUp/PageDown chat navigation by @Yash-Singh1 in pingdotgg/t3code#9315 * fix(web): collapse PR header actions to icons when narrow by @maria-rcks in pingdotgg/t3code#9334 * fix(web): resolve Vite sourcemap and supports warnings by @juliusmarminge in pingdotgg/t3code#9343 * feat(web): choose whether links open in the default browser or in T3 Code by @juliusmarminge in pingdotgg/t3code#9339 * fix(web): add press feedback to buttons by @maria-rcks in pingdotgg/t3code#9349 * feat(web): add customizable project icons by @saphid in pingdotgg/t3code#9137 * fix(mobile): stop indented code overflowing Android chat bubbles by @Adamulek123 in pingdotgg/t3code#9347 * fix(web): let the pull request list use wide screens by @juliusmarminge in pingdotgg/t3code#9351 * feat: display native app and browser icons in work logs by @Yash-Singh1 in pingdotgg/t3code#9093 ## New Contributors * @tristanmanchester made their first contribution in pingdotgg/t3code#9255 **Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1262...v0.0.39-nightly.20260903.1265 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1265
Problem
vp run dev --sharedefaultsT3CODE_BUNDLED_DEV=1(scripts/dev-runner.ts,apps/web/vite.config.tsexperimental.bundledDev) so a remote browser on the tailnet pays a few chunk requests instead of a per-module round trip. On vite-plus 0.2.2, which bundles vite 8.1.2 / rolldown 1.1.4, that bundled dev mode is flaky for the shared origin: the page throws@vitejs/plugin-react can't detect preambleandCannot read properties of undefined (reading 'Root')in<Collapsible>(a base-ui namespace import resolving to undefined in the bundled chunk), so the app never gets past the splash. Unbundled dev renders fine.Fix
Bump the pinned toolchain to vite-plus 0.3.0, which bundles vite 8.2.2 / rolldown 1.2.5. The 8.1.2 to 8.2.2 range carries the batch of
experimental.bundledDevfixes (vitejs/vite CHANGELOG):import.meta.hot.invalidate()(#22797)buildEnd(#22931)Plus from vite-plus itself:
vp devno longer crashes at startup with ENOENT whenexperimental.bundledDevis enabled ([Feature]: Auto review for tool call safety #2384)What changed
Only the two catalog entries in
pnpm-workspace.yaml(vite: npm:@voidzero-dev/vite-plus-core@0.3.0,vite-plus: 0.3.0). Every package consumes them viacatalog:, so nothing else needed touching. No other 0.2.2 pin exists in package.json files, workflows, Dockerfiles, or tool-version files; CI usesvoidzero-dev/setup-vp@v1with no version pin, and the localvpreads the project version from the lockfile.The lockfile delta is limited to the vite-plus toolchain:
vite-plus,@voidzero-dev/vite-plus-coreand platform binaries,vitest4.1.9 to 4.1.11,oxlint1.72.0 to 1.79.0,oxfmt0.57.0 to 0.64.0,oxlint-tsgolint0.24.0 to 7.0.2001,@oxc-project/*0.138.0 to 0.146.0, and new transitive deps of vite-plus-core (lightningcss1.33.0,yuku-parser/yuku-codegen0.5.48,@oxlint/plugins1.79.0). No unrelated major bumps.experimental.bundledDevis still typedbooleanin 8.2.2, soapps/web/vite.config.tsandscripts/dev-runner.tsneed no change.0.3.0 caveats
~/.vite-plusinstalls keep their layout andvp upgradeleaves them in place. CI viasetup-vpstays on the single-root layout, so the$HOME/.vite-plus/package_manager/pnpm/...paths in the mobile workflows keep working. A maintainer who does a fresh install will get~/.local/share/vite-plus/bininstead; nothing in this repo hard-codes that path.@vitejs/devtoolsoptional peer range widened to^0.4.0 || ^0.5.0. We do not depend on it.vp fmton the two changed files was clean.Verification
vp irefreshed the lockfile;vp --versioninsideapps/webreports vite-plus 0.3.0, vite 8.2.2, rolldown 1.2.5, vitest 4.1.11vp run buildinapps/web: built in 12.7s, working tree clean afterwardvp run typecheckinapps/web: exit 0vp test run --project unit src/lib/assistantCitationNavigation.test.ts src/lib/attachmentUploadState.test.tsinapps/web: 2 files, 8 tests passed on vitest 4.1.11T3CODE_BUNDLED_DEV=1 vp run devin the worktree (no--share): after the first rolldown build the real index was served with<script type="module" src="/bundledDevClient.mjs">and<script type="module" crossorigin src="/assets/index.js">; both returned 200 (text/javascript, 57 kB and 19.5 MB) with noerror/ENOENT/preamblelines in the server log. Stopped by the process group of the PID captured at spawn.Not verified here: the remote-browser
--sharepath itself, which needs a second machine on the tailnet.Model: Claude Fable 5 via Claude Code.
🤖 Generated with Claude Code
Note
Low Risk
Primarily a dev/build toolchain and auto-format refresh; application logic is unchanged aside from formatting, though a major vite/rolldown bump can still surface new build or lint issues in CI.
Overview
Bumps the workspace vite-plus / vite catalog pins from 0.2.2 to 0.3.0 and refreshes pnpm-lock.yaml, pulling in vite 8.2.2, rolldown 1.2.5, vitest 4.1.11, oxlint 1.79.0, oxfmt 0.64.0, and related native bindings (including new yuku-parser / yuku-codegen transitives).
Alongside the lockfile, many TypeScript files were reformatted only: multi-line
.map/Effect.map/Effect.flatMapcallbacks and similar patterns were collapsed to match oxfmt 0.64 (desktop, mobile, server, client-runtime, web, shared, generated schema.gen.ts). No intentional runtime or API behavior changes in those edits.The upgrade targets more reliable
experimental.bundledDev(used when shared dev defaultsT3CODE_BUNDLED_DEV=1); app config inapps/web/vite.config.tsandscripts/dev-runner.tsis unchanged.Reviewed by Cursor Bugbot for commit 21611ad. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Upgrade
vite-plusto 0.3.0Bumps the Vite alias and
vite-pluscatalog versions from 0.2.2 to 0.3.0 in pnpm-workspace.yaml and updates the lockfile. The rest of the PR is formatting-only reformatting across many provider, orchestration, and client modules triggered by the new formatter rules.Macroscope summarized 21611ad.
Follow-up commit: oxfmt 0.57 → 0.64 reformat
The toolchain bump also moves oxfmt, which now hugs a sole trailing arrow-function argument (
Effect.map((x) => ({...}))on one line instead of breaking before the arrow) and breaks long string-literal unions onto leading|lines.vp checkfailed on 29 pre-existing files for that reason, so a second commit runsvp fmtover the repo. Verified per file that the change is whitespace, trailing commas, and|placement only (stripping those, old and new are byte-identical). Includespackages/effect-codex-app-server/src/_generated/schema.gen.ts, whose generator already runsvp fmtover its output, so it stays consistent from here.