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.
6.1 KiB
6.1 KiB
Changelog
All notable changes to Node Banana will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[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