Skip to content

Commit 66d9410

Browse files
committed
fix(e2e+stats): update StatusUpdate snapshots for new fields, fix subagent session ID
- Add model_name/provider_key to all e2e StatusUpdate payload snapshots (37 occurrences across 6 test files); plan_mode=None events get None/None, step-completion events get scripted_echo/scripted_provider (or provider-b for test_model_override with --model model-b) - Fix subagent session ID derivation in load_all_stats: subagent wire paths (sessions/wdhash/sessid/subagents/agentid/wire.jsonl) were producing session_id='subagents/agentid' instead of 'wdhash/sessid', collapsing distinct parent sessions with same subagent ID
1 parent cb52f4c commit 66d9410

7 files changed

Lines changed: 81 additions & 1 deletion

File tree

src/pythinker_code/ui/shell/stats_collector.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,13 @@ def load_all_stats() -> AllStats:
369369
all_steps: list[StepRecord] = []
370370

371371
for wire_path in wire_files:
372-
session_id = f"{wire_path.parent.parent.name}/{wire_path.parent.name}"
372+
# sessions/<wdhash>/<sessid>/wire.jsonl → parents[1]/<sessid>
373+
# sessions/<wdhash>/<sessid>/subagents/<agentid>/wire.jsonl
374+
# parents[1] = "subagents", so walk up to parents[3]/parents[2]
375+
if wire_path.parent.parent.name == "subagents":
376+
session_id = f"{wire_path.parents[3].name}/{wire_path.parents[2].name}"
377+
else:
378+
session_id = f"{wire_path.parents[1].name}/{wire_path.parents[0].name}"
373379
for step in parse_wire_file(wire_path, session_id, seen_hashes):
374380
all_steps.append(step)
375381

tests_e2e/test_wire_approvals_tools.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ def test_shell_approval_approve(tmp_path) -> None:
118118
"max_context_tokens": None,
119119
"token_usage": None,
120120
"message_id": None,
121+
"model_name": "scripted_echo",
122+
"provider_key": "scripted_provider",
121123
"plan_mode": False,
122124
"mcp_status": None,
123125
},
@@ -183,6 +185,8 @@ def test_shell_approval_approve(tmp_path) -> None:
183185
"max_context_tokens": None,
184186
"token_usage": None,
185187
"message_id": None,
188+
"model_name": "scripted_echo",
189+
"provider_key": "scripted_provider",
186190
"plan_mode": False,
187191
"mcp_status": None,
188192
},
@@ -259,6 +263,8 @@ def test_shell_approval_reject(tmp_path) -> None:
259263
"max_context_tokens": None,
260264
"token_usage": None,
261265
"message_id": None,
266+
"model_name": "scripted_echo",
267+
"provider_key": "scripted_provider",
262268
"plan_mode": False,
263269
"mcp_status": None,
264270
},
@@ -390,6 +396,8 @@ def test_approve_for_session(tmp_path) -> None:
390396
"max_context_tokens": None,
391397
"token_usage": None,
392398
"message_id": None,
399+
"model_name": "scripted_echo",
400+
"provider_key": "scripted_provider",
393401
"plan_mode": False,
394402
"mcp_status": None,
395403
},
@@ -459,6 +467,8 @@ def test_approve_for_session(tmp_path) -> None:
459467
"max_context_tokens": None,
460468
"token_usage": None,
461469
"message_id": None,
470+
"model_name": "scripted_echo",
471+
"provider_key": "scripted_provider",
462472
"plan_mode": False,
463473
"mcp_status": None,
464474
},
@@ -494,6 +504,8 @@ def test_approve_for_session(tmp_path) -> None:
494504
"max_context_tokens": None,
495505
"token_usage": None,
496506
"message_id": None,
507+
"model_name": "scripted_echo",
508+
"provider_key": "scripted_provider",
497509
"plan_mode": False,
498510
"mcp_status": None,
499511
},
@@ -537,6 +549,8 @@ def test_approve_for_session(tmp_path) -> None:
537549
"max_context_tokens": None,
538550
"token_usage": None,
539551
"message_id": None,
552+
"model_name": "scripted_echo",
553+
"provider_key": "scripted_provider",
540554
"plan_mode": False,
541555
"mcp_status": None,
542556
},
@@ -610,6 +624,8 @@ def test_yolo_skips_approval(tmp_path) -> None:
610624
"max_context_tokens": None,
611625
"token_usage": None,
612626
"message_id": None,
627+
"model_name": "scripted_echo",
628+
"provider_key": "scripted_provider",
613629
"plan_mode": False,
614630
"mcp_status": None,
615631
},
@@ -653,6 +669,8 @@ def test_yolo_skips_approval(tmp_path) -> None:
653669
"max_context_tokens": None,
654670
"token_usage": None,
655671
"message_id": None,
672+
"model_name": "scripted_echo",
673+
"provider_key": "scripted_provider",
656674
"plan_mode": False,
657675
"mcp_status": None,
658676
},
@@ -923,6 +941,8 @@ def test_display_block_todo(tmp_path) -> None:
923941
"max_context_tokens": None,
924942
"token_usage": None,
925943
"message_id": None,
944+
"model_name": "scripted_echo",
945+
"provider_key": "scripted_provider",
926946
"plan_mode": False,
927947
"mcp_status": None,
928948
},
@@ -963,6 +983,8 @@ def test_display_block_todo(tmp_path) -> None:
963983
"max_context_tokens": None,
964984
"token_usage": None,
965985
"message_id": None,
986+
"model_name": "scripted_echo",
987+
"provider_key": "scripted_provider",
966988
"plan_mode": False,
967989
"mcp_status": None,
968990
},
@@ -1046,6 +1068,8 @@ def test_tool_call_part_streaming(tmp_path) -> None:
10461068
"max_context_tokens": None,
10471069
"token_usage": None,
10481070
"message_id": None,
1071+
"model_name": "scripted_echo",
1072+
"provider_key": "scripted_provider",
10491073
"plan_mode": False,
10501074
"mcp_status": None,
10511075
},
@@ -1086,6 +1110,8 @@ def test_tool_call_part_streaming(tmp_path) -> None:
10861110
"max_context_tokens": None,
10871111
"token_usage": None,
10881112
"message_id": None,
1113+
"model_name": "scripted_echo",
1114+
"provider_key": "scripted_provider",
10891115
"plan_mode": False,
10901116
"mcp_status": None,
10911117
},
@@ -1159,6 +1185,8 @@ def test_default_agent_missing_tool(tmp_path) -> None:
11591185
"max_context_tokens": None,
11601186
"token_usage": None,
11611187
"message_id": None,
1188+
"model_name": "scripted_echo",
1189+
"provider_key": "scripted_provider",
11621190
"plan_mode": False,
11631191
"mcp_status": None,
11641192
},
@@ -1192,6 +1220,8 @@ def test_default_agent_missing_tool(tmp_path) -> None:
11921220
"max_context_tokens": None,
11931221
"token_usage": None,
11941222
"message_id": None,
1223+
"model_name": "scripted_echo",
1224+
"provider_key": "scripted_provider",
11951225
"plan_mode": False,
11961226
"mcp_status": None,
11971227
},
@@ -1279,6 +1309,8 @@ def test_custom_agent_exclude_tool(tmp_path) -> None:
12791309
"max_context_tokens": None,
12801310
"token_usage": None,
12811311
"message_id": None,
1312+
"model_name": "scripted_echo",
1313+
"provider_key": "scripted_provider",
12821314
"plan_mode": False,
12831315
"mcp_status": None,
12841316
},
@@ -1312,6 +1344,8 @@ def test_custom_agent_exclude_tool(tmp_path) -> None:
13121344
"max_context_tokens": None,
13131345
"token_usage": None,
13141346
"message_id": None,
1347+
"model_name": "scripted_echo",
1348+
"provider_key": "scripted_provider",
13151349
"plan_mode": False,
13161350
"mcp_status": None,
13171351
},

