Skip to content
docsv0.44.3

HouseWrites

What a test run wrote into the house, by content — the witness beside `test`'s declaration (greenhouse decisions/0523). `test` declares an `ephemeral` mutation: the operation itself keeps nothing (no result cache, baselines outside the house). But it runs the app's OWN tests, which are code this operation does not control, and a test can write the house's tree. So the claim is checked, not trusted: the tree is digested before and after the run, and every path whose bytes changed, appeared or vanished is reported. A same-bytes rewrite is not a write — measured on the skeleton (evidence/1057): its boot tests rewrite `config/app.php` with the bytes it already had. The house's closure reads the report: a test run that wrote the house counts as a change to it, whatever the declaration says. Left out: `vendor/`, `node_modules/`, `.git/` (not the house's own tree), the rehearsal copies and boot candidates under `var/trials/` and `var/boot-candidates/` (copies the house never boots from; 754 of 845 files of evidence/1050's house), and the session's own log and run leases under `var/` (the leg that called the test writes those itself).

HouseWrites::digest()

public function digest(string $root): ?array

The house's tree as relative path → sha256 of its bytes, or null when it cannot be read whole.

Parameters

Parameters of digest()
NameTypeDescription
$rootstring

HouseWrites::between()

public function between(?array $before, ?array $after): ?array

The paths whose bytes changed, appeared or vanished between two digests — or null when either is unknown.

Parameters

Parameters of between()
NameTypeDescription
$before(array<string, string> | null)
$after(array<string, string> | null)