fix: Per-agent terminal isolation, floating terminal z-index, and char-by-char input
- Add :key to PromptBar to force remount on agent switch, fixing shared terminal session bug - Raise AgentTerminal z-index above PromptBar backdrop so floating terminal is visible/clickable - Send prompt text char-by-char (15ms delay) matching FloatingVoice pattern for Claude Code compat - Guard xterm dispose against unloaded addons to prevent errors on agent switch - Widen PromptBar panel from 360px to 420px to fit all ChatInput buttons
This commit is contained in:
@@ -8,6 +8,7 @@ import FloatingResponse from './components/FloatingResponse.vue'
|
||||
import FloatingVoice from './components/FloatingVoice.vue'
|
||||
import AgentBar from './components/AgentBar.vue'
|
||||
import HookNotifications from './components/HookNotifications.vue'
|
||||
import NotificationLog from './components/NotificationLog.vue'
|
||||
import PwaInstallBanner from './components/PwaInstallBanner.vue'
|
||||
import { initWebMCP, getWebMCP } from './services/webmcp'
|
||||
import { initTorch, destroyTorch } from './services/torch'
|
||||
@@ -67,6 +68,7 @@ function clearDebugLogs() {
|
||||
}
|
||||
const terminalRef = ref<InstanceType<typeof FloatingTerminal> | null>(null)
|
||||
const responseRef = ref<InstanceType<typeof FloatingResponse> | null>(null)
|
||||
const notifLogRef = ref<InstanceType<typeof NotificationLog> | null>(null)
|
||||
const voiceRef = ref<InstanceType<typeof FloatingVoice> | null>(null)
|
||||
const canvasStore = useCanvasStore()
|
||||
const projectCanvasStore = useProjectCanvasStore()
|
||||
@@ -330,6 +332,8 @@ onMounted(async () => {
|
||||
// Setup response controls for MCP tools
|
||||
setResponseControls({
|
||||
addMessage: (message: string, type?: 'info' | 'success' | 'warning' | 'error') => {
|
||||
// Also log to notification log
|
||||
notifLogRef.value?.addResponseEntry(message, type || 'info')
|
||||
if (responseRef.value) {
|
||||
return responseRef.value.addMessage(message, type)
|
||||
}
|
||||
@@ -544,6 +548,9 @@ watch(() => route.name, (newPage) => {
|
||||
<!-- Hook Notifications (toasts from Claude Code hooks) -->
|
||||
<HookNotifications />
|
||||
|
||||
<!-- Notification Log (temporary - collects all notifications, persists to localStorage) -->
|
||||
<NotificationLog ref="notifLogRef" />
|
||||
|
||||
<!-- Floating Voice Input -->
|
||||
<FloatingVoice ref="voiceRef" v-model="showVoice" />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user