feat: add bubbletea TUI dashboard for bot server management

Implementa un dashboard interactivo con bubbletea siguiendo el patrón
pure core / impure shell del proyecto:

- pkg/tui/ (PURE): Model, Update, View — solo fmt y strings, cero I/O.
  Update produce Intent[] (datos puros) en vez de side effects.
- shell/tui/ (IMPURE): Adapter convierte Intent[] en tea.Cmd[] con I/O real
  (process management, /proc stats, log tail).
- cmd/dashboard/ (composición): Bridge conecta pure Update con shell Adapter
  usando la Elm Architecture de bubbletea.

Pantallas: Main Menu → Agent List → Agent Actions (start/stop/restart/kill) → Logs.
Navegación: flechas ↑↓, Enter seleccionar, 0 volver, q salir.

Dependencias añadidas: bubbletea, lipgloss.
Actualiza .gitignore para anclar binarios a raíz (/agentctl, /dashboard).
Documenta nuevos scripts en CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 19:38:30 +00:00
parent 00dac8b77f
commit f5b857dbc6
11 changed files with 933 additions and 1 deletions
+11
View File
@@ -103,10 +103,21 @@ Secciones principales del config: `agent`, `personality`, `llm`, `tools`, `matri
./dev-scripts/list.sh # ver todos los bots y estado
./dev-scripts/start.sh [agent-id] # iniciar uno o todos
./dev-scripts/stop.sh [agent-id] # detener uno o todos
./dev-scripts/restart.sh [agent-id] # reiniciar uno o todos
./dev-scripts/ps.sh [agent-id] # procesos con detalle (PID, mem, CPU, uptime)
./dev-scripts/remove.sh <agent-id> # deshabilitar (sin borrar datos)
./dev-scripts/register.sh <id> [name] # registrar bot en Matrix
./dev-scripts/logs.sh [agent-id] # tail -f de logs
./dev-scripts/new-agent.sh <id> [name] # scaffold completo
# Gestión unificada del servidor
./dev-scripts/server.sh start [id] # iniciar agentes
./dev-scripts/server.sh stop [id] # detener agentes
./dev-scripts/server.sh restart [id] # reiniciar agentes
./dev-scripts/server.sh status # resumen general del servidor
./dev-scripts/server.sh ps [id] # procesos con detalle
./dev-scripts/server.sh logs [id] # tail -f de logs
./dev-scripts/server.sh kill [id] # SIGKILL forzado (emergencia)
```
PID files: `run/<id>.pid` | Log files: `run/<id>.log`
+71
View File
@@ -0,0 +1,71 @@
# Command: git push
Usa este comando para cerrar una tarea completa con sincronización, commits por bloques de cambio y publicación al remoto.
## Flujo obligatorio
1. Verificar rama y estado:
```bash
git branch --show-current
git status --short
```
2. Sincronizar antes de preparar commits:
```bash
git pull --rebase
```
3. Revisar cambios y separarlos por tema:
```bash
git diff --stat
git diff
```
4. Si hay cambios de distinta naturaleza, crear varios commits:
- Commit 1: refactor/código
- Commit 2: documentación
- Commit 3: reglas/configuración
Comandos sugeridos:
```bash
git add <archivos_del_bloque_1>
git commit -m "<tipo>: <resumen breve>" -m "Descripción larga en español explicando qué cambia, por qué se hizo, impacto esperado y alcance del bloque."
git add <archivos_del_bloque_2>
git commit -m "<tipo>: <resumen breve>" -m "Descripción larga en español explicando qué cambia, por qué se hizo, impacto esperado y alcance del bloque."
```
5. Publicar commits:
```bash
git push
```
## Convención de commits
- `feat:` nueva funcionalidad
- `fix:` corrección de error
- `refactor:` cambio estructural sin cambio funcional
- `docs:` documentación
- `chore:` mantenimiento
## Regla de mensajes
- El título (`-m` corto) debe resumir el bloque.
- El cuerpo (`-m` largo) debe estar en español y explicar:
- qué se cambió,
- por qué se cambió,
- qué impacto tiene,
- qué no se tocó.
## Checklist rápido
- [ ] `git pull --rebase` ejecutado sin conflictos.
- [ ] Se separaron cambios distintos en commits diferentes.
- [ ] Cada commit tiene descripción larga en español.
- [ ] `git push` ejecutado correctamente.