Conversation
…ad of three env vars
…erived cache token
… learns to read it
…d the Worker gets type-checked
… from what it publishes
… sphere and the body's
… the body, not the module
…caps stop drawing Earth's
…body's own sphere
… not the filesystem's
…e on their own sphere
…n it was measured on
… stops being a statement
…laring nothing else
… the store they live in
… the runner's cwd
…s, not one the box happens to hold Two tests asked the real data store whether their own premise held, so both were statements about this machine rather than about the code. On a checkout with no store they were the only failures in 2715. The claim in each case is that the gate asks the BODY before it asks the disk, and any file that exists proves that — which file is incidental. So each test now writes its own source: `layer_is_buildable` takes one as a parameter, and `cap_sources` reads a module constant, so that one is monkeypatched the way `TestTheCoastlineIsABodyFact` already does it. The sibling was the worse half. `test_south_forced_snow_needs_no_dataset_and_ bakes_no_coastline` PASSED without the store, because a missing shapefile and a zero opacity produce the same empty answer — a test that cannot tell its own subject from an absent input, green on both machines and meaning nothing on one. It also repairs a mutation case. "the layer gate asks the filesystem before it asks the body" mutates the gate to `not in surface_layers and not source.exists()`, which is only WRONG while a source exists — so on a data-free checkout the harness would have scored it caught while the guard it names never ran. Verified both ways now.
…e ones the runner did
The probe tested `{"raw", "work"} & set(value.parts)` against the ABSOLUTE path,
so it was asking a question about the machine as well as about the repository.
CI's checkout sits two levels under a directory the runner names `work`, which
made every checkout-resident constant match: `config/`, `web/public`,
`blender/renders`, and `paths.ROOT` itself. Sixteen offenders, all of them
correct code, on a branch that was green on the machine it was written on.
Taking the path relative to the checkout first asks the same question of the
same values with the machine's naming left out of the answer. The catch set is
otherwise unchanged.
This is the fourth time this one seam has been blind, and the first time in the
false-POSITIVE direction — the three before it were spellings the scan had never
been taught to look for. The lesson generalises past the predicate: a guard that
reads its environment fails where it has never been run, so the reproduction has
to BE that environment rather than resemble it. The new test copies `pipeline/`
into a `work/` directory and runs the probe there; a symlink cannot do it,
because `paths.ROOT` resolves and the link would land back on this checkout.
Its control is inline rather than a sibling, because an empty offender list is
the pass condition and a copytree the probe could not import would produce
exactly that. Planting an offender forces the reported path to be the copy's.
`tests/test_paths.py` joins MUTABLE_ROOTS on `tests/test_hero_variants.py`'s
principle: the predicate lives in the test module, so it is both guard and
subject and there is nowhere else to break it. The case that breaks it is
invisible from this checkout, which is the difficulty in one line.
…ve shebangs, and the dead suppressions
…thing was testing
…e never suppressing anything
…measured against a real globe
…ng is not one a keyboard makes
…he card a click opens
…et, and a panel takes the band
…orage figure had two copies
…the one this module knows
…r, not from Earth's
…s holding up five guards
…cap and the tiles agree about the ground
…, so a nodata sentinel stops reading as ground
…across the seam, so a real boundary along 180° survives
…ed it as their unratified body build their own
… fact about the bucket rather than about the bytes
…r, so shared geometry code changing its mind reaches what is already on disk
… keeps its own because its bytes never moved
…es have aged past pnpm's window
…ts bundled GDAL is proven not to move a byte we write
… the worker's trigger names what it actually imports, and deleting a superseded archive is recorded as one-way
…e #7851 is still open
Alchez
marked this pull request as ready for review
August 12, 2026 05:11
…am stops having two names
… and the tile cliff it found gets its upstream report
…re ground keeps its silence
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.
No description provided.