fix: prevent Codex/OpenCode headless hangs (#184, #183)#185
Merged
Nathan Schram (nathanschram) merged 5 commits intodevfrom Mar 22, 2026
Merged
fix: prevent Codex/OpenCode headless hangs (#184, #183)#185Nathan Schram (nathanschram) merged 5 commits intodevfrom
Nathan Schram (nathanschram) merged 5 commits intodevfrom
Conversation
Codex (#184): always pass --ask-for-approval in headless mode. Default to "never" (auto-approve all) so Codex never blocks on terminal input. Safe permission mode still uses "untrusted". OpenCode (#183): surface unsupported JSONL event types as visible Telegram warnings instead of silently dropping them. When msgspec DecodeError occurs, _extract_event_type() tries to parse the raw JSON for the type field. If extractable, a warning ActionEvent is emitted (visible in Telegram) instead of returning []. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…167, #168) Auto-continue (#167): detect when Claude Code exits after receiving tool results without processing them (last_event_type=user) and auto-resume the session. Configurable via [auto_continue] with enabled (default true) and max_retries (default 1). Sleeping-process stall (#168): CPU-active suppression now checks process_state; when main process is sleeping (state=S) but children are CPU-active (hung Bash tool), notifications fire. Stall message shows tool name ("Bash tool may be stuck") instead of generic text. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Zero-argument super() breaks in @DataClass(slots=True) on Python <3.14 because the __class__ cell references the pre-slot class. Use explicit JsonlSubprocessRunner.decode_error_events(self, ...) instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…wing - TestShouldAutoContinue._call: replace mixed-type dict with typed keyword args to satisfy ty's union narrowing - TestDecodeErrorEvents: add isinstance(ActionEvent) checks before accessing .message and .action attributes on union type Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ty has 55 pre-existing warnings across the codebase. These are not regressions — the same warnings exist on dev and master. Making ty non-blocking so it doesn't prevent PR merges while still reporting warnings for visibility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--ask-for-approvalin headless mode — defaults tonever(auto-approve all) so Codex never blocks on terminal input;safepermission mode still usesuntrustedquestion,permission)Fixes #183, fixes #184
Test plan
@untether_dev_bot: send task inut-dev:codexchat@untether_dev_bot: send task inut-dev:opencodechat🤖 Generated with Claude Code