feat(workflow): webhook_respond node and respond_mode#612
Merged
yogasw merged 3 commits intoJun 8, 2026
Conversation
feat(workflow): env/secrets system with Settings modal
feat(workflow): webhook trigger with dual endpoint, path-based routing, and theme fixes
Backend: - Add webhook_respond node: custom HTTP status/body/headers, _webhook_respond sentinel for reliable extraction, template rendering via RenderCtx - Add Trigger.RespondMode (immediately/last_node/respond_node) with full doc - Router: RunNowWithDone + DispatchWithDone for blocking webhook response - Router: respondModeFor lookup, 404 on no-match path (draft + published) - DraftWebhookHandler: path-match guard before run, method check - writeWebhookResult: 502 when respond_node mode but no respond node ran - Validator: warning when respond_node set but no webhook_respond reachable from trigger entry_node (BFS via existing BfsReachable) - graph.entry dangling reference silently ignored (was warning, confused users) - Publish preserves enabled flag from published copy - spa_workflows: webhook-test source buckets to test KIND=test filter Frontend: - Trigger inspector: respond_mode radio picker (3 options with descriptions) - NodeDetailModal: webhook_respond section (status, body, headers, ArgField) - Canvas: trigger validation badges (error/warning) with click-to-inspector - Canvas: edge hover highlight (emerald stroke), activeEdge persists during ctx menu - Canvas: validate-on-load so badges appear immediately - Canvas: "Open inspector" in context menu for nodes + triggers - Canvas: layout fix — overflow-hidden on island wrapper prevents main scroll gap - BottomTabs: remove border-b when collapsed, flush to canvas edge - BaseNode: border-2 border-emerald-400 on selected (visible inside overflow-hidden) - Editor stores: validate on loadWorkflow Docs: remove all YAML examples from triggers.md (storage is JSON)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
immediately(202 fire-and-forget, default),last_node(block ≤30s, return last node output as JSON),respond_node(block until webhook_respond node fires)/webhook/and/webhook-test/return 404 when no trigger matches the path; was silently returning 202Test plan
/webhook-test/blocks and returns custom body/webhook-test/.../nonexistent→ 404🤖 Generated with Claude Code