fix: route code agent trace through short polling

This commit is contained in:
Codex
2026-05-24 13:57:20 +00:00
parent b4ef2e914e
commit 58ee2f7fcb
18 changed files with 804 additions and 1581 deletions
+4 -3
View File
@@ -1,6 +1,7 @@
const trustedLiveProviders = new Set(["openai-responses", "codex-cli", "codex-readonly-runner", "codex-stdio"]);
const trustedRunnerProviders = new Set(["codex-stdio"]);
const partialRunnerProviders = new Set(["codex-readonly-runner"]);
const trustedCodexSandboxes = new Set(["workspace-write", "danger-full-access"]);
const readonlySessionCapabilityLevels = new Set(["read-only-tools", "read-only-session-tools"]);
const untrustedProviderPattern = /\b(?:echo|mock|fixture|stub|sample)\b/iu;
const blockedCodeAgentUiLabels = new Set([
@@ -123,7 +124,7 @@ export function classifyCodexRunnerCapability(payload, { httpStatus = null } = {
if (runnerKind !== "codex-app-server-stdio-runner") missing.push("runner.kind=codex-app-server-stdio-runner");
if (capabilityLevel !== "long-lived-codex-stdio-session") missing.push("capabilityLevel=long-lived-codex-stdio-session");
if (!workspace) missing.push("workspace");
if (sandbox !== "workspace-write") missing.push("sandbox=workspace-write");
if (!trustedCodexSandboxes.has(sandbox)) missing.push("sandbox=workspace-write|danger-full-access");
if (sessionMode !== "codex-app-server-stdio-long-lived") missing.push("sessionMode=codex-app-server-stdio-long-lived");
if (implementationType !== "repo-owned-codex-app-server-stdio-session") missing.push("implementationType=repo-owned-codex-app-server-stdio-session");
if (!session) missing.push("session");
@@ -149,7 +150,7 @@ export function classifyCodexRunnerCapability(payload, { httpStatus = null } = {
level: "BLOCKED/controlled-readonly-long-lived-session",
blocker: "controlled-readonly-not-long-lived",
capabilityPass: false,
reason: "controlled-readonly-session-registry exposes a reusable read-only session, but it is not Codex stdio, workspace-write, or a full Code Agent capability pass."
reason: "controlled-readonly-session-registry exposes a reusable read-only session, but it is not Codex stdio, a write-capable sandbox, or a full Code Agent capability pass."
};
}
return {
@@ -177,7 +178,7 @@ export function classifyCodexRunnerCapability(payload, { httpStatus = null } = {
blocker: null,
capabilityPass: true,
longLivedSession: true,
reason: "completed repo-owned Codex stdio response includes reusable session, workspace-write sandbox, toolCalls, skills, runnerTrace, and a passed long-lived session gate"
reason: "completed repo-owned Codex stdio response includes reusable session, write-capable sandbox, toolCalls, skills, runnerTrace, and a passed long-lived session gate"
};
}