Skip to content

fix(ce-code-review): collect matchable native terminal answers - #1660

Closed
tmchow wants to merge 2 commits into
mainfrom
tmchow/ce-code-review-terminal-collect-1d97
Closed

fix(ce-code-review): collect matchable native terminal answers#1660
tmchow wants to merge 2 commits into
mainfrom
tmchow/ce-code-review-terminal-collect-1d97

Conversation

@tmchow

@tmchow tmchow commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Why

ce-code-review failed closed on a Codex host that delivers reviewer finals as native terminal answers. The host returns a task name from spawn, then a later message that names that task and carries the result. It has no ID-addressed collector tool.

The old rule required a collector that accepts the launch identifier, blocks until terminal, and returns the outcome. It also forbade waiting for notifications. Literal runs treated those terminal answers as notifications and interrupted the reviewers.

This restates the collection condition. A launch is collected when a terminal result payload can be matched to it. A host-native terminal answer that names the launched work is that payload. A progress notification is not. An ID-addressed blocking collector remains one sufficient path. The complete-roster barrier, output validation, peer cleanup, and fail-closed path stay.

Fixes #1654

Scope

  • skills/ce-code-review/SKILL.md Stage 4 collection gate
  • skills/ce-code-review/references/dispatch-reviewers.md reviewer collection
  • skills/ce-code-review/references/finish-review.md validator collection
  • docs/solutions/skill-design/anti-poll-scope-and-async-subagent-dispatch.md recorded contract
  • tests/review-skill-contract.test.ts greppable pins
  • tests/skill-eval-cell/catalog.ts decision cells for the matched-answer path and the progress-notification regression

Out of scope: live Codex session reproduction with those exact collaboration tools. Agent-slot cleanup remains in #1649.

Tradeoffs

The ID-addressed collector stays as a sufficient path rather than being deleted. #1523 still needs fail-closed when the host only emits progress. Naming Codex or FINAL_ANSWER in the skill would encode a case. The condition plus one subordinated success shape covers that host without a catalog.

Blast Radius

Orchestrators that already had an ID-addressed blocking collector keep the same path. Orchestrators whose host delivers matchable terminal answers can now collect instead of failing closed. The #1523 print-mode failure still fails closed. ce-code-review SKILL.md stays under the 8KB Codex prompt bound with 707 bytes of headroom.

Verification

  • Contract pins failed on the pre-change prose (progress or status notification is not a terminal result missing) and pass after the restatement. bun test tests/review-skill-contract.test.ts tests/skill-eval-cell/catalog.test.ts: 106 pass, 0 fail.
  • bun run release:validate passed (0 agents, 35 skills, 0 MCP servers).
  • Full bun run test under parallel load: 3899 pass, 1 skip, 4 fail. The four failures were 20s timeouts in ce-code-review-mechanics, codex-dev, and ce-work-cross-model-integration. None touch collection prose. Isolated reruns of those tests passed (52ms, 53ms, 1858ms).
  • GitHub CI on this PR (9f935794): pr-title, test, windows-native, and Cursor Security Agent all succeeded.
  • In-session post-change decision cells on this harness (injected current SKILL.md):
    • ce-code-review/collect-matched-terminal-answerCOLLECTION: collect
    • ce-code-review/progress-notification-is-not-terminalCOLLECTION: fail-closed
  • Host CLIs claude, codex, and grok are not on PATH here, so bun run test:skill-eval-pack is skipped on this runner. Run those two rows on Claude and Codex before merge for the required cross-host eval.

Security Disclosure

No security-relevant changes.

Agent Disclosure

  • Model: Cursor · Grok 4.6
Open in Web Open in Cursor 

cursoragent and others added 2 commits September 9, 2026 15:28
Pin the collection contract that #1654 needs: a host-native terminal
answer that names the launched work is a terminal result, and a
progress notification is not. Current prose still requires an
ID-addressed blocking collector, so this test fails until the
condition is restated.

Co-authored-by: Trevin Chow <tmchow@users.noreply.github.com>
Restate reviewer and validator collection as matching a launch to a
terminal result payload. A host-native terminal answer that names the
launched work counts. A progress notification does not. An ID-addressed
blocking collector remains sufficient, not required.

Fixes #1654

Co-authored-by: Trevin Chow <tmchow@users.noreply.github.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 9, 2026

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-09T15:35:33.046492Z 9f93579 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.

@tmchow tmchow closed this Sep 10, 2026
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.

ce-code-review rejects Codex terminal-message collection without an ID-addressed collector

2 participants