docs(agent): continue-agente — handoff para la próxima sesión

Estado al cierre (F0/F1/F3/F4a cerradas + tabla de commits), verificación
rápida al retomar, siguiente trabajo en orden (F4b chat → F2 gated →
flecos), y la disciplina operativa de la rama compartida + gotchas de
entorno (Ollama/OpenWebUI, pane, Chrome MCP, index:0 del stream).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
alpha-0.1-sec-dom
dev 3 months ago
parent 0ab40cdcee
commit 1cc8a87722

@ -0,0 +1,97 @@
---
title: CONTINUE — Eje agéntico ($agent) · sesión siguiente
type: process / handoff
date: 2026-07-22
branch: alpha-0.1-sec-dom (COMPARTIDA entre sesiones — disciplina abajo)
plan: PLAN-agent.md (el acta completa, fila a fila)
doctrina: docs/architecture/agent.md
---
# CONTINUE — Eje agéntico (`$agent`)
Track del **agente como tal** (la integración por componente pertenece al
track de cada componente). Todo lo firmado, ejecutado y verificado está
actado en [`PLAN-agent.md`](PLAN-agent.md); este documento es el punto de
reanudación.
## Estado al cierre (2026-07-22)
**Fases cerradas**: F0 doctrina · F1 motor · F3 Aura completa (0–8, audit
PASS) + promoción `uix.scene` · F4a marco de integración APP (bus + orca +
página del arte + conformidad documental 13/13 + adaptador real + demo con
modelo real + presencia perceptible + superficie radial).
Commits de la última sesión (todos en `gita/alpha-0.1-sec-dom`):
| Commit | Qué |
| --- | --- |
| `fa7189056` | Conformidad bus/orca — `goal` (contenido de usuario) FUERA del bus payload; suscriptor resuelve `App.agent.run(runId)` |
| `447a87239` | Adaptador `openai-chat` (Ollama/llama.cpp/LM Studio) + carril de iniciativa del bus (hecho→orca→`start({initiative:'system'})`→clamp) |
| `595040b73` | Aura como superficie de presencia de la demo real (boot uix standalone en agnt, `createActiveAgent`) |
| `97ae19da5` | Docs de configuración del transporte en la página agnt (opciones + dev-directo vs prod-proxy) |
| `d008605fa` | `Aura.Indicator` default = efecto **orb** de $scene (el aurora leía estático a 32-48px); `aurora` queda variante |
| `0ab40cdce` | **Aura al centro de un OnionMenu** — afordancias radiales por estado, auto-open con re-aserción mientras la custodia espera |
**Verificado E2E en Chrome real contra qwen3-coder:30b** (Ollama local):
ciclo completo (3 acts, doc mutado, answer es, bus trail entero) y escalada
real por `doc.clear` → anillo auto-abierto con orb ROJO al centro → Deny →
`returned(aborted, user-cancel)` + documento intacto.
## Cómo verificar rápido al retomar
```bash
npm run dev # rutas en web/routes
npx vitest run src/arts/agent # 30/30
npx vitest run src/uix/eidos # 353/353
npm run check # 73 errores = AJENOS preexistentes; 0 propios
```
- **`/active/docs/agnt`** — página del arte: playground gated (compuertas) +
§Real model (demo con modelo real: Aura + OnionMenu radial) + §Configuring
the transport + §The bus as the initiative axis + vocabulario del bus.
- **`/uix/components/aura`** — demo canónica de Aura (variant orb/aurora).
- Entorno del usuario: **Ollama en `:11434`** con `qwen3-coder:30b` (CPU
mayormente → 2-3 min/turno; paciencia). El `:8080` es **Open WebUI**
(API keys OFF — NO sirve como endpoint directo).
## Siguiente trabajo (en orden)
1. **F4b — chat como 2º consumidor** (desbloqueado, siguiente):
participante con provenance por modelo de mensaje + composer como entrada
de delegación + árbol de manifiestos `src/uix/agent/components/` +
guard `agent-check` (D-AG.11) + elicitación materializada
(Form.AutoFields) + **promoción `uix.agent`** (cierra D-AG.1b). Con el 2º
consumidor: promover `toJsonSchema` a `$sium` (nota en json-schema.ts) y
wiring `identity.locale ← prefs`.
2. **F2 — piloto palabras**: GATED hasta que el track palabras firme sus 4
ejes F-B. Al abrirse: capacidad tipada contra su API + OCC (_version) +
write-scope + `allowedFamilies` del primer actuado (reubicada aquí).
3. **Flecos menores** (ninguno bloqueante):
- Sector «Deny» del onion salió violeta (esperaba el rojo de `loss`) —
mirar el vocabulario `OnionColor` (¿auto-assign por nombre no
reconocido?) si le chirría al usuario.
- Diferidos con disposición (acta en PLAN §F4a): resumen semántico de
contexto (F5) · `superseded` por OCC (F2, lado componente) · journal
por defecto en factory (el app decide vehículo).
## Disciplina y gotchas operativos (¡leer antes de tocar!)
- **Rama COMPARTIDA entre sesiones concurrentes**: índice y working
compartidos — staging puede evaporarse. Commits SIEMPRE en un bloque
atómico `git reset -q && git add <paths explícitos> && verify && commit`.
Jamás amend. Ficheros mixtos con trabajo ajeno: stagear solo lo mío.
contracts.test tiene 2 fallos AJENOS conocidos (menubar/radio-group).
- **Sesión paralela regenerando rutas** → full reload del dev server que
MATA runs en vuelo de las demos. No es bug propio.
- **Pane oculto**: no dispara clicks reales (sonda sintética `el.click()`
como diagnóstico) y congela rAF (canvas del orb sin pintar — el pintado se
verifica en Chrome real SIEMPRE; regla dura re-aprendida esta sesión con
el `halo` descartado: MIRAR el render antes de enseñar).
- **Chrome MCP**: coords de screenshot ≠ viewport con zoom/scroll (clicks
fantasma que cierran menús por outside-click) — para sectores SVG usar
DOM dispatch (`pointerdown`+`pointerup`+`click`) tras localizar el path.
- **Bus payloads = SOLO metadata** (higiene fa7189056): jamás goal ni
contenido de usuario; el suscriptor resuelve del módulo por `runId`.
- El adaptador openai-chat: Ollama **reutiliza `index:0`** para todas las
tool calls del stream — una call nueva se detecta por `id` distinto,
jamás por index (test que lo reproduce en adapters/openai-chat.test.ts).
Loading…
Cancel
Save

Powered by TurnKey Linux.