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) => {
-
-