28 KiB
Roadmap: Node Banana Multi-Provider Support
Overview
Transform Node Banana from a Gemini-only image generator into a multi-provider platform supporting Replicate and fal.ai. The journey builds provider infrastructure first, then adds dynamic model discovery, refactors the generate node for flexibility, creates a searchable model browser, adds local image serving for URL-based providers, and finishes with video support and polish.
Domain Expertise
None
Milestones
- โ v1.0 Multi-Provider Support - Phases 1-6 (shipped 2026-01-11)
- โ v1.1 Improvements - Phases 7-14 (shipped 2026-01-12)
- โ v1.2 Improvements - Phases 15-24 (shipped 2026-01-17)
- โ v1.3 Improvements - Phases 25-30 (shipped 2026-01-24)
- ๐ง v1.4 Features - Phases 31-35 (in progress)
- ๐ v1.5 Store Refactoring - Phases 36-39 (planned)
Phases
Phase Numbering:
- Integer phases (1, 2, 3): Planned milestone work
- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)
โ v1.0 Multi-Provider Support (Phases 1-6) - SHIPPED 2026-01-11
Phase 1: Provider Infrastructure
Goal: Users can configure Replicate and fal.ai API keys in settings, with keys securely stored Depends on: Nothing (first phase) Research: Unlikely (internal UI patterns, Zustand state management) Plans: 2 plans
Plans:
- 01-01: Provider settings UI in ProjectSetupModal
- 01-02: Provider abstraction layer and types
Phase 2: Model Discovery
Goal: App can fetch and cache available models from enabled providers at runtime Depends on: Phase 1 Research: Likely (external APIs) Research topics: Replicate model listing API endpoints, fal.ai model discovery endpoints, response schemas and pagination Plans: 3 plans
Plans:
- 02-01: Replicate model fetching API route
- 02-02: fal.ai model fetching API route
- 02-03: Model caching and unified model interface
Phase 3: Generate Node Refactor
Goal: NanoBanana node becomes GenerateImage node supporting any provider's image models Depends on: Phase 2 Research: Unlikely (internal refactoring using existing patterns) Design decision: Separate nodes for image vs video generation (GenerateVideo added in Phase 6) Plans: 3 plans
Plans:
- 03-01: Rename NanoBanana to GenerateImage, add model selector (image models only)
- 03-02: Provider-specific execution in generate API route
- 03-03: Backward compatibility for existing workflows
Phase 4: Model Search Dialog
Goal: Users can browse models via floating action bar icons and searchable dialog Depends on: Phase 3 Research: Unlikely (internal UI using React patterns) Plans: 2 plans
Plans:
- 04-01: Floating action bar with provider icons
- 04-02: Model search dialog with filtering and selection
Phase 5: Image URL Server
Goal: Local API endpoint serves workflow images as URLs for providers requiring URL inputs Depends on: Phase 3 Research: Unlikely (Next.js API routes, existing patterns) Plans: 2 plans
Plans:
- 05-01: Image serving endpoint and URL generation
- 05-02: Integration with generate node for URL-based providers
Phase 6: Video & Polish
Goal: GenerateVideo node for video generation, video playback, custom parameters, edge cases Depends on: Phase 5 Research: Likely (video handling) Research topics: HTML5 video element for base64/blob URLs, provider response formats for video content Design decision: GenerateVideo as separate node type (not combined with GenerateImage) Plans: 4 plans
Plans:
- 06-01: GenerateVideo node with video-capable model selector
- 06-02: Video playback in output node
- 06-03: Custom model parameters from provider schemas
- 06-04: Edge case handling and final polish
โ v1.1 Improvements (Phases 7-14) - SHIPPED 2026-01-12
Milestone Goal: Fix connection issues, improve error visibility, add video history, auto-size nodes, and polish UI
Phase 7: Video Connections โ
Goal: Fix video handle connections to only allow valid targets (generateVideo, output) Depends on: Phase 6 Research: Unlikely (internal connection validation patterns) Plans: 1 plan
Plans:
- 07-01: Add video handle type and connection validation
Phase 8: Error Display โ
Goal: Better error visibility with overlay display, not hidden by previous output Depends on: Phase 7 Research: Unlikely (internal UI patterns) Plans: 1 plan
Plans:
- 08-01: Error notifications with persistent toast and node overlays
Phase 9: Video History โ
Goal: Add history carousel for generated videos matching image history pattern Depends on: Phase 8 Research: Unlikely (existing image history pattern) Plans: 1 plan
Plans:
- 09-01: Video history types, store support, load API, and carousel UI
Phase 10: Node Autosizing โ
Goal: Auto-size nodes to output dimensions and aspect ratio Depends on: Phase 9 Research: Unlikely (React Flow node sizing) Plans: 1 plan
Plans:
- 10-01: Node dimension utility and auto-resize on output
Phase 11: UI Polish โ
Goal: Flora UI alignment, header UI improvements, project settings, provider logos on nodes Depends on: Phase 10 Research: Unlikely (internal UI work) Plans: 1 plan
Plans:
- 11-01: Provider badges on nodes and header UI streamlining
Phase 12: Model Improvements โ
Goal: Verify Replicate image models work, extend model cache TTL Depends on: Phase 11 Research: Likely (Replicate API behavior verification) Research topics: Replicate image model endpoints, cache invalidation strategies Plans: 1 plan
Plans:
- 12-01: Extended cache TTL, fixed isImageInput, fixed stale node data in execution
Phase 13: Fix Duplicate Generations โ
Goal: Fix image deduplication - generations folder has duplicate images due to hashing failure Depends on: Phase 12 Research: Likely (investigate current hashing implementation) Research topics: Current save-generation hashing logic, why duplicates are being created Plans: 1 plan
Plans:
- 13-01: Add MD5 content hashing and deduplication to save-generation API
Phase 14: Fix Drag-Connect Node Creation Bugs โ
Goal: Fix bugs with nodes created via drag-connect: (1) connection vanishes after selecting model from browser, (2) defaults to Gemini with missing model selector in header Depends on: Phase 13 Research: Unlikely (React Flow connection state, node creation flow) Research topics: Connection state during node creation, model selection callbacks, createDefaultNodeData initialization Plans: 1 plan
Plans:
- 14-01: Normalize dynamic handle IDs and fix connection persistence
๐ง v1.2 Improvements (In Progress)
Milestone Goal: Add automated testing across the application, modularize large monolithic files for better maintainability, and improve cost tracking for multi-provider support
Phase 15: Test Infrastructure
Goal: Set up testing framework with Vitest and React Testing Library for Next.js 16 Depends on: Phase 14 Research: Likely (Vitest + Next.js 16 App Router setup) Research topics: Vitest configuration for Next.js 16, React Testing Library setup, test file organization Plans: TBD
Plans:
- 15-01: React Testing Library setup and configuration
Phase 16: Store Modularization โ
Goal: Break up workflowStore.ts into focused modules (execution, nodes, edges, persistence) Depends on: Phase 15 Research: Unlikely (internal Zustand patterns) Plans: 1 plan
Plans:
- 16-01: Extract localStorage helpers and node defaults to utility modules
Phase 17: Component Tests
Goal: Add tests for all 34 React components covering nodes, toolbars, modals, and edges Depends on: Phase 16 Research: Unlikely (established React Testing Library patterns) Plans: 11 plans
Plans:
- 17-01: Core Nodes (BaseNode, PromptNode, ImageInputNode)
- 17-02: Display Nodes (OutputNode, SplitGridNode, GroupNode)
- 17-03: Generate Nodes (GenerateImageNode, GenerateVideoNode)
- 17-04: Processing Nodes (LLMGenerateNode, AnnotationNode)
- 17-05: Toolbars (Header, FloatingActionBar, MultiSelectToolbar)
- 17-06: Canvas & Edges (WorkflowCanvas, EditableEdge, ReferenceEdge, EdgeToolbar)
- 17-07: Menus & Notifications (ConnectionDropMenu, Toast, CostIndicator)
- 17-08: Core Modals (ModelSearchDialog, ProjectSetupModal, CostDialog)
- 17-09: Editor Modals (PromptEditorModal, SplitGridSettingsModal, AnnotationModal)
- 17-10: Quickstart (WelcomeModal, QuickstartInitialView, QuickstartTemplatesView, PromptWorkflowView, QuickstartBackButton)
- 17-11: Utilities (GlobalImageHistory, GroupsOverlay, ModelParameters)
Phase 18: API Route Tests
Goal: Add tests for generate, llm, models, and workflow API routes Depends on: Phase 17 Research: Unlikely (Next.js API route testing patterns) Plans: 5 plans
Plans:
- 18-01: File I/O routes (workflow, save-generation)
- 18-02: LLM route (Google, OpenAI providers)
- 18-03: Generate route (Gemini provider)
- 18-04: Generate route (Replicate, fal.ai providers)
- 18-05: Models route (caching, aggregation)
Phase 19: Type Refactoring
Goal: Split types/index.ts into domain-specific type files (nodes, providers, workflow) Depends on: Phase 18 Research: Unlikely (internal refactoring) Plans: 2 plans
Plans:
- 19-01: Extract node and annotation types
- 19-02: Extract provider, workflow, API, and model types
Phase 20: Integration Tests
Goal: End-to-end workflow execution tests covering node connections and data flow Depends on: Phase 19 Research: Unlikely (internal testing patterns) Plans: 2 plans
Plans:
- 20-01: Store integration tests (getConnectedInputs, validateWorkflow, topological sort)
- 20-02: Workflow execution tests (data flow, error handling, connection validation)
Phase 21: Fix Image Input & Deduplication Issues
Goal: Fix Gemini nano-banana-pro model ignoring image inputs and resolve duplicate image saving across input/generated images Depends on: Phase 20 Research: Likely (Gemini API image input handling, current hashing implementation) Research topics: Gemini 3 Pro image generation API requirements, why image inputs are ignored, current save logic for inputs vs generations Plans: 1 plan
Issues:
nano-banana-pro model generates without considering image inputs- RESOLVED (no longer an issue)- Input and generated images have duplicate files despite different hashes - need consistent hashing approach matching video saving
- Generated images should be prepended with prompt details like generated videos
Plans:
- 21-01: Unify MD5 hashing for image deduplication
Phase 22: Generate Node Dynamic Input Tests
Goal: Test that generate nodes properly validate and render dynamic inputs from provider schemas, and that all inputs/parameters are correctly included in API calls Depends on: Phase 21 Research: Unlikely (existing test patterns from Phase 17) Plans: 1 plan
Test coverage:
- Dynamic inputs from provider schemas render correctly as parameters and input handles on node creation
- Validation of dynamic inputs (required fields, type checking, constraints)
- Standard inputs (image, text) validate properly
- On submission, all parameters and inputs are included in API call payload correctly (covered by Phase 18)
- Coverage across all providers (Gemini, Replicate, fal.ai)
Plans:
- 22-01: ModelParameters tests, GenerateImageNode/GenerateVideoNode dynamic handle tests
Phase 23: Model Browser Improvements
Goal: Improve model browser UX with recently used models section, icon-based provider dropdown with Gemini, and include Gemini models in browse list Depends on: Phase 22 Research: Unlikely (existing UI patterns) Plans: TBD
Features:
- Recently used models section at top of browse dialog showing last 4 models used
- Provider dropdown uses icons instead of text, add Gemini to the provider list
- Include Gemini models (nano-banana, nano-banana-pro) in the browsable model list alongside Replicate/fal.ai models
Plans:
- 23-01: Recently used models, icon-based provider filter, Gemini models in browse
Phase 24: Improved Cost Summary
Goal: Expand cost tracking to include fal.ai models (via their pricing API), video generation nodes, and graceful handling for Replicate (no pricing API available) Depends on: Phase 23 Research: Complete (see research notes below) Plans: 3 plans
Research Notes:
- fal.ai has a pricing API:
GET /v1/models/pricing?endpoint_id=model1,model2returns{ prices: [{ endpoint_id, unit_price, unit, currency }] } - Replicate does NOT expose pricing via API (open GitHub issue, unresolved). Prediction response has
metrics.predict_timebut no hardware/cost info. ProviderModeltype already haspricing?: { type, amount, currency }field atsrc/lib/providers/types.ts:69-74
UX Decision: Provider-Grouped with Uncertainty Section
- Two sections: "Known Costs" (Gemini + fal.ai) and "Pricing Unavailable" (Replicate)
- Known costs show total at section header, breakdown by provider with icons
- fal.ai items show billing unit from API (e.g., "per image", "per 5s video")
- Replicate section includes help text: "Pricing varies by hardware and runtime. Check replicate.com"
- Incurred cost only tracks Gemini & fal.ai (Replicate excluded with note)
- Empty provider sections hidden
Features:
- Fetch fal.ai model pricing via their pricing API and populate
ProviderModel.pricing - Track generateVideo nodes in cost predictions (currently ignored)
- For Replicate models: display "pricing unavailable" gracefully in dedicated section
- Update CostDialog with two-section layout: Known Costs (Gemini, fal.ai) and Pricing Unavailable (Replicate)
- Show billing units for fal.ai models (per image, per second of video, etc.)
- Incurred cost excludes Replicate with explanatory note
Plans:
- 24-01: fal.ai pricing API integration and ProviderModel.pricing population
- 24-02: Expand costCalculator to handle video nodes and external providers
- 24-03: Update CostDialog UI for multi-provider breakdown
โ v1.3 Improvements (Phases 25-30) - SHIPPED 2026-01-24
Milestone Goal: Add rich template exploration with search/filters, node default preferences in settings, and canvas performance optimizations
Phase 25: Template Explorer UI
Goal: Full template exploration interface with cards layout, left-hand filter/search panel, supporting many templates Depends on: Phase 24 Research: Unlikely (internal UI patterns) Plans: 2 plans
Features:
- Cards layout for template browsing (scalable for many templates)
- Left-hand panel with search and category filters
- Template metadata display (name, description, node count, etc.)
- Replace current quickstart template selection
Plans:
- 25-01: Template types, TemplateCard component, TemplateExplorerView grid layout
- 25-02: Sidebar filters (search, category, tags), WelcomeModal integration
Phase 26: Template Preview Rendering โ
Goal: Visual preview of workflow templates showing node layout and connections before loading Depends on: Phase 25 Research: Unlikely (React Flow rendering, existing patterns) Plans: 1 plan
Final Implementation:
- Horizontal card layout with thumbnail image, details, and "Use workflow" button
- Two-column grid layout for better scanning
- Conditional dialog width (6xl for explorer, 2xl for other views)
- Direct workflow loading without intermediate modal
Plans:
- 26-01: Horizontal cards with direct workflow loading, conditional dialog sizing
Phase 27: Node Defaults Infrastructure โ
Goal: Store default model and settings preferences per node type in localStorage Depends on: Phase 26 Research: Unlikely (localStorage, existing patterns) Plans: 1 plan
Features:
- Schema for node type defaults (model, parameters, settings)
- Apply defaults when creating nodes via keyboard shortcuts (Shift+G, etc.)
- Per-provider model defaults (e.g., default fal.ai model for GenerateImage)
Plans:
- 27-01: NodeDefaultsConfig types, localStorage helpers, createDefaultNodeData integration
Phase 28: Node Defaults UI โ
Goal: Settings panel for configuring default node preferences per node type Depends on: Phase 27 Research: Unlikely (internal UI patterns) Plans: 1 plan
Features:
- Section in settings for node defaults
- Select default model per node type (GenerateImage, GenerateVideo, LLM)
- Configure default parameters (e.g., seedream 4.5 with specific settings)
- Clear/reset to system defaults
- Shift+V keyboard shortcut for video nodes
Plans:
- 28-01: Node Defaults tab in ProjectSetupModal with model selection and LLM controls
Phase 29: Canvas Performance
Goal: Optimize canvas rendering for large workflows using virtualization and memoization Depends on: Phase 28 Research: Likely (React Flow virtualization, performance optimization) Research topics: React Flow performance best practices, node virtualization, selective rendering Plans: TBD
Plans:
- 29-01: TBD (run /gsd:plan-phase 29 to break down)
Phase 30: Small Fixes
Goal: [To be planned] Depends on: Phase 29 Research: Unlikely Plans: TBD
Plans:
- 30-01: TBD (run /gsd:plan-phase 30 to break down)
๐ง v1.4 Features (In Progress)
Milestone Goal: Transform the Prompt-to-Workflow feature into a full agentic workflow builder with proposal dialogs, chat-based editing, and safe file handling for large workflows
Phase 31: Workflow Proposal System
Goal: Agent proposes workflow details before building with user feedback/approve flow Depends on: Phase 30 Research: Likely (LLM prompting for structured proposals) Research topics: Structured output formats for workflow proposals, dialog UX patterns for agent communication Plans: TBD
Plans:
- 31-01: Workflow proposal types, prompt, and API endpoint
- 31-02: Chat infrastructure (Vercel AI SDK, streaming endpoint, types)
Phase 32: Chat UI Foundation
Goal: Floating chat window above minimap using Vercel AI SDK patterns Depends on: Phase 31 Research: Likely (Vercel AI SDK, chat UI components) Research topics: Vercel AI SDK (ai package) integration, useChat hook, streaming responses, chat UI component patterns Plans: 2 plans
Plans:
- 32-01: ChatPanel component with useChat hook, WorkflowCanvas integration
- 32-02: Chat context and workflow generation integration
Phase 33: Workflow Edit Safety
Goal: Original file preservation before edits with accept/reject change flow Depends on: Phase 32 Research: Likely (versioning strategies, JSON diffing) Research topics: Shadow copy vs diff-based vs undo stack approaches, JSON diff visualization Plans: TBD
Plans: 2 plans
Plans:
- 33-01-PLAN.md โ Store snapshot state, capture/revert/clear actions, manual change tracking
- 33-02-PLAN.md โ Wire snapshot capture in AI flow, Revert AI Changes button in Header
Phase 34: Context-Aware Agentic Workflow Editing
Goal: Make the chat agent context-aware and multi-modal โ routing user messages by intent to different behaviors: answering app usage questions, creating new workflows from scratch, or making targeted edits to the current workflow with full project context awareness and change narration Depends on: Phase 33 Research: Likely (intent classification, context-aware prompting, structured edits) Research topics: Intent classification approaches (keyword vs LLM-based), system prompt design for context-aware editing, workflow JSON mutation strategies, project context injection, change explanation patterns Plans: 3 plans
Features:
- Intent detection: classify user messages as help/question, new workflow creation, or workflow editing
- Help mode: answer questions about how to use the app without modifying anything
- Create mode: build new workflows from scratch (existing behavior)
- Edit mode: interpret edit requests against the current workflow, make targeted JSON modifications
- Project context awareness: agent understands current nodes, connections, models, and parameters
- Change narration: explain what was modified and why
Plans:
- 34-01-PLAN.md โ Chat agent library: tool definitions, edit operations, context builder
- 34-02-PLAN.md โ Enhanced /api/chat route with tool calling for intent routing
- 34-03-PLAN.md โ Store applyEditOperations, ChatPanel tool result handling, end-to-end wiring
Phase 35: Large Workflow Handling
Goal: Handle workflows with base64 images/videos efficiently, token management Depends on: Phase 34 Research: Likely (chunking, context window strategies) Research topics: Token optimization for large payloads, base64 extraction/reinsertion, workflow summarization techniques Plans: TBD
Plans:
- 35-01: TBD (run /gsd:plan-phase 35 to break down)
๐ v1.5 Store Refactoring (Planned)
Milestone Goal: Major refactoring of workflowStore.ts (2,900+ lines) into modular, testable components. Extract execution engine, create Zustand slices, and improve code maintainability while maintaining full backward compatibility.
Problem Statement:
workflowStore.tsis 2,907 lines with 15+ mixed concernsexecuteWorkflow(~800 lines) andregenerateNode(~600 lines) contain node-specific logic for 8 node types inline- Duplicated patterns (provider header building repeated 6+ times)
- Difficult to test individual concerns
- High cognitive load for any modifications
Target Architecture:
src/store/
โโโ workflowStore.ts # ~100 lines - combines slices
โโโ slices/ # Zustand slice pattern
โ โโโ coreSlice.ts # nodes, edges, clipboard
โ โโโ groupsSlice.ts # group operations
โ โโโ executionSlice.ts # execution state & actions
โ โโโ persistenceSlice.ts # save/load, auto-save
โ โโโ uiSlice.ts # modal state, quickstart
โ โโโ costSlice.ts # cost tracking
โ โโโ providersSlice.ts # provider settings
โ โโโ historySlice.ts # global history, recent models
โ โโโ commentsSlice.ts # comment navigation
โโโ execution/ # Modular execution engine
โ โโโ engine.ts # Core orchestration
โ โโโ helpers.ts # Shared utilities
โ โโโ executors/ # Per-node-type executors
โโโ utils/ # Pure helper functions
Phase 36: Execution Engine Extraction
Goal: Extract the massive executeWorkflow and regenerateNode functions into a modular execution engine with per-node-type executors Depends on: Phase 35 Research: Unlikely (internal Zustand patterns, existing codebase) Plans: 3 plans
Scope:
- Create
src/store/execution/directory structure - Extract execution types and interfaces
- Create node executor interface and registry
- Extract all 8 node-type executors (imageInput, annotation, prompt, nanoBanana, generateVideo, llmGenerate, splitGrid, output)
- Extract shared helpers (buildProviderHeaders, trackSaveGeneration, waitForPendingImageSyncs)
- Integrate engine back into workflowStore with same public API
Plans:
- 36-01: Execution types, helpers, and engine orchestration
- 36-02: Node executors (all 8 types) with tests
- 36-03: Integrate engine with store, backward compatibility verification
Phase 37: Pure Helpers Extraction
Goal: Extract pure functions from the store into testable utility modules Depends on: Phase 36 Research: Unlikely (internal refactoring) Plans: 2 plans
Scope:
- Extract
getConnectedInputsas pure function - Extract
validateWorkflowas pure function - Extract
topologicalSortlogic - Extract workflow migration logic (legacy nanoBanana nodes)
- Extract
clearNodeImageRefshelper
Plans:
- 37-01: getConnectedInputs, validateWorkflow, topologicalSort with tests
- 37-02: workflowMigration, clearNodeImageRefs with tests
Phase 38: Zustand Slice Pattern
Goal: Split monolithic store into composable Zustand slices for better separation of concerns Depends on: Phase 37 Research: Unlikely (Zustand slice patterns) Plans: 3 plans
Scope:
- Create slice pattern infrastructure
- Extract core slice (nodes, edges, edgeStyle, clipboard operations)
- Extract groups slice (all group operations)
- Extract execution slice (isRunning, currentNodeId, execute/regenerate actions)
- Extract persistence slice (save/load, auto-save, workflow metadata)
- Extract UI slice (modal count, quickstart, model search)
- Extract cost slice (incurredCost, cost tracking actions)
- Extract providers slice (providerSettings, API key management)
- Extract history slice (globalImageHistory, recentModels)
- Extract comments slice (comment navigation state)
Plans:
- 38-01: Core slices (core, groups, execution) with tests
- 38-02: Feature slices (persistence, UI, cost, providers) with tests
- 38-03: Remaining slices (history, comments), final store composition
Phase 39: Type Extraction & Final Integration
Goal: Move store types to proper locations and verify full backward compatibility Depends on: Phase 38 Research: Unlikely (internal refactoring) Plans: 1 plan
Scope:
- Extract
WorkflowStore,WorkflowFile,ClipboardData,EdgeStyletosrc/types/store.ts - Update all imports across codebase
- Verify all existing tests pass
- Verify all re-exports maintain backward compatibility
- Final cleanup and documentation
Plans:
- 39-01: Extract store types, verify backward compatibility, final cleanup
Progress
Execution Order: Phases execute in numeric order: 1 โ 2 โ ... โ 35 โ 36 โ 37 โ 38 โ 39
| Phase | Milestone | Plans Complete | Status | Completed |
|---|---|---|---|---|
| 1. Provider Infrastructure | v1.0 | 2/2 | Complete | 2026-01-09 |
| 2. Model Discovery | v1.0 | 3/3 | Complete | 2026-01-09 |
| 3. Generate Node Refactor | v1.0 | 3/3 | Complete | 2026-01-09 |
| 4. Model Search Dialog | v1.0 | 2/2 | Complete | 2026-01-09 |
| 5. Image URL Server | v1.0 | 2/2 | Complete | 2026-01-09 |
| 6. Video & Polish | v1.0 | 4/4 | Complete | 2026-01-11 |
| 7. Video Connections | v1.1 | 1/1 | Complete | 2026-01-12 |
| 8. Error Display | v1.1 | 1/1 | Complete | 2026-01-12 |
| 9. Video History | v1.1 | 1/1 | Complete | 2026-01-12 |
| 10. Node Autosizing | v1.1 | 1/1 | Complete | 2026-01-12 |
| 11. UI Polish | v1.1 | 1/1 | Complete | 2026-01-12 |
| 12. Model Improvements | v1.1 | 1/1 | Complete | 2026-01-12 |
| 13. Fix Duplicate Generations | v1.1 | 1/1 | Complete | 2026-01-12 |
| 14. Fix Drag-Connect Node Creation Bugs | v1.1 | 1/1 | Complete | 2026-01-12 |
| 15. Test Infrastructure | v1.2 | 1/1 | Complete | 2026-01-12 |
| 16. Store Modularization | v1.2 | 1/1 | Complete | 2026-01-12 |
| 17. Component Tests | v1.2 | 11/11 | Complete | 2026-01-13 |
| 18. API Route Tests | v1.2 | 5/5 | Complete | 2026-01-13 |
| 19. Type Refactoring | v1.2 | 2/2 | Complete | 2026-01-13 |
| 20. Integration Tests | v1.2 | 2/2 | Complete | 2026-01-13 |
| 21. Fix Image Input & Deduplication | v1.2 | 1/1 | Complete | 2026-01-13 |
| 22. Generate Node Dynamic Input Tests | v1.2 | 1/1 | Complete | 2026-01-13 |
| 23. Model Browser Improvements | v1.2 | 1/1 | Complete | 2026-01-13 |
| 24. Improved Cost Summary | v1.2 | 3/3 | Complete | 2026-01-17 |
| 25. Template Explorer UI | v1.3 | 2/2 | Complete | 2026-01-16 |
| 26. Template Preview Rendering | v1.3 | 1/1 | Complete | 2026-01-17 |
| 27. Node Defaults Infrastructure | v1.3 | 1/1 | Complete | 2026-01-17 |
| 28. Node Defaults UI | v1.3 | 1/1 | Complete | 2026-01-17 |
| 29. Canvas Performance | v1.3 | 0/0 | Deferred | - |
| 30. Small Fixes | v1.3 | 0/0 | Deferred | - |
| 31. Workflow Proposal System | v1.4 | 2/2 | Complete | 2026-01-26 |
| 32. Chat UI Foundation | v1.4 | 2/2 | Complete | 2026-01-27 |
| 33. Workflow Edit Safety | v1.4 | 2/2 | Complete | 2026-01-30 |
| 34. Context-Aware Agentic Editing | v1.4 | 0/? | Not started | - |
| 35. Large Workflow Handling | v1.4 | 0/? | Not started | - |
| 36. Execution Engine Extraction | v1.5 | 0/3 | Not started | - |
| 37. Pure Helpers Extraction | v1.5 | 0/2 | Not started | - |
| 38. Zustand Slice Pattern | v1.5 | 0/3 | Not started | - |
| 39. Type Extraction & Final Integration | v1.5 | 0/1 | Not started | - |