Repository navigation
Support controlled package replacement for enrolled executors - #436
Merged
Merged
Conversation
added 5 commits
October 14, 2026 10:22
ctfbruce
marked this pull request as ready for review
October 14, 2026 08:37
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.
Enrolled managed executors previously refused every package version change, even after a clean shutdown. Add
dbl service install --replace-package PATHto select a verified full package while preserving the existing executor identity, service account, configuration, database, output and capability profile.Replacement requires a cleanly stopped, disabled executor and explicit
--start=false --enable=false. The selected executor checks database compatibility before the unit changes. The installed record is committed last; repeating the same operation recovers an interrupted unit update, while ordinary install, start and resume refuse a mismatched definition. The new CLI can also select a retained older package when it supports the current state. No schema migration or service restart is implicit.Ordinary enrolled reinstalls retain their package directory and service account; interrupted counter-mode changes remain retryable. Document stage-only installation, offline backups, explicit activation and rollback without rewinding consumed state. This contributes to #168; signed release publication and the remaining acceptance criteria are separate.
Service race tests and the full CLI race suite pass, including target-path refusal, backward package selection, interruption recovery and same-package capability changes. The CLI test manager now reports its loaded unit path, correcting the enrollment-test failures from the first full CI run. An installed Linux amd64 TLS-enrolled executor passed old-to-new-to-old package replacement, explicit resume and three fresh TEST measurements. Identity, credentials, state bytes, ownership and previous output were preserved; a modified unit was refused. This used unsigned development packages with compatible schemas. All 17 checks pass on
28988587, includingrequired. The installed rehearsal used130daa0; the only subsequent change is the CLI test fixture, with production code and documentation unchanged.