tests_e2e/test_wire_config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ def test_config_string(tmp_path) -> None:
7979
"max_context_tokens": None,
8080
"token_usage": None,
8181
"message_id": None,
82+
"model_name": "scripted_echo",
83+
"provider_key": "scripted_provider",
8284
"plan_mode": False,
8385
"mcp_status": None,
8486
},
@@ -169,6 +171,8 @@ def test_model_override(tmp_path) -> None:
169171
"max_context_tokens": None,
170172
"token_usage": None,
171173
"message_id": None,
174+
"model_name": "scripted_echo",
175+
"provider_key": "provider-b",
172176
"plan_mode": False,
173177
"mcp_status": None,
174178
},

tests_e2e/test_wire_prompt.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ def test_basic_prompt_events(tmp_path) -> None:
8989
"input_cache_creation": 0,
9090
},
9191
"message_id": "scripted-1",
92+
"model_name": "scripted_echo",
93+
"provider_key": "scripted_provider",
9294
"plan_mode": False,
9395
"mcp_status": None,
9496
},
@@ -293,6 +295,8 @@ def test_max_steps_reached(tmp_path) -> None:
293295
"max_context_tokens": None,
294296
"token_usage": None,
295297
"message_id": None,
298+
"model_name": "scripted_echo",
299+
"provider_key": "scripted_provider",
296300
"plan_mode": False,
297301
"mcp_status": None,
298302
},
@@ -377,6 +381,8 @@ def test_status_update_fields(tmp_path) -> None:
377381
"input_cache_creation": 0,
378382
},
379383
"message_id": "scripted-1",
384+
"model_name": "scripted_echo",
385+
"provider_key": "scripted_provider",
380386
"plan_mode": False,
381387
"mcp_status": None,
382388
},
@@ -475,6 +481,8 @@ def test_concurrent_prompt_error(tmp_path) -> None:
475481
"max_context_tokens": None,
476482
"token_usage": None,
477483
"message_id": None,
484+
"model_name": "scripted_echo",
485+
"provider_key": "scripted_provider",
478486
"plan_mode": False,
479487
"mcp_status": None,
480488
},
@@ -540,6 +548,8 @@ def test_concurrent_prompt_error(tmp_path) -> None:
540548
"max_context_tokens": None,
541549
"token_usage": None,
542550
"message_id": None,
551+
"model_name": "scripted_echo",
552+
"provider_key": "scripted_provider",
543553
"plan_mode": False,
544554
"mcp_status": None,
545555
},

