← Back to Kontasks
Fix: Standby Turn Button Now Locks During Processing
Send button now locks during standby turn processing to prevent double-sends
Output
Fix: Standby Turn Button Now Locks During Processing
Problem
The send button remained clickable while a standby turn was processing, allowing users to potentially send multiple requests before the first one completed.
Solution
Added button locking mechanism to sendStandbyTurn():
- standbyTurnInProgress flag prevents double-sends
- send-locked CSS class visually dims the button
- finally block ensures unlock on success or error
Files Changed
konui/src/console-websocket-client.ts # Active WebSocket path konui/src/console-streaming.ts # Legacy SSE path (consistency)
Code Pattern
var standbyTurnInProgress = false; async function sendStandbyTurn(prompt) { if (standbyTurnInProgress) return; // Guard standbyTurnInProgress = true; submitBtn.classList.add('send-locked'); try { // ... fetch and stream ... } finally { standbyTurnInProgress = false; submitBtn.classList.remove('send-locked'); } }
Testing Required
Requires konui restart to load the new JavaScript.
- Restart konui (or ask user to do it)
- Hard refresh the browser
- Long-press Send to enter Standby Turn mode
- Tap ST Send - button should dim briefly
- Button should unlock after response appears
✅ Commit:
6a5aa249
Quick Actions
Original Request
No layout configured
Details
Type
General
Status
Completed
Scope
greatvibe
Tags
uiconsolestandby-turn
Created
12 Jan 2026, 1:51 am
Updated
12 Jan 2026, 1:52 am
Timing
⏱️ 207.5s
0 tools
● TTFE 0%
● Thinking 100%
● Tools 0%
Created By
claude
📋 Claude's Context
Session
ses_286e2e28...
🔗 Git Commit
6a5aa249
Raw Data
{
"id": "16bf0d31-f81e-422e-921e-35c8362ace1f",
"type": "general",
"status": "completed",
"title": "Fix: Standby Turn Button Now Locks During Processing",
"description": "Send button now locks during standby turn processing to prevent double-sends",
"context": {
"output": "<div style=\"background:#1e1e1e;color:#e0e0e0;padding:20px;border-radius:8px;font-family:'Consolas','Monaco',monospace;\">\n<h2 style=\"font-family:sans-serif;color:#fff;margin:0 0 16px 0;\">Fix: Standby Turn Button Now Locks During Processing</h2>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#98c379;margin:0 0 12px 0;\">Problem</h3>\n<p style=\"margin:0;line-height:1.6;\">The send button remained clickable while a standby turn was processing, allowing users to potentially send multiple requests before the first one completed.</p>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#61afef;margin:0 0 12px 0;\">Solution</h3>\n<p style=\"margin:0 0 12px 0;line-height:1.6;\">Added button locking mechanism to <code style=\"background:#3d3d3d;padding:2px 6px;border-radius:4px;\">sendStandbyTurn()</code>:</p>\n<ul style=\"margin:0;padding-left:20px;line-height:1.8;\">\n<li><span style=\"color:#e5c07b;\">standbyTurnInProgress</span> flag prevents double-sends</li>\n<li><span style=\"color:#e5c07b;\">send-locked</span> CSS class visually dims the button</li>\n<li><span style=\"color:#c678dd;\">finally</span> block ensures unlock on success <em>or</em> error</li>\n</ul>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#56b6c2;margin:0 0 12px 0;\">Files Changed</h3>\n<pre style=\"margin:0;line-height:1.8;\">\n<span style=\"color:#98c379;\">konui/src/console-websocket-client.ts</span> <span style=\"color:#7f848e;\"># Active WebSocket path</span>\n<span style=\"color:#98c379;\">konui/src/console-streaming.ts</span> <span style=\"color:#7f848e;\"># Legacy SSE path (consistency)</span>\n</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#c678dd;margin:0 0 12px 0;\">Code Pattern</h3>\n<pre style=\"margin:0;line-height:1.6;font-size:12px;\">\n<span style=\"color:#c678dd;\">var</span> <span style=\"color:#e5c07b;\">standbyTurnInProgress</span> = <span style=\"color:#d19a66;\">false</span>;\n\n<span style=\"color:#c678dd;\">async function</span> <span style=\"color:#61afef;\">sendStandbyTurn</span>(prompt) {\n <span style=\"color:#c678dd;\">if</span> (standbyTurnInProgress) <span style=\"color:#c678dd;\">return</span>; <span style=\"color:#7f848e;\">// Guard</span>\n \n standbyTurnInProgress = <span style=\"color:#d19a66;\">true</span>;\n submitBtn.classList.<span style=\"color:#61afef;\">add</span>(<span style=\"color:#98c379;\">'send-locked'</span>);\n \n <span style=\"color:#c678dd;\">try</span> {\n <span style=\"color:#7f848e;\">// ... fetch and stream ...</span>\n } <span style=\"color:#c678dd;\">finally</span> {\n standbyTurnInProgress = <span style=\"color:#d19a66;\">false</span>;\n submitBtn.classList.<span style=\"color:#61afef;\">remove</span>(<span style=\"color:#98c379;\">'send-locked'</span>);\n }\n}\n</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#f97316;margin:0 0 12px 0;\">Testing Required</h3>\n<p style=\"margin:0;line-height:1.6;\"><strong>Requires konui restart</strong> to load the new JavaScript.</p>\n<ol style=\"margin:8px 0 0 0;padding-left:20px;line-height:1.8;\">\n<li>Restart konui (or ask user to do it)</li>\n<li>Hard refresh the browser</li>\n<li>Long-press Send to enter Standby Turn mode</li>\n<li>Tap ST Send - button should dim briefly</li>\n<li>Button should unlock after response appears</li>\n</ol>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;\">\n<span style=\"color:#22c55e;\">✅</span> <strong>Commit:</strong> <code style=\"background:#3d3d3d;padding:2px 6px;border-radius:4px;\">6a5aa249</code>\n</div>\n</div>",
"requestedAt": "2026-01-12T01:47:00.000Z",
"requestId": "438b5198-77c4-4207-aabc-2a687fefc216",
"commitSha": "6a5aa249",
"choices": [
{
"label": "Test it now",
"value": "I've restarted konui. Enter standby turn mode and test the button locking by sending a message",
"primary": true
},
{
"label": "View the diff",
"value": "Show me the git diff for commit 6a5aa249"
},
{
"label": "Run more tests",
"value": "Run the full konui test suite"
}
],
"turnTiming": {
"totalMs": 207493,
"ttfeMs": 108,
"thinkingMs": 207383,
"toolExecutionMs": 0,
"toolCallCount": 0,
"thinkingPct": 100,
"toolsPct": 0,
"ttfePct": 0
}
},
"createdBy": "claude",
"createdAt": "2026-01-11T15:51:26.060Z",
"updatedAt": "2026-01-11T15:52:15.236Z",
"requestId": "438b5198-77c4-4207-aabc-2a687fefc216",
"scope": "greatvibe",
"tags": [
"ui",
"console",
"standby-turn"
],
"sessionId": "ses_286e2e28-97c"
}