Each view declares its toolbar groups and connection via provideToolbar().
AppToolbar injects and renders only what the active view needs.
- AgentsView: quad-view + themes + panels + chat connection
- TestsView: themes + test SSE connection (replaces raw EventSource)
- ViewerView: themes only
- Home/Login: no provide → toolbar hidden
useConnection() manages any SSE endpoint: connect, reconnect, state.
Tenant feature gating follows naturally — routes that don't exist
contribute no toolbar config.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Four groups: connection, quad view, themes, panel config.
Each group shares one background pill. Bigger icons (w-6 h-6),
36px hit area with minimal padding.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- AppToolbar: rename togglePanel→toggleDropdown to avoid collision with
debug panel toggle from usePanels
- ChatPane: computed()→toRef() for props passed to composables (consistent)
- ChatPane: add console.warn on session history fetch failure
- DebugColumn: skip object spread when no new panels resolved (perf)
- AgentsView: remove unused wsSwitchAgent, annotate disabled picker
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Slim sidebar (Home, nyx, Impressum, Datenschutz, Sign-in/User), global
AppToolbar for system features, /agents→/nyx rename, agent auto-select,
OIDC user name extraction from id_token, theme-consistent content pages,
removed DevView and old system panel.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>