# Phase 10: Admin Vue SPA - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-09-26 **Phase:** 10-admin-vue-spa **Areas discussed:** Packaging & serving, UI kit & look, Types & relation options, Session & UX details --- ## Packaging & serving | Option | Description | Selected | |--------|-------------|----------| | summercms.go/admin, embedded | Vite project in framework repo, dist embedded and served by the binary | ✓ | | summercms.go/admin, served separately | Static deploy, CORS | | | fonoteka.go/admin | SPA in the app repo | | **User's choice:** Embedded, with the admin path configurable per project (e.g. /plytadmin, /manage) for security, as in WinterCMS. | Option | Description | Selected | |--------|-------------|----------| | Commit dist | `go build` stays pure Go, drift check | ✓ | | Build via summer build | dist gitignored, Node needed at every build | | **User's choice:** Commit dist, after clarification. The user asked twice whether plugin changes (and Winter's `partial` field, `addJs`/`addCss`) need a rebuild. Resolved: they need a Go binary rebuild (plugin assets are embedded), never a framework SPA Node rebuild once the 10.1 extension point exists; Node is only for framework SPA changes. | Option | Description | Selected | |--------|-------------|----------| | Both SPA and API move with backend.uri | Nothing reveals the admin location | ✓ | | Only the SPA moves | Fixed /_admin/api/v1 | | **User's choice:** Both move, conditional on it being safe; confirmed non-breaking (no external admin API consumer yet). | Option | Description | Selected | |--------|-------------|----------| | Seam now, build later | Renderer registry + unsupported fallback now | ✓ | | Build it in Phase 10 | Assets, widgets, partials now | | | Only AdminAssets now | | | **User's choice:** Seam now, full implementation in Phase 10.1. --- ## UI kit & look The user generated three directions in claude.ai/design from a prompt Claude wrote, and chose Direction C v2 (handoff zip reviewed and copied to `design/`). | Question | Options | Selected | |----------|---------|----------| | Mock vs real YAML | Real YAML only / Extend Płytarium YAML | Real YAML only | | Nav icons | Lucide + Winter map / Lucide only / Winter names mapped | Lucide + Winter map | | Format badge icons | Plain text now / Badge column now | Plain text now | | Per-controller copy | Config keys + generic fallback / Generic only | User asked for the best solution beyond Winter's toolbar partial; Claude proposed `messages:` with CLDR plural forms chosen client-side via Intl.PluralRules plus declarative `toolbar.buttons`; locked | --- ## Types & relation options | Question | Options | Selected | |----------|---------|----------| | OpenAPI source | Framework-owned admin doc / Fonoteka's doc | Framework-owned admin doc | | Record typing | Generic schema-driven / Per-controller DTOs | Generic schema-driven | | Relation field options | Options endpoint / Embed in schema / Hybrid | Options endpoint | | Relation save payload | Field name with ids / Raw columns | Field name with ids | --- ## Session & UX details | Question | Options | Selected | |----------|---------|----------| | Token storage | httpOnly cookie / sessionStorage bearer / localStorage bearer | httpOnly cookie | | SPA chrome strings | Server phrasebook bundle / Bundled in SPA | Server phrasebook bundle | | Extras in scope | Settings screen / Filter bar / Playwright e2e | Settings screen, Filter bar | --- ## Claude's Discretion State management, router, HTTP client, dev loop, messages vocabulary and default wording, refresh timing, per-page options, dirty-form handling, redirects, removal of admin paths from the fonoteka OpenAPI doc, package layout. ## Deferred Ideas - Phase 10.1 runtime extension point (AdminAssets, `type: widget`, `type: partial`, custom toolbar actions, dev-mode disk assets) - Ctrl+K command palette - Badge/icon column type - Playwright e2e for the admin SPA - User/media plugin admin navigation