From f63dfd12fceef0c8fe2df8c0af32e092bfce1718 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Wed, 16 Sep 2026 16:47:00 +0200 Subject: [PATCH] Rewrite the lens to one the fixture did not draw (L1 c3.s1.f1) The illegal-transition pin rewrote the recorded lens to Numen, but its fixture draws under uniform weights with a random world id, so about one run in eight the lens was already Numen and assert_ne! failed. The rewrite now picks Patina when the recorded lens is Numen and Numen otherwise, so the lens rewrite always differs from the row. Measured: at ef64008, 3 of 40 runs failed at controllers.rs:10230 with the recorded lens Numen; after the change, 120 of 120 runs pass. Test-only; no production code changes. Co-Authored-By: Claude Opus 5 --- crates/ghostlight/src/controllers.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/ghostlight/src/controllers.rs b/crates/ghostlight/src/controllers.rs index f907254..b22e52e 100644 --- a/crates/ghostlight/src/controllers.rs +++ b/crates/ghostlight/src/controllers.rs @@ -10136,7 +10136,8 @@ mod tests { } /// Row to row, a session is whole: from a persisted in-flight checkpoint, - /// a next checkpoint that differs only in the lens, only in the text (with + /// a next checkpoint that differs only in the lens (always another lens + /// than the recorded one), only in the text (with /// its invocation prepared under that text, so integrity passes and the /// refusal is progression's), or only in the ancestry is refused by the /// real store as an illegal transition. The unchanged checkpoint is @@ -10218,7 +10219,15 @@ mod tests { invocation, } }; - let lens = rewrite(&|session| session.lens = Lens::Numen); + // Another lens than the one the fixture drew, whichever that was: the + // fixture draws under uniform weights, so no fixed lens is safe. + let lens = rewrite(&|session| { + session.lens = if session.lens == Lens::Numen { + Lens::Patina + } else { + Lens::Numen + } + }); let text = with_texts( &checkpoint, "text a later build wrote",