Lane F R29 wave 0: the pose gate gains its subject — v6's first clip is in the game

R28's gate had no subject and SKIPPED with its reason printed (look.glb was published, verified,
sha1-proven off the depot — and nothing bound it). D bound it in wave 0. The gate is now
permanent, and flags_check is GREEN:

  ✓ default boot: look.glb BOUND — 6.5s, 64 tracks
  ✓ the glance REACHES THE GAME — peak 46 of 396 peds glancing · 0 console errors
  ✓ ?classic=1: look.glb NEVER FETCHED — the zero-fetch-delta covenant holds
  ✓ ?classic=1: glance inert at the source — 0 of 269 peds, AND the rng stream still draws

That last line is the design, and it is D's cleverness: THE DETERMINISM IS IN THE DRAW, NOT THE
OUTCOME. D takes from a dedicated glanceRng stream always — so the seeded sequence is identical
whether or not a clip exists — and only flips the flag when fleet.lookClip is real. Under
?classic the roll still happens, the flag never sets, nothing is fetched, the covenant stays
byte-identical. A behaviour added without touching a hash.

The gate asserts the clip's ABSENCE under classic, not merely "0 glancing" — because "0
glancing" alone passes on a fleet that failed to load at all. Present-on-default + absent-under-
classic is the pair a broken fleet cannot satisfy.

F'S OWN GATE CRASHED THE SUITE FIRST: the subject check used pg.goto() on a .glb, which starts a
download, aborts the navigation, and took flags_check down before one assertion ran. A gate that
DIES looking for its subject is worse than one that skips — it reports nothing at all and takes
the suite with it. Now it reads the disk. The vacuous-gate law has a sibling: a gate must survive
its own subject being absent.

No tag — wave 0 rides Spike 2's close, gated on John's footage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-17 20:15:20 +10:00
parent 10025d4082
commit a80ad55f47
2 changed files with 104 additions and 0 deletions

View File

@ -1413,3 +1413,37 @@ precious. **What ships is the sweep, and the tag says exactly that:**
**Filed for R29 (D, one opt):** `rigs.js` gains `look` the way it gates `sit`; F passes it from the shell.
Then the pose gate has a subject and F will run it. **v6 has not begun in-game — the tag must not say it
has.**
---
## 29. Round 29 wave 0 — **the pose gate gains its subject. v6's first clip is in the game.**
R28's gate had **no subject** and skipped with the reason printed. D bound the clip in wave 0, so the
gate binds too — and it is now permanent, not a hand-proof:
| assertion | result |
|---|---|
| default boot: `look.glb` **bound** | **6.5 s, 64 tracks** |
| **the glance reaches the game** | **peak 46 of 396 peds glancing** · 0 console errors |
| `?classic=1`: the clip | **never fetched** — the zero-fetch-delta covenant holds |
| `?classic=1`: the behaviour | **inert at the source** — 0 of 269 peds, **and the rng stream still draws** |
**That last row is the whole design, and it's D's cleverness worth naming: the determinism lives in the
DRAW, not the outcome.** D takes from a dedicated `glanceRng` stream *always* — so the seeded sequence is
identical whether or not a clip exists — and only flips the flag when `fleet.lookClip` is real. Under
`?classic` the roll still happens, the flag never sets, nothing is fetched, and the covenant is
byte-identical. Add a behaviour without touching a hash.
**And the gate asserts the clip's ABSENCE under classic, not just "0 glancing."** "0 glancing" alone
passes on a fleet that failed to load entirely — the vacuous form of this exact check. Present on the
default boot + absent under classic is the pair that can't both be satisfied by a broken fleet.
### ⚠ F's gate crashed the suite before it ran — worth recording
The first cut checked for its subject with `pg.goto('.../look.glb')`. Navigating to a `.glb` starts a
**download**, Playwright aborts the navigation, and the exception took `flags_check` down with it —
before a single assertion ran. **A gate that dies looking for its subject is worse than one that skips:
it doesn't report "no subject", it reports nothing at all, and takes the suite with it.** The
subject-presence check now reads the disk. *The vacuous-gate law has a sibling: a gate must survive its
own subject being absent.*
**No tag** — wave 0 rides Spike 2's close, which is gated on John's footage. Nothing else is owed on m3.

View File

