openai / openai/codex-plugin-cc
stop-review-gate: signal-terminated review loses signal metadata in the fail-closed reason
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 33.3k
- Forks
- 2.3k
- PR merge metrics
- No merged PRs in 30d
Description
runStopReview reports a signal-terminated child as a generic failure, which leaves the blocked turn unexplained.
scripts/stop-review-gate-hook.mjs, line 120 on main:
if (result.status !== 0) {
const detail = String(result.stderr || result.stdout || "").trim();
When spawnSync returns status: null with a signal and both streams empty, detail is empty, so the hook emits the generic message. result.signal never appears in the file, and status and result.error are dropped. Existing stderr reporting is fine; the gap is termination metadata.
On macOS, rapid repeated launches correlated with children killed externally by SIGKILL. I could not confirm the source, and this gap does not depend on it. The child died before writing a job record, so instrumenting a copy was the only way to see the signal.
Ask: add signal=SIGKILL, else exit=<status>, to the reason. scripts/lib/process.mjs already formats failures that way.
Distinct from https://github.com/openai/codex-plugin-cc/issues/483 and https://github.com/openai/codex-plugin-cc/issues/452. Happy to send a PR.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in scripts/stop-review-gate-hook.mjs around line 120 and trace runStopReview's spawnSync result handling. Read scripts/lib/process.mjs for its existing failure formatting. Done means signal-terminated children report signal metadata, with exit status as the fallback, while existing stderr reporting remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 82/100