fix(agents): preserve accepted spawn terminal success

This commit is contained in:
clawsweeper
2026-05-22 00:39:07 +00:00
parent 2c045f75d1
commit 0f6d92b8cd
2 changed files with 20 additions and 4 deletions

View File

@@ -24,12 +24,14 @@ export function normalizeAcceptedSessionSpawnResult(result: unknown): AcceptedSe
return { runId, childSessionKey };
}
export function hasAcceptedSessionSpawn(
acceptedSessionSpawns?: readonly AcceptedSessionSpawn[],
): boolean {
export function hasAcceptedSessionSpawn(acceptedSessionSpawns?: readonly unknown[]): boolean {
return (acceptedSessionSpawns ?? []).some((spawn) => {
const record = asRecord(spawn);
if (!record) {
return false;
}
return Boolean(
normalizeOptionalString(spawn.runId) && normalizeOptionalString(spawn.childSessionKey),
normalizeOptionalString(record.runId) && normalizeOptionalString(record.childSessionKey),
);
});
}

View File

@@ -1883,6 +1883,20 @@ describe("runEmbeddedPiAgent incomplete-turn safety", () => {
expect(hasOutboundDeliveryEvidence({ acceptedSessionSpawns })).toBe(true);
});
it("ignores malformed accepted sessions_spawn delivery evidence", () => {
expect(
hasOutboundDeliveryEvidence({
acceptedSessionSpawns: [
null,
{
runId: "run-child",
childSessionKey: " ",
},
],
}),
).toBe(false);
});
it("leaves committed delivery plus tool errors to the tool-error payload path", () => {
const incompleteTurnText = resolveIncompleteTurnPayloadText({
payloadCount: 0,