@ -1369,6 +1369,75 @@ def smoke_tier2(p):
_gv_start(REAL_DB) # leave the box as we found it: the REAL POS serving
def smoke_glance(p):
"""R29 Spike 1 — THE POSE GATE, un-SKIPPED. v6's first thread, and the first clip to reach the game.
R28 wrote this gate and it had NO SUBJECT: `look.glb` was converted, verified, published, and
sha1-proven by fetching the bytes back off the depot and nothing bound it. Every check E ran was
real and passed; none could see that no consumer existed (a gate on the artifact cannot see the wire
the R17 pattern's fifth outing). It SKIPPED with its reason printed rather than report green over
nothing. D bound it in R29 wave 0, so the gate binds too.
Asserts the two things that matter, and they pull in opposite directions:
· the glance REACHES THE GAME peds actually enter the state, on the default boot;
· `?classic=1` never fetches the clip and never glances while STILL DRAWING THE ROLL, because
D takes from a dedicated rng stream always and only flips the flag when a clip exists. That is
what keeps the covenant byte-identical while the behaviour is gated: the determinism is in the
draw, not in the outcome. Asserting "0 glancing" alone would pass on a fleet that failed to load
so we assert the clip is ABSENT under classic and PRESENT on the default boot."""
head('SMOKE: the glance (R29 Spike 1 — v6\'s first clip in the game · classic still zero-fetch)')
b, pg, errs = new_page(p)
try:
# Check the subject on DISK, not via pg.goto — navigating to a .glb starts a download and
# Playwright aborts the navigation, which crashes the gate instead of skipping it. A gate that
# dies looking for its subject is worse than one that skips: it takes the suite with it.
if not os.path.exists(os.path.join(str(ROOT), 'web', 'models', 'peds', 'look.glb')):
print('· SKIP: look.glb not on disk — subject absent, nothing asserted (Lane E)'); return
boot(pg, 'plansrc=osm&town=redhill_godverse')
r = pg.evaluate("""async () => {
const P = window.PROCITY, c = P.citizens;
let peak = 0;
for (let i = 0; i < 9000; i++) { c.update(1/60);
if (i % 30 === 0) { const p = (c._activeList||[]).concat(c.roster||[]);
const g = p.filter(x => x && x.glance === true).length; if (g > peak) peak = g; } }
const p = (c._activeList||[]).concat(c.roster||[]);
return { bound: !!P.fleet.lookClip, dur: P.fleet.lookClip ? P.fleet.lookClip.duration : 0,
tracks: P.fleet.lookClip ? P.fleet.lookClip.tracks.length : 0,
peak, pop: p.length, rng: p.some(x => x && !!x.glanceRng) };
}""")
OK(f"default boot: look.glb BOUND — {r['dur']:.1f}s, {r['tracks']} tracks") \
if r['bound'] else FAIL('default boot: look.glb is NOT bound — the R28 gap is back')
OK(f"the glance REACHES THE GAME — peak {r['peak']} of {r['pop']} peds glancing") \
if r['peak'] > 0 else FAIL(f"no ped ever glanced across 9000 ticks ({r['pop']} peds) — clip bound, behaviour absent")
if errs: FAIL(f'glance: {len(errs)} console error(s); first: {errs[0][:120]}')
else: print(' · 0 console errors')
finally:
b.close()
b, pg, errs = new_page(p)
try:
boot(pg, 'classic=1')
r = pg.evaluate("""async () => {
const P = window.PROCITY, c = P.citizens;
let peak = 0;
for (let i = 0; i < 6000; i++) { c.update(1/60);
if (i % 40 === 0) { const p = (c._activeList||[]).concat(c.roster||[]);
const g = p.filter(x => x && x.glance === true).length; if (g > peak) peak = g; } }
const p = (c._activeList||[]).concat(c.roster||[]);
return { bound: !!P.fleet.lookClip, peak, pop: p.length, rng: p.some(x => x && !!x.glanceRng) };
}""")
# NOT bound is the assertion: ?classic must not fetch the clip at all (zero-fetch-delta covenant)
OK('?classic=1: look.glb NEVER FETCHED — the zero-fetch-delta covenant holds') \
if not r['bound'] else FAIL('?classic=1 FETCHED look.glb — the covenant is breached')
OK(f"?classic=1: glance inert at the source — 0 of {r['pop']} peds, and the rng stream still draws "
f"({r['rng']}) so determinism is in the DRAW, not the outcome") \
if (r['peak'] == 0 and r['rng']) \
else FAIL(f"?classic=1: peak {r['peak']} glancing / rng stream present={r['rng']}")
if errs: FAIL(f'glance/classic: {len(errs)} console error(s); first: {errs[0][:120]}')
finally:
b.close()
def smoke_continuity(p):
"""R15 identity continuity (ledger #3): the ped who queued/surged into a venue turns up in its crowd.
Exercises F's real relay end-to-end — VenueQueue.admitOne() → onAdmit → citizens.recordVenueEntry →
@ -1478,6 +1547,7 @@ def main():
smoke_audio(p) # R11 — audio house-law (silent-happy · pre-gesture · mute · noassets · leak)
smoke_gigs(p) # R12/13 — the district gig layer (schedule · band · crowd · budget · cover · noassets)
smoke_continuity(p) # R15 — identity continuity (the ped you followed is in the crowd · settled tris)
smoke_glance(p) # R29 — Spike 1: v6's first clip in the game (classic zero-fetch)
smoke_tier2(p) # R27 — the kill-the-server gate (charter law #1)
smoke_real_crate(p) # R24 — THE REAL CRATE (per-shop atlas identity · soft fall · no-op off the path)
finally: