- DisplayPane/KonsolePane: use storeToRefs for computed refs (fixes
displayArtifacts/konsoleArtifacts not reacting to store changes)
- useTakeover: remove eval confirm dialog (blocks automated testing)
- useTakeover: structured screenshot() returning pane states, artifact
list and message count instead of raw body text
- main.ts: expose pinia on window.__pinia in DEV mode for test injection
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>
Each tenant config now includes oidcClientId. Auth composable reads
client ID from tenant config instead of hardcoded fallback. Dev tenant
uses restricted Zitadel project (role-check enabled, developer grant).
Added NODE_ENV=production to env files to fix --mode dev builds.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Build-time tenant config via VITE_TENANT env var (--mode loop42/dev).
Content pages moved to tenants/{name}/pages/ with dynamic imports and
loop42 fallback. Feature-gated routing (viewer/devTools per tenant).
Dockerfile parameterized with TENANT build arg. Deployed to separate
K8s namespaces: loop42.de → ns/loop42, loop42.dev → ns/dev.
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>
- agents.ts: fallback agent list when server sends none, auto-select default
- useAgentSocket.ts: set connectionState=SYNCED + channelState=READY on
assay ready signal, unlocks chat input
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- ws.ts: auth via query params (token + session), store session_id
from assay session_info, mark connected on ready signal
- useAgentSocket.ts: handlers for session_info, controls, artifacts, cleared
- auth.ts: auto-set dev service token for instant login
- Dockerfile + nginx.conf for K3s deployment
- .env.production: wss://assay.loop42.de/ws
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>