Repository navigation
test(recovery): reliably interrupt a native Dev Application Plan - #149
Merged
Merged
Conversation
lweberru
requested review from
Breeless,
JoshSTACKIT,
LembDo and
dweezl
as code owners
October 24, 2026 08:28
9 of 13 tasks
10 of 13 tasks
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.
Fast Application Plans can complete before Cloud Foundry receives a stop request, so the previous observer cannot qualify a hosted interruption. Add an explicit Dev-only, exact-instance native Plan hold and an operator controller that safely prepares one unassigned warm Runner.
The worker requires the fixed route-free Dev CF context, matching app/space/order and a short expiry. It pauses only its spawned process group, confirms both the shell and native
tofu planare stopped, and automatically resumes after 30 seconds. Normal jobs, Apply, platform, drift, destroy and local execution cannot activate it. The controller rotates an atomically leased standby ticket, verifies broker readiness, and accepts only a fresh confirmed hold before stopping the exact Runner. Private intent receipts survive ambiguous responses; no State, native inputs, user authorization or release qualification gates change.Validation: complete app check; 63 platform State/broker tests; 68 PostgreSQL integration tests including the actual lease SQL; 27 recovery-controller tests; 10 focused worker/real OpenTofu tests covering shell-group hold, continuation and hard interruption; 63 operator CI guards; actionlint; native Plan/Apply contract and real Runner package regressions. English and German runbooks include repeatable preparation, cleanup and evidence limits.
This enables the next authorized disposable Dev drill. It does not itself prove hosted recovery or close #90, #95 or #140.