Skip to content

fix: make runCommand maxBuffer explicit - #747

Open
sylvesterkaczmarek wants to merge 1 commit into
openai:mainfrom
sylvesterkaczmarek:fix/explicit-run-command-buffer
Open

sylvesterkaczmarek wants to merge 1 commit into
openai:mainfrom
sylvesterkaczmarek:fix/explicit-run-command-buffer

Conversation

@sylvesterkaczmarek

Copy link
Copy Markdown

Summary

Thanks for the detailed report in #744. This makes the intended buffering behaviour explicit instead of relying on an undefined option overriding Node's 1 MiB spawnSync default.

  • use an explicit 256 MiB default for runCommand
  • preserve smaller caller-provided maxBuffer values used by measurement gates
  • add regressions for output above 1 MiB and for explicit bounded output

Validation

  • npm test (93 passed)
  • node --test tests/process.test.mjs (4 passed)
  • npm run check-version
  • git diff --check

Fixes #744

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-06T22:10:13.287169Z 912e98d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Edo771977 pushed a commit to Edo771977/codex-plugin-cc that referenced this pull request Sep 17, 2026
Upstream PR openai#747 (sylvesterkaczmarek), two conflicts resolved.

runCommand() passed options.maxBuffer straight through, so an unset value
left Node's 1 MiB spawnSync default in place and a large `git diff` came back
truncated with ENOBUFS. It now defaults to an explicit 256 MiB, and an
explicit override still wins.

Conflicts: both are adjacency, not disagreement. In process.mjs the fork had
added `timeout`/`killSignal` on the lines around `maxBuffer`; the resolved
call keeps all three. In tests/process.test.mjs the PR's import line is
dropped (the fork's import block already names runCommand and
terminateProcessTree) and its two tests are appended.

Verified: node --check on both files; tests/process.test.mjs 13/13.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UXfvnjSC72HsM6EEPVt2Tg
Edo771977 pushed a commit to Edo771977/codex-plugin-cc that referenced this pull request Sep 17, 2026
Adds openai#731, openai#737, openai#747 and openai#763 to "Differences From Upstream", and notes in
Requirements that Node no longer has to be on the system PATH now that the
hooks go through scripts/run-node.sh (including CODEX_COMPANION_NODE for
pinning one).

Verified: full npm test 254/254.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UXfvnjSC72HsM6EEPVt2Tg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

runCommand sets maxBuffer: options.maxBuffer — the ENOBUFS fix from #179 works only because a spread undefined deletes Node's default

1 participant