fix: make codex stdio command path executable

Merge PR #400.\n\nValidated with node --test internal/cloud/server.test.mjs internal/cloud/code-agent-session-registry.test.mjs, node scripts/code-agent-chat-smoke.mjs, node web/hwlab-cloud-web/scripts/check.mjs, and npm run check. No DEV deploy apply or rollout performed.
This commit is contained in:
Lyon
2026-05-24 06:38:50 +08:00
committed by GitHub
parent 3868be499e
commit 3df89fe151
5 changed files with 777 additions and 30 deletions
+5 -3
View File
@@ -313,7 +313,8 @@ async function runLocalContractSmoke() {
assert.equal(stdioPwd.codexStdioFeasibility.runtimeContract.codexHome.status, "ready");
assert.equal(stdioPwd.longLivedSessionGate.status, "pass");
assert.equal(stdioPwd.longLivedSessionGate.pass, true);
assert.ok(stdioPwd.toolCalls.some((call) => call.name === "codex" && call.status === "completed"));
assert.equal(stdioPwd.providerTrace.sidecarOnly, true);
assert.equal(stdioPwd.providerTrace.toolName, "workspace-sidecar");
assert.ok(stdioPwd.toolCalls.some((call) => call.name === "pwd" && call.status === "completed"));
assert.ok(stdioPwd.toolCalls.some((call) => call.name === "ls" && call.status === "completed"));
assert.ok(stdioPwd.toolCalls.some((call) => call.name === "skills.discover" && call.status === "completed"));
@@ -345,10 +346,11 @@ async function runLocalContractSmoke() {
assert.equal(stdioSecondTurn.provider, "codex-stdio");
assert.equal(stdioSecondTurn.sessionId, stdioPwd.sessionId);
assert.equal(stdioSecondTurn.session.sessionId, stdioPwd.session.sessionId);
assert.equal(stdioSecondTurn.session.threadId, "thread_code_agent_chat_smoke_stdio");
assert.equal(stdioSecondTurn.session.threadId, null);
assert.equal(stdioSecondTurn.sessionReuse.reused, true);
assert.equal(stdioSecondTurn.sessionReuse.turn, 2);
assert.ok(stdioSecondTurn.toolCalls.some((call) => call.name === "codex-reply" && call.status === "completed"));
assert.equal(stdioSecondTurn.providerTrace.sidecarOnly, true);
assert.equal(stdioSecondTurn.providerTrace.toolName, "workspace-sidecar");
assert.ok(stdioSecondTurn.toolCalls.some((call) => call.name === "ls" && call.status === "completed"));
assert.equal(classifyCodexRunnerCapability(stdioSecondTurn, { httpStatus: 200 }).capabilityPass, true);
assert.equal(JSON.stringify(stdioSecondTurn).includes("test-openai-key-material"), false);