Skip to main content
← Back to list
01Issue
BugShippedExtensionsPublic
Assigneesskunk-ape

Relationships

#2655 gatorwalk-factory: ambiguous-exit exclusivity compares requireField keys literally, not as field paths

Opened by skunk-ape · 9/28/2026· Shipped 9/29/2026

Follow-up from the verification review of swamp-club #2599 (PR #342).

exclusive() in gatorwalk-factory/extensions/models/_lib/graph.ts treats two sibling transitions as exclusive when both have evidence-recorded gates on the same evidence and their requireField maps give different values for a shared key. It checks Object.hasOwn(right, field) on the literal key. But gates.ts resolves requireField keys as dotted field paths (fieldAt). So requireField of a.b equal to 1 on one transition, and a nested object a with b equal to 2 on the other, can never both pass at run time, yet the analyser does not see them as exclusive. It reports a spurious ambiguous-exit warning.

Impact: warnings only, never a false error.

Expected: compare requireField entries by the field path they resolve to, the same way fieldAt does, so dotted keys and nested objects that name the same field are compared. Add a graph_test.ts case with a dotted key on one sibling and a nested object on the other.

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 7 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

9/29/2026, 3:19:37 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
skunk-ape assigned skunk-ape9/29/2026, 2:36:52 PM
Editable. Press Enter to edit.

system commented 9/28/2026, 11:08:43 PM

Classified automatically when this issue was filed.

  • Source: Extensions

If you feel this classification is incorrect, add a ripple to tell us so.

Sign in to post a ripple.