Repository navigation
refactor(artifact): materialize into one vp_run folder in the user's temp dir - #974
Merged
Merged
Conversation
fspy benchmarklinuxmacoswindows |
…temp dir
Every caller of `vt_materialized_artifact` paired `user_temp_dir(name)`
with `.at(dir)` and chose its own name, so `vp run` kept `fspy-<uid>`,
`vt_client_napi-<uid>` and `vp-schemas-<uid>` side by side in the temp
dir.
- `Materialize::at_user_temp_dir(prefix)` creates the user's own folder,
with the same checks as before, and materializes into it.
`user_temp_dir` is private.
- fspy, the napi client and the task graph's JSON Schema all use the
prefix `vp_run`, so everything `vp run` writes there goes in
`{temp}/vp_run-{uid}` on Unix, `{temp}\vp_run` on Windows. fspy's
`SpyImpl::init_in(dir)` becomes `init()`.
- The RFCs' `$schema` examples use the new folder.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wan9chi
force-pushed
the
claude/vp-run-temp-dir
branch
from
November 9, 2026 10:43
f18fca4 to
cd55770
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Every caller of
vt_materialized_artifactpaireduser_temp_dir(name)with.at(dir)and chose its own folder name, sovp runspread its helper files overfspy-<uid>,vt_client_napi-<uid>andvp-schemas-<uid>in the system temp dir. The user's own temp folder is part of how an artifact is materialized, so it belongs in the builder, with one name for everythingvp runwrites there.Changes
artifact.materialize().suffix(…).at_user_temp_dir(prefix)creates the folder that only the current user can write to, with the same checks as before, and materializes the file into it.user_temp_diris no longer public..at(dir)stays for tests that use their own folder.vp_run: fspy's preload library, macOS shell and coreutils and Windows DLL, the napi client, and the task graph's JSON Schema. They all go in{temp}/vp_run-{uid}on Unix and{temp}\vp_runon Windows. fspy'sSpyImpl::init_in(dir)becomesSpyImpl::init().$schemaexamples use the new folder.🤖 Generated with Claude Code
Note
Low Risk
Refactor of temp-dir layout and artifact API with unchanged Unix permission checks; only effect is new paths for materialized helpers and
$schemafile URLs.Overview
vp run now materializes every on-disk helper—fspy preload/interpose DLL, macOS shell binaries, the NAPI client, and JSON Schemas for
vp run --json—into one per-user temp folder (e.g./tmp/vp_run-1000on Linux) instead of separate trees likefspy-*,vt_client_napi-*, andvp-schemas-*.vt_materialized_artifactgainsmaterialize().at_user_temp_dir(prefix), which creates the same user-only temp directory checks as before and writes the content-addressed file there.user_temp_diris no longer public;SpyImpl::init_in(dir)is replaced bySpyImpl::init()everywhere. RFC examples and the changelog reflect the newvp_runpaths in$schemaURLs.Reviewed by Cursor Bugbot for commit cd55770. Bugbot is set up for automated code reviews on this repo. Configure here.