Skip to content

feat(desktop): chats → flow steps — retire chat surface, steps operate on code - #7

Merged
CMolG merged 1 commit into
mainfrom
feat/chats-to-flow-steps
Jul 10, 2026
Merged

CMolG merged 1 commit into
mainfrom
feat/chats-to-flow-steps

Conversation

@CMolG

@CMolG CMolG commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Ejecuta la tarea de backlog chats-to-flow-steps (F0–F5), la re-arquitectura UX que es la tesis de producto: se elimina el chat como superficie de trabajo sobre código; toda operación la ejecuta un step lanzado.

Qué cambia

  • Window type 'chat' retirado. El auto-chat superviviente es un panel fijo del HUD (HudAutoChatPanel), una caja de intent one-shot: escribe intención → assemblePipeline → insertPipelineAssembly materializa el flow al board. Sin agent-manager, sin edición de código por construcción.
  • Gesto mono-step: doble-click en canvas vacío → step con input enfocado + streaming (Cmd+N y el context-menu "New Step" igual).
  • 6 lanzadores de flows re-cableados (backlog card execute, auto-architect, FlowDeck, card modal, agent-sessions, Cmd+N): materializan al board + run por harness — ya no abren chat (criterio de aceptación Canvas/inspector/widgets/Provider Connections + CI builds + cross-runtime SDK #1).
  • Helms en steps: rol único (Single Persona, listbox/aria-selected), mods attached, input directo + adjuntos @file; el veto de validateStepAtoms se hace visible sin reimplementarlo.
  • StepRunEvidence gana transcript real (react-markdown + remark-gfm, tool-call cards, file-change chips → diff viewer), degradando con gracia donde el harness no emite datos estructurados.
  • Market: MarketFlow.steps[] estructurado (superset de PipelineAssemblyStep), "Add to board" construye el assembly directo; AttachableFlow/RightFlowAttachment retirados. Re-firma diferida.
  • Barrido de muerto: AgenticChatApp, MessageRenderer, SlashCommandHandler, TextToFlowWidget borrados. agent-manager conservado (FlowsEditor aún lo usa — corrección sobre la decisión F0).

Ejecución

Orquestador + subagentes Sonnet con Roles/Mods del market, en olas por contención de ficheros: A (window system, design-engineer) → A2 (lanzadores, frontend-engineer) → B∥ (helms design-engineer+a11y / transcript frontend-engineer / market backend-engineer) → C (barrido + gates). El plan pasó 3 rondas de review que destaparon el radio real de la retirada (7 lanzadores, no 1) y un hueco de arquitectura (el auto-chat no tenía backend conversacional → se redefinió como caja de intent).

Gates

Gate Resultado
vitest 1615/1615
tsc / eslint 0 / 0 errores
e2e desktop.spec.ts (196) sin regresiones — 19 fallos pre-existentes idénticos a origin/main (verificado con worktree baseline)
e2e context-menus.spec.ts verde (fixtures de ventana genérica migrados a file-explorer)
e2e new-features.spec.ts recuperado 25→9 (retirados tests obsoletos de topLayer —concepto removido del store antes de esta rama— y de chat-attach)

Follow-ups (documentados, ninguno bloquea)

  1. 9 e2e del panel auto-chat (non-CI): el flag de visibilidad del widget llega false en runtime pese al default correcto del store (visible: true) — interacción de persist/rehidratación del HUD a depurar con la app corriendo. La feature está cubierta por unit tests.
  2. ProjectPickerModal quedó huérfano (solo un comentario lo referencia).
  3. Los lanzadores pueden consumir MarketFlow.steps[] estructurado (buildFlowAssembly exportada) en vez del fallback mono-step.
  4. Evento FileChanged + slice stepChangedFiles para encender las file-change chips.
  5. Superficies "Test role"/"Run action" (sistema useFluxorStore, distinto del window-chat) siguen abriendo sesiones — migración fuera del alcance de esta tarea.
  6. Re-firma del market (clave pendiente de generar).

🤖 Generated with Claude Code

…e on code

Ejecuta la tarea de backlog 2026-07-08-chats-to-flow-steps (F0–F5):

- Window type 'chat' RETIRADO (desktop.ts); migración perezosa v19 (tombstone,
  no crash de boards guardados) + v20 (rename HUD widget). El auto-chat es un
  panel fijo del HUD (HudAutoChatPanel), caja de intent one-shot vía meta-agent
  assemblePipeline → insertPipelineAssembly — sin agent-manager, sin edición de
  código por construcción.
- Gesto mono-step: doble-click en canvas vacío crea un step con input enfocado
  (pendingStepFocusId) + streaming; Cmd+N y "New Step" del context-menu igual.
- 6 lanzadores de flows (BacklogKanban executeCard/auto-architect, FlowDeck,
  BacklogCardModal, AgentSessions, App Cmd+N) re-cableados: materializan al
  board + run por harness, ya NO abren chat (criterio #1 cumplido).
- Helms en steps: rol único (Single Persona, listbox/aria-selected), mods
  attached; input directo + adjuntos @file (FileContextBuilder reciclado);
  nota de autoridad de ejecución (validateStepAtoms veto visible).
- StepRunEvidence gana transcript real (react-markdown + remark-gfm, tool-call
  cards, file-change chips → diff viewer); degrada con gracia donde el harness
  no emite datos estructurados (follow-up: evento FileChanged).
- Market: MarketFlow.steps[] estructurado (superset de PipelineAssemblyStep),
  "Add to board" construye el assembly directo → insertPipelineAssembly;
  AttachableFlow/RightFlowAttachment retirados. Re-firma diferida.
- Barrido de muerto: AgenticChatApp, MessageRenderer, SlashCommandHandler,
  TextToFlowWidget borrados (agent-manager CONSERVADO: FlowsEditor aún lo usa).

Gates: vitest 1615/1615 · tsc 0 · eslint 0 err · e2e desktop.spec.ts sin
regresiones (19 fallos pre-existentes idénticos a origin/main) · context-menus
verde · new-features recuperado 25→9 (los 9 = tests e2e del panel auto-chat,
non-CI, feature cubierta por unit tests — follow-up de persist/rehidratación).

Backlog #2 completo. Las 3 tareas del backlog (rebranding, context-modes,
chats→steps) entregadas.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@CMolG
CMolG merged commit db58a24 into main Jul 10, 2026
6 checks passed
@CMolG
CMolG deleted the feat/chats-to-flow-steps branch July 10, 2026 23:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant