Lizandro GuarnizoandClaude Fable 5 1ba6805799 Voz del televisor: cazado en vivo el atasco del motor, y cómo impedirlo
Emulación en vivo con el usuario escuchando (23/08, 12:36-12:44): rellamados
reales a los dos turnos en recepción, instrumentando la pestaña. El fallo
apareció a la primera y quedó fotografiado:

    speaking: true          ← el motor JURA estar hablando
    'start' nunca disparó   ← pero no suena, y no hay error alguno
    usuario: «salió pero no habló»

Es el motor de voz durmiéndose tras el ocio: el primer speak() de ahí en
adelante queda atascado — finge hablar sin producir audio. El vigilante lo
toleraba porque speaking=true parece legítimo, y el keepalive pause/resume ni
lo prevenía ni podía correr (solo actúa con el motor en reposo). Por eso «el
primero no habla y el segundo sí»: el cancel() del segundo desatascaba.

Dos piezas, ambas validadas en vivo antes de entrar al repositorio:

1. PREVENIR: el keepalive ahora habla de verdad — una letra a volumen cero
   cada 25 s con el motor ocioso. Trabajo inaudible que lo mantiene despierto.
   En la ronda de validación, el llamado tras 30 s de ocio (el caso que
   siempre fallaba) habló completo a la primera, y los cuatro de la ronda
   también, sin un solo reintento.

2. CURAR: el vigilante distingue ahora tres estados en vez de dos:
   pending sin speaking = voz remota descargando (prórroga de 6 s);
   speaking sin 'start' = ATASCO (una locución que de verdad suena dispara
   'start' de inmediato): se invalida la generación, cancel(), y se rehabla
   tras 500 ms de respiro — rehablar de inmediato se volvía a atascar.
   La bitácora lo registra como sin_start con atasco:1.

La primera versión del desatascador (probada en vivo) reintentaba por partida
doble: el cancel() dispara 'error' sobre la misma locución y ese handler
también reintentaba. Se invalida la generación ANTES de cancelar.

Suite: 24 verificaciones, incluyendo el atasco simulado (exactamente 2 speak,
un aviso, sin fugas) y el keepalive (existe, es inaudible, no interfiere).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 12:46:48 -05:00
up
2026-01-24 00:55:33 -05:00
up
2026-01-27 14:51:41 -05:00
up
2026-01-28 03:09:52 -05:00
up
2026-03-10 18:42:51 -05:00
up
2026-01-27 23:56:49 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-04-16 22:23:33 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
2026-01-12 15:54:04 -05:00
2026-01-12 15:54:04 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-03-10 18:42:51 -05:00
up
2026-02-03 21:30:55 -05:00
2026-01-12 15:54:04 -05:00
up
2026-02-20 10:01:44 -05:00
up
2026-01-27 23:56:49 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
2026-01-21 08:28:54 -05:00
2026-06-13 08:22:25 -05:00
up
2026-01-28 02:23:36 -05:00
2026-01-21 08:28:54 -05:00
2026-01-13 00:48:57 -05:00
up
2026-02-03 22:21:35 -05:00
2026-05-11 12:21:56 -05:00
up
2026-03-10 18:42:51 -05:00
up
2026-03-10 18:42:51 -05:00
up
2026-03-10 18:42:51 -05:00
2026-01-21 08:28:54 -05:00
2026-01-12 15:54:04 -05:00
up
2026-02-03 21:30:55 -05:00
w
2025-11-18 20:26:36 -05:00
up
2026-01-27 23:56:49 -05:00
up
2026-01-28 02:23:36 -05:00
up
2026-02-03 21:30:55 -05:00
up
2026-02-03 21:30:55 -05:00
up
2026-06-09 16:44:39 -05:00
2026-01-12 16:13:41 -05:00
2026-01-12 16:13:41 -05:00
2026-01-12 16:13:41 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-04-16 22:23:33 -05:00
2026-01-13 00:48:57 -05:00
up
2026-02-21 07:37:36 -05:00
2026-01-12 16:13:41 -05:00
up
2026-03-16 20:46:54 -05:00
up
2026-02-03 22:21:35 -05:00
2026-02-03 22:12:12 -05:00
up
2026-01-28 02:23:36 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-27 23:56:49 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-02-03 21:30:55 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-28 03:33:35 -05:00
up
2026-01-27 23:56:49 -05:00
up
2026-04-16 23:45:58 -05:00
up
2026-04-16 23:45:58 -05:00
up
2026-04-16 23:45:58 -05:00
up
2026-04-16 23:45:58 -05:00
up
2026-04-16 23:45:58 -05:00
up
2026-04-16 23:45:58 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-02-03 21:30:55 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-04-18 23:41:01 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
w
2025-11-18 20:26:36 -05:00
2026-04-19 21:14:45 -05:00
up
2026-04-18 23:41:01 -05:00
p
2026-05-27 10:30:47 -05:00
up
2026-04-21 21:13:35 -05:00
up
2026-06-16 16:35:12 -05:00
up
2026-06-16 12:06:26 -05:00
up
2026-06-16 13:04:59 -05:00
2026-02-03 22:21:40 -05:00
up
2026-03-10 18:42:51 -05:00
p
2026-05-27 10:30:47 -05:00
up
2026-02-03 21:30:55 -05:00
2026-01-21 08:28:54 -05:00
2026-01-12 22:58:19 -05:00
2026-01-13 01:48:33 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-27 23:56:49 -05:00
2026-01-21 08:28:54 -05:00
up
2026-02-21 07:37:36 -05:00
up
2026-02-21 07:37:36 -05:00
up
2026-02-21 07:37:36 -05:00
up
2026-03-10 18:42:51 -05:00
2026-01-21 08:28:54 -05:00
up
2026-01-21 10:38:01 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-01-12 11:06:43 -05:00
up
2026-03-10 18:42:51 -05:00
up
2026-01-20 22:13:02 -05:00
up
2026-01-27 23:56:49 -05:00
S
Description
No description provided
6.1 MiB
Languages
PHP 84.8%
JavaScript 6.4%
HTML 5.9%
Shell 1.4%
CSS 0.9%
Other 0.5%