Repository navigation
fix(codex): emit injected hook timeouts in seconds - #16254
teamleaderleo wants to merge 8 commits into
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Codex interprets hook timeout values as seconds, so convert cmux's millisecond policy values with ceiling rounding. Preserve exact millisecond schemas for replay sanitization of saved launches. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
All contributors have signed the CLA ✍️ ✅ |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Repository guideline files applied to this review (3)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughCodex hook events and companions now store rendered timeout values separately from millisecond source values. Configuration generation and sanitizer matching use rendered values. Recognized historical schemas and tests cover legacy millisecond values and current second-based values. ChangesCodex hook timeout handling
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~12 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to Current hooks emit timeouts in seconds while saved millisecond-based configurations remain recognizable. No actionable merge-blocking risk was established; merge after normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change corrects timeout units and preserves replay of older saved launches without adding execution privileges in the inspected paths. Remaining uncertainty concerns native execution, timeout handling, and compatibility when reverting to an older version. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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 |
|
Passes: CI passes on CI passes on Written by |
Use the content-addressed paths used by cmux's current companion handlers so the timeout-unit regression exercises timeout matching rather than script-name validation. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Verification receipt for PR #16254 Head SHA: b570e9d Green scoped verification: |
|
Review at b570e9d, using a review subagent. Correct:
Left:
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Fixed in Left: the unrelated |
|
Audit confirmation against current origin/main 579a979: I added contributor metadata to the PR ( |
|
Review of 68308c2: the four tests now say |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Fixed in Left: no remaining review item. The unrelated inherited local |
|
Required checks are still red, so the merge decision is pending the CI fix; leaving this PR open. |
1 similar comment
|
Required checks are still red, so the merge decision is pending the CI fix; leaving this PR open. |
Codex hook configuration uses seconds for
hooks.*.timeout, but cmux was passing its millisecond delivery values directly. This change emits ceiling-rounded seconds for current injected hooks and keeps an explicit compatibility schema for replaying saved launch arguments that still contain the old millisecond values.Codex's source stores the field as
timeout_secand enforces it withDuration::from_secs: hook_config.rs and command_runner.rs.The regression commit
6aaf2b48b5bb3702adf1349f70cfc62511059982adds coverage for current second-based output and saved millisecond forms. The repair is4617fd275fb(merged with current main as959e2f0f3d6).Validation:
python3 scripts/verify-local.pypassed all 16 local checks, including Swift syntax. The focusedswift test --package-path Packages/macOS/CMUXAgentLaunch --filter CodexHookInjectionStrippingTestscommand was attempted on Linux but cannot compile this macOS package because the installed toolchain has noDarwinmodule; no native macOS build was run on this host.Changelog
Fixed injected Codex hook timeouts so Codex receives seconds while replay still strips legacy millisecond hook prefixes.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes injected Codex hook timeouts so Codex receives seconds instead of milliseconds.
timeout_seccontract via a newcodexTimeoutValuefield on injection events and companions.timeout=5}) and use content-addressed script paths to exercise timeout units rather than script-name validation.Written for commit 2003d63. Summary will update on new commits.
Summary by CodeRabbit