b9716a7cd6
Snapshot de WIP acumulado de sesiones previas antes de merge wave 1 del flow 0008 (kanban_cpp + agent_runner_api + DoD schema). Incluye: - dev/flows/0008-kanban-cpp-and-agent-workflows.md - dev/issues/0112-0119*.md (7 sub-issues) - WIP previo en cmd/fn/doctor.go, registry/*, modules/, cpp/, etc. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.0 KiB
3.0 KiB
id, title, status, type, domain, scope, priority, depends, blocks, related, created, updated, tags
| id | title | status | type | domain | scope | priority | depends | blocks | related | created | updated | tags | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0109g | skill_tree: panel terminal embebida (claude TUI dentro de la app) | pendiente | feature |
|
app-scoped | baja |
|
|
2026-05-17 | 2026-05-17 |
|
0109g — Terminal embebida en skill_tree
Hoy el boton Claude fix lanza terminal externa (Windows Terminal). Funciona pero saca al usuario fuera de la app. Issue: integrar terminal completa dentro de skill_tree como panel.
Opciones a evaluar
Opcion 1: lib externa ImGui terminal
- ImTerm (github.com/Optiroc/ImTerm): minimalista, sin PTY. NO sirve para TUI.
- imgui-console: similar, comandos hardcoded. NO sirve.
- imgui-vt100 o forks: emuladores ANSI dentro de ImGui. Algunos con PTY. Investigar:
- github.com/Magenta-Inc/MagentaImGuiTerminal
- github.com/microsoft/terminal — ConPTY API + custom UI
- github.com/jbrd/imterm — soporta escape sequences basicas
- Riesgo: claude usa alt screen + raw mode + bracketed paste + colores 24-bit + cursor moves. La mayoria de libs no cubren todo.
Opcion 2: PTY + parser ANSI propio
- Linux:
openpty()+ fork + exec claude. Buffer texto. Parser ANSI minimo (CSI, SGR, cursor). - Windows: ConPTY (
CreatePseudoConsole). Similar. - Render ImGui con
AddText+ colores por celda. Soportar redimension viaTIOCSWINSZ. - Mucho trabajo (~1500 LOC). Resultado limitado (no soporta TUIs complejas tipo less, vim).
Opcion 3: Pipe simple (no TUI)
- spawn
claude --print "..."con un prompt y leer stdout en panel scrollable. - NO interactivo. Solo one-shot.
- Util para
Generate ideas(0109h), NO paraClaude fixinteractivo.
Recomendacion
- Corto plazo: dejar terminal externa (esta hecha en 0109b3).
- Medio plazo: hacer Opcion 3 (pipe one-shot) para 0109h.
- Largo plazo: Opcion 2 (ConPTY/openpty propio) solo si el usuario lo pide explicitamente. Es trabajo de semana y limitara la app a un emulador de calidad mediocre.
Investigacion previa (sub-issue 0109g1)
Antes de implementar, abrir sub-issue 0109g1 que evalua:
- ¿Hay alguna lib imgui-pty madura en 2026?
- ¿La calidad de
imgui-vt100cubre claude TUI? - ¿Cuanto cuesta ConPTY/openpty propio para soportar al menos: scrollback, colores 24-bit, cursor moves, alt screen, bracketed paste?
Si la respuesta a (1) o (2) es "si", saltar a implementar. Si la respuesta es "no", el esfuerzo de (3) probablemente no compensa vs la terminal externa.
DoD (cuando se implemente)
- Panel "Terminal" toggable desde menu View (Ctrl+3).
- Spawn
claude --dangerously-skip-permissionsen cwd~/fn_registry. - Input box manda chars al PTY.
- Output renderizado con colores ANSI minimo.
- Cierre limpio del proceso al cerrar el panel o salir de la app.
- Funciona en Windows nativo (no requiere WSL terminal externa).
Anti-DoD
- NO soporta TUIs muy complejas (less con keyboard, vim) hasta que se justifique con un user need real.