Lane F R30 close-out: §30.5 results (7 verify legs, qa 6/6, the two harness bugs recorded) + F-progress — ledger #5 gates + sell routing held for the later F session per the brief
This commit is contained in:
parent
207bcffb54
commit
7b7227af73
@ -4,6 +4,46 @@
|
||||
|
||||
---
|
||||
|
||||
## Round 30 (v7.0-alpha — THE SAVE AND THE CRATE) — F: the contract first, then the save core + tomorrow
|
||||
|
||||
**The contract shipped before a line of implementation** (`53fcd3c`): `window.PROCITY.game =
|
||||
{ day, cash, collection[], townKey, save(), load(), sleep(), export(), import(json), wallet,
|
||||
recordFind(), removeFind() }` + the `procity-save/1` schema + the rotation law, published in
|
||||
LANE_F_NOTES §30 — and it worked exactly as the order intended: **B picked up §30.4 within the
|
||||
session** (venue.js "tonight" already reads `gigs.weekNight`; hud.js collection/SLEEP surface in
|
||||
flight), and C's already-published §9 asks (`type` stamped at buy, `title`/`artist`, removal via the
|
||||
game API, `wallet.sell` mirrored) are honoured in the entry shape.
|
||||
|
||||
**Then the layer** (`207bcff`): `web/js/world/save.js` (F-owned, new) — versioned localStorage save,
|
||||
THE DELTA LAW BY SHAPE (payload keys are exactly `[cash, collection, day, savedAt, schema, town]` —
|
||||
no world field can even be expressed); corrupted/foreign → **loud reject, raw stashed, fresh start,
|
||||
town boots**; save on sleep + beforeunload; export/import for moving machines. The wallet is a
|
||||
game-backed facade of C's exact v0 interface, so every proven seam (dig onBuy, shelf buy, cover,
|
||||
C's onSell) is unchanged — cash just became authoritative from the save. Buy seams record finds;
|
||||
`?classic=1`/`?game=0` never construct the layer — **ZERO Storage calls, instrumented, not trusted**.
|
||||
|
||||
**SLEEP=TOMORROW:** `sleep()` → day+1 → gig `weekNight` re-keys the EXISTING week schedule → wake at
|
||||
DAWN → save. Stock rotation is a runtime day salt on the EXISTING `stk-*` streams (2 marked seam
|
||||
lines in C's interiors/layout) + the dig's `binSeed` — **plan generation never sees `day`** (A's #6
|
||||
boundary). **Day 1 IS the pre-v7 town** (measured: `?game=0` stock fp == fresh-game day-1 fp), and
|
||||
**REAL-sourced crates never rotate** (Monster Robot fp identical across sleeps; the mint crate rotates).
|
||||
|
||||
**Two amendments filed loudly, with measurement, not slipped in:** gig night = **(day − 1) % 7**, not
|
||||
the brief's literal `day % 7` (day starts at 1 — the literal form flips a fresh boot's gigs off night 0,
|
||||
breaking the R13 cover/band gates before the player ever sleeps); and sleep saves AFTER incrementing
|
||||
(disk always carries the morning you woke into). Fable ratifies or overrules at review.
|
||||
|
||||
**Numbers:** 7 verify legs green in fresh no-store contexts — $12 dig buy == pricePaid recorded · sell
|
||||
halves credit/remove correctly · parody fp `3396372961 → 1818111125` across a sleep, byte-identical
|
||||
same-day AND across reboots · corrupt blob = 1 loud reject + stash + clean boot · `qa.sh --strict`
|
||||
**6 passed · 0 failed · 0 warn** with the game layer default-ON. Two F-harness bugs caught and fixed
|
||||
in the run (the post-sleep CLOSED door; a transform-based fingerprint that was vacuous over batched
|
||||
parody stock — hash the VERTEX data). Full record: `LANE_F_NOTES` §30.
|
||||
|
||||
**Held for the later F session (per the brief):** ledger #5 gates + the sell-card E-key routing.
|
||||
|
||||
---
|
||||
|
||||
## Round 26 (v5.0-beta — EVERY CRATE DIFFERENT) — F: the manifest consumed, the tolerance retired
|
||||
|
||||
**Every crate is different, and F measured it rather than taking G's word.** Not by entering one lucky
|
||||
|
||||
@ -1573,3 +1573,43 @@ fewer window.)
|
||||
· else shelf-buy) is F's and lands with the sell wiring pass, not this one.
|
||||
- **→ A (ledger #6):** the day salt rides `buildInterior` opts / `binSeed` only — grep-provable that
|
||||
`generatePlan*`/plan_osm never receive `day`.
|
||||
|
||||
### §30.5 RESULTS — implemented, measured, committed (`53fcd3c` contract · `207bcff` implementation)
|
||||
|
||||
All measured in FRESH browser contexts on a port-isolated no-store server (:8791 — the module-cache lesson),
|
||||
seed 20261990, plus `redhill_godverse?stock=real` for the crate legs. Seven legs, all green:
|
||||
|
||||
| leg | measured |
|
||||
|---|---|
|
||||
| the contract | default boot: `game` live — day 1 · cash **$191 == wallet.cash()** · collection 0 · townKey `synthetic/default@20261990` · weekNight 0 · full API incl. `wallet.sell` · 0 errors |
|
||||
| classic purity | `?classic=1` AND `?game=0`: `game === null`, **ZERO Storage-prototype calls** (instrumented before any page script, not trusted) · wallet $191 (C's v0) · 0 errors |
|
||||
| buy → collection | dig pull: **$12 debited**, entry `{type:'record', slotId:'20_-317#0', pricePaid:12, dayFound:1, title:'Sunburnt'}` — debit == pricePaid, shape == §30.1 |
|
||||
| sell seam halves | `wallet.sell` credited $3 (179→182) · `removeFind` true then **false on re-remove** · collection 0 |
|
||||
| sleep | `sleep()` → day 2 · **woke at DAWN (seg 0)** · weekNight 1 · localStorage payload keys exactly `[cash, collection, day, savedAt, schema, town]` — the delta law by shape, no world field |
|
||||
| rotation | parody shop vertex-data fp: day 1 `3396372961` → day 2 `1818111125` (**rotates**) · re-entry same day **byte-identical** · after reload **still identical** (cross-boot determinism) · `?game=0` fp **== day-1 fp** (the day-1 convention, measured) |
|
||||
| persistence | reload: day 2 · cash · collection 1 · weekNight 1 all restored (beforeunload save) · `export()` valid · `import()` of garbage + foreign schema **rejected loudly, state untouched**; real payload adopted + weekNight re-keyed |
|
||||
| corrupt save | pre-seeded bad blob → **1 loud reject**, raw stashed at `procity-save.rejected`, fresh start ($191, day 1), **town boots, 0 other errors** |
|
||||
| the crates | **REAL** (Monster Robot Party g:3962749): base `stock_godverse/3962749/`, fp **identical** day 1 → day 2 — real never rotates · **MINT** (Presents of Mind g:767): fp **rotates** — mint does |
|
||||
|
||||
`qa.sh --strict` **6 passed · 0 failed · 0 warn** over the landed layer — classic regression, default-boot
|
||||
gate, buy-v0, cover (paid + free), the R26 crate gate, R27 live gate, glance, no-giants: all green with the
|
||||
game layer default-ON.
|
||||
|
||||
**Two of F's own harness bugs caught by the run (recorded per house habit):**
|
||||
1. **The post-sleep CLOSED door.** First fp read after `sleep()` failed to enter the shop — because the
|
||||
town woke at DAWN and the shop was **correctly closed** (the hours law doing its job). The harness now
|
||||
sets midday before entering. A verify that forgets the world has rules will read the rules as bugs.
|
||||
2. **The fingerprint was vacuous for parody rooms.** It hashed mesh transforms + first UVs — but
|
||||
`batchRoom` merges parody stock into merged geometry at IDENTITY transform, so it hashed constants and
|
||||
reported "no rotation" over stock that rotates. (Mint showed through only because atlas UV rects land
|
||||
in the first 8 floats.) Fixed: hash the **vertex data** (position + uv arrays), where the day-salted
|
||||
picks/jitters actually live. The vacuous-measurement species, caught in F's own tool, same round it
|
||||
re-read the law to everyone else.
|
||||
|
||||
**Live cross-lane note (seen mid-session, not F's commit):** B picked up §30.4 within the hour —
|
||||
`venue.js` "tonight" is already a live getter off `PROCITY.gigs.weekNight`, and `hud.js` has the
|
||||
collection/SLEEP surface in flight. The contract-first order did exactly what it exists to do.
|
||||
|
||||
**Held / next session (per the brief):** ledger #5 gates (save/load determinism scripted session ·
|
||||
no-pump v0 · classic-purity localStorage gate · rotation determinism) — a LATER F session. The sell-card
|
||||
E-key routing (dig → sell → shelf priority, §9.4) rides the sell wiring pass alongside it.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user