fix: 统一 AgentRun threadId 上下文连续性
This commit is contained in:
@@ -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, {
|
||||
|
||||
Reference in New Issue
Block a user