tests_e2e/test_wire_protocol.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,8 @@ def handle_request(msg: dict[str, Any]) -> dict[str, Any]:
464464
"max_context_tokens": None,
465465
"token_usage": None,
466466
"message_id": None,
467+
"model_name": "scripted_echo",
468+
"provider_key": "scripted_provider",
467469
"plan_mode": False,
468470
"mcp_status": None,
469471
},
@@ -511,6 +513,8 @@ def handle_request(msg: dict[str, Any]) -> dict[str, Any]:
511513
"max_context_tokens": None,
512514
"token_usage": None,
513515
"message_id": None,
516+
"model_name": "scripted_echo",
517+
"provider_key": "scripted_provider",
514518
"plan_mode": False,
515519
"mcp_status": None,
516520
},
@@ -563,6 +567,8 @@ def test_prompt_without_initialize(tmp_path) -> None:
563567
"max_context_tokens": None,
564568
"token_usage": None,
565569
"message_id": None,
570+
"model_name": "scripted_echo",
571+
"provider_key": "scripted_provider",
566572
"plan_mode": False,
567573
"mcp_status": None,
568574
},

tests_e2e/test_wire_sessions.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ def test_clear_context_rotates(tmp_path) -> None:
220220
"max_context_tokens": 100000,
221221
"token_usage": None,
222222
"message_id": None,
223+
"model_name": None,
224+
"provider_key": None,
223225
"plan_mode": None,
224226
"mcp_status": None,
225227
},
@@ -305,6 +307,8 @@ def test_manual_compact(tmp_path) -> None:
305307
"max_context_tokens": 100000,
306308
"token_usage": None,
307309
"message_id": None,
310+
"model_name": None,
311+
"provider_key": None,
308312
"plan_mode": None,
309313
"mcp_status": None,
310314
},
@@ -461,6 +465,8 @@ def test_replay_streams_wire_history(tmp_path) -> None:
461465
"max_context_tokens": None,
462466
"token_usage": None,
463467
"message_id": None,
468+
"model_name": "scripted_echo",
469+
"provider_key": "scripted_provider",
464470
"plan_mode": False,
465471
"mcp_status": None,
466472
},
@@ -504,6 +510,8 @@ def test_replay_streams_wire_history(tmp_path) -> None:
504510
"max_context_tokens": None,
505511
"token_usage": None,
506512
"message_id": None,
513+
"model_name": "scripted_echo",
514+
"provider_key": "scripted_provider",
507515
"plan_mode": False,
508516
"mcp_status": None,
509517
},

tests_e2e/test_wire_skills_mcp.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ def test_skill_prompt_injects_skill_text(tmp_path) -> None:
116116
"max_context_tokens": None,
117117
"token_usage": None,
118118
"message_id": None,
119+
"model_name": "scripted_echo",
120+
"provider_key": "scripted_provider",
119121
"plan_mode": False,
120122
"mcp_status": None,
121123
},
@@ -207,6 +209,8 @@ def test_flow_skill(tmp_path) -> None:
207209
"max_context_tokens": None,
208210
"token_usage": None,
209211
"message_id": None,
212+
"model_name": "scripted_echo",
213+
"provider_key": "scripted_provider",
210214
"plan_mode": False,
211215
"mcp_status": None,
212216
},
@@ -305,6 +309,8 @@ def ping(text: str) -> str:
305309
"max_context_tokens": None,
306310
"token_usage": None,
307311
"message_id": None,
312+
"model_name": None,
313+
"provider_key": None,
308314
"plan_mode": None,
309315
"mcp_status": {
310316
"loading": True,
@@ -325,6 +331,8 @@ def ping(text: str) -> str:
325331
"max_context_tokens": None,
326332
"token_usage": None,
327333
"message_id": None,
334+
"model_name": None,
335+
"provider_key": None,
328336
"plan_mode": None,
329337
"mcp_status": {
330338
"loading": False,
@@ -361,6 +369,8 @@ def ping(text: str) -> str:
361369
"max_context_tokens": None,
362370
"token_usage": None,
363371
"message_id": None,
372+
"model_name": "scripted_echo",
373+
"provider_key": "scripted_provider",
364374
"plan_mode": False,
365375
"mcp_status": None,
366376
},
@@ -421,6 +431,8 @@ def ping(text: str) -> str:
421431
"max_context_tokens": None,
422432
"token_usage": None,
423433
"message_id": None,
434+
"model_name": "scripted_echo",
435+
"provider_key": "scripted_provider",
424436
"plan_mode": False,
425437
"mcp_status": None,
426438
},

0 commit comments

Comments
 (0)