From 46b848a2d777f01dbfa0e3affedcfa91b942e8fd Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Feb 2026 19:24:20 +0000 Subject: [PATCH] fix: chat input correctness and mobile UX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - after-request → after-settle: scrollChat() was firing before HTMX swapped the new message into the DOM, so the chat log didn't scroll to the new message. after-settle fires post-swap, post-settle. - hx-sync="this:drop": prevents duplicate submissions if the user taps SEND a second time while a slow Ollama response is in flight. - hx-disabled-elt="find button": disables SEND button visually during a pending request; paired with hx-sync for belt-and-suspenders. - autocorrect="off" autocapitalize="none" spellcheck="false": iOS autocorrect mangles model names (llama3.2 etc.) and autocapitalize uppercases every message's first word. Both are wrong for a terminal- style chat interface. - enterkeyhint="send": tells the iOS/Android soft keyboard to label the Return key "Send" instead of the generic return arrow. https://claude.ai/code/session_01M4L3R98N5fgXFZRvV8X9b6 --- src/dashboard/templates/index.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/dashboard/templates/index.html b/src/dashboard/templates/index.html index f98346a..c75680b 100644 --- a/src/dashboard/templates/index.html +++ b/src/dashboard/templates/index.html @@ -55,12 +55,18 @@ hx-target="#chat-log" hx-swap="beforeend" hx-indicator="#send-indicator" - hx-on::after-request="this.reset(); scrollChat()" + hx-sync="this:drop" + hx-disabled-elt="find button" + hx-on::after-settle="this.reset(); scrollChat()" style="display:flex; flex:1; gap:8px;">