diff --git a/frontend/index.html b/frontend/index.html index a3702d1..3bc3b81 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -5,7 +5,7 @@ - + diff --git a/frontend/src/App.vue b/frontend/src/App.vue index cff4239..6dedb8d 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -6,6 +6,7 @@ import TorchButton from './components/TorchButton.vue' import FloatingTerminal from './components/FloatingTerminal.vue' import FloatingResponse from './components/FloatingResponse.vue' import FloatingVoice from './components/FloatingVoice.vue' +import AgentBar from './components/AgentBar.vue' import PwaInstallBanner from './components/PwaInstallBanner.vue' import { initWebMCP, getWebMCP } from './services/webmcp' import { initTorch, destroyTorch } from './services/torch' @@ -21,6 +22,8 @@ const router = useRouter() const showTerminal = ref(false) const showVoice = ref(false) const showDebugConsole = ref(false) +const toolbarVisible = ref(true) +const forceWco = ref(false) const debugLogs = ref>([]) // Intercept console.log for debug panel @@ -242,7 +245,17 @@ function triggerToolFlash() { type PageName = 'home' | 'canvas' | 'components' | 'themes' | 'project-canvas' | 'database' | 'source' | 'terminal' | 'tools' | 'agents' +function syncThemeColor() { + const bg = getComputedStyle(document.documentElement).getPropertyValue('--bg-primary').trim() + if (bg) { + document.querySelector('meta[name="theme-color"]')?.setAttribute('content', bg) + } +} + onMounted(async () => { + // Sync Windows titlebar color with CSS variable + syncThemeColor() + // Connect to WebSocket for Claude status updates connectStatusWs() @@ -348,10 +361,20 @@ watch(() => route.name, (newPage) => {