From c6d4294ddec87c6946099afe9095342d0aa2ef39 Mon Sep 17 00:00:00 2001 From: arkon Date: Thu, 26 Feb 2026 10:40:50 +0100 Subject: [PATCH] fix: disable local echo overlay for OpenCode sessions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The local echo overlay buffers keystrokes locally and renders them in a DOM overlay anchored to the '>' prompt character. OpenCode's Bubble Tea TUI uses a different prompt (┃), so the overlay can't find it — keystrokes buffer invisibly and nothing appears on screen. Disable local echo for OpenCode sessions so keystrokes flow directly to the PTY via the normal input path. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/web/public/app.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/web/public/app.js b/src/web/public/app.js index 8e846c18..b999efdc 100644 --- a/src/web/public/app.js +++ b/src/web/public/app.js @@ -3622,7 +3622,10 @@ class ClaudemanApp { const settings = this.loadAppSettingsFromStorage(); const session = this.activeSessionId ? this.sessions.get(this.activeSessionId) : null; const echoEnabled = settings.localEchoEnabled ?? MobileDetection.isTouchDevice(); - const shouldEnable = !!(echoEnabled && session); + // Disable local echo for OpenCode sessions — Bubble Tea TUI has no '>' prompt + // for the overlay to anchor to, so keystrokes buffer invisibly + const isOpenCode = session?.mode === 'opencode'; + const shouldEnable = !!(echoEnabled && session && !isOpenCode); if (this._localEchoEnabled && !shouldEnable) { this._localEchoOverlay?.clear(); }