Hotfix for a latent VCS-drift bug that v0.35.1's drift-gate narrowing exposed at scale. Drop-in upgrade from v0.35.x — no schema changes.
Bug Fixes
- Drift detection for VCS-connected workspaces now uses the same
VCSArchiveCache/git_fetchpath that regular VCS-poll runs use instead of the rawdownload_archiveprovider API. The raw API returns a tarball wrapped in a top-level<owner>-<repo>-<sha>/directory; the runner'schdir /workspaceafter extraction lands one level above the actual repo content and any workspacevar-files(e.g.envs/prod-us2.tfvars) resolve as missing. Pre-v0.35.1 this latent bug was masked because the wider_is_workspace_busygate suppressed almost every drift run; once v0.35.1 narrowed that gate, drift started firing on every drift-enabled workspace and failed immediately withGiven variables file <path> does not exist. The new code path goes throughgit_fetch.pyand produces a clean, root-level tarball — byte-identical to what every successful apply on these workspaces already uses.
Tests
- New
TestCreateDriftRunVcs::test_uses_vcs_archive_cache_not_raw_downloadpins the function's archive-acquisition path. Widening the busy-states gate without keeping the cache path now fails CI immediately. - New
TestCreateDriftRunVcs::test_raw_download_archive_not_referencedis a source-introspection guard — the drift detection module is forbidden from importing_download_archive. Re-importing it accidentally fails CI.
Status
Stable — drop-in upgrade from v0.35.x. No schema changes, no API breaks.
Full Changelog: v0.35.1...v0.35.2