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>
skill_tree layout anillos + render canvas ImDrawList con cards
completado
feature
meta
cpp-stack
app-scoped
media
0109a
0109c
0109
2026-05-17
2026-05-17
skill-tree
cpp
imgui
layout
canvas
0109b — skill_tree layout anillos + render canvas
Segundo slice del epic 0109. Reemplaza la lista textual del Tree por un canvas interactivo basado en ImDrawList. Pivote desde graph_renderer_cpp_viz (GPU) → ImDrawList (CPU) para mantener simplicidad: 166 nodos no justifican el pipeline GPU.
Decisiones tomadas durante la implementacion
Stack: ImGui::ImDrawList, NO graph_renderer_cpp_viz. Razon: 166 nodos cabian de sobra en CPU; graph_renderer exige init_gl_loader=true, build de GraphData con tipos OSINT, shaders, FBO + texture flip-Y. Diferencia ~120 LOC + un monton de rebuilds para cero beneficio observable.
Sin fisicas (el usuario lo pidio explicito). Layout deterministico via compute_ring_layout_cpp_core.
18 sectores radiales = 18 dominios canonicos (dev/TAXONOMY.md). Labels en el aro exterior.
Lock derivation: pendiente se subdivide en pendiente_unlocked (todos los depends[] en done) vs pendiente_locked (algun depends sin completar). Set de done IDs se computa al cargar y se cruza con cada depends[].
Animacion lerp 1s entre prev y current position cuando un nodo cambia de status_eff entre dos reload_scan()s. Ease-in-out cuadratica.
Cards con texto: cada nodo muestra su ID en blanco con sombra negra para legibilidad sobre cualquier color de ring.
0109c: Inspector evolucionado con DoD parseado de la seccion ## DoD del .md (checkboxes interactivos read-only) + lista de uses_functions del registry para esa issue.