Repository navigation
Conversation
|
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: 📥 CommitsReviewing files that changed from the base of the PR and between 82741b46819bcc34cdbd7fbcbc919df02249f96d and af9ecb1. 📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughFolder workspaces and project-group headers now use host resolution that accounts for runtime host stamps and connection IDs. This changes where connectionless, stamped groups and their folder workspaces appear in host sections. Tests cover stamped groups under their owner host, folder workspaces under the stamped group host, and unstamped group headers across host runs. Priority: ➖ Normal Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to Stamped project groups and their folder workspaces now appear under the server that owns them. Unstamped headers keep their previous behavior. The change is a small sidebar placement fix with tests, and no merge-blocking risk was found. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Description checkExplanation The description clearly explains the bug, focused fix, scope, preserved behavior, testing, and linked issue. However, it does not follow the repository template and omits required sections such as ELI5, What Changed, Why, Visual Proof or N/A, Testing checkboxes, Review, Notes, Agent skill upstream boundary, and Checklist. Resolution Restructure the description using the repository template. Add the required headings and complete each section. Include visual proof or write
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 |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
- Folder-workspace placement now matches the visibility filter.
getFolderWorkspaceHostId(src/renderer/src/components/sidebar/folder-workspace-host-id.ts) delegates togetFolderWorkspaceExecutionHostIdForRows, so anexecutionHostId-first stamp (including a connectionless runtime stamp) decides the section instead of falling back to the focused host. - Repo-less project-group headers get a host. New
getHeaderHostId(src/renderer/src/components/sidebar/host-section-rows.ts) places a group header with an explicit runtime/SSH stamp on its owner host, whileUngrouped,All,Pinned, and groups with neither stamp stay pending-buffered (returnnull); repo headers still resolve throughgetRepoHostId. - Regression tests added.
host-section-rows.runtime-group.test.tspins three cases with exact row arrays; all three fail against the pre-fix buffering path, so they are real coverage rather than theatre. - Scope is broader than the title.
project-group-catalog.tsstamps every fetched group viaprojectGroupWithFetchedOwner(local →local, SSH →ssh:<conn>, runtime →runtime:<env>), so in practice nearly every group header becomes host-owned now, not only runtime-stamped ones. The direction is correct — a local group no longer duplicates under remote host sections — and the unstamped branch is reserved for synthetic/transient groups.
Verification: the four host-section/filter files pass (33 tests), the broader folder-workspace/reveal/host-label/grouping set passes (71 tests), the full src/renderer/src/components/sidebar suite passes (2698 tests), tsc -p config/tsconfig.tc.web.json is clean, and check-changed-code-quality.mjs reports 0 new findings.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
A connectionless executionHostId is the group's host. Placement still fell back to the focused server, so the group moved when focus changed. Visibility already honored the stamp. Fixes stablyai#13944
The host-section cases skipped the project-grouping flags the sidebar passes, so they could pass without the filtered view placing the group under its owner. Co-authored-by: Cursor <cursoragent@cursor.com>
82741b4 to
af9ecb1
Compare
Sync update (
|
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This run re-reviewed the incremental delta on the PR branch (test-only changes since the prior pullfrog review; production resolver code is unchanged).
- Added
renderedHostFiltertest helper matching the production call. It passesvisibleWorkspaceHostIdsandpreferProjectGrouping: true, mirroringuse-section-rows.ts:220, so the new cases exercise the path the sidebar actually uses rather than the bare resolver. - Added a filtered-both-hosts placement case. Confirms a connectionless runtime-stamped group stays under its owner host when both hosts are visible. This is real coverage: with
getHeaderHostIdreverted, the unbuffered group duplicates under every host run, so the assertion fails against the pre-fix code. - Added an unfiltered-projects-view case. Confirms host headers are not inserted when
preferProjectGroupingis set and no host filter is active — it exercises the early pass-through return athost-section-rows.ts:205-211. This one is a guard, not bug coverage (it passes before and after the fix).
This directly addresses the prior greptile review thread on the test helper; that thread is now resolved. The new test file passes (5/5) and pnpm tc:web is clean.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏

Description
A project group that belongs to one Orca server was rendered under whichever server was focused. Runtime-owned groups usually carry
executionHostIdand no SSHconnectionId. The sidebar filter already treated that stamp as the group's host, but placement did not, so the group (and its folder workspaces) jumped to the focused server.Focused fix
In:
executionHostId.Out:
Preserves
Ungrouped, All, and Pinned headers, and any project group with neither stamp, stay in the pending buffer and are still copied onto each following host run. A header that already has a repo still follows that repo's host. SSH folder workspaces still follow their connection.
Evidence
node node_modules/vitest/vitest.mjs run --config config/vitest.config.ts --cache false src/renderer/src/components/sidebar/host-section-rows.runtime-group.test.ts src/renderer/src/components/sidebar/host-section-rows.test.tsThe new file pins three cases: a connectionless runtime group stays on its owner while another server is focused, a connectionless folder workspace follows that stamp, and an unstamped group header stays buffered across host runs. The existing host-section tests still pass.
User-regression-tradeoffs
A runtime-stamped group no longer follows the focused server. That is the reported bug. Groups with no host stamp keep the previous shared-header behavior.
Fixes #13944