feat: enrich task process timeline events

This commit is contained in:
2026-05-26 12:09:57 +08:00
parent 29d175222d
commit 362aae9b12
2 changed files with 84 additions and 14 deletions

View File

@ -109,6 +109,18 @@ def test_process_projection_maps_task_team_events(tmp_path: Path) -> None:
},
context_visible=False,
)
session.append_message(
"web:test",
run_id="main-run",
role="system",
event_type="task_acceptance_recorded",
event_payload={
"task_id": "task-1",
"attempt_index": 1,
"acceptance_type": "accept",
},
context_visible=False,
)
projection = SessionProcessProjector(session, run_store).project("web:test")
@ -123,6 +135,28 @@ def test_process_projection_maps_task_team_events(tmp_path: Path) -> None:
assert any(event["actor_name"] == "Evidence" for event in projection["events"])
assert any(run["session_id"] == "web:test" for run in projection["runs"])
planned_event = next(event for event in projection["events"] if event["kind"] == "task_planned")
assert planned_event["metadata"]["timeline_type"] == "plan"
assert planned_event["metadata"]["selected_skill_names"] == ["research-workflow"]
skill_event = next(event for event in projection["events"] if event["kind"] == "skill_selected")
assert skill_event["metadata"]["timeline_type"] == "skill"
assert skill_event["metadata"]["skill_names"] == ["research-workflow"]
team_event = next(event for event in projection["events"] if event["kind"] == "agent_team_created")
assert team_event["metadata"]["timeline_type"] == "agent_team"
assert team_event["metadata"]["team_run_ids"] == ["sub-run"]
node_event = next(event for event in projection["events"] if event["kind"] == "agent_finished")
assert node_event["metadata"]["timeline_type"] == "agent_progress"
evidence_event = next(event for event in projection["events"] if event["kind"] == "task_result_ready")
assert evidence_event["metadata"]["timeline_type"] == "result"
assert evidence_event["status"] == "done"
acceptance_event = next(event for event in projection["events"] if event["kind"] == "task_acceptance_recorded")
assert acceptance_event["metadata"]["timeline_type"] == "acceptance"
def test_process_projection_exposes_ephemeral_guidance_artifacts(tmp_path: Path) -> None:
session = SessionManager(tmp_path)