From 3c401c4c2bd0222e59c83f996ffa309463c6cf7c Mon Sep 17 00:00:00 2001 From: josedario87 Date: Sat, 14 Feb 2026 11:16:49 -0600 Subject: [PATCH] feat: Add quick action buttons to floating terminal Add virtual keyboard buttons for common actions: - Clear: clears terminal screen - MCP: request WebMCP token - Claude: start claude session - Cont/Resume: claude --continue and --resume shortcuts --- frontend/src/components/FloatingTerminal.vue | 54 ++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/frontend/src/components/FloatingTerminal.vue b/frontend/src/components/FloatingTerminal.vue index 59c1f50..1063632 100644 --- a/frontend/src/components/FloatingTerminal.vue +++ b/frontend/src/components/FloatingTerminal.vue @@ -568,6 +568,24 @@ function runClaude() { } } +function runClaudeContinue() { + if (socket && socket.readyState === WebSocket.OPEN) { + socket.send(JSON.stringify({ type: 'input', data: 'claude --continue\r' })) + } +} + +function runClaudeResume() { + if (socket && socket.readyState === WebSocket.OPEN) { + socket.send(JSON.stringify({ type: 'input', data: 'claude --resume\r' })) + } +} + +function sendClear() { + if (socket && socket.readyState === WebSocket.OPEN) { + socket.send(JSON.stringify({ type: 'input', data: 'clear\r' })) + } +} + function requestToken() { if (socket && socket.readyState === WebSocket.OPEN) { tokenBuffer = '' @@ -851,6 +869,11 @@ defineExpose({ + + + + +
@@ -1216,6 +1239,37 @@ defineExpose({ font-size: 18px; } +.vk.clear { + background: linear-gradient(180deg, #6b7280 0%, #4b5563 100%); + border-color: rgba(107, 114, 128, 0.3); +} + +.vk.token { + background: linear-gradient(180deg, #ec4899 0%, #db2777 100%); + border-color: rgba(236, 72, 153, 0.3); +} + +.vk.token.waiting { + background: linear-gradient(180deg, #10b981 0%, #059669 100%); + border-color: rgba(16, 185, 129, 0.3); + animation: pulse 0.8s infinite; +} + +.vk.claude { + background: linear-gradient(180deg, #8b5cf6 0%, #7c3aed 100%); + border-color: rgba(139, 92, 246, 0.3); +} + +.vk.claude-cont { + background: linear-gradient(180deg, #06b6d4 0%, #0891b2 100%); + border-color: rgba(6, 182, 212, 0.3); +} + +.vk.claude-resume { + background: linear-gradient(180deg, #10b981 0%, #059669 100%); + border-color: rgba(16, 185, 129, 0.3); +} + .vk-scroll { display: flex; flex-direction: column;