fix(install): disable global virtual store for Metro apps - #1297
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe default global virtual store exclusions now include ChangesGlobal virtual store compatibility
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The change extends the existing compatibility default for Metro, Expo, and React Native projects and documents the related configuration requirement; no actionable merge-blocking risk remains beyond normal checks and review. Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 |
Greptile SummaryThe PR expands the default global-virtual-store compatibility heuristic to Metro-based projects.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (2): Last reviewed commit: "test(install): satisfy shellcheck in GVS..." | Re-trigger Greptile |
Instruction counts
No instruction-count regression above 1%. Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run. Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.
|
Summary
expo,react-native, andmetroto the defaultdisableGlobalVirtualStoreForPackageslistwatchFoldersWhy
Metro's file map cannot resolve packages whose realpaths live in aube's global virtual store outside the project root. This affects standalone Metro projects as well as typical Expo and React Native apps. Per-project materialization keeps those realpaths inside the project and restores resolution.
Explicit
--enable-global-virtual-storecontinues to override the compatibility heuristic by design.Closes the compatibility gap reported in #1294.
Validation
cargo fmt --checkcargo clippy --all-targets -- -D warningsmise run test:bats test/nextjs_gvs_autodisable.batsAI-assisted — Tool: Codex; model: unavailable; version: unavailable.
Note
Low Risk
Default-only config change with existing heuristic; affects install layout/disk for Metro/Expo/RN projects but does not alter override flags or core linker logic.
Overview
Extends the default
disableGlobalVirtualStoreForPackageslist withexpo,react-native, andmetro, soaube installautomatically switches to per-project virtual-store materialization when any of those names appear in an importer’s deps (same warning/heuristic as Next/Nuxt/Parcel).Docs in
settings.tomlanddocs/settings/index.mdnow describe Metro’s symlink/watchFoldersconstraint and note that Expo/React Native usually depend on the framework package rather thanmetrodirectly.A new BATS case loops over all three packages and asserts the disable warning plus non-symlinked
node_modules/.aube/layout.Reviewed by Cursor Bugbot for commit f8e078d. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit
Bug Fixes
Documentation
Tests