Skip to content

Commit fe95444

Browse files
committed
fix(showcase/aimock): reorder gen-ui-interrupt d6 fixture legs fleet-wide (toolName before toolCallId)
Audit follow-up to CopilotKit#5232, which fixed the gen-ui-interrupt d6 fixture leg mis-order for langgraph-python + langgraph-typescript. aimock's matchFixture is first-match-wins in array order and the loader dedups on userMessage, so a toolCallId resume-leg placed BEFORE its toolName:schedule_meeting first-leg shadows the tool-emitting leg on turn-2 — the interrupt never fires and time-picker-card never mounts. Fleet audit of every showcase/aimock/d6/*/gen-ui-interrupt.json found ag2 as the only remaining mis-ordered fixture (both toolCallId resume-legs preceded their toolName first-legs). Reorder ag2 so each pill's toolName first-leg precedes its toolCallId resume-leg, matching the proven-correct mastra/pydantic-ai/langgraph pattern. Reorder only; response payloads and match keys are unchanged. All other gen-ui-interrupt-supporting integrations (built-in-agent, claude-sdk-*, langgraph-fastapi, langroid, ms-agent-dotnet/python, pydantic-ai, spring-ai, strands) were already correctly ordered.
1 parent f2059cc commit fe95444

1 file changed

Lines changed: 24 additions & 24 deletions

File tree

showcase/aimock/d6/ag2/gen-ui-interrupt.json

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,7 @@
66
},
77
"fixtures": [
88
{
9-
"_comment": "gen-ui-interrupt sales-call pill — second leg: confirmation after user picks a slot and resolve fires. Keyed by toolCallId so it only matches when the prior tool result is being fed back. Placed BEFORE first-leg so toolCallId matching takes precedence over toolName matching.",
10-
"match": {
11-
"userMessage": "intro call with the sales team",
12-
"toolCallId": "call_d5_schedule_sales_001",
13-
"context": "ag2"
14-
},
15-
"response": {
16-
"content": "Booked: Sales intro call confirmed for the slot you picked."
17-
}
18-
},
19-
{
20-
"_comment": "gen-ui-interrupt alice-1on1 pill — second leg: confirmation after user picks a slot. Placed BEFORE first-leg so toolCallId matching takes precedence.",
21-
"match": {
22-
"userMessage": "1:1 with Alice",
23-
"toolCallId": "call_d5_schedule_alice_001",
24-
"context": "ag2"
25-
},
26-
"response": {
27-
"content": "Scheduled: 1:1 with Alice locked in for the slot you picked."
28-
}
29-
},
30-
{
31-
"_comment": "gen-ui-interrupt sales-call pill — first leg: schedule_meeting tool call triggers Python agent's interrupt(...). The toolName gate ensures this matches only when schedule_meeting is in the tool list (the agent must declare it).",
9+
"_comment": "gen-ui-interrupt sales-call pill — first leg: schedule_meeting tool call triggers Python agent's interrupt(...). The toolName gate ensures this matches only when schedule_meeting is in the tool list (the agent must declare it). Placed BEFORE the toolCallId resume-leg so the duplicate-userMessage dedup does not shadow the tool-emitting leg — mirrors the passing mastra/pydantic-ai ordering.",
3210
"match": {
3311
"userMessage": "intro call with the sales team",
3412
"toolName": "schedule_meeting",
@@ -53,7 +31,18 @@
5331
}
5432
},
5533
{
56-
"_comment": "gen-ui-interrupt alice-1on1 pill — first leg: schedule_meeting tool call.",
34+
"_comment": "gen-ui-interrupt sales-call pill — second leg: confirmation after user picks a slot and resolve fires. Keyed by toolCallId so it only matches when the prior tool result is being fed back (last message is the tool result for this call).",
35+
"match": {
36+
"userMessage": "intro call with the sales team",
37+
"toolCallId": "call_d5_schedule_sales_001",
38+
"context": "ag2"
39+
},
40+
"response": {
41+
"content": "Booked: Sales intro call confirmed for the slot you picked."
42+
}
43+
},
44+
{
45+
"_comment": "gen-ui-interrupt alice-1on1 pill — first leg: schedule_meeting tool call. Placed BEFORE the toolCallId resume-leg so the tool-emitting leg is not shadowed.",
5746
"match": {
5847
"userMessage": "1:1 with Alice",
5948
"toolName": "schedule_meeting",
@@ -76,6 +65,17 @@
7665
}
7766
]
7867
}
68+
},
69+
{
70+
"_comment": "gen-ui-interrupt alice-1on1 pill — second leg: confirmation after user picks a slot. Keyed by toolCallId so it only matches when the prior tool result is being fed back.",
71+
"match": {
72+
"userMessage": "1:1 with Alice",
73+
"toolCallId": "call_d5_schedule_alice_001",
74+
"context": "ag2"
75+
},
76+
"response": {
77+
"content": "Scheduled: 1:1 with Alice locked in for the slot you picked."
78+
}
7979
}
8080
]
8181
}

0 commit comments

Comments
 (0)