Repository navigation
fix(install): keep nested pnpm-workspace.yaml as a hard workspace boundary - #889
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthrough
ChangesWorkspace YAML hard-boundary and kind detection
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
Greptile SummaryThis PR replaces the walk-past-settings-only-yaml workspace-root discovery logic (which used
Confidence Score: 3/5The core simplification and node_gyp change are internally consistent, but removal of the bats test that validated workspace-sibling linkage after a member install leaves a meaningful regression risk unvalidated. The bats test that checked siblings stay linked after test/shared_workspace_lockfile_warm_path.bats and crates/aube/src/dirs.rs Important Files Changed
Reviews (5): Last reviewed commit: "fix(install): keep nested pnpm-workspace..." | Re-trigger Greptile |
00ca89f to
e449413
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/aube-manifest/src/workspace/config.rs`:
- Around line 812-814: Remove the typed_cache_insert call from the Ok(None)
branch in the WorkspaceConfig::load logic to avoid negative-caching absent
workspace yamls. The current code inserts WorkspaceConfig::default() into the
typed cache when no workspace yaml is found, which causes subsequent lookups to
return stale cached results even after a workspace yaml file is created. Only
cache WorkspaceConfig when an actual yaml file is successfully loaded, not when
it is absent.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: b9cb03de-9ec9-41de-8794-82d7c2ca9432
📒 Files selected for processing (4)
crates/aube-manifest/src/workspace.rscrates/aube-manifest/src/workspace/config.rscrates/aube/src/dirs.rscrates/aube/src/state.rs
✅ Files skipped from review due to trivial changes (1)
- crates/aube-manifest/src/workspace.rs
🚧 Files skipped from review as they are similar to previous changes (1)
- crates/aube/src/state.rs
|
I think the But I don't think we should change workspace-root discovery so a nested That distinction matters for aube's drop-in pnpm compatibility story. Treating a nested This comment was generated by Codex. |
…ndary Revert the settings-only walk-past discovery change: a member's own pnpm-workspace.yaml again anchors workspace-root discovery on that directory whether or not it declares a packages: list. pnpm treats a memberless pnpm-workspace.yaml as a single-package workspace (just the root package), not as a signal to ignore the file and keep walking to an enclosing workspace, so walking past it diverged from aube's drop-in pnpm compatibility. The per-member lockfile freshness fix already landed separately and is what keeps repeat installs warm under sharedWorkspaceLockfile=false, so no discovery divergence is needed. Drops WorkspaceYamlKind / workspace_yaml_kind, restores the empty node-gyp bootstrap marker, and removes the now-invalid walk-past regression test. Co-authored-by: Cursor <cursoragent@cursor.com>
0537dcd to
75e4632
Compare
|
Thanks @jdx — reverted the workspace-root discovery change so The per-member lockfile freshness fix you agreed with already landed on
The earlier CodeRabbit (negative-cache in This comment was generated by Claude. |
Summary
Per @jdx's review, this backs out the workspace-root discovery change so a nested
pnpm-workspace.yamlis once again a hard workspace boundary — matching pnpm. Apnpm-workspace.yamlwith nopackages:list configures a single-package workspace (just the root package); it does not mean "ignore this file and keep walking to an enclosing workspace". Treating a member's settings-only yaml as member-local config was a surprising divergence from aube's drop-in pnpm compatibility story.The per-member lockfile freshness fix — the part jdx agreed with — already landed on
mainvia #891. That install-state member-lockfile fingerprinting is what keeps repeat installs warm undersharedWorkspaceLockfile=false, so no discovery divergence is needed.Changes
aube(dirs):find_workspace_roottreats anypnpm-workspace.yamlas a hard boundary again — no walk-past, no settings-only fallback scan.aube-manifest: dropWorkspaceYamlKind/workspace_yaml_kindand theload_presentsplit; restoreWorkspaceConfig::load→load_uncached.aube(node-gyp bootstrap): restore the empty stub marker — anypnpm-workspace.yamlhalts discovery, so it no longer needs a dummypackages:glob.Test plan
cargo fmt --checkcargo clippy -p aube -p aube-manifest --all-targets -- -D warningscargo test -p aube find_workspace_root(8 passed)cargo test -p aube-manifest workspace(48 passed)Summary by CodeRabbit