Skip to content

fix: fall back to an untracked spawn when fspy cannot start - #752

Open
lifeiscontent wants to merge 5 commits into
voidzero-dev:mainfrom
lifeiscontent:fix/vt-untracked-spawn-fallback
Open

lifeiscontent wants to merge 5 commits into
voidzero-dev:mainfrom
lifeiscontent:fix/vt-untracked-spawn-fallback

Conversation

@lifeiscontent

@lifeiscontent lifeiscontent commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Part of #700, split out of #701. Initializing fspy panicked if its preload library couldn't be written to the temp dir, and any failed tracked spawn failed the task.

Changes

  • SPY_IMPL now holds an io::Result. fspy::Command::spawn returns an init failure as SpawnError::Injection instead of panicking.
  • If the tracked spawn fails, vt reruns the command without tracking and sets ChildOutcome::fspy_unavailable. The run isn't cached, and the summary shows "Not cached: file access tracking failed to start".
  • The cache-not-updated flags in summary.rs are grouped into a SuccessDetails struct, which keeps spawn_outcome_from_execution under clippy's argument limit.

This doesn't depend on #701 or #753.

@lifeiscontent
lifeiscontent force-pushed the fix/vt-untracked-spawn-fallback branch from b61e289 to 1ef7ac7 Compare September 23, 2026 23:50
@lifeiscontent
lifeiscontent force-pushed the fix/vt-untracked-spawn-fallback branch 2 times, most recently from bae3882 to 3842cbf Compare September 23, 2026 23:56
Initializing fspy panicked if the preload library couldn't be written
to the temp dir. Return the error from fspy::Command::spawn instead,
and have vt rerun the command without tracking. The task still runs,
isn't cached, and the summary says file access tracking failed to
start.
@lifeiscontent
lifeiscontent force-pushed the fix/vt-untracked-spawn-fallback branch from 3842cbf to 398f824 Compare September 24, 2026 10:38
@lifeiscontent

Copy link
Copy Markdown
Contributor Author

Merged current main and resolved the summary conflict while keeping the new read/write caching behavior from #913. Added a regression test for the tracking-unavailable summary reason.

The vt and fspy tests pass on macOS, as do all 175 enabled end-to-end snapshots. Clippy is clean for both crates. This remains independent of #701 and #753. Could someone review it and approve the workflow runs?

@wan9chi wan9chi added the linux backend The new Linux file tracking backend label Nov 4, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

linux backend The new Linux file tracking backend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants