Conversation
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe change makes Suggested reviewers: Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to No unresolved issue is established; the change is ready to merge after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
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 |
|
@coderabbitai review |
|
✅ Action performedReview finished.
|
|
|
Regarding CodeRabbit’s docstring-coverage warning: this changes a private lookup helper and adds a regression test, not a public API. The inline comment documents the membership-precedence rule; adding docstrings solely to meet the generated coverage percentage would not clarify this fix. |
2269665 to
2b4e44b
Compare
|
The regression fixture now uses the checkout path returned by Git, matching the real create/open flow on macOS and Windows. Full local checks pass again. Please review the updated head. @coderabbitai review |
2b4e44b to
f77b753
Compare
|
✅ Action performedReview finished.
|
|
@coderabbitai review |
|
✅ Action performedReview finished.
|
|
@coderabbitai review |
|
|
JJLiebig
left a comment
There was a problem hiding this comment.
Validated locally on two machines, lgtm
Merged upstream/master b88e811..2836010. Zero conflicts: all six overlapping files split into disjoint regions (mouse.rs navigator scrollbar/row-click work, state.rs navigator fields and close-tab confirmation, config/model.rs clear_pane keybinding, config-reference.json keys.clear_pane, AGENTS.md detection policy, tests/mod.rs mod close_tab). No src/protocol/wire.rs change, so no protocol conflict. Notable upstream fixes absorbed: - distinguish agent completion from startup and session changes (herdrdev#4457) - honor droid scrollback clear requests in panes (herdrdev#4432) - refresh forwarded ssh agents after reconnect (herdrdev#4443) - index navigator tabs and panes per endpoint (herdrdev#4426) - preserve session layouts across shutdown and restore failures (herdrdev#4400) - confirm closing the last tab in the tui (herdrdev#4409) - reject terminal-less attach before starting a session (herdrdev#4395) - drain event subscriptions and report history loss (herdrdev#4225) - preserve explicit worktree workspace membership (herdrdev#4301) - keep workspace navigation visible in terminal theme (herdrdev#4408) - preserve delayed mouse reports with confirmed keyboard input (herdrdev#4247) - detect codex status with custom interrupt keys (herdrdev#4196) - detect kiro status from live controls and osc signals (herdrdev#4372) - recover the cursor during animated redraws (herdrdev#4404) - stabilize windows cursor redraws and settle deadlines (herdrdev#4389) - show every agent and terminal in the go to picker (herdrdev#4384) - add configurable pane screen and scrollback clearing (herdrdev#4383) - reveal selected agent when cycling the sidebar (herdrdev#4355) - preserve request ids in socket error responses (herdrdev#4353) - enable ssh compression for remote connections (herdrdev#4340) - correct grok activity detection with custom or disabled osc signals (herdrdev#4337) - preserve windows mouse capture during refresh (herdrdev#4319)
Issue
After a shell in a repository workspace enters a linked checkout, opening that worktree can turn the repository workspace into the worktree's workspace. Removing the worktree then closes the repository workspace and kills processes in its other tabs.
Problem
Checkout lookup accepted a shell's current directory even when the workspace was explicitly assigned to a different checkout. It could select the parent before the actual worktree workspace and overwrite the parent's assignment.
How did we fix it?
Herdr now matches an explicitly assigned workspace only to its assigned checkout. Workspaces without an explicit assignment retain directory-based discovery, including discovery from subdirectories.
Verification
Before the fix, an isolated CLI reproduction closed the parent and killed a second-tab process. Afterward, opening selected the real child, removing the parent was rejected, and removing the child preserved the parent's process. A regression test also failed before and passed afterward.
Local
just check, Linux CI, and macOS CI passed. Both review bots completed without code findings. Windows CI failed in an unrelated remote-bridge test because its descendant PID file was missing.refs #4293