chore(flows): align default graph with real TriggerEventIssueAssigned shape (#361) #362
No reviewers
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!362
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/361-default-graph-refs"
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 caught a shape mismatch between the baked default graph (NF-4) and the actual
TriggerEventIssueAssignedpayload emitted by NF-1. Fixing the references is a small mechanical chore; behavior verified via the dry-run harness.Root cause
Default graph referenced:
src.out.routedType(drivingrouter.switch) — doesn't exist on the trigger.src.out.issueNumber,src.out.labels— flat fields; the real trigger has them undersrc.out.issue.number/src.out.issue.labels.Result:
agent.dispatcherrored withtype: expected non-empty string, got undefined.Fix
src.out.assignee(Forgejo username = agent type 1:1 in the shippedagents.json).src.out.issueNumber→src.out.issue.number;src.out.labels→src.out.issue.labels.TriggerEventcontract.DEFAULT_GRAPH_VERSION1 → 2 so the seed migration rewrites theflowsrow on next restart.Graph.version(DSL schema version) stays at 1 — separate concept.Verified end-to-end
Dry-run harness against three assignees on the shadow DB:
Other branches correctly marked
skippedin each run;flow_node_runs.intentrows populated as expected.Test plan
bun test apps/server/src/domain/flows/default-graph.test.ts— 14/14 (updated version assertion).bun test apps/server/src/domain/flows/flow-dispatch.test.ts— 20/20.bun test apps/server— 1735 pass / 4 pre-existing fails (sweeper + foreman, unrelated).bun x turbo run typecheck— clean.bun x biome check— clean on touched files.Out of scope
util.route_agent_typeregistry node for reusable label-based routing — defer until a second consumer needs it (YAGNI).Closes #361.
🤖 Generated with Claude Code