Migrate build and test pipeline to vite-plus - #1616

Closed
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate
Closed

Migrate build and test pipeline to vite-plus#1616
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate

Conversation

@juliusmarminge

@juliusmarmingejuliusmarminge commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace the legacy tsdown/vitest workflow with vite-plus across desktop, server, web, and shared packages.
  • Consolidate build and test configs around root-level Vite-based task runners, including new vite.config.ts files and removed Turbo/tsdown config.
  • Update the server CLI and CI cache setup to match the new workspace build flow and dependency catalog handling.
  • Refresh several type signatures and runtime checks that surfaced during the migration.

Testing


Note

Medium Risk
Build/test infrastructure is replaced across desktop/server/web, so failures may surface in CI or local workflows despite mostly mechanical changes. Runtime logic changes are minor, but the new bundling/aliasing config affects how packages resolve and ship.

Overview
Switches the workspace build + test toolchain to vite-plus. Desktop/server bundling moves from tsdown to vp pack with new vite.config.ts files, Turbo app configs are removed, and package scripts are updated to use vp for build/dev/test.

Adjusts repo plumbing to match the new flow. CI caching drops .turbo and only caches Bun, docs update the meaning of bun run build, and TypeScript configs now include source-package paths (and exclude their tests) to support the new bundling/TS resolution.

Includes small correctness/type cleanups uncovered by the migration. Many Effect.Effect<..., never>/fiber signatures are loosened, workspace scanning ignores .vite instead of .turbo, and a few UI/test assertions and casts are simplified for stricter typing and more reliable browser tests.

Written by Cursor Bugbot for commit 881c649. This will update automatically on new commits. Configure here.

Note

