fix(dev): isolate Cargo targets per worktree - #197
Conversation
Signed-off-by: John Tennant <jtennant@block.xyz>
Signed-off-by: John Tennant <jtennant@block.xyz>
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
APPROVE. Corrected the completed Engineering review artifact after re-checking the exact three-dot comparison 20c005a...0574251 and the supplied current changed-line anchors. The five changed files consistently isolate development Cargo targets by checkout while retaining the explicit override and shared Unix bundle target contract. No publishable or duplicate-suppressed finding remains. The supplied GitHub evidence was inspected and is structurally valid for the exact base and head; all ten supplied check runs succeeded, while required checks independently govern merge readiness.
Deterministic publication result: 0 blocking and 0 non-blocking inline finding(s) publishable; 0 duplicate(s) suppressed; 0 blocking screenshot-evidence requirement(s) in this review body.
Pending checks: 1 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
Summary
Berd currently directs interactive Cargo commands from every checkout on a machine to one target directory. Concurrent just dev, test, check, and Clippy processes then serialize on the Cargo artifact lock.
Default development Cargo output to each checkout's ignored src-tauri/target directory on Unix and Windows, while preserving BERD_TAURI_CARGO_TARGET_DIR as an explicit override. Unix just bundle and just bundle-debug retain the shared bundle target expected by existing packaging consumers.
Reviewer-reproducible examples
Resolve development and bundle targets separately:
The first prints the checkout's src-tauri/target. On macOS, the second prints ~/Library/Caches/berd-tauri/cargo-target.
An explicit override remains unchanged in either scope: