* fix: unsubscribe redis pubsub when connection closes during prediction or after successful response
* update: add heartbeat to keep connection alive and start/stop heartbeat on server start/stop
* refactor: redis pub/sub methods, add unsubscribe, await subscribe
* fix: redundant unsubscribe
* fix: use map to store clients list
* fix: update how thinking event is handled in redis pub/sub and sse
* fix: review feedback
* fix: preserve sourceDocuments and metadata in ExecuteFlow node
The Execute Flow node in AgentFlow V2 was only extracting the text
content from chatflow responses, discarding sourceDocuments, usedTools,
artifacts, and fileAnnotations metadata. This fix preserves all metadata
fields in the return output and streams them via SSE when the node is
the last in the flow.
Fixes#5949
Signed-off-by: majiayu000 <[email protected]>
* fix: address review feedback on PR #5972
- Use object destructuring for response.data metadata extraction
- Extend SSE streaming test to cover artifacts and fileAnnotations
Signed-off-by: majiayu000 <[email protected]>
* Delete packages/components/nodes/agentflow/ExecuteFlow/ExecuteFlow.test.ts
* Update ExecuteFlow.ts
* Update ExecuteFlow.ts
---------
Signed-off-by: majiayu000 <[email protected]>
Co-authored-by: Henry Heng <[email protected]>
* fix: skip empty metadata filter in RetrieverTool to prevent vector store error
When a user adds an "Additional Metadata Filter" then removes it, the
empty filter object {} was still passed to the vector store, causing
Pinecone (and potentially others) to reject it with "You must enter a
filter object with at least one key-value pair." Now checks that the
resolved filter has at least one key before assigning it.
Fixes#4900
Signed-off-by: majiayu000 <[email protected]>
* fix: rename metadatafilter to metadataFilter for camelCase consistency
Signed-off-by: majiayu000 <[email protected]>
* Delete packages/components/nodes/tools/RetrieverTool/RetrieverTool.test.ts
---------
Signed-off-by: majiayu000 <[email protected]>
Co-authored-by: Henry Heng <[email protected]>
* Fix Mass Assignment in Chatflow Endpoints
* Fix Mass Assignment in Tools Endpoint
* Revert "Fix Mass Assignment in Tools Endpoint"
This reverts commit ed42f048eb.
* Fix Mass Assignment in Chatflow Endpoints
* chore(controllers/chatflows): replace explicit field assignment with stripProtectedFields
---------
Co-authored-by: christopherholland-workday <[email protected]>
Co-authored-by: yau-wd <[email protected]>
* Initial flow
* Add tiptap - mention dependency similar to v2
* Add functionalities similiar to V2
* update to tiptap to 3.20.4
* Fix lint error
* Added missiing test cases for new files
* Styling changes
* InputMessage should be visible on initial load
* Fix gemini comment
* Remove outdated SelectVariable
* Add icon support similar to v2
* Fix gemini comments
* Remove input folder and utils folder under atoms
* Fix test error
* Fix initlalDefualts not being set
* Fix after merge with main
* Fixes for review comments
* Fix review comments
* New test cases added for fixes
* Remove additional space
The sonar-deep-research entry under chatPerplexity had its name field incorrectly set to 'sonar' instead of 'sonar-deep-research'. This caused two issues:
1. Users selecting sonar-deep-research in the UI would hit the regular sonar API endpoint instead of the deep research endpoint
2. A duplicate name collision with the existing sonar entry, causing incorrect cost lookups
* Intial changes
* Test changes
* Fix gemini suggestion
* revert changes to RichTextEditor
* Changes to create a common base class for NodeData and NodeDataBase
* Fix TS error
* Revert all changes to RichTextEditor
* Fixed comments in nodeFactory.ts
* Remove migration code
* Removed unwanted change in behaviour
* Remove all changes to RichTextEditor and test
* Rename NodeDataBase to NodeDataSchema
* fix: unsubscribe redis pubsub when connection closes during prediction or after successful response
* update: add heartbeat to keep connection alive and start/stop heartbeat on server start/stop
* refactor: redis pub/sub methods, add unsubscribe, await subscribe
* fix: redundant unsubscribe
* fix: use map to store clients list
---------
- Added a new `useMarkdown` prop to RichInput for toggling between Markdown and HTML content.
- Updated the `extensions` function to conditionally configure link support based on the `useMarkdown` prop.
- Modified the content update logic to handle Markdown conversion when `useMarkdown` is enabled.
- Adjusted initial content loading to respect the `useMarkdown` setting for proper content type detection.
* Initial flow
* Fix styling to look the same as v2
* Add new atoms - SwitxhInput, Dropdown and ToolTipWithParser similar to v2
* Add test cases for all changes
* Refactor input default value handling and consolidate utility functions
* Allow imports from utils for atoms
* Fix gemini comments
* Fixed buold issues
* FIx styling and create credentiall behavior
* Add support for edit credentials
* Fix bug to display tool and vector embeddign parameters
* Add CredentialTypeSelector for HTTP node
* Fix to add falback icon in case of error
* Move inputDefaults under core/primitives
* Added fix to check if all mandatory fields have value before submittign a credential
* Fix new credential not being selected on creating
* Fixes made to address comments
* Gemini comment fix
* Fix test error by adding theme
* Refactor getDefaultValueForType to remove null/undefined handling
* Fixed getDefaultValueForType to be generic
* Fixed getDefaultValueForType to take single destructured object parameter
- Reintroduced NodeInfoDialog component with improved structure and functionality.
- Added new properties (badge, tags, documentation) to NodeData interface for better metadata handling.
- Updated flowExport and nodeFactory utilities to preserve new metadata during data processing.
- Implemented tests for NodeInfoDialog to ensure proper rendering and functionality.
- Adjusted Jest configuration to include coverage for the new NodeInfoDialog component.
* fix: disable Generate button when required fields are not filled
* add onBlur handler to Input component and simplify data handling in DocStoreInputHandler
---------
Co-authored-by: Henry <[email protected]>
chore: add OpenAI gpt-5.4-mini and gpt-5.4-nano models to ChatOpenAI model list
Add gpt-5.4-mini and gpt-5.4-nano to the OpenAI models registry with
their correct pricing:
- gpt-5.4-mini: $0.75/MTok input, $4.50/MTok output
- gpt-5.4-nano: $0.20/MTok input, $1.25/MTok output
* feat(agentflow): update behaviour for Start node, Http Node, and validation fixes (FLOWISE-265, FLOWISE-264)
- Updated behaviors for Start and HTTP nodes
- Fix computeArrayItemParameters crash when non-array field changes
- Fix validateNode to use availableNodes schema when node.data.inputs is missing
- Fix validateNode to respect param.default for required field checks
- Add option.description rendering in dropdown to match legacy UI
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
* fix dropdown display to match agentflow v2
* add missing credential field on start node
* remove HttpBodyInput component and associated tests (not referenced)
---------
Co-authored-by: Claude Sonnet 4.6 <[email protected]>
* update @tiptap dependencies and enhance RichTextEditor functionality
* feat(customMention): add Markdown support for custom mentions
- Implemented a custom tokenizer for recognizing {{...}} syntax in Markdown.
- Added parsing and rendering functions to handle mentions in Markdown format.
- Enhanced the CustomMention component to support Markdown serialization and deserialization.
* update tiptap to latest 3.20.4
* feat(agentflow): add ConditionAgent ScenariosInput with dynamic output ports
Implement FLOWISE-262: port ConditionAgent scenarios editing from agentflow
v2 to the SDK package.
- Add ScenariosInput atom for editing scenario strings with add/delete
- Integrate into EditNodeDialog with dynamic output anchor generation
- Wire up edge label computation for conditionAgentAgentflow in useFlowHandlers
- Fix cleanupOrphanedEdges to always filter by anchor count (no stale prevCount)
- Make updateNodeData accept optional edges for atomic node+edge updates
- Add coverage threshold for ScenariosInput.tsx in jest.config.js
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(agentflow): address PR review comment and fix CI build error
Clarify ScenariosInput docstring to note Else is a visual indicator, not
a dynamic output anchor. Fix nodeFactory test outputs to use `type`
instead of non-existent `description` property on NodeOutput.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(agentflow): enhance ExpandTextDialog to handle value updates correctly
- Added tests to ensure the dialog displays the current value when opened after changes while closed.
- Implemented logic to reset the dialog's value to the original when reopened after cancellation.
- Updated state management in ExpandTextDialog to synchronize local value immediately upon opening.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>