Skip to content

Fix restart handoff convergence on main#153

Merged
peters merged 3 commits into
mainfrom
issue-143-restart-convergence
May 27, 2026
Merged

Fix restart handoff convergence on main#153
peters merged 3 commits into
mainfrom
issue-143-restart-convergence

Conversation

@peters
Copy link
Copy Markdown
Contributor

@peters peters commented May 27, 2026

Summary

  • Land the restart convergence proof fixes from the side branch onto main.
  • Preserve the first supervised child arguments so lifecycle flags can prove the replacement runtime, while restart loops drop one-shot lifecycle flags.
  • Mark self-supervised runtimes converged when the active runtime manifest matches the pending target version.
  • Accept a running active executable as current only when node-local update status has converged for that version.

Root Cause

The previous main line could leave .surge-update-status.json at pending_restart after the target child was already running. The newest targeted fixes existed on fix/restart-convergence-proof, but the later main beta line did not include them.

Validation

  • cargo test -p surge-supervisor handoff
  • cargo test -p surge-ffi self_supervisor_converges_pending_status_when_runtime_manifest_matches
  • cargo test -p surge-cli build_remote_process_verification_probe
  • ./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

peters added 3 commits May 27, 2026 19:23
Accept a running app process as current when it is executing the active app binary and the node-local Surge update status is converged for the selected version. The previous probe required transient --surge-first-run command-line proof, so package-current force installs could restart successfully and still fail verification after the supervisor switched to its normal watch command.

Validated with the focused surge-cli process verification tests and a live package-current force install against selsbakk-master.
@peters peters merged commit 21e1844 into main May 27, 2026
12 checks passed
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