dograh/api
Mubashir R ed06de73a3
fix(workflow): detect duplicate trigger paths when first node has no id (#409)
validate_trigger_paths used seen_paths.get(trigger_path) and treated a None
result as "path not seen yet". But None is also what node.get("id") returns
for a node without an id, so when the first trigger node sharing a path had no
id, it was stored as None and every later node with the same path was silently
accepted as unique — duplicate trigger paths slipped through validation.

Use a membership test (trigger_path not in seen_paths) so "first occurrence"
and "node_id happens to be None" are no longer conflated. Behavior is
unchanged for nodes that have ids.

Adds a regression test that fails before and passes after.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 13:53:34 +05:30
..
alembic feat: UI refresh and user onboarding (#430) 2026-06-17 19:49:33 +05:30
assets feat: telephony call transfer (#155) 2026-02-16 14:33:33 +05:30
db fix: merge initial context during update workflow run 2026-06-18 09:25:02 +05:30
errors Feat/inbound telephony (#113) 2026-01-12 10:10:30 +05:30
mcp_server feat: create tools using MCP 2026-05-31 16:50:44 +05:30
native/rnnoise Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
routes feat: enable stack auth config from backend 2026-06-18 14:17:28 +05:30
schemas feat: UI refresh and user onboarding (#430) 2026-06-17 19:49:33 +05:30
services fix(workflow): detect duplicate trigger paths when first node has no id (#409) 2026-06-19 13:53:34 +05:30
tasks feat: persist split user and bot audio 2026-06-16 15:19:49 +05:30
tests fix(workflow): detect duplicate trigger paths when first node has no id (#409) 2026-06-19 13:53:34 +05:30
utils feat: persist split user and bot audio 2026-06-16 15:19:49 +05:30
.cursorignore Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
.dockerignore Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
.env.example fix: number pool initialization in multi telephony setup 2026-05-08 14:48:53 +05:30
.env.test.example feat: add devcontainer based setup (#352) 2026-05-25 20:44:22 +05:30
.gitignore Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
__init__.py Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
AGENTS.md feat: add chat based testing for voice agent (#308) 2026-05-21 15:20:02 +05:30
alembic.ini chore: bump pipecat version and fix tests (#263) 2026-05-04 21:35:37 +05:30
app.py fix: add CORS preflight handler and ACAO header for embed config endpoint (#403) 2026-06-03 21:27:44 +05:30
CLAUDE.md Chore/add setup and contributing docs (#90) 2025-12-27 09:25:20 +05:30
conftest.py feat: add devcontainer based setup (#352) 2026-05-25 20:44:22 +05:30
constants.py feat: enable stack auth config from backend 2026-06-18 14:17:28 +05:30
Dockerfile feat: add Inworld TTS provider support (#420) 2026-06-19 13:23:27 +05:30
enums.py feat: UI refresh and user onboarding (#430) 2026-06-17 19:49:33 +05:30
logging_config.py feat: add headless mode, redesign floating widget, refactor lifecycle callbacks (#268) 2026-05-07 12:23:41 +05:30
pyproject.toml chore(main): release dograh 1.36.0 (#437) 2026-06-18 18:57:21 +05:30
pytest.ini feat: refactor node spec and add mcp tools (#244) 2026-04-21 07:56:16 +05:30
requirements.dev.txt feat: add devcontainer based setup (#352) 2026-05-25 20:44:22 +05:30
requirements.txt chore: upgrade posthog versions 2026-06-17 19:05:26 +05:30
sdk_expose.py feat: refactor node spec and add mcp tools (#244) 2026-04-21 07:56:16 +05:30