diff --git a/docs/prs/2026-09-04-PR#23-follow-up-builds.md b/docs/prs/2026-09-04-PR#23-follow-up-builds.md index 2e948b3..00617ee 100644 --- a/docs/prs/2026-09-04-PR#23-follow-up-builds.md +++ b/docs/prs/2026-09-04-PR#23-follow-up-builds.md @@ -145,6 +145,8 @@ So that the invariant "nothing is scheduled during CLI runs or tests" holds: a C ##### Verified by - [FollowUpTriggerTest — "the trigger listens only while the watcher runs"](../../src/test/kotlin/de/hoennig/werkator/watcher/FollowUpTriggerTest.kt) +- [WatcherTest — "start arms the follow-up trigger before the recovery, stop disarms it"](../../src/test/kotlin/de/hoennig/werkator/watcher/WatcherTest.kt) +- [BuildCommandTest — "a green CLI build names the follow-up builds the server would run, and runs none"](../../src/test/kotlin/de/hoennig/werkator/commands/BuildCommandTest.kt) ## The Solution @@ -179,7 +181,9 @@ Three places stay in sync with the new key, as the invariant demands: the data c Implemented: allowed, and the reference recommends a self-contained deployment command that rebuilds what it ships (Werkbaum's `deploy-prod.sh` does). - **A predecessor that exists only on a branch.** The host's `afterSuccessOf: frontend` refers to a name the branch layer may rename. - Implemented: refused at start for the primary configuration; for a branch whose layer lacks the name, a warning once per branch and commit, and no follow-up. + Implemented: refused at start for the primary configuration; for a branch whose layer lacks the name, a warning once per branch and commit, and no follow-up + (verified by [ConfigLoaderTest — "a branch whose layer lacks the predecessor loses only its follow-up"](../../src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderTest.kt)). + An instance fragment checked by `init --apply` is not checked for its predecessor at all: the build it names may well live in the project config it is merged with, and the merged configuration is checked on every load anyway. ## Follow-up PRs