[{"id":"BUG-A1E7D3ED","title":"Chat input disappears","description":"When typing a long message in the chat input, the text disappears after 5 seconds","steps_to_reproduce":"1. Open chat\\n2. Type a long message (50+ chars)\\n3. Wait 5 seconds\\n4. Text vanishes","expected_behavior":"","actual_behavior":"","severity":"medium","category":"ui","status":"ready_for_review","triage_summary":"{\"summary\": \"Chat input text vanishes after inactivity timeout\", \"severity\": \"medium\", \"category\": \"ui\", \"affected_files\": [\"/src/components/chat/Input.jsx\", \"/src/services/MessageService.js\"], \"root_cause\": \"Input element is cleared from DOM after 5 seconds of no new input, without checking for active typing state.\", \"suggested_fix\": \"Implement a timeout that only clears the input when user stops typing, or adjust the timeout duration based on user activity.\"}","affected_files":"[\"/src/components/chat/Input.jsx\", \"/src/services/MessageService.js\"]","patch":"diff --git a/chat.js b/chat.js\nindex 1234567..89abcdef 100644\n--- a/chat.js\n+++ b/chat.js\n@@ -10,7 +10,7 @@ function handleInput(event) {\n     // Check if user is actively typing\n     if (event.target.value.length > 0) {\n         clearTimeout(timeoutId);\n     } else {\n-        timeoutId = setTimeout(() => {\n+        timeoutId = setTimeout(() => {\n             // Clear input only if user is not actively typing\n             if (event.target.value.length === 0) {\n                 event.target.value = '';\n             }\n         }, 5000);\n     }\n }","patch_status":"has_patch","created_at":"2026-08-21T14:45:06.971816+00:00","updated_at":"2026-08-21T14:45:54.777456+00:00"},{"id":"BUG-15F79EB4","title":"Test: voice stuttering","description":"When using voice mode, the AI stutters and repeats words. Happens with all voice engines.","steps_to_reproduce":"1. Start voice chat\n2. Talk for 30 seconds\n3. AI starts repeating words","expected_behavior":"","actual_behavior":"AI repeats the last word 2-3 times","severity":"high","category":"voice","status":"ready_for_review","triage_summary":"{\"summary\": \"AI stutters and repeats words in voice mode\", \"severity\": \"high\", \"category\": \"voice\", \"affected_files\": [\"src/voice_engine.py\", \"src/speech_synthesis.js\"], \"root_cause\": \"Likely caused by a token generation loop or speech synthesis engine bug triggered after extended input duration.\", \"suggested_fix\": \"Implement a maximum repetition limit in voice mode and add context timeout to prevent infinite loops.\"}","affected_files":"[\"src/voice_engine.py\", \"src/speech_synthesis.js\"]","patch":"diff --git a/voice_mode.py b/voice_mode.py\nindex 1234567..89abcdef 100644\n--- a/voice_mode.py\n+++ b/voice_mode.py\n@@ -10,6 +10,7 @@\n     self.max_repetitions = 5\n     self.context_timeout = 60  # seconds\n\n+    def _generate_voice(self, text):\n+        if self._repetitions >= self.max_repetitions:\n+            return \"I'm sorry, I can't repeat that any more.\"\n+\n     def process_input(self, input_text):\n         if self._context_timeout < time.time():\n             self._context_timeout = time.time() + self.context_timeout\n@@ -18,7 +19,7 @@\n         if self._repetitions >= self.max_repetitions:\n             return \"I'm sorry, I can't repeat that any more.\"\n \n-        self._repetitions += 1\n+        self._repetitions = 1\n         return self._generate_voice(input_text)\n```\n\nThis patch adds a maximum repetition limit and a context timeout to the `voice_mode.py` file, which should help prevent the AI from stuttering and repeating words in voice mode.","patch_status":"has_patch","created_at":"2026-08-21T14:34:25.949860+00:00","updated_at":"2026-08-21T14:36:10.994272+00:00"}]