All posts
releaseannouncement

FlowDrop 1.5.0: Command Console, AI Chat, and Node Swap

FlowDrop 1.5.0 ships a full DSL-powered command console, an AI chat panel that turns natural language into executed workflow commands, and a node swap flow with interactive port remapping.

FlowDrop 1.5.0 is the biggest release yet. Three independent systems land together: a command console for programmatic workflow control, an AI chat panel that wires directly into that console, and a node swap flow that lets users replace nodes without losing their connections.

Command Console

The console is a terminal-style input bar that accepts a DSL of workflow commands — add, delete, connect, rename, set_config, move, swap, layout, canvas, and more. It sits at the bottom of the canvas and toggles via a toolbar button or keyboard shortcut.

The full feature set is what you’d expect from a proper terminal: command history with Up/Down navigation, multi-line paste batch execution, rich formatted output, and context-aware autocomplete. Autocomplete is the interesting part — it knows your current workflow. Tab-completing a connect command offers live node IDs; completing set_config offers the actual config keys for the target node.

This matters for power users and for automation. Complex workflows that would take many clicks to build can be scripted in a paste-and-execute batch. It also gives you a reproducible, inspectable representation of the canvas state.

AI Chat Panel

The bottom panel now has a tab system. The first tab hosts an AI chat interface that takes natural language, sends it to a configurable backend endpoint, and parses the response for FlowDrop DSL commands.

When the AI response contains commands, a CommandPreview component shows them before execution. The user confirms, and they execute against the live canvas. The command classifier, response parser, and extraction logic are all tested and exportable — so if you’re building a backend for this, the request/response types and the DSL system prompt are part of the public API surface.

The chat endpoint is configurable at mount time via mountFlowDropApp. If you don’t configure one, the panel is hidden. No dead UI for apps that don’t use it.

Node Swap

Swap replaces a node in-place — same position, same edges — while letting the user remap connections to ports on the new node type. The interactive mapping editor shows every affected edge as a row, with a dropdown for selecting which port on the replacement node it should connect to. Auto-matching runs first (by port type and name similarity), so the common case needs no manual intervention.

The editor also handles config: it shows which config values can be carried over from the old node and which will reset to the new node’s defaults, with an explicit toggle per key. If any connections will be dropped, a warning banner appears before confirm. No silent data loss.

Swap is exposed as a store action, through the command console (swap <nodeId> <newType>), and via the standard event hook system, so you can intercept it from a vanilla JS integration.

Performance

A batch of targeted perf improvements ship alongside the new features:

  • Version counter dirty detection — the dirty-check in globalSave previously JSON-serialized the workflow on every change to compare snapshots. It now increments a version counter, eliminating the serialization cost on every keystroke.
  • structuredClone for history — undo/redo history snapshots use structuredClone instead of JSON.parse(JSON.stringify(...)).
  • Batched SvelteMap updatesportCoordinateStore batches its updates so a node move triggers one reactive propagation instead of N (one per port).
  • Cached type compatibility — the port proximity check caches compatible type lookups per dataType so repeated hover events don’t recompute the same set.
  • Derived cycle detection — the cycle detection guard that runs before connecting edges is now a $derived with an FSM guard, so it only recomputes when edges actually change.

These are all internal — no API changes — but they add up noticeably on larger workflows.

Upgrading

npm install @flowdrop/flowdrop@1.5.0

No breaking changes. The command console and AI chat panel are opt-in by default. If you don’t pass a chat endpoint, the chat tab is not shown. Existing integrations continue to work as before.