Skip to content

fix: keep temporary copies on their volume - #434

Merged
janicduplessis merged 3 commits into
mainfrom
@janic/issue-431-volume-staging
Sep 6, 2026
Merged

fix: keep temporary copies on their volume#434
janicduplessis merged 3 commits into
mainfrom
@janic/issue-431-volume-staging

Conversation

@janicduplessis

@janicduplessis janicduplessis commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

Description

Large worktree and app copies on another volume can silently materialize in system temp and exhaust the internal disk. Staging stays outside Git working trees to preserve secret-file protection.

Solution

Select private, writable staging on the operation's volume for warming, app preparation, release swaps, and fingerprint checks. STIM_TMPDIR or machine tempDir can override placement. Doctor reports when that override or the build-cache layout requires full cross-volume copies. Failed swaps remove their staging directories.

Test plan

  • Added a macOS end-to-end test using a disposable APFS image: warm stays on the destination volume with both normal cloning and forced copy fallback; an override on the internal volume produces doctor findings.
  • Verified copy stages across two APFS volumes: automatic staging shares blocks; a cross-volume override makes full copies. Mobile builds were not tested.
  • All 3,575 unit tests and 66 end-to-end tests pass.

Fixes #431.

@janicduplessis
janicduplessis marked this pull request as ready for review September 6, 2026 05:37
@janicduplessis
janicduplessis merged commit 20232f3 into main Sep 6, 2026
5 checks passed
@janicduplessis
janicduplessis deleted the @janic/issue-431-volume-staging branch September 6, 2026 05:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stage worktree warm copies on the destination volume

1 participant