Repository navigation
Fix Codex Agent Chat Stop interrupt request - #15837
Conversation
|
Warning Review limit reachedNext included review available in 9 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
|
Dogfood build of cmux DEV pr-15837-1f1c718e.app The link opens this exact commit in the cmux dev menu bar app; the page waits until the build is ready. Builds run only while this PR has the Covers |
The test only exercised the two pure helpers, so it passed even with the
pre-fix `request("turn/interrupt", { threadId })` body restored: nothing
asserted on what stop() actually sends. It now injects a fake app server and
checks the params that reach it, covering the known-turn-id path, the late
turn/started path, the newer-generation guard, the no-op cases, and a rejected
interrupt surfacing as an error event instead of being swallowed.
Verified by restoring the pre-fix stop() body: the test fails with
`Interrupt must carry both protocol IDs: {"threadId":"thread-1"}`.
codexSetSharedServerForTest is the injection seam; stop() reads the shared
connection directly, so there was no way to drive it without one.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Review subagent on the exact diff: the fix itself is correct. Review:
Fixed (1f1c718):
Left:
Auto-merge on squash; it lands when CI is green. — Raindrop g2 🫧 |
|
Merge receipt for |
0e44675 test: bound remote bootstrap subprocess waits (manaflow-ai#15608) a192a14 fix(agent-chat): show ACP plans as structured step lists (manaflow-ai#15889) d7f59a3 ci: place attempt 2 like attempt 1, owned minis first (manaflow-ai#15406) d87c3be feat(agent-chat): register Cursor Agent as an ACP provider (manaflow-ai#15877) 1bd5083 fix: preserve Codex provider for workspace auto-naming (manaflow-ai#15635) 03e1245 fix(worktree-seed): budget each pattern and refuse dangling escapes (manaflow-ai#15860) 5c28fcb fix(agent-chat): stop a disposed ACP session from resurrecting its agent (manaflow-ai#15872) 11216d2 Fix Codex Agent Chat Stop interrupt request (manaflow-ai#15837) d6b8c15 ci: watch Unix cmux-tui installer changes (manaflow-ai#15874) 0fc35d6 feat(agent-chat): register goose as an ACP provider (manaflow-ai#15871) 7f27bfc cmux ssh: security hardening from the ssh audit (manaflow-ai#15768) 8599250 fix(agent-chat): launch gemini with --experimental-acp (manaflow-ai#15868) 849376a docs: classify contributor issue difficulty (manaflow-ai#15627) 2761cc9 Keep agents with live background work out of hibernation (manaflow-ai#15278) eae02a6 Cloud: rebake the devbox ladder with cmux-tui 02dac3c (manaflow-ai#15866) 7ed2f6b ci: bound open pull-request media revisions (manaflow-ai#15861) 13c417c Notify on SubagentStop in the notifications hook docs (manaflow-ai#15854) 5cfc6a6 fix: make cmux-tui installs immutable across release uploads (manaflow-ai#15859) 4eee1b1 fix: preserve longest Claude upstream cooldown (manaflow-ai#15856) 204b936 Pin Cloud panes to the daemon's terminal grid (manaflow-ai#15792) fc13b7c cmux-tui: fix the replay row scroll and stale hook fence tests breaking the full gate (manaflow-ai#15240) 87d66af Add Cloud to the menu bar extra and a main-menu Cloud menu (manaflow-ai#15822) # Conflicts: # .github/workflows/ci-failure-attribution.yml # .github/workflows/ci-macos.yml # .github/workflows/ci-owned-pool-rescue.yml # .github/workflows/ci-queue-janitor.yml # .github/workflows/ci.yml # .github/workflows/cmux-tui-artifacts.yml # .github/workflows/cmux-tui-build-package.yml # .github/workflows/cmux-tui-sdks.yml # .github/workflows/pr-media-prune.yml # .github/workflows/remote-daemon.yml
Fix Agent Chat Codex Stop so it interrupts the active turn with the protocol-required thread and turn IDs.
The adapter now waits for
turn/startedduring the startup window, guards the late ID against completed or later generations, and surfaces interrupt request failures in the chat. The regression test covers the complete request shape, missing-ID handling, and generation guard.Changelog
Fixed: Codex Agent Chat Stop now interrupts the active turn reliably.
Validation
bun test/codex-stop.test.tsbun test/codex-route.test.tsbun test test/catalog.test.tsgit diff --checkbun run checkcould not start because this fresh worktree has no installedbuntype definitions or React dependencies; fleet CI should provide the full check.Closes #15779. Related terminal Stop UI work: #15234.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes Codex Agent Chat Stop so it interrupts the active turn with the protocol-required thread and turn IDs.
turn/startedduring startup and sends the interrupt with both IDs instead of sending an incomplete request.codexAdapter.stop()against a fake server, covering the request shape, missing-ID handling, and generation guard.Closes #15779.
Written for commit 1f1c718. Summary will update on new commits.