Migrate build, test, and dev pipeline from vitest/turbo/tsdown to vite-plus

  • Replaces vitest imports with vite-plus/test across all test files in apps/, packages/, and scripts/.
  • Replaces turbo with vp (vite-plus CLI) for monorepo task orchestration in root and per-package package.json scripts (dev, build, test, lint, fmt).
  • Replaces tsdown with vp pack for bundling desktop and shared packages; adds vite.config.ts files for apps/desktop, apps/server, apps/web, packages/shared, and packages/contracts.
  • Adds path alias resolution for @t3tools/* workspace packages to source files across all vite configs and tsconfig.base.json, removing the need for pre-built outputs during development.
  • Workspace directory scanning in WorkspaceEntries.ts now ignores .vite instead of .turbo.
  • Removes turbo cache from CI; simplifies cache key to bun.lock only.
  • Behavioral Change: Effect.Effect and related types drop explicit never error/environment type parameters throughout the codebase, aligning with updated Effect library conventions.

Macroscope summarized 881c649. (Automatic summaries will resume when PR exits draft mode or review begins).

- Replace tsdown and Turbo build wiring with vite-plus tasks
- Switch server, desktop, and web tests to vite-plus test imports
- Tighten related Effect types and update CI/docs for the new workflow
@coderabbitai

coderabbitaiBot commented Mar 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e4d3d144-bd31-4f9e-bee1-752c489f4ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/viteplus-migrate

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

@juliusmarminge
juliusmarminge marked this pull request as draft March 31, 2026 20:50
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Mar 31, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Workspace scan no longer ignores Turbo cache
    • Restored .turbo to IGNORED_DIRECTORY_NAMES alongside the newly added .vite, since the migration accidentally replaced it instead of adding .vite as an additional entry.

Create PR

Or push these changes by commenting:

@cursor push 2d90d516bd
Preview (2d90d516bd)
diff --git a/apps/server/src/workspace/Layers/WorkspaceEntries.ts b/apps/server/src/workspace/Layers/WorkspaceEntries.ts--- a/apps/server/src/workspace/Layers/WorkspaceEntries.ts+++ b/apps/server/src/workspace/Layers/WorkspaceEntries.ts@@ -21,6 +21,7 @@
".convex",
"node_modules",
".next",
+ ".turbo",
".vite",
"dist",
"build",

You can send follow-ups to this agent here.

"node_modules",
".next",
".turbo",
".vite",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Workspace scan no longer ignores Turbo cache

Medium Severity

Replacing ".turbo" with ".vite" in IGNORED_DIRECTORY_NAMES makes WorkspaceEntries recurse into old Turbo caches. When Git filtering is unavailable or the folder is outside a Git worktree, .turbo contents can flood indexing, hit WORKSPACE_INDEX_MAX_ENTRIES, and hide real project files from search results.

Additional Locations (1)
Fix in CursorFix in Web

juliusmarmingeand others added 6 commits March 31, 2026 14:57
- Remove tsconfig path aliases and Vite aliases
- Point contracts/shared packages at source entrypoints
- Update dev runner imports to use package specifiers
- switch workspace checks and tests to `vp`
- fold Vitest browser config into `vite.config.ts`
- add `electron-builder` for desktop packaging
Co-authored-by: codex <codex@users.noreply.github.com>
@adammansfield

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

@juliusmarminge

Copy link
Copy Markdown
MemberAuthor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

@adammansfield

adammansfield commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

Sorry I didn't realize. But this change will still fix #1968 because vp pack uses tsdown 0.21.7 (according to the bun.lock). That version does not hang for bun dev:desktop on Windows.

Tested with this PR:

irm https://vite.plus/ps1 | iex # re-open terminal so vp in PATH
git fetch upstream pull/1616/merge:pull/1616
git switch pull/1616
vp install vp run dev:desktop

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@juliusmarminge@adammansfield
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Migrate build and test pipeline to vite-plus - #1616

Closed
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate
Closed

Migrate build and test pipeline to vite-plus#1616
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate

Conversation

@juliusmarminge

@juliusmarmingejuliusmarminge commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace the legacy tsdown/vitest workflow with vite-plus across desktop, server, web, and shared packages.
  • Consolidate build and test configs around root-level Vite-based task runners, including new vite.config.ts files and removed Turbo/tsdown config.
  • Update the server CLI and CI cache setup to match the new workspace build flow and dependency catalog handling.
  • Refresh several type signatures and runtime checks that surfaced during the migration.

Testing


Note

Medium Risk
Build/test infrastructure is replaced across desktop/server/web, so failures may surface in CI or local workflows despite mostly mechanical changes. Runtime logic changes are minor, but the new bundling/aliasing config affects how packages resolve and ship.

Overview
Switches the workspace build + test toolchain to vite-plus. Desktop/server bundling moves from tsdown to vp pack with new vite.config.ts files, Turbo app configs are removed, and package scripts are updated to use vp for build/dev/test.

Adjusts repo plumbing to match the new flow. CI caching drops .turbo and only caches Bun, docs update the meaning of bun run build, and TypeScript configs now include source-package paths (and exclude their tests) to support the new bundling/TS resolution.

Includes small correctness/type cleanups uncovered by the migration. Many Effect.Effect<..., never>/fiber signatures are loosened, workspace scanning ignores .vite instead of .turbo, and a few UI/test assertions and casts are simplified for stricter typing and more reliable browser tests.

Written by Cursor Bugbot for commit 881c649. This will update automatically on new commits. Configure here.

Note

Migrate build, test, and dev pipeline from vitest/turbo/tsdown to vite-plus

  • Replaces vitest imports with vite-plus/test across all test files in apps/, packages/, and scripts/.
  • Replaces turbo with vp (vite-plus CLI) for monorepo task orchestration in root and per-package package.json scripts (dev, build, test, lint, fmt).
  • Replaces tsdown with vp pack for bundling desktop and shared packages; adds vite.config.ts files for apps/desktop, apps/server, apps/web, packages/shared, and packages/contracts.
  • Adds path alias resolution for @t3tools/* workspace packages to source files across all vite configs and tsconfig.base.json, removing the need for pre-built outputs during development.
  • Workspace directory scanning in WorkspaceEntries.ts now ignores .vite instead of .turbo.
  • Removes turbo cache from CI; simplifies cache key to bun.lock only.
  • Behavioral Change: Effect.Effect and related types drop explicit never error/environment type parameters throughout the codebase, aligning with updated Effect library conventions.

Macroscope summarized 881c649. (Automatic summaries will resume when PR exits draft mode or review begins).

- Replace tsdown and Turbo build wiring with vite-plus tasks
- Switch server, desktop, and web tests to vite-plus test imports
- Tighten related Effect types and update CI/docs for the new workflow
@coderabbitai

coderabbitaiBot commented Mar 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e4d3d144-bd31-4f9e-bee1-752c489f4ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/viteplus-migrate

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

@juliusmarminge
juliusmarminge marked this pull request as draft March 31, 2026 20:50
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Mar 31, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Workspace scan no longer ignores Turbo cache
    • Restored .turbo to IGNORED_DIRECTORY_NAMES alongside the newly added .vite, since the migration accidentally replaced it instead of adding .vite as an additional entry.

Create PR

Or push these changes by commenting:

@cursor push 2d90d516bd
Preview (2d90d516bd)
diff --git a/apps/server/src/workspace/Layers/WorkspaceEntries.ts b/apps/server/src/workspace/Layers/WorkspaceEntries.ts--- a/apps/server/src/workspace/Layers/WorkspaceEntries.ts+++ b/apps/server/src/workspace/Layers/WorkspaceEntries.ts@@ -21,6 +21,7 @@
".convex",
"node_modules",
".next",
+ ".turbo",
".vite",
"dist",
"build",

You can send follow-ups to this agent here.

"node_modules",
".next",
".turbo",
".vite",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Workspace scan no longer ignores Turbo cache

Medium Severity

Replacing ".turbo" with ".vite" in IGNORED_DIRECTORY_NAMES makes WorkspaceEntries recurse into old Turbo caches. When Git filtering is unavailable or the folder is outside a Git worktree, .turbo contents can flood indexing, hit WORKSPACE_INDEX_MAX_ENTRIES, and hide real project files from search results.

Additional Locations (1)
Fix in CursorFix in Web

juliusmarmingeand others added 6 commits March 31, 2026 14:57
- Remove tsconfig path aliases and Vite aliases
- Point contracts/shared packages at source entrypoints
- Update dev runner imports to use package specifiers
- switch workspace checks and tests to `vp`
- fold Vitest browser config into `vite.config.ts`
- add `electron-builder` for desktop packaging
Co-authored-by: codex <codex@users.noreply.github.com>
@adammansfield

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

@juliusmarminge

Copy link
Copy Markdown
MemberAuthor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

@adammansfield

adammansfield commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

Sorry I didn't realize. But this change will still fix #1968 because vp pack uses tsdown 0.21.7 (according to the bun.lock). That version does not hang for bun dev:desktop on Windows.

Tested with this PR:

irm https://vite.plus/ps1 | iex # re-open terminal so vp in PATH
git fetch upstream pull/1616/merge:pull/1616
git switch pull/1616
vp install vp run dev:desktop

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@juliusmarminge@adammansfield
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Migrate build and test pipeline to vite-plus - #1616

Closed
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate
Closed

Migrate build and test pipeline to vite-plus#1616
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate

Conversation

@juliusmarminge

@juliusmarmingejuliusmarminge commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace the legacy tsdown/vitest workflow with vite-plus across desktop, server, web, and shared packages.
  • Consolidate build and test configs around root-level Vite-based task runners, including new vite.config.ts files and removed Turbo/tsdown config.
  • Update the server CLI and CI cache setup to match the new workspace build flow and dependency catalog handling.
  • Refresh several type signatures and runtime checks that surfaced during the migration.

Testing


Note

Medium Risk
Build/test infrastructure is replaced across desktop/server/web, so failures may surface in CI or local workflows despite mostly mechanical changes. Runtime logic changes are minor, but the new bundling/aliasing config affects how packages resolve and ship.

Overview
Switches the workspace build + test toolchain to vite-plus. Desktop/server bundling moves from tsdown to vp pack with new vite.config.ts files, Turbo app configs are removed, and package scripts are updated to use vp for build/dev/test.

Adjusts repo plumbing to match the new flow. CI caching drops .turbo and only caches Bun, docs update the meaning of bun run build, and TypeScript configs now include source-package paths (and exclude their tests) to support the new bundling/TS resolution.

Includes small correctness/type cleanups uncovered by the migration. Many Effect.Effect<..., never>/fiber signatures are loosened, workspace scanning ignores .vite instead of .turbo, and a few UI/test assertions and casts are simplified for stricter typing and more reliable browser tests.

Written by Cursor Bugbot for commit 881c649. This will update automatically on new commits. Configure here.

Note

Migrate build, test, and dev pipeline from vitest/turbo/tsdown to vite-plus

  • Replaces vitest imports with vite-plus/test across all test files in apps/, packages/, and scripts/.
  • Replaces turbo with vp (vite-plus CLI) for monorepo task orchestration in root and per-package package.json scripts (dev, build, test, lint, fmt).
  • Replaces tsdown with vp pack for bundling desktop and shared packages; adds vite.config.ts files for apps/desktop, apps/server, apps/web, packages/shared, and packages/contracts.
  • Adds path alias resolution for @t3tools/* workspace packages to source files across all vite configs and tsconfig.base.json, removing the need for pre-built outputs during development.
  • Workspace directory scanning in WorkspaceEntries.ts now ignores .vite instead of .turbo.
  • Removes turbo cache from CI; simplifies cache key to bun.lock only.
  • Behavioral Change: Effect.Effect and related types drop explicit never error/environment type parameters throughout the codebase, aligning with updated Effect library conventions.

Macroscope summarized 881c649. (Automatic summaries will resume when PR exits draft mode or review begins).

- Replace tsdown and Turbo build wiring with vite-plus tasks
- Switch server, desktop, and web tests to vite-plus test imports
- Tighten related Effect types and update CI/docs for the new workflow
@coderabbitai

coderabbitaiBot commented Mar 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e4d3d144-bd31-4f9e-bee1-752c489f4ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/viteplus-migrate

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

@juliusmarminge
juliusmarminge marked this pull request as draft March 31, 2026 20:50
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Mar 31, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Workspace scan no longer ignores Turbo cache
    • Restored .turbo to IGNORED_DIRECTORY_NAMES alongside the newly added .vite, since the migration accidentally replaced it instead of adding .vite as an additional entry.

Create PR

Or push these changes by commenting:

@cursor push 2d90d516bd
Preview (2d90d516bd)
diff --git a/apps/server/src/workspace/Layers/WorkspaceEntries.ts b/apps/server/src/workspace/Layers/WorkspaceEntries.ts--- a/apps/server/src/workspace/Layers/WorkspaceEntries.ts+++ b/apps/server/src/workspace/Layers/WorkspaceEntries.ts@@ -21,6 +21,7 @@
".convex",
"node_modules",
".next",
+ ".turbo",
".vite",
"dist",
"build",

You can send follow-ups to this agent here.

"node_modules",
".next",
".turbo",
".vite",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Workspace scan no longer ignores Turbo cache

Medium Severity

Replacing ".turbo" with ".vite" in IGNORED_DIRECTORY_NAMES makes WorkspaceEntries recurse into old Turbo caches. When Git filtering is unavailable or the folder is outside a Git worktree, .turbo contents can flood indexing, hit WORKSPACE_INDEX_MAX_ENTRIES, and hide real project files from search results.

Additional Locations (1)
Fix in CursorFix in Web

juliusmarmingeand others added 6 commits March 31, 2026 14:57
- Remove tsconfig path aliases and Vite aliases
- Point contracts/shared packages at source entrypoints
- Update dev runner imports to use package specifiers
- switch workspace checks and tests to `vp`
- fold Vitest browser config into `vite.config.ts`
- add `electron-builder` for desktop packaging
Co-authored-by: codex <codex@users.noreply.github.com>
@adammansfield

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

@juliusmarminge

Copy link
Copy Markdown
MemberAuthor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

@adammansfield

adammansfield commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

Sorry I didn't realize. But this change will still fix #1968 because vp pack uses tsdown 0.21.7 (according to the bun.lock). That version does not hang for bun dev:desktop on Windows.

Tested with this PR:

irm https://vite.plus/ps1 | iex # re-open terminal so vp in PATH
git fetch upstream pull/1616/merge:pull/1616
git switch pull/1616
vp install vp run dev:desktop

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@juliusmarminge@adammansfield
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Migrate build and test pipeline to vite-plus - #1616

Closed
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate
Closed

Migrate build and test pipeline to vite-plus#1616
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate

Conversation

@juliusmarminge

@juliusmarmingejuliusmarminge commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace the legacy tsdown/vitest workflow with vite-plus across desktop, server, web, and shared packages.
  • Consolidate build and test configs around root-level Vite-based task runners, including new vite.config.ts files and removed Turbo/tsdown config.
  • Update the server CLI and CI cache setup to match the new workspace build flow and dependency catalog handling.
  • Refresh several type signatures and runtime checks that surfaced during the migration.

Testing


Note

Medium Risk
Build/test infrastructure is replaced across desktop/server/web, so failures may surface in CI or local workflows despite mostly mechanical changes. Runtime logic changes are minor, but the new bundling/aliasing config affects how packages resolve and ship.

Overview
Switches the workspace build + test toolchain to vite-plus. Desktop/server bundling moves from tsdown to vp pack with new vite.config.ts files, Turbo app configs are removed, and package scripts are updated to use vp for build/dev/test.

Adjusts repo plumbing to match the new flow. CI caching drops .turbo and only caches Bun, docs update the meaning of bun run build, and TypeScript configs now include source-package paths (and exclude their tests) to support the new bundling/TS resolution.

Includes small correctness/type cleanups uncovered by the migration. Many Effect.Effect<..., never>/fiber signatures are loosened, workspace scanning ignores .vite instead of .turbo, and a few UI/test assertions and casts are simplified for stricter typing and more reliable browser tests.

Written by Cursor Bugbot for commit 881c649. This will update automatically on new commits. Configure here.

Note

Migrate build, test, and dev pipeline from vitest/turbo/tsdown to vite-plus

  • Replaces vitest imports with vite-plus/test across all test files in apps/, packages/, and scripts/.
  • Replaces turbo with vp (vite-plus CLI) for monorepo task orchestration in root and per-package package.json scripts (dev, build, test, lint, fmt).
  • Replaces tsdown with vp pack for bundling desktop and shared packages; adds vite.config.ts files for apps/desktop, apps/server, apps/web, packages/shared, and packages/contracts.
  • Adds path alias resolution for @t3tools/* workspace packages to source files across all vite configs and tsconfig.base.json, removing the need for pre-built outputs during development.
  • Workspace directory scanning in WorkspaceEntries.ts now ignores .vite instead of .turbo.
  • Removes turbo cache from CI; simplifies cache key to bun.lock only.
  • Behavioral Change: Effect.Effect and related types drop explicit never error/environment type parameters throughout the codebase, aligning with updated Effect library conventions.

Macroscope summarized 881c649. (Automatic summaries will resume when PR exits draft mode or review begins).

- Replace tsdown and Turbo build wiring with vite-plus tasks
- Switch server, desktop, and web tests to vite-plus test imports
- Tighten related Effect types and update CI/docs for the new workflow
@coderabbitai

coderabbitaiBot commented Mar 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e4d3d144-bd31-4f9e-bee1-752c489f4ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/viteplus-migrate

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

@juliusmarminge
juliusmarminge marked this pull request as draft March 31, 2026 20:50
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Mar 31, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Workspace scan no longer ignores Turbo cache
    • Restored .turbo to IGNORED_DIRECTORY_NAMES alongside the newly added .vite, since the migration accidentally replaced it instead of adding .vite as an additional entry.

Create PR

Or push these changes by commenting:

@cursor push 2d90d516bd
Preview (2d90d516bd)
diff --git a/apps/server/src/workspace/Layers/WorkspaceEntries.ts b/apps/server/src/workspace/Layers/WorkspaceEntries.ts--- a/apps/server/src/workspace/Layers/WorkspaceEntries.ts+++ b/apps/server/src/workspace/Layers/WorkspaceEntries.ts@@ -21,6 +21,7 @@
".convex",
"node_modules",
".next",
+ ".turbo",
".vite",
"dist",
"build",

You can send follow-ups to this agent here.

"node_modules",
".next",
".turbo",
".vite",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Workspace scan no longer ignores Turbo cache

Medium Severity

Replacing ".turbo" with ".vite" in IGNORED_DIRECTORY_NAMES makes WorkspaceEntries recurse into old Turbo caches. When Git filtering is unavailable or the folder is outside a Git worktree, .turbo contents can flood indexing, hit WORKSPACE_INDEX_MAX_ENTRIES, and hide real project files from search results.

Additional Locations (1)
Fix in CursorFix in Web

juliusmarmingeand others added 6 commits March 31, 2026 14:57
- Remove tsconfig path aliases and Vite aliases
- Point contracts/shared packages at source entrypoints
- Update dev runner imports to use package specifiers
- switch workspace checks and tests to `vp`
- fold Vitest browser config into `vite.config.ts`
- add `electron-builder` for desktop packaging
Co-authored-by: codex <codex@users.noreply.github.com>
@adammansfield

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

@juliusmarminge

Copy link
Copy Markdown
MemberAuthor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

@adammansfield

adammansfield commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

Sorry I didn't realize. But this change will still fix #1968 because vp pack uses tsdown 0.21.7 (according to the bun.lock). That version does not hang for bun dev:desktop on Windows.

Tested with this PR:

irm https://vite.plus/ps1 | iex # re-open terminal so vp in PATH
git fetch upstream pull/1616/merge:pull/1616
git switch pull/1616
vp install vp run dev:desktop

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@juliusmarminge@adammansfield
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Migrate build and test pipeline to vite-plus - #1616

Closed
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate
Closed

Migrate build and test pipeline to vite-plus#1616
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate

Conversation

@juliusmarminge

@juliusmarmingejuliusmarminge commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace the legacy tsdown/vitest workflow with vite-plus across desktop, server, web, and shared packages.
  • Consolidate build and test configs around root-level Vite-based task runners, including new vite.config.ts files and removed Turbo/tsdown config.
  • Update the server CLI and CI cache setup to match the new workspace build flow and dependency catalog handling.
  • Refresh several type signatures and runtime checks that surfaced during the migration.

Testing


Note

Medium Risk
Build/test infrastructure is replaced across desktop/server/web, so failures may surface in CI or local workflows despite mostly mechanical changes. Runtime logic changes are minor, but the new bundling/aliasing config affects how packages resolve and ship.

Overview
Switches the workspace build + test toolchain to vite-plus. Desktop/server bundling moves from tsdown to vp pack with new vite.config.ts files, Turbo app configs are removed, and package scripts are updated to use vp for build/dev/test.

Adjusts repo plumbing to match the new flow. CI caching drops .turbo and only caches Bun, docs update the meaning of bun run build, and TypeScript configs now include source-package paths (and exclude their tests) to support the new bundling/TS resolution.

Includes small correctness/type cleanups uncovered by the migration. Many Effect.Effect<..., never>/fiber signatures are loosened, workspace scanning ignores .vite instead of .turbo, and a few UI/test assertions and casts are simplified for stricter typing and more reliable browser tests.

Written by Cursor Bugbot for commit 881c649. This will update automatically on new commits. Configure here.

Note

Migrate build, test, and dev pipeline from vitest/turbo/tsdown to vite-plus

  • Replaces vitest imports with vite-plus/test across all test files in apps/, packages/, and scripts/.
  • Replaces turbo with vp (vite-plus CLI) for monorepo task orchestration in root and per-package package.json scripts (dev, build, test, lint, fmt).
  • Replaces tsdown with vp pack for bundling desktop and shared packages; adds vite.config.ts files for apps/desktop, apps/server, apps/web, packages/shared, and packages/contracts.
  • Adds path alias resolution for @t3tools/* workspace packages to source files across all vite configs and tsconfig.base.json, removing the need for pre-built outputs during development.
  • Workspace directory scanning in WorkspaceEntries.ts now ignores .vite instead of .turbo.
  • Removes turbo cache from CI; simplifies cache key to bun.lock only.
  • Behavioral Change: Effect.Effect and related types drop explicit never error/environment type parameters throughout the codebase, aligning with updated Effect library conventions.

Macroscope summarized 881c649. (Automatic summaries will resume when PR exits draft mode or review begins).

- Replace tsdown and Turbo build wiring with vite-plus tasks
- Switch server, desktop, and web tests to vite-plus test imports
- Tighten related Effect types and update CI/docs for the new workflow
@coderabbitai

coderabbitaiBot commented Mar 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e4d3d144-bd31-4f9e-bee1-752c489f4ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/viteplus-migrate

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

@juliusmarminge
juliusmarminge marked this pull request as draft March 31, 2026 20:50
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Mar 31, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Workspace scan no longer ignores Turbo cache
    • Restored .turbo to IGNORED_DIRECTORY_NAMES alongside the newly added .vite, since the migration accidentally replaced it instead of adding .vite as an additional entry.

Create PR

Or push these changes by commenting:

@cursor push 2d90d516bd
Preview (2d90d516bd)
diff --git a/apps/server/src/workspace/Layers/WorkspaceEntries.ts b/apps/server/src/workspace/Layers/WorkspaceEntries.ts--- a/apps/server/src/workspace/Layers/WorkspaceEntries.ts+++ b/apps/server/src/workspace/Layers/WorkspaceEntries.ts@@ -21,6 +21,7 @@
".convex",
"node_modules",
".next",
+ ".turbo",
".vite",
"dist",
"build",

You can send follow-ups to this agent here.

"node_modules",
".next",
".turbo",
".vite",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Workspace scan no longer ignores Turbo cache

Medium Severity

Replacing ".turbo" with ".vite" in IGNORED_DIRECTORY_NAMES makes WorkspaceEntries recurse into old Turbo caches. When Git filtering is unavailable or the folder is outside a Git worktree, .turbo contents can flood indexing, hit WORKSPACE_INDEX_MAX_ENTRIES, and hide real project files from search results.

Additional Locations (1)
Fix in CursorFix in Web

juliusmarmingeand others added 6 commits March 31, 2026 14:57
- Remove tsconfig path aliases and Vite aliases
- Point contracts/shared packages at source entrypoints
- Update dev runner imports to use package specifiers
- switch workspace checks and tests to `vp`
- fold Vitest browser config into `vite.config.ts`
- add `electron-builder` for desktop packaging
Co-authored-by: codex <codex@users.noreply.github.com>
@adammansfield

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

@juliusmarminge

Copy link
Copy Markdown
MemberAuthor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

@adammansfield

adammansfield commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

Sorry I didn't realize. But this change will still fix #1968 because vp pack uses tsdown 0.21.7 (according to the bun.lock). That version does not hang for bun dev:desktop on Windows.

Tested with this PR:

irm https://vite.plus/ps1 | iex # re-open terminal so vp in PATH
git fetch upstream pull/1616/merge:pull/1616
git switch pull/1616
vp install vp run dev:desktop

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@juliusmarminge@adammansfield
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Migrate build and test pipeline to vite-plus - #1616

Closed
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate
Closed

Migrate build and test pipeline to vite-plus#1616
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate

Conversation

@juliusmarminge

@juliusmarmingejuliusmarminge commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace the legacy tsdown/vitest workflow with vite-plus across desktop, server, web, and shared packages.
  • Consolidate build and test configs around root-level Vite-based task runners, including new vite.config.ts files and removed Turbo/tsdown config.
  • Update the server CLI and CI cache setup to match the new workspace build flow and dependency catalog handling.
  • Refresh several type signatures and runtime checks that surfaced during the migration.

Testing


Note

Medium Risk
Build/test infrastructure is replaced across desktop/server/web, so failures may surface in CI or local workflows despite mostly mechanical changes. Runtime logic changes are minor, but the new bundling/aliasing config affects how packages resolve and ship.

Overview
Switches the workspace build + test toolchain to vite-plus. Desktop/server bundling moves from tsdown to vp pack with new vite.config.ts files, Turbo app configs are removed, and package scripts are updated to use vp for build/dev/test.

Adjusts repo plumbing to match the new flow. CI caching drops .turbo and only caches Bun, docs update the meaning of bun run build, and TypeScript configs now include source-package paths (and exclude their tests) to support the new bundling/TS resolution.

Includes small correctness/type cleanups uncovered by the migration. Many Effect.Effect<..., never>/fiber signatures are loosened, workspace scanning ignores .vite instead of .turbo, and a few UI/test assertions and casts are simplified for stricter typing and more reliable browser tests.

Written by Cursor Bugbot for commit 881c649. This will update automatically on new commits. Configure here.

Note

Migrate build, test, and dev pipeline from vitest/turbo/tsdown to vite-plus

  • Replaces vitest imports with vite-plus/test across all test files in apps/, packages/, and scripts/.
  • Replaces turbo with vp (vite-plus CLI) for monorepo task orchestration in root and per-package package.json scripts (dev, build, test, lint, fmt).
  • Replaces tsdown with vp pack for bundling desktop and shared packages; adds vite.config.ts files for apps/desktop, apps/server, apps/web, packages/shared, and packages/contracts.
  • Adds path alias resolution for @t3tools/* workspace packages to source files across all vite configs and tsconfig.base.json, removing the need for pre-built outputs during development.
  • Workspace directory scanning in WorkspaceEntries.ts now ignores .vite instead of .turbo.
  • Removes turbo cache from CI; simplifies cache key to bun.lock only.
  • Behavioral Change: Effect.Effect and related types drop explicit never error/environment type parameters throughout the codebase, aligning with updated Effect library conventions.

Macroscope summarized 881c649. (Automatic summaries will resume when PR exits draft mode or review begins).

- Replace tsdown and Turbo build wiring with vite-plus tasks
- Switch server, desktop, and web tests to vite-plus test imports
- Tighten related Effect types and update CI/docs for the new workflow
@coderabbitai

coderabbitaiBot commented Mar 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e4d3d144-bd31-4f9e-bee1-752c489f4ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/viteplus-migrate

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

@juliusmarminge
juliusmarminge marked this pull request as draft March 31, 2026 20:50
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Mar 31, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Workspace scan no longer ignores Turbo cache
    • Restored .turbo to IGNORED_DIRECTORY_NAMES alongside the newly added .vite, since the migration accidentally replaced it instead of adding .vite as an additional entry.

Create PR

Or push these changes by commenting:

@cursor push 2d90d516bd
Preview (2d90d516bd)
diff --git a/apps/server/src/workspace/Layers/WorkspaceEntries.ts b/apps/server/src/workspace/Layers/WorkspaceEntries.ts--- a/apps/server/src/workspace/Layers/WorkspaceEntries.ts+++ b/apps/server/src/workspace/Layers/WorkspaceEntries.ts@@ -21,6 +21,7 @@
".convex",
"node_modules",
".next",
+ ".turbo",
".vite",
"dist",
"build",

You can send follow-ups to this agent here.

"node_modules",
".next",
".turbo",
".vite",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Workspace scan no longer ignores Turbo cache

Medium Severity

Replacing ".turbo" with ".vite" in IGNORED_DIRECTORY_NAMES makes WorkspaceEntries recurse into old Turbo caches. When Git filtering is unavailable or the folder is outside a Git worktree, .turbo contents can flood indexing, hit WORKSPACE_INDEX_MAX_ENTRIES, and hide real project files from search results.

Additional Locations (1)
Fix in CursorFix in Web

juliusmarmingeand others added 6 commits March 31, 2026 14:57
- Remove tsconfig path aliases and Vite aliases
- Point contracts/shared packages at source entrypoints
- Update dev runner imports to use package specifiers
- switch workspace checks and tests to `vp`
- fold Vitest browser config into `vite.config.ts`
- add `electron-builder` for desktop packaging
Co-authored-by: codex <codex@users.noreply.github.com>
@adammansfield

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

@juliusmarminge

Copy link
Copy Markdown
MemberAuthor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

@adammansfield

adammansfield commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

Sorry I didn't realize. But this change will still fix #1968 because vp pack uses tsdown 0.21.7 (according to the bun.lock). That version does not hang for bun dev:desktop on Windows.

Tested with this PR:

irm https://vite.plus/ps1 | iex # re-open terminal so vp in PATH
git fetch upstream pull/1616/merge:pull/1616
git switch pull/1616
vp install vp run dev:desktop

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@juliusmarminge@adammansfield
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Migrate build and test pipeline to vite-plus - #1616

Closed
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate
Closed

Migrate build and test pipeline to vite-plus#1616
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate

Conversation

@juliusmarminge

@juliusmarmingejuliusmarminge commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace the legacy tsdown/vitest workflow with vite-plus across desktop, server, web, and shared packages.
  • Consolidate build and test configs around root-level Vite-based task runners, including new vite.config.ts files and removed Turbo/tsdown config.
  • Update the server CLI and CI cache setup to match the new workspace build flow and dependency catalog handling.
  • Refresh several type signatures and runtime checks that surfaced during the migration.

Testing


Note

Medium Risk
Build/test infrastructure is replaced across desktop/server/web, so failures may surface in CI or local workflows despite mostly mechanical changes. Runtime logic changes are minor, but the new bundling/aliasing config affects how packages resolve and ship.

Overview
Switches the workspace build + test toolchain to vite-plus. Desktop/server bundling moves from tsdown to vp pack with new vite.config.ts files, Turbo app configs are removed, and package scripts are updated to use vp for build/dev/test.

Adjusts repo plumbing to match the new flow. CI caching drops .turbo and only caches Bun, docs update the meaning of bun run build, and TypeScript configs now include source-package paths (and exclude their tests) to support the new bundling/TS resolution.

Includes small correctness/type cleanups uncovered by the migration. Many Effect.Effect<..., never>/fiber signatures are loosened, workspace scanning ignores .vite instead of .turbo, and a few UI/test assertions and casts are simplified for stricter typing and more reliable browser tests.

Written by Cursor Bugbot for commit 881c649. This will update automatically on new commits. Configure here.

Note

Migrate build, test, and dev pipeline from vitest/turbo/tsdown to vite-plus

  • Replaces vitest imports with vite-plus/test across all test files in apps/, packages/, and scripts/.
  • Replaces turbo with vp (vite-plus CLI) for monorepo task orchestration in root and per-package package.json scripts (dev, build, test, lint, fmt).
  • Replaces tsdown with vp pack for bundling desktop and shared packages; adds vite.config.ts files for apps/desktop, apps/server, apps/web, packages/shared, and packages/contracts.
  • Adds path alias resolution for @t3tools/* workspace packages to source files across all vite configs and tsconfig.base.json, removing the need for pre-built outputs during development.
  • Workspace directory scanning in WorkspaceEntries.ts now ignores .vite instead of .turbo.
  • Removes turbo cache from CI; simplifies cache key to bun.lock only.
  • Behavioral Change: Effect.Effect and related types drop explicit never error/environment type parameters throughout the codebase, aligning with updated Effect library conventions.

Macroscope summarized 881c649. (Automatic summaries will resume when PR exits draft mode or review begins).

- Replace tsdown and Turbo build wiring with vite-plus tasks
- Switch server, desktop, and web tests to vite-plus test imports
- Tighten related Effect types and update CI/docs for the new workflow
@coderabbitai

coderabbitaiBot commented Mar 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e4d3d144-bd31-4f9e-bee1-752c489f4ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/viteplus-migrate

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

@juliusmarminge
juliusmarminge marked this pull request as draft March 31, 2026 20:50
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Mar 31, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Workspace scan no longer ignores Turbo cache
    • Restored .turbo to IGNORED_DIRECTORY_NAMES alongside the newly added .vite, since the migration accidentally replaced it instead of adding .vite as an additional entry.

Create PR

Or push these changes by commenting:

@cursor push 2d90d516bd
Preview (2d90d516bd)
diff --git a/apps/server/src/workspace/Layers/WorkspaceEntries.ts b/apps/server/src/workspace/Layers/WorkspaceEntries.ts--- a/apps/server/src/workspace/Layers/WorkspaceEntries.ts+++ b/apps/server/src/workspace/Layers/WorkspaceEntries.ts@@ -21,6 +21,7 @@
".convex",
"node_modules",
".next",
+ ".turbo",
".vite",
"dist",
"build",

You can send follow-ups to this agent here.

"node_modules",
".next",
".turbo",
".vite",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Workspace scan no longer ignores Turbo cache

Medium Severity

Replacing ".turbo" with ".vite" in IGNORED_DIRECTORY_NAMES makes WorkspaceEntries recurse into old Turbo caches. When Git filtering is unavailable or the folder is outside a Git worktree, .turbo contents can flood indexing, hit WORKSPACE_INDEX_MAX_ENTRIES, and hide real project files from search results.

Additional Locations (1)
Fix in CursorFix in Web

juliusmarmingeand others added 6 commits March 31, 2026 14:57
- Remove tsconfig path aliases and Vite aliases
- Point contracts/shared packages at source entrypoints
- Update dev runner imports to use package specifiers
- switch workspace checks and tests to `vp`
- fold Vitest browser config into `vite.config.ts`
- add `electron-builder` for desktop packaging
Co-authored-by: codex <codex@users.noreply.github.com>
@adammansfield

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

@juliusmarminge

Copy link
Copy Markdown
MemberAuthor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

@adammansfield

adammansfield commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

Sorry I didn't realize. But this change will still fix #1968 because vp pack uses tsdown 0.21.7 (according to the bun.lock). That version does not hang for bun dev:desktop on Windows.

Tested with this PR:

irm https://vite.plus/ps1 | iex # re-open terminal so vp in PATH
git fetch upstream pull/1616/merge:pull/1616
git switch pull/1616
vp install vp run dev:desktop

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@juliusmarminge@adammansfield
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Migrate build and test pipeline to vite-plus - #1616

Closed
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate
Closed

Migrate build and test pipeline to vite-plus#1616
juliusmarminge wants to merge 7 commits into
mainfrom
t3code/viteplus-migrate

Conversation

@juliusmarminge

@juliusmarmingejuliusmarminge commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace the legacy tsdown/vitest workflow with vite-plus across desktop, server, web, and shared packages.
  • Consolidate build and test configs around root-level Vite-based task runners, including new vite.config.ts files and removed Turbo/tsdown config.
  • Update the server CLI and CI cache setup to match the new workspace build flow and dependency catalog handling.
  • Refresh several type signatures and runtime checks that surfaced during the migration.

Testing


Note

Medium Risk
Build/test infrastructure is replaced across desktop/server/web, so failures may surface in CI or local workflows despite mostly mechanical changes. Runtime logic changes are minor, but the new bundling/aliasing config affects how packages resolve and ship.

Overview
Switches the workspace build + test toolchain to vite-plus. Desktop/server bundling moves from tsdown to vp pack with new vite.config.ts files, Turbo app configs are removed, and package scripts are updated to use vp for build/dev/test.

Adjusts repo plumbing to match the new flow. CI caching drops .turbo and only caches Bun, docs update the meaning of bun run build, and TypeScript configs now include source-package paths (and exclude their tests) to support the new bundling/TS resolution.

Includes small correctness/type cleanups uncovered by the migration. Many Effect.Effect<..., never>/fiber signatures are loosened, workspace scanning ignores .vite instead of .turbo, and a few UI/test assertions and casts are simplified for stricter typing and more reliable browser tests.

Written by Cursor Bugbot for commit 881c649. This will update automatically on new commits. Configure here.

Note

Migrate build, test, and dev pipeline from vitest/turbo/tsdown to vite-plus

  • Replaces vitest imports with vite-plus/test across all test files in apps/, packages/, and scripts/.
  • Replaces turbo with vp (vite-plus CLI) for monorepo task orchestration in root and per-package package.json scripts (dev, build, test, lint, fmt).
  • Replaces tsdown with vp pack for bundling desktop and shared packages; adds vite.config.ts files for apps/desktop, apps/server, apps/web, packages/shared, and packages/contracts.
  • Adds path alias resolution for @t3tools/* workspace packages to source files across all vite configs and tsconfig.base.json, removing the need for pre-built outputs during development.
  • Workspace directory scanning in WorkspaceEntries.ts now ignores .vite instead of .turbo.
  • Removes turbo cache from CI; simplifies cache key to bun.lock only.
  • Behavioral Change: Effect.Effect and related types drop explicit never error/environment type parameters throughout the codebase, aligning with updated Effect library conventions.

Macroscope summarized 881c649. (Automatic summaries will resume when PR exits draft mode or review begins).

- Replace tsdown and Turbo build wiring with vite-plus tasks
- Switch server, desktop, and web tests to vite-plus test imports
- Tighten related Effect types and update CI/docs for the new workflow
@coderabbitai

coderabbitaiBot commented Mar 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e4d3d144-bd31-4f9e-bee1-752c489f4ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/viteplus-migrate

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

@juliusmarminge
juliusmarminge marked this pull request as draft March 31, 2026 20:50
@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Mar 31, 2026

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Workspace scan no longer ignores Turbo cache
    • Restored .turbo to IGNORED_DIRECTORY_NAMES alongside the newly added .vite, since the migration accidentally replaced it instead of adding .vite as an additional entry.

Create PR

Or push these changes by commenting:

@cursor push 2d90d516bd
Preview (2d90d516bd)
diff --git a/apps/server/src/workspace/Layers/WorkspaceEntries.ts b/apps/server/src/workspace/Layers/WorkspaceEntries.ts--- a/apps/server/src/workspace/Layers/WorkspaceEntries.ts+++ b/apps/server/src/workspace/Layers/WorkspaceEntries.ts@@ -21,6 +21,7 @@
".convex",
"node_modules",
".next",
+ ".turbo",
".vite",
"dist",
"build",

You can send follow-ups to this agent here.

"node_modules",
".next",
".turbo",
".vite",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Workspace scan no longer ignores Turbo cache

Medium Severity

Replacing ".turbo" with ".vite" in IGNORED_DIRECTORY_NAMES makes WorkspaceEntries recurse into old Turbo caches. When Git filtering is unavailable or the folder is outside a Git worktree, .turbo contents can flood indexing, hit WORKSPACE_INDEX_MAX_ENTRIES, and hide real project files from search results.

Additional Locations (1)
Fix in CursorFix in Web

juliusmarmingeand others added 6 commits March 31, 2026 14:57
- Remove tsconfig path aliases and Vite aliases
- Point contracts/shared packages at source entrypoints
- Update dev runner imports to use package specifiers
- switch workspace checks and tests to `vp`
- fold Vitest browser config into `vite.config.ts`
- add `electron-builder` for desktop packaging
Co-authored-by: codex <codex@users.noreply.github.com>
@adammansfield

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

@juliusmarminge

Copy link
Copy Markdown
MemberAuthor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

@adammansfield

adammansfield commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

This change will fix bug #1968 as it removes tsdown.

it doesn't really remove it. tsdown is used by vp pack

Sorry I didn't realize. But this change will still fix #1968 because vp pack uses tsdown 0.21.7 (according to the bun.lock). That version does not hang for bun dev:desktop on Windows.

Tested with this PR:

irm https://vite.plus/ps1 | iex # re-open terminal so vp in PATH
git fetch upstream pull/1616/merge:pull/1616
git switch pull/1616
vp install vp run dev:desktop

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@juliusmarminge@adammansfield