e2e: seed the checkout from the live release bundle, not the stale canonical config - #921
Merged
Merged
Conversation
…onical checkout The canonical checkout's config.json/.env can drift far behind what's actually deployed (a release bumps config in the bundle dir, not in CANONICAL_DIR), so seeding the e2e checkout from canonical silently exercised and deployed a months-old config. Prefer the live bundle at the "current" symlink sibling of CANONICAL_DIR when it resolves, fall back to canonical when there's no live bundle, and warn loudly on either the fallback or a top-level-key mismatch between the two. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Closes #880.
The e2e checkout was seeded from the canonical checkout's config.json/.env, which drifts months behind the live bundle's — a
--keepdeploy silently dropped dashboard.energy, the view key, telegram, healthchecks, stratum TLS, control.enabled, tor.auto_heal and the LAN flags, twice, with no warning anywhere.Now: seed from the
currentsymlink sibling of CANONICAL_DIR when its config.json/.env exist, with a cheap top-level-key drift warning against canonical (deliberately not a config differ, per the issue); fall back to canonical with a loud warning when there is no live bundle. Canonical stays read-only — the never-git-touched invariant holds.Coverage at the harness's own tier: selftest cases pin the live-preferred/fallback decision (selftest: 148 passed → new cases included, 0 failed). The seeding runs on gouda over ssh, so the next release-cycle e2e run is the live proof.
Ponytail: one −4-line shrink declined — it would merge the seeded-from-live message with the stale-fallback warning, and the distinct diagnoses are the point.
🤖 Generated with Claude Code