pi-openai-codex-compat 0.0.20 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.0.21 - 2026-10-02
6
+
7
+ ### Fixed
8
+
9
+ - Keep `exec_command` errors inside the tool box when a provider failure,
10
+ cancellation, or execution error supplies no result metadata.
11
+
5
12
  ## 0.0.20 - 2026-10-02
6
13
 
7
14
  ### Fixed
package/README.md CHANGED
@@ -693,6 +693,9 @@ prompt reload, native compaction, and persisted-session resume against Codex.
693
693
  SDK tests verify Responses Lite
694
694
  WebSocket history, prewarming, continuation, and the built-in read tool.
695
695
  CLI tests also execute the built-in read tool after resume.
696
+ Terminal tests check interrupted `exec_command` error framing in regular and
697
+ fullscreen mode. A live terminal case blocks a real Codex command call before
698
+ execution and checks that Pi's metadata-free error retains its tool box.
696
699
  Six additional CLI cases replay grammar-tool history with `gpt-5.6-luna` in both
697
700
  response formats. They cover foreign-provider history, different-model history,
698
701
  and calls previously recorded as function calls.
@@ -278,10 +278,12 @@ export default function registerCommandTools(
278
278
  },
279
279
  renderResult(result, options, theme, context) {
280
280
  if (!options.isPartial) {
281
- if (result.details.sessionId === undefined) {
281
+ // Pi's provider, abort, and execution errors can omit tool-owned details.
282
+ const sessionId = result.details?.sessionId;
283
+ if (sessionId === undefined) {
282
284
  Reflect.deleteProperty(context.state, "sessionId");
283
285
  } else {
284
- context.state.sessionId = result.details.sessionId;
286
+ context.state.sessionId = sessionId;
285
287
  }
286
288
  }
287
289
  return renderCommandResult(result, options, theme, context, resolveToolBackground);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-openai-codex-compat",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "OpenAI Codex compatibility for Pi with native compaction, fast mode, and Codex-optimized capabilities",
5
5
  "keywords": [
6
6
  "pi-package"
@@ -36,7 +36,7 @@
36
36
  "scripts": {
37
37
  "check": "hk check --all --check",
38
38
  "test": "node --test --test-concurrency=4 test/*.test.ts",
39
- "test:live:codex": "PI_CODEX_LIVE_TEST=1 node --test --test-concurrency=1 test/codex-host.live.test.ts test/codex-cli.live.test.ts",
39
+ "test:live:codex": "PI_CODEX_LIVE_TEST=1 node --test --test-concurrency=1 test/codex-host.live.test.ts test/codex-cli.live.test.ts test/command-render-cli.test.ts",
40
40
  "pack:dry": "npm pack --dry-run --allow-directory=all",
41
41
  "release": "node scripts/release.ts",
42
42
  "fmt": "oxfmt",