fix: 统一 AgentRun threadId 上下文连续性

This commit is contained in:
Codex
2026-06-02 10:19:34 +08:00
parent da73598d60
commit 3c6edb73a1
12 changed files with 158 additions and 42 deletions
+12 -1
View File
@@ -245,7 +245,10 @@ export async function handleCodeAgentChat(params = {}, options = {}) {
if (error.runnerLimitations !== undefined) payload.runnerLimitations = error.runnerLimitations;
if (error.codexStdioFeasibility !== undefined) payload.codexStdioFeasibility = error.codexStdioFeasibility;
if (error.longLivedSessionGate !== undefined) payload.longLivedSessionGate = error.longLivedSessionGate;
if (error.conversationFacts !== undefined) {
const factPayload = shouldRecordErrorConversationFact(payload) ? attachConversationFacts(decorateChatSessionLifecycle(payload), sessionRegistry, { now: options.now }) : null;
if (factPayload?.conversationFacts) {
payload.conversationFacts = factPayload.conversationFacts;
} else if (error.conversationFacts !== undefined) {
payload.conversationFacts = error.conversationFacts;
} else if (typeof sessionRegistry.getConversationFacts === "function") {
payload.conversationFacts = sessionRegistry.getConversationFacts(conversationId);
@@ -263,6 +266,14 @@ export async function handleCodeAgentChat(params = {}, options = {}) {
}
}
function shouldRecordErrorConversationFact(payload = {}) {
if (!payload || typeof payload !== "object") return false;
if (payload.status === "running" || payload.status === "completed") return false;
if (payload.partialContext) return true;
if (payload.runnerTrace?.partialContext) return true;
return Boolean(payload.runnerTrace?.traceId && payload.sessionId && payload.conversationId);
}
function completedRunnerPayload({ base, runnerResult, messageId, now, sessionRegistry }) {
const completedAt = nowIso(now);
const blocker = structuredCompletionBlocker(runnerResult, {