Skip to content

fix(core): prune old installed app snapshots#44

Merged
peters merged 1 commit intomainfrom
fix/prune-installed-version-snapshots
Mar 31, 2026
Merged

fix(core): prune old installed app snapshots#44
peters merged 1 commit intomainfrom
fix/prune-installed-version-snapshots

Conversation

@peters
Copy link
Copy Markdown
Contributor

@peters peters commented Mar 31, 2026

Summary

  • wire installed-version retention through the core update manager, FFI, and .NET wrapper
  • prune stale app-* snapshots after successful updates while keeping one rollback snapshot by default
  • add regression coverage for retained and zero-retention update flows

Behavior Impact

  • successful updates now stop accumulating old app-* directories indefinitely
  • SurgeUpdateManager.ReleaseRetentionLimit now affects native update behavior instead of being ignored
  • default behavior retains app/ plus one previous installed version snapshot

Test Evidence

  • ./scripts/sync-surge-core-vendor.sh --check
  • ./scripts/check-version-sync.sh
  • cargo fmt --all -- --check
  • RUSTFLAGS="-D warnings" cargo test --workspace
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo clippy --workspace --lib --bins --examples -- -D warnings -D clippy::unwrap_used -D clippy::expect_used
  • cargo clippy --workspace --all-targets --all-features -- -D warnings -W clippy::pedantic
  • dotnet format dotnet/Surge.slnx --verify-no-changes
  • dotnet test dotnet/Surge.slnx --configuration Release

Migration Notes

  • none; existing stale app-* directories on already-updated installs will be pruned by the next successful update with this build

@peters peters merged commit 1182e99 into main Mar 31, 2026
11 checks passed
@peters peters deleted the fix/prune-installed-version-snapshots branch March 31, 2026 10:13
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.

1 participant