fix(coding-agent): add settled agent lifecycle event

closes #6363
This commit is contained in:
Mario Zechner
2026-07-09 12:40:52 +02:00
parent 050b8176bf
commit e9fa5a68a1
14 changed files with 272 additions and 32 deletions
@@ -253,6 +253,7 @@ describe("AgentSession retry and event characterization", () => {
"message_end:assistant",
"turn_end",
"agent_end",
"agent_settled",
]);
});
@@ -298,6 +299,7 @@ describe("AgentSession retry and event characterization", () => {
"message_end:assistant",
"turn_end",
"agent_end",
"agent_settled",
]);
});
@@ -328,7 +330,8 @@ describe("AgentSession retry and event characterization", () => {
await harness.session.prompt("hi");
expect(harness.events[harness.events.length - 1]?.type).toBe("agent_end");
expect(harness.eventsOfType("agent_end")).toHaveLength(1);
expect(harness.events[harness.events.length - 1]?.type).toBe("agent_settled");
});
it("emits agent_end for aborted runs and persists the aborted assistant message", async () => {
@@ -350,7 +353,8 @@ describe("AgentSession retry and event characterization", () => {
await harness.session.abort();
await promptPromise;
expect(harness.events[harness.events.length - 1]?.type).toBe("agent_end");
expect(harness.eventsOfType("agent_end")).toHaveLength(1);
expect(harness.events[harness.events.length - 1]?.type).toBe("agent_settled");
const lastMessage = harness.session.messages[harness.session.messages.length - 1];
expect(lastMessage?.role).toBe("assistant");
if (lastMessage?.role === "assistant") {