chore(flows): default graph refs don't match TriggerEventIssueAssigned shape #361
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#361
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
NF-6 dry-run smoke test exposed a shape mismatch between the baked default graph (NF-4) and the actual
TriggerEventIssueAssignedpayload emitted by the NF-1 converter.Symptom
Running
dispatchToFlowsagainst a syntheticissues.assignedevent produces:Root cause
Default graph at
apps/server/src/domain/flows/default-graph.jsonreads:src.out.routedType(forrouter.switch)src.out.repo,src.out.issueNumber,src.out.labelsThe real trigger shape (from
packages/shared/src/trigger-event.ts):No
routedType, no flatissueNumber, no flatlabels.Fix (preferred)
Rewrite the default graph's input refs to match the real trigger shape. Keep routing logic inside the graph (operator-composable), not pre-computed on the trigger (would pollute the shared contract).
src.out.repo->src.reposrc.out.issueNumber->src.issue.numbersrc.out.labels->src.issue.labelssrc.out.routedType-drivenrouter.switchwith routing composed from existing primitives against the actual payload fields. Deferring a newutil.route_agent_typeregistry node until a second consumer needs it (YAGNI).Acceptance
defaultRegistry()(default-graph.test.tsstill passes).issues.assigneddispatch producesstatus=okin dry-run (no unresolved-path errors).agent.dispatchintent for the routed type rather than short-circuiting on undefined input.flow-dispatch.test.tsextended with a smoke check that the default graph completes in dry-run against the real trigger shape.Out of scope
util.route_agent_typeregistry node — defer.References
specs/node-flows.md§ Default flow.