Changelog & Migration
import { Aside, Steps } from ‘@astrojs/starlight/components’;
This guide covers all breaking changes when upgrading from @flowdrop/flowdrop 0.0.x to 1.0.0.
What’s New in 1.0.0
Section titled “What’s New in 1.0.0”1.0.0 is the first stable release. Key additions since 0.0.x:
- Stable public API —
mountFlowDropApp(),mountWorkflowEditor(),mountPlayground()with semantic versioning guarantees - Agent Spec support — Import/export Agent Spec format
- Human-in-the-Loop interrupts — Five interrupt types: confirmation, choice, text input, form, review
- Interactive Playground — Built-in workflow testing UI with session management
- Plugin system —
registerFlowDropPlugin()andcreatePlugin()for multi-node registration - Programmatic API —
WorkflowAdapterfor creating and manipulating workflows in code - History transactions — Group changes into one undo step with
historyActions.startTransaction() - Template variables —
format: "template"fields with port-aware autocomplete - Dynamic port config — Runtime port compatibility via
/port-configAPI endpoint
Breaking Changes in 0.0.64
Section titled “Breaking Changes in 0.0.64”variableSchema prop removed
Section titled “variableSchema prop removed”The deprecated variableSchema prop on FormTemplateEditor has been removed.
Before:
<FormTemplateEditor variableSchema={schema} />After:
<FormTemplateEditor variables={{ schema }} />options field removed from schemas
Section titled “options field removed from schemas”The deprecated options property on field schemas has been removed. Use JSON Schema standard oneOf instead.
Before:
{ "status": { "type": "string", "options": [ { "value": "pending", "label": "Pending" }, { "value": "active", "label": "Active" } ] }}After:
{ "status": { "type": "string", "oneOf": [ { "const": "pending", "title": "Pending" }, { "const": "active", "title": "Active" } ] }}CodeMirror moved to optional peer dependencies
Section titled “CodeMirror moved to optional peer dependencies”@codemirror/* packages are no longer bundled. If you use form/code or form/markdown modules, install them manually:
npm install codemirror @codemirror/state @codemirror/view @codemirror/commands \ @codemirror/language @codemirror/theme-one-dark @codemirror/autocomplete \ @codemirror/lang-json @codemirror/lang-markdown @codemirror/lint@xyflow/svelte moved to peer dependency
Section titled “@xyflow/svelte moved to peer dependency”Previously bundled as a direct dependency, @xyflow/svelte is now a peer dependency. Install it directly:
npm install @xyflow/svelteBreaking Changes in 0.0.62
Section titled “Breaking Changes in 0.0.62”Svelte 5 runes store migration
Section titled “Svelte 5 runes store migration”All stores migrated from Svelte 4 writable to Svelte 5 runes ($state/$derived).
Before (Svelte 4):
import { get } from 'svelte/store';const value = get(someStore);// or$: reactiveValue = $someStore;After (Svelte 5):
// Use $derived in componentsconst value = $derived(getStoreValue());Window globals removed
Section titled “Window globals removed”window.flowdrop and similar globals have been removed. Use the explicit API:
Before:
window.flowdrop.save();After:
const app = await mountFlowDropApp(container, options);app.save();@sveltejs/kit removed from peer dependencies
Section titled “@sveltejs/kit removed from peer dependencies”If you were relying on SvelteKit as a transitive dependency from FlowDrop, add it to your own package.json.
CSS custom properties renamed
Section titled “CSS custom properties renamed”Old numbered spacing aliases have been replaced with named tokens:
| Old | New |
|---|---|
--fd-space-1 | --fd-space-3xs |
--fd-space-2 | --fd-space-xs |
--fd-space-3 | --fd-space-sm |
--fd-space-4 | --fd-space-md |
| (etc.) | (etc.) |
Node component naming normalized
Section titled “Node component naming normalized”Component imports have been normalized. Check your imports if you reference node components directly (e.g., GatewayNode, ToolNode).
TypeScript strict mode enabled
Section titled “TypeScript strict mode enabled”All source files now compile under strict: true. This may surface type errors in consumer code that was relying on implicit any types.
Upgrade Steps
Section titled “Upgrade Steps”-
Replace
variableSchemawithvariables.schemaon anyFormTemplateEditorusage. -
Replace
optionswithoneOfin field schemas (changevalue/labeltoconst/title). -
If using
form/codeorform/markdown, install CodeMirror peer dependencies. -
Replace any
window.flowdropusage with themountFlowDropApp()return value. -
Update CSS custom property names from numbered to named tokens.
-
Run your TypeScript build to catch any strict-mode type errors.