sail up reconciles the container's sail surface on every start - #175
Merged
Conversation
A container that slept through the server's boot sweep kept its stale helper scripts until the next sail-launched agent session. sail up is where a project comes back to life, so it now runs the same idempotent ContainerSailSetup reconcile — mount force-refresh plus marker-gated script rewrite — on both the starting and already-running branches. Best-effort: a wedged container warns and the start still succeeds.
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.
Why
Follow-up to #174: the boot sweep refreshes helper scripts only in containers running at server start. A stopped project started later with
sail upand used purely interactively kept the stale actor-basedspecscript indefinitely. (The ambientbox.credentialitself was never affected — it rides the shared mount.)What
sail upnow runsContainerSailSetup.ensureInstalledon both branches (starting and already-running) — the same idempotent seam provisioning, recovery, dispatch, and the boot sweep share. Force-refreshes the socket mount (healing stranded inodes) and rewrites marker-stale scripts. Best-effort: a wedged container warns, the start never fails.Verification
UpCommandTest: the reconcile probes markers + refreshes the device; a wedged container never blocks the startmvn -Pintegration -Dsail.it.requireIncus=false clean verifygreen