NF-UI-3: Editing — add / delete / connect / wire validation #333

Closed
opened 2026-04-24 11:29:53 +00:00 by code-lead · 0 comments
Collaborator

As an operator, I want to edit a flow graph visually (add nodes, connect ports, delete selections, save) so that I can fork the default graph and tailor my pipelines without editing JSON.

Acceptance criteria

Palette

  • Q hotkey + right-click on empty canvas opens a searchable, category-grouped node palette.
  • Clicking an entry spawns the node at the cursor.

Edit operations

  • Delete / Backspace removes selected nodes + attached edges.
  • Source node is undeletable.
  • Drag-to-connect: output → input; drop on non-compatible type refuses visually + with a toast.
  • Cycle detection via React Flow isValidConnection.

Toolbar

  • Priority number input (default 100).
  • Mutex-group autocomplete against existing groups across every flow.
  • Enable / disable toggle.

Save

  • Ctrl+SPATCH /flows/:id; version bumps.
  • Save fails cleanly on server-side validation errors (offending nodes highlighted).
  • Dirty-tracking: navigating away with unsaved changes prompts confirmation.

Out of scope

  • Inspector + widgets — NF-UI-4.
  • Input-reference picker — NF-UI-5.

References

As an operator, I want to edit a flow graph visually (add nodes, connect ports, delete selections, save) so that I can fork the default graph and tailor my pipelines without editing JSON. ## Acceptance criteria ### Palette - [ ] `Q` hotkey + right-click on empty canvas opens a searchable, category-grouped node palette. - [ ] Clicking an entry spawns the node at the cursor. ### Edit operations - [ ] `Delete` / `Backspace` removes selected nodes + attached edges. - [ ] Source node is undeletable. - [ ] Drag-to-connect: output → input; drop on non-compatible type refuses visually + with a toast. - [ ] Cycle detection via React Flow `isValidConnection`. ### Toolbar - [ ] Priority number input (default 100). - [ ] Mutex-group autocomplete against existing groups across every flow. - [ ] Enable / disable toggle. ### Save - [ ] `Ctrl+S` → `PATCH /flows/:id`; version bumps. - [ ] Save fails cleanly on server-side validation errors (offending nodes highlighted). - [ ] Dirty-tracking: navigating away with unsaved changes prompts confirmation. ## Out of scope - Inspector + widgets — NF-UI-4. - Input-reference picker — NF-UI-5. ## References - Spec: [`specs/node-flows-ui.md`](../src/branch/main/specs/node-flows-ui.md) § Stories § NF-UI-3. - Depends on NF-UI-2 (#332) + NF-7 (#328).
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks#333
No description provided.