[dotnet-code] Route workflow edges by kind - #1176
Quim Muntal (qmuntal) merged 1 commit into
Conversation
Align edge delivery internals around the existing edge kind helper so future .NET-to-Go workflow ports can map more directly to the .NET Edge.Kind structure. No public API or behavior changes are intended. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The focused refactor preserves valid-edge behavior and aligns existing routing branches with centralized classification.
Review effort: Balanced
Findings: None
What changed in this PR
Centralizes workflow edge routing around the existing edge-kind classifier without changing public behavior.
Changes:
- Computes edge kind once per delivery.
- Uses it consistently for fan-in buffering and filtering.
| File | Description |
|---|---|
workflow/internal/execution/edgerunner.go |
Routes delivery logic by kindOfEdge. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
API consistency review
Changed Go contractNone. The diff touches only the unexported Upstream evidence reviewedNo equivalent evidence review was needed. This PR is an internal Go-only refactor (consolidating a repeated source-count check behind the existing AssessmentThe change replaces two duplicated
|
Tip
Your pull request is ready to create! 🎉 ✅
Everything is OK—the changes have been pushed to branch
dotnet-code-edge-kind-routing-20260922223103-bc1642c1d5f65343. Please review the changes, including any protected files, before creating the pull request.Create the pull request
The original pull request description is below.
Summary
Route workflow edge delivery through the existing internal
kindOfEdgehelper instead of re-checking the edge source count in multiple places. This keeps Go's routing structure closer to the .NETEdge.Kindtagged-union shape and makes future workflow ports easier to compare..NET Reference
dotnet/src/Microsoft.Agents.AI.Workflows/Edge.cs- definesEdgeKindand stores each edge as a kind plus edge data.Public API and Behavior
No public Go API changed. No intentional behavior change was made.
Tests
go test ./workflow/internal/execution ./workflow/inproc ./workflowNotes
Sampled upstream .NET files from a 40-file
dotnet/srcsearch included workflowEdge.cs, workflowRun.cs, and skillsAgentSkill.cs.Run.csalready closely matches Go's in-process run event sink/bookmark shape, andAgentSkill.cswould require public-surface changes to align further, so both were rejected. Directgit fetchof the upstream .NET repository was blocked by the environment firewall, so the .NET reference was inspected through the provided read-only GitHub bridge.Closes #1160