@@ -857,6 +857,22 @@ only ever written for a provisioning that actually succeeded.
857857*materialized into* `.xlings.json` — true before #531, and exactly the "declared
858858and nothing happened" state the change was made to end.
859859
860+ > **Confirmed harder than predicted, by implementing D12.** That test's fixture
861+ > declares `deps = ["make@4.4", "cmake@3.28"]`. The index carries make **4.3**
862+ > and cmake **4.4.2 / 4.0.2** — *neither version has ever existed*. The test
863+ > passed anyway, for the whole life of #531, because the provisioning did not
864+ > read its own result: xlings answered `E_NOT_FOUND` and mcpp called it done.
865+ >
866+ > So the repository's own most direct coverage of `[xlings] deps` was asserting
867+ > materialization on top of an install that never happened. D12's first catch,
868+ > before any user's, was this test. The fixture now names `ninja@1.12.1` —
869+ > already installed anywhere mcpp can build, so provisioning short-circuits and
870+ > the test still costs no download.
871+ >
872+ > ⭐ The general shape: **a fixture's values stop being arbitrary the moment
873+ > something starts checking them.** These two were free-form strings for as long
874+ > as the only assertion was "does this text reach that file".
875+
860876**D15**, in the order they can be written:
861877
8628781. **Knob parity, network-free.** `MCPP_NO_AUTO_INSTALL=1` with a declared dep
0 commit comments