fix: 保留 completed agentMessage 事件 (#56)

Co-authored-by: Codex <codex@pikas.tech>
This commit is contained in:
Lyon
2026-06-02 07:09:12 +08:00
committed by GitHub
parent 5544db96fb
commit 719584e2ce
5 changed files with 52 additions and 16 deletions
+7 -2
View File
@@ -65,8 +65,13 @@ const selfTest: SelfTestCase = async (context) => {
assert.equal(finalMessageEnvelope.reply, "Final answer only.", "result reply should use the final completed agentMessage instead of concatenating progress deltas");
const finalMessageEvents = await client.get(`/api/v1/runs/${finalMessage.runId}/events?afterSeq=0&limit=100`) as { items?: Array<{ type: string; payload: unknown }> };
const assistantEvents = finalMessageEvents.items?.filter((event) => event.type === "assistant_message") ?? [];
assert.equal(assistantEvents.length, 1, "backend should emit one final assistant_message event");
assert.equal(eventPayload(assistantEvents[0] ?? { payload: {} }).text, "Final answer only.");
assert.equal(assistantEvents.length, 2, "backend should preserve each completed agentMessage as assistant_message event");
assert.equal(eventPayload(assistantEvents[0] ?? { payload: {} }).text, "I am checking the workspace.");
assert.equal(eventPayload(assistantEvents[0] ?? { payload: {} }).itemId, "msg_progress");
assert.equal(eventPayload(assistantEvents[0] ?? { payload: {} }).replyAuthority, false);
assert.equal(eventPayload(assistantEvents[1] ?? { payload: {} }).text, "Final answer only.");
assert.equal(eventPayload(assistantEvents[1] ?? { payload: {} }).itemId, "msg_final");
assert.equal(eventPayload(assistantEvents[1] ?? { payload: {} }).replyAuthority, true);
const staleResume = await createStaleThreadRun(client, context);
const staleResumeResult = await runOnce({