TEXT + VOICE DEMO BASELINE — PHYSICAL FAIL Baseline branch: codex/demo-text-voice-baseline-0.5.1 Firmware behavior source: 6bffe571b7c1b61cfdb168b0f7a03737bad394f1 Gateway / rebuilt candidate commit: 0f4f47ccbe79142a1b8cc324c62b856ef6433ff6 Firmware VERSION: 0.5.1 Merged size: 2,123,712 bytes Merged SHA256: 099ac2b8d25bf1c04fb5181344d59466fe34b509eb50377486821d8e30facf0b Application size: 2,058,176 bytes Application SHA256: dff6d7cf4a4bacf86f8806f68407a53c4d066167a7b88fe5eb676e5e82482dbb Gateway PID: 419467, NRestarts=0, active/running Gateway WorkingDirectory: /home/lighthouse/esp32-dev/.cache/demo-text-voice-baseline-0.5.1 No code/config/parameter changes, no restart, no Speech Output test. Previous checks (not rerun this turn): Idle 21:05:02–21:10:02 PASS; later idle acceptance failed at 21:26:27. Text Agent RUNNING / timer / activity / tool activity / A APPROVE / B REJECT / DONE / final_text / Chinese display: PASS with user confirmation. Current controlled single Voice (3f1395ece9866b6d): PASS via authorized actual link evidence. 1. [VOICE_RX] start: ABSENT; serial voice_start sent=1, matching server RECORDING received. 2. Chunks: 40 / 141,120 PCM bytes sent; returned correct transcript proves receive. Gateway chunk count not independently logged. 3. [VOICE_RX] end: ABSENT; serial voice_end sent=1 and /devices last_event voice_end observed. 4. [VOICE_STT] start: ABSENT; matching TRANSCRIBING received. 5. [VOICE_STT] complete: ABSENT; matching voice_transcript / AWAITING_CONFIRMATION received, 12 bytes, Chinese, no missing glyphs. User confirmed correct phrase. 6. Offline / reconnect / reboot during single Voice: 0 / 0 / 0. 7. First anomaly after single Voice start: I (1809113) CLOUD: [VOICE] tx-stall type=voice_chunk id=3f1395ece9866b6d elapsed_ms=292 internal_free=60731 dma_largest=31744 End max_send_ms=613. Additional later error: E (1838713) websocket_client: Could not lock ws-client within 200 timeout Neither prevented transcript/send/reply in this single round. A SEND queued voice_decision, SENT received, Pi RUNNING then DONE, final_text 55 bytes. User confirmed device reply/DONE. Gateway lifecycle markers remain unavailable under unchanged INFO suppression. Their absence alone does not establish missing uplink when real responses prove receipt. STT provider duration is unknown. Repeat 1 (521bd2dabcb16302): PASS, 37 chunks / 130,536 PCM bytes, max_send_ms=300, transcript 15 bytes, SENT, Pi RUNNING, DONE, final_text 278 bytes, user confirmed. Repeat 2 (5ceb104b3d8bd546): link completed after automatic reconnect, 67 chunks / 236,376 PCM bytes, max_send_ms=352, transcript 15 bytes, SENT, Pi RUNNING, DONE, final_text 50 bytes, user confirmed. This does not repair the stability failure. Repeat 3: NOT RUN, stopped. Post-Voice idle 3 min: NOT RUN, stopped. Stability failure occurred between Repeat 1 DONE and Repeat 2 start: Gateway offline: 21:38:15 +08:00 WSS accepted/open: 21:38:23 +08:00 Device online: 21:38:24 +08:00 First serial read error at uptime 2031713 ms; Repeat 2 start at 2048353 ms, 16,640 ms later. E (2031713) transport_base: esp_tls_conn_read error, errno=No more processes W (2031713) transport_ws: Requested to read 2, actually read 0 bytes E (2031713) transport_ws: Error read data(-1) E (2031713) websocket_client: esp_transport_read() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, errno=11 I (2031713) CLOUD: [CLOUD] link reason=receive-error bytes=473 parts=1 elapsed_ms=10000 rssi=-30 ps=1 internal_free=95627 dma_largest=31744 W (2031793) CLOUD: [CLOUD] disconnected I (2040103) CLOUD: [CLOUD] connected First relevant Gateway log: 2026-10-04T21:38:15+08:00 INFO: device esp32s3-28848543a200 offline Current controlled test window counters: unexpected offline=1, unexpected WSS reconnect=1, reboot=0. No watchdog, stack overflow, heap failure, or Wi-Fi reassociation found in this window. Exact failure boundary: device/WSS connection stability during inter-round idle, before Repeat 2 recording. Not an end-before-disconnect Voice upload failure; completed STT and SEND paths succeeded. Initiating cause and close code remain unknown. After failure detection, no further round or idle test was requested. Repeat 2 was already in progress under the earlier prompt and finished before user acknowledged stop. User has stopped operations. DEMO BASELINE: PHYSICAL FAIL Speech Output: FROZEN Next action: wait for user's decision; no new diagnostic action authorized in this turn. Continuous existing serial and Gateway journal captures retained.