You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

9.5 KiB

Changelog

All notable changes to Node Banana will be documented in this file.

The format is based on Keep a Changelog.

[Unreleased]

[1.2.0] - 2026-03-29

Added

  • Discover workflows in nested subdirectories
  • Add WorkflowBrowserModal and wire up Header open-project button
  • Wire browse view into WelcomeModal
  • Add WorkflowBrowserView component for browsing saved workflows
  • Add /api/list-workflows route to enumerate workflow directories
  • Add localStorage helpers for workflows directory
  • Use directory picker for load workflow in WelcomeModal
  • Open workflow via native OS directory picker for media hydration
  • Extend media externalization to support videos and audio
  • Add missing ref fields for media externalization
  • Add skipped node visual treatment during execution
  • Add Optional/Required toggle button to input node headers
  • Add visual indicators for optional input nodes
  • Add skip propagation to workflow execution engine
  • Add isOptional flag to input node types and skipped status
  • Prefill project directory from last-used path in new project flow
  • Add "NBP Input" toggle to group context menu
  • Redesign group menu as vertical context menu
  • Move group controls into three-dot menu next to title

Fixed

  • Remove cleanup script, show lock icon on locked groups
  • Code review fixes for groups, a11y, regex, and dialog semantics
  • Cleanup-workflow filter, workflow load validation, media hydration guard
  • Update GroupsOverlay tests for dropdown menu UI
  • Restore skippedNodeIds to store for canvas visual feedback
  • Update WelcomeModal and QuickstartInitialView tests for new flow
  • Update Header tests for WorkflowBrowserModal-based open flow
  • Embed directoryPath in workflow JSON for portable hydration
  • Save video/audio to generations/ and strip imageHistory bloat
  • Video/audio save-load roundtrip (3 compounding bugs)
  • Correct API parameter names for media save/load
  • Handle null return values from media save functions
  • Handle outputGallery nodes in image externalization
  • Correct GitHub repo URLs to shrimbly/node-banana
  • Clear error state when navigating generation carousel
  • Refine NBP input group border to 3px dashed white at 25% opacity
  • Center color fan origin on top-left corner of context menu
  • Increase color dot hover scale from 110% to 125%
  • Use left/top for color dot positioning so hover scale doesn't shift
  • Widen color fan arc spread from 150° to 180°
  • Shift color fan center to -130° for tighter corner wrap
  • Rotate color fan 20° anti-clockwise to wrap around menu corner
  • Hide three-dot icon when expanded menu is open
  • Add left margin before controls and tighten icon gaps
  • Reduce three-dot menu dots to match other icon sizes
  • Increase group menu icon sizes for better visibility

Changed

  • Remove dual-tracked skippedNodeIds local variable
  • Remove skippedNodeIds from store, extract resetSkippedNodes helper

Performance

  • Speed up workflow listing by reading only file headers

Documentation

  • Simplify contributing section
  • List all 23 node types and update tagline
  • Update README to enhance feature descriptions and clarify API key configuration
  • Add dynamic prompting as top feature, add video/3D/audio generation
  • Clarify Gemini key is required for prompt-to-workflow
  • Add all provider API keys to env example
  • Redesign README with hero layout and updated screenshot

Tests

  • Add tests for WorkflowBrowserModal and list-workflows API route
  • Add skip propagation tests and fix WorkflowCanvas mock

Other

  • Remove dead code, move script, add hydration batching
  • Improve workflow browser visual hierarchy and listing design

[1.1.3] - 2026-03-22

Fixed

  • Clamp expand height to minHeight and resolve text through switch nodes
  • Move ImageInputNode handles after visual content to prevent z-order clipping
  • Add z-index to handles so they paint above positioned node content
  • Move overflow-clip from contentClassName to inner visual wrappers to prevent handle clipping
  • Move panel height correction from loadWorkflow into BaseNode render
  • Prevent node height accumulation with inline parameters on reload
  • Update WelcomeModal test to match bg-black/60 backdrop class
  • Resolve prompt variables through router nodes for PromptConstructor
  • Use overflow-visible on non-fullBleed nodes to prevent handle clipping

Other

  • Replace ArrayNode auto-route icon with Lucide split icon

[1.1.2] - 2026-03-12

Added

  • Adaptive image resolution scaling — swaps full-res images for JPEG thumbnails when nodes are small on screen

Fixed

  • Router/switch passthrough losing data when multiple types (text + image) flow through the same router to one target
  • SplitGrid node Split button permanently disabled — sourceImage now updates reactively when an edge is connected
  • Node connection handles clipped at edges — removed paint containment that acted like overflow hidden
  • Thumbnail cache key collisions causing wrong images on nodes
  • Pending thumbnail map not cleaned up on rejection, causing stale entries
  • Pointer-events on node images/content blocking pan and drag interactions
  • Hover state updates firing during node drag, causing unnecessary re-renders
  • Hover events not blocked during mouse-down drag
  • backdrop-blur-sm causing poor rendering performance on Windows

[1.1.1] - 2026-03-12

Fixed

  • Ensure auto-routed prompts retain correct individual item text
  • Add rounded corners to ImageInput image and InlineParameterPanel settings

Other

  • Increase ArrayNode top padding to match side padding
  • Add top padding and max-width to ArrayNode top fields
  • Update ArrayNode layout to match new design language

[1.1.0] - 2026-03-12

Added

  • Router, Switch & ConditionalSwitch Nodes - Three new flow-control node types with toggle UI, rule editing, dynamic handles, and dimming integration
  • Gemini Veo Video Generation - Veo 3.1 video models with full parameter support and error handling
  • Anthropic Claude LLM Provider - Claude models available in LLM node alongside Gemini and OpenAI
  • Floating Node Headers - Headers rendered via ViewportPortal with drag-to-move, hover controls, and Browse button
  • ControlPanel - Centralized parameter editing panel with node-type routing and Run/Apply buttons
  • Full-Bleed Node Layouts - All major nodes converted to edge-to-edge content with overlay controls
  • Inline Parameters - Toggle to show model parameters directly on nodes with reactive sync
  • Video Autoplay - useVideoAutoplay hook integrated into all 5 video node types
  • Inline Variable Highlights - PromptConstructor highlights template variables inline
  • Minimap Navigation - Click-to-navigate and scroll-to-zoom on minimap
  • Node Dimming System - CSS-based visual dimming for disabled Switch/ConditionalSwitch paths
  • Unsaved Changes Warning - Browser warns before closing tab with unsaved workflow
  • All Nodes Menu - Floating action bar with All Nodes dropdown and All Models button
  • Provider Filter Icons - ModelSearchDialog filters by available providers

Fixed

  • Ease curve outputDuration passthrough through parent-child connections
  • Canvas hover state suppressed during panning to prevent re-render cascading
  • Node click-to-select failures caused by d3-drag dead zone
  • Aspect-fit resize after manual resize aligns with React Flow dimension priority
  • Settings panel seamless selection ring, background matching, and z-index layering
  • ConditionalSwitch stale input, handle alignment, and text routing
  • Veo negative prompt connectable as text handle, error handling, image validation
  • API headers scoped to active provider, temperature falsy bug fixed
  • Image flicker on settings toggle, presets popup dismiss, modal overlay click-through
  • Node paste height compounding, group label anchoring, file input backdrop issues
  • Handle visibility on full-bleed and OutputNode, clipped handle resolution
  • FloatingNodeHeader width tracking, right-alignment, and Windows drag interception
  • Smart cascade made type-aware so text inputs don't rescue dimmed image paths
  • RouterNode auto-resize, handle colors, and placeholder styling

Changed

  • EaseCurveNode, SplitGridNode, Generate3DControls, GenerateVideoControls refactored to full-bleed patterns
  • ConditionalSwitch execution logic deduplicated with shared evaluateRule utility
  • ModelParameters collapsible toggle removed

Performance

  • Selective Zustand subscriptions replace bare useWorkflowStore() calls
  • RAF-debounced setHoveredNodeId and BaseNode ResizeObserver
  • Edge rendering optimized for large canvases
  • FloatingNodeHeader, InlineParameterPanel, ModelParameters wrapped in React.memo
  • useShallow for WorkflowCanvas store subscription
  • Narrow selectors for ControlPanel and GroupControlsOverlay

Tests

  • Removed redundant and brittle component tests (-1,958 lines)
  • Updated assertions for full-bleed nodes, floating action bar, and Gemini video

Other

  • Added MIT license
  • Handle diameter increased from 10px to 14px
  • Settings redesigned with pill tabs, segmented controls, and toggles
  • Multi-layer box-shadow for smooth settings panel shadow

[1.0.0] - Initial Release

Added

  • Visual node editor with drag-and-drop canvas
  • Image Input node for loading images
  • Prompt node for text input
  • Annotation node with full-screen drawing tools (rectangles, circles, arrows, freehand, text)
  • NanoBanana node for AI image generation using Gemini
  • LLM Generate node for text generation (Gemini and OpenAI)
  • Output node for displaying results
  • Workflow save/load as JSON files
  • Connection validation (image-to-image, text-to-text)
  • Multi-image input support for generation nodes