dograh/ui/src/components/flow
nuthalapativarun 7d053320df
fix: disable duplicate trigger nodes in workflow builder (#402)
* fix: disable duplicate trigger nodes in workflow builder

AddNodePanel: disable trigger buttons and show tooltip when a trigger
already exists on the canvas, using bySpecName to identify trigger-
category specs from the live node list.
useWorkflowState: preflight in saveWorkflow rejects saves with multiple
trigger nodes via a sonner toast before the network request is made.
text_chat_session_service: include the original exception message in
TextChatSessionExecutionError so the HTTP 500 detail surfaces the root
cause without DB inspection.

Closes #378

* style: format test_text_chat_session_service.py with ruff

* chore: retrigger CI checks

* fix(workflow): enforce node instance constraints

---------

Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
2026-06-19 15:59:30 +05:30
..
edges feat: banner if API is not reachable 2026-05-31 13:05:22 +05:30
nodes chore: minor UI fixes 2026-05-21 17:20:21 +05:30
renderer feat(mcp): generic MCP tool source with per-node function filtering (#301) 2026-05-19 16:10:00 +05:30
AddNodePanel.tsx fix: disable duplicate trigger nodes in workflow builder (#402) 2026-06-19 15:59:30 +05:30
DocumentBadges.tsx feat: knowledge base functionality for the voice agent (#120) 2026-01-17 14:37:03 +05:30
DocumentSelector.tsx feat: add full document mode in knowledge base 2026-04-09 13:49:20 +05:30
mcpRefresh.ts feat(mcp): generic MCP tool source with per-node function filtering (#301) 2026-05-19 16:10:00 +05:30
MentionTextarea.tsx feat: add support for self hosted llm models 2026-03-24 17:50:45 +05:30
TextOrAudioInput.tsx feat: banner if API is not reachable 2026-05-31 13:05:22 +05:30
ToolBadges.tsx feat(mcp): generic MCP tool source with per-node function filtering (#301) 2026-05-19 16:10:00 +05:30
ToolSelector.tsx feat: UI refresh and user onboarding (#430) 2026-06-17 19:49:33 +05:30
types.ts chore: minor UI fixes 2026-05-21 17:20:21 +05:30