22bec25d8d
- 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.
1.8 KiB
1.8 KiB
claude_pipe — artifact probe (playground)
Herramienta desechable para auditar la calidad del parseo de la TUI que hace
claude_pipe. No se indexa, no tiene app.md, vive dentro de apps/claude_pipe/
y se mueve con su sub-repo.
Qué comprueba
Por cada prompt, lanza el binario claude_pipe en modo one-shot y en modo
--stream, y busca:
- Artefactos que se cuelan del render en la respuesta parseada: caracteres de
caja (
╭│╰), reglas horizontales (────), fragmentos de la status bar (CTX:,IN:,$…,← for agents), la línea meta✻ Crunched, el prompt❯, el carácter de reemplazo�, palabras pegadas (>40 chars sin espacio), o el prompt repetido literalmente. - Consistencia del streaming: la concatenación de los
text_deltadebe reconstruir elresultfinal. Si no, la heurística de prefijo perdió o duplicó texto bajo reflow. - (Opcional,
--ref) discrepancia contraclaude -preal para el mismo prompt (normalizado por espacios). claude no es determinista, así que solo los prompts triviales se espera que coincidan exactamente.
Sale con código 2 si encuentra artefactos o inconsistencias (para poder usarlo como gate).
Cómo lanzarlo
cd apps/claude_pipe
CGO_ENABLED=1 go build -tags fts5 -o claude_pipe . # asegúrate de tener el binario
cd playground
# Set de prompts por defecto, sin comparar con claude -p
go run artifact_probe.go --root /home/enmanuel/fn_registry
# Comparando además contra `claude -p` real (gasta llamadas reales)
go run artifact_probe.go --root /home/enmanuel/fn_registry --ref
# Un solo prompt custom
go run artifact_probe.go --root /home/enmanuel/fn_registry --prompt "tu prompt aqui"
--root debe ser un repo cuyos MCP de claude ya estén aprobados, para que la TUI
no muestre el diálogo de arranque.