Skip to content

Infinite Canvas — Phase 3: Universal connections + terminal routing #64

Description

@Legacynnn

Part of the Infinite Canvas epic: #61

Phase 3 — Universal connections + conversation→terminal routing

Let any panel connect to any other, form chains, and give connections real behavior.

Scope

  • Connection modelcanvas_connections table (id, workspace_id, from_panel_id, to_panel_id, kind, meta JSON) + CRUD commands + UiMutationEvent sync. (If created in Phase 1, wire it up here.)
  • Connect UX — drag from a panel connector to another panel to create an edge; edges render on the canvas; chains allowed (A→B→C). Each panel exposes which panels it is connected to.
  • Endpoint semantics:
    • Conversation → Terminal: agent shell commands run in / stream to that terminal.
    • Conversation → Conversation: orchestration link (dispatch/manage via Helmor CLI); visible on canvas.
    • Other pairs: scoped context binding (documented; deeper behavior can be incremental).
  • "Run with a specific terminal" control — when a conversation is connected to ≥1 terminal, the user picks which terminal receives execution.

Out of scope

Browser/app endpoints (Phase 7), CLI-driven connect (Phase 6 — though the backend command should be reusable by the CLI).

Acceptance

  • User can connect/disconnect panels and build chains; connections persist across restart.
  • A conversation routes command execution to its connected terminal; "run with a specific terminal" selects the target.
  • Each panel reports its connections in the UI.
  • Connection persistence covered by tests; lint/typecheck/test pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    canvasInfinite Canvas modefeatureFeature work or product improvement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions