fix: preserve code agent sessions after turn failures
This commit is contained in:
@@ -502,7 +502,7 @@ export async function handleCodeAgentChatResultHttp(request, response, url, opti
|
||||
}
|
||||
if (synced.result && synced.result.status !== "running") {
|
||||
recordCodeAgentConversationFact(synced.result, options);
|
||||
await recordCodeAgentSessionOwner({ payload: synced.result, params: synced.result, options, status: synced.result.status === "completed" ? "active" : synced.result.status });
|
||||
await recordCodeAgentSessionOwner({ payload: synced.result, params: synced.result, options, status: codeAgentOwnerStatusForResult(synced.result) });
|
||||
sendJson(response, 200, compactCodeAgentChatResultPayload(synced.result, options));
|
||||
return;
|
||||
}
|
||||
@@ -1057,6 +1057,13 @@ async function recordCodeAgentSessionOwner({ payload = {}, params = {}, options
|
||||
}
|
||||
}
|
||||
|
||||
function codeAgentOwnerStatusForResult(result = {}) {
|
||||
if (result?.status === "completed") return "active";
|
||||
if (result?.status === "canceled" || result?.status === "cancelled") return "canceled";
|
||||
if (result?.agentRun && result?.reuseEligible !== false && result?.agentRun?.reuseEligible !== false) return "active";
|
||||
return result?.status ?? "active";
|
||||
}
|
||||
|
||||
async function claimWorkbenchWorkspaceTurn({ params = {}, options = {}, traceId, response } = {}) {
|
||||
const workspaceId = safeWorkspaceId(params.workspaceId);
|
||||
if (!workspaceId || !options.accessController?.store || !options.actor) return null;
|
||||
|
||||
Reference in New Issue
Block a user