Generated clients: exclude vue-ui-kit from Vite pre-bundling, /signup route #10

Merged
FernandoJVideira merged 1 commits from fix/generated-client-configs into main 2026-09-16 12:58:57 +00:00
Owner

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

  • 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

🤖 Generated with Claude Code

## 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)
FernandoJVideira added 1 commit 2026-09-16 12:58:26 +00:00
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]>
FernandoJVideira merged commit 0bd1550779 into main 2026-09-16 12:58:57 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: FernandoJVideira/draft#10