Fix CodeRabbit auth in local Codex worktrees - #8
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Disabled knowledge base sources:
📝 WalkthroughWalkthroughThe review skill now resolves trusted host executables, validates versions, and requires host-sandbox execution. It limits credential-store use and directs authentication only after an authentication error. It also adds separate guidance for remote environments. Review scope commands now use Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Comment |
Summary
-texamples to the current CLI scope flags1.1.2Before → After
Before: The published skill ran
coderabbit auth status --agentinside Codex's Seatbelt sandbox before every review. The sandbox could not see the credential already stored for the host CLI, so the skill classified an authenticated user as logged out and opened another browser login—often once per worktree or loop.After: Local Codex resolves a trusted host-installed CLI and runs the requested review directly through a command-scoped sandbox escalation. The CLI reads its existing host credential itself. Authentication is checked only after an explicit review auth failure, and only the user can initiate login.
Codex Cloud is called out separately because it cannot reuse a Mac host Keychain.
Root cause
A Codex Git worktree keeps the same host home and credential store. The failing boundary is the command sandbox, not the worktree: the exact same CLI and cwd reported
authenticated:falseinside Seatbelt andauthenticated:truethrough command-scoped host execution.Network access alone does not cross that credential boundary. Extracting the Keychain token would cross it unsafely, so this change keeps the token entirely inside the trusted CLI process.
Safety boundaries
Validation
review --helpconfirmed--committed,--uncommitted, and--include-untrackedquick_validate.py: passedjq empty: passedgit diff --check: passed--agent --uncommitted: 0 issuesSource and related work
Summary by CodeRabbit