Fresh clients were broken at runtime — generated projects never got the optimizeDeps.exclude the template's own configs carry (Nuxt's config is patched from nuxi init output, Vue's from create-vue). Vite then bundled vue-ui-kit's index.ts with reka-ui inlined while the kit's .vue files imported reka-ui from source: two module instances, mismatched provide/inject Symbols. A fresh Vue client rendered a blank /login (Injection Symbol(TabsRootContext) not found); a fresh Nuxt one crashed SSR on any page with a Dialog. Both patchNuxtConfig and patchViteConfigForTailwind now add the exclusion
The Nuxt patch also adds the pages:extend hook that gives pages/login.vue its /signup record, matching the template's auth card whose tabs now drive the URL (project-template#5)
Submodule bumped to project-template#5. Merge that first
Test plan
go vet ./cmd/... && go build .
draft new monorepo (Nuxt): nuxt.config.ts has the exclusion + hook; dev server SSRs /login, /signup, /organizations 200; Register tab → /signup?redirect=… keeping typed input; Create-organization Dialog opens; docker compose build client passes
draft new monorepo (Vue): vite.config.ts has the exclusion; views/Auth.vue present; docker compose build client passes
Standalone draft new client (Vue) at ~/Developer/test: /login renders and the tabs work once the exclusion is in place
## Summary
- **Fresh clients were broken at runtime** — generated projects never got the `optimizeDeps.exclude` the template's own configs carry (Nuxt's config is patched from `nuxi init` output, Vue's from `create-vue`). Vite then bundled vue-ui-kit's `index.ts` with reka-ui inlined while the kit's `.vue` files imported reka-ui from source: two module instances, mismatched provide/inject Symbols. A fresh Vue client rendered a blank `/login` (`Injection Symbol(TabsRootContext) not found`); a fresh Nuxt one crashed SSR on any page with a Dialog. Both `patchNuxtConfig` and `patchViteConfigForTailwind` now add the exclusion
- The Nuxt patch also adds the `pages:extend` hook that gives `pages/login.vue` its `/signup` record, matching the template's auth card whose tabs now drive the URL (project-template#5)
- Submodule bumped to project-template#5. Merge that first
## Test plan
- [x] `go vet ./cmd/... && go build .`
- [x] `draft new monorepo` (Nuxt): `nuxt.config.ts` has the exclusion + hook; dev server SSRs `/login`, `/signup`, `/organizations` 200; Register tab → `/signup?redirect=…` keeping typed input; Create-organization Dialog opens; `docker compose build client` passes
- [x] `draft new monorepo` (Vue): `vite.config.ts` has the exclusion; `views/Auth.vue` present; `docker compose build client` passes
- [x] Standalone `draft new client` (Vue) at `~/Developer/test`: `/login` renders and the tabs work once the exclusion is in place
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Generated projects never got the optimizeDeps exclusion the template's
own configs carry - the Nuxt config is patched from nuxi's output and the
Vue one from create-vue's - so Vite bundled vue-ui-kit's index.ts with
reka-ui inlined while the kit's .vue files imported reka-ui from source.
Two module instances, mismatched provide/inject Symbols: a fresh Vue
client rendered a blank /login ("Injection Symbol(TabsRootContext) not
found") and a fresh Nuxt one crashed SSR on any page with a Dialog. Both
config patches now add the exclusion.
The Nuxt patch also adds the pages:extend hook that gives pages/login.vue
a second /signup record, matching the template's auth card whose tabs now
drive the URL (project-template#5). Submodule bumped to that commit.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
optimizeDeps.excludethe template's own configs carry (Nuxt's config is patched fromnuxi initoutput, Vue's fromcreate-vue). Vite then bundled vue-ui-kit'sindex.tswith reka-ui inlined while the kit's.vuefiles imported reka-ui from source: two module instances, mismatched provide/inject Symbols. A fresh Vue client rendered a blank/login(Injection Symbol(TabsRootContext) not found); a fresh Nuxt one crashed SSR on any page with a Dialog. BothpatchNuxtConfigandpatchViteConfigForTailwindnow add the exclusionpages:extendhook that givespages/login.vueits/signuprecord, matching the template's auth card whose tabs now drive the URL (project-template#5)Test plan
go vet ./cmd/... && go build .draft new monorepo(Nuxt):nuxt.config.tshas the exclusion + hook; dev server SSRs/login,/signup,/organizations200; Register tab →/signup?redirect=…keeping typed input; Create-organization Dialog opens;docker compose build clientpassesdraft new monorepo(Vue):vite.config.tshas the exclusion;views/Auth.vuepresent;docker compose build clientpassesdraft new client(Vue) at~/Developer/test:/loginrenders and the tabs work once the exclusion is in place🤖 Generated with Claude Code
Generated projects never got the optimizeDeps exclusion the template's own configs carry - the Nuxt config is patched from nuxi's output and the Vue one from create-vue's - so Vite bundled vue-ui-kit's index.ts with reka-ui inlined while the kit's .vue files imported reka-ui from source. Two module instances, mismatched provide/inject Symbols: a fresh Vue client rendered a blank /login ("Injection Symbol(TabsRootContext) not found") and a fresh Nuxt one crashed SSR on any page with a Dialog. Both config patches now add the exclusion. The Nuxt patch also adds the pages:extend hook that gives pages/login.vue a second /signup record, matching the template's auth card whose tabs now drive the URL (project-template#5). Submodule bumped to that commit. Co-Authored-By: Claude Fable 5.1 <[email protected]>