Backend Go (web/server.go) que sirve un chat single-page y, por cada mensaje,
lanza claude_pipe --stream como subprocess y reenvia sus eventos NDJSON
(text_delta + result) al navegador via Server-Sent Events. Frontend vanilla
(web/index.html), sin frameworks ni node_modules.
Prueba el stack completo end to end a traves de una surface real: captura PTY ->
vt_render -> parse_claude_tui (con fix del spinner) -> delta de streaming ->
chat en vivo. Cada mensaje es una sesion claude one-shot (sin memoria entre
turnos). Playground del padre, no indexado.
- streamAnswer: el result final es el ULTIMO answer parseado (frame post-idle,
limpio) en vez del mas largo, que podia ser un frame intermedio con spinner.
- playground/artifact_probe.go: herramienta de auditoria que corre oneshot +
stream contra varios prompts, detecta artefactos del render que se cuelan
(box chars, status bar, spinner, palabras pegadas, prompt echo) y verifica
consistencia del streaming (concat de deltas == result). Opcional --ref para
comparar con claude -p real. No se indexa (playground del padre).
El fix del spinner en si vive en parse_claude_tui_go_tui (repo padre): detecta
la linea de carga por estructura (glyph + palabra + ellipsis) y firma
((Ns tokens) / esc to interrupt), no por la palabra, que cambia cada frame.