PROCITY/docs/shots
m3ultra 630042fbe1 Lane F R27: the kill-the-server gate GREEN — and two corrections to F's own gate
THE KILL-THE-SERVER GATE, permanent and green (charter law #1 made falsifiable):
  ARM 1 server-up   · gone[3] → 117 survivors · items[] 120, identity AND ORDER intact ·
                      COLLATERAL 0 · `gone` carries the atlas id verbatim (R26 fence)
  ARM 2 killed mid-session · enter 6ms vs control 6ms (Δ+0) · worst frame 204ms vs control
                      202ms (Δ+2) · room complete from files · ZERO game errors · EXACTLY 1
                      refused connection
  ARM 3 server-down boot   · pure tier 1, gone[0] · ZERO game errors · exactly 1 refusal
  SANDBOX · POST/PUT/PATCH/DELETE all 501 · a mint shop 404s
The subject exists only because G built `make-fixture`: production `gone` is EMPTY (0 sales
since 2026-07-01), so this gate would have passed vacuously forever on live data.

CORRECTION 1 — "ZERO console errors on server death" is UNACHIEVABLE, and F measured why. A
fetch to a dead host logs net::ERR_CONNECTION_REFUSED at the BROWSER level; no .catch() sees it.
To log zero the reader would have to know the server is dead WITHOUT ASKING. One refusal is the
irreducible cost of discovering death. F's replacement is strictly stronger: ZERO errors from
game code, and EXACTLY ONE refusal — which PROVES the circuit breaker. Without the breaker it is
one error per shop entry forever, and "zero" could never tell a working breaker from a broken
one because both fail it. F is the beneficiary of this change, so it is filed loudly in §27 for
Fable to ratify or overrule, not quietly relaxed.

CORRECTION 2 — F's frame assertion was weak: `< 250ms` is a number with no control. ARM 2 first
reported worst-frame 201ms and PASSED. But entering a shop rebuilds an interior, which costs the
same with or without a server — so an absolute threshold measures Lane C's room build, not the
network. The arm now walks the same shop with the breaker tripped and asserts the DELTA: 202ms
control, 204ms killed, Δ+2ms. The death cost nothing the room didn't. F told A the same thing one
round ago; a number without a control is not a measurement.

THE TOUR — 3 of 4 frames, and the 4th is FILED NOT SHIPPED. The real crate (the money shot: its
own 120 records, price stickers, the keeper), a mint crate (captioned MINT — plausible, not
real), the classic covenant. 0 page errors. The FRONTAGE frame does not land after three
attempts and F will not ship a frame that doesn't show what its caption claims: the cluster
primitive answers "where is this town's heart", which is not the question a frontage frame asks
— Red Hill's heart is 2 shops/60m and does not contain Monster Robot. Next: ask B, who owns the
frontage and shipped its mark this round. Re-deriving B's anchor in a tour script is how you get
three bad frames.

Also: the interior beauty shot came back with the HUD across it — R21's lesson, fixed on the
street frames only. Now every DOM overlay is hidden, not a guessed selector list.

NOT TAGGED. qa.sh --strict --matrix and the frontage frame remain.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 15:05:17 +10:00
..
before Lane F: integration — interiors + keepers + street peds + QA harness 2026-07-14 14:29:03 +10:00
laneA Lane A round 8: OSM to parity + a second town (Katoomba) — carried R7 brief, full 2026-07-15 04:15:12 +10:00
laneB Lane B round-9: v2 tram (?tram=1) + tour bookmarks + rain-drop polish 2026-07-15 11:09:41 +10:00
laneB_r4 Lane B round-4: closed facades (§3.5) + shot poses/letterbox + furniture GLB + novelty_record 2026-07-14 19:59:27 +10:00
laneC Lane C R13 (v3.0-beta, the district): band_room + rsl archetypes, 4-piece band, RY audit (?gigs=1) 2026-07-15 23:05:03 +10:00
laneD Lane D round 12: gig band + crowd + patronage surge (?gigs=1) 2026-07-15 19:49:07 +10:00
laneE Lane E R16 (v3.1): the drummer's sit clip — sit.glb produced + published 2026-07-16 12:37:27 +10:00
laneF Lane F R13 (v3.0-beta, the district): per-venue gig state + walla/applause + queue wiring; qa --strict 6/6 2026-07-16 00:22:03 +10:00
references Lane F: integration — interiors + keepers + street peds + QA harness 2026-07-14 14:29:03 +10:00
release_v3 Lane F R15 (v3.0): the release money-shot tour (ledger #4) + settled measurements (ledger #5) 2026-07-16 11:35:27 +10:00
release_v3_1 Lane F R16 (v3.1 THE FLIP) — close: default-boot tour + week soak + docs 2026-07-16 13:32:22 +10:00
release_v4 Lane F R22 (v4.0 — THE EPOCH CLOSE): the re-measure, the selector, the release tour, the tag 2026-07-16 22:32:32 +10:00
release_v5 Lane F R27: the kill-the-server gate GREEN — and two corrections to F's own gate 2026-07-17 15:05:17 +10:00
v1_tour Lane F R5 F1: v1.1 — re-capture interior shots on C1 re-map + E1 bake 2026-07-14 21:05:11 +10:00
v2_tour Lane F R10: verify giant-rig fix + re-shoot tour + re-frame night_crowd 2026-07-15 13:56:23 +10:00
v4_alpha Lane F R19 (v4.0-alpha close): the alpha gate + roads dimension + the first real-street money shot 2026-07-16 18:07:24 +10:00
v4_beta Lane F R21 (v4.0-beta close): the beta gate — tram dimension, the re-measure, the beta shot 2026-07-16 21:37:04 +10:00
contact.html Lane F R3: hours/closed-shops + manifest/rig-fleet/?noassets + --depot + QA harness fixes 2026-07-14 17:19:11 +10:00
README.md Lane F R10: verify giant-rig fix + re-shoot tour + re-frame night_crowd 2026-07-15 13:56:23 +10:00
v2_contact.html Lane F R10: verify giant-rig fix + re-shoot tour + re-frame night_crowd 2026-07-15 13:56:23 +10:00

docs/shots — visual regression + devlog reference tree

Owned by Lane F (each lane also drops its own acceptance screenshots here).

docs/shots/
  laneA/ … laneE/  … per-lane acceptance screenshots (each lane owns its dir)
  v1_tour/  … F: the v1 beauty shots (tools/shots.py) — frozen devlog set
  v2_tour/  … F: the v2 tour (tools/v2_tour.py) — the CURRENT canonical set (see below)
  before/   … F: last known-good capture, for side-by-side regression
  references/ … real-world reference photos named per shot
  v2_contact.html … generated contact sheet for the v2 tour

cd web && python3 -m http.server 8130 then tools/.venv/bin/python tools/v2_tour.py → 1280×720 PNGs in v2_tour/ + docs/shots/v2_contact.html.

file what it documents
street_noon.png main strip at midday
crossroads_busy.png busiest intersection, peds about
shopfront_detail.png verandah + sign + window up close
patronage_door.png streamed peds at an open shop's door (Lane D patronage)
rain_verandah.png rain outside a lit ?winmap video-shop window
rain_street.png wet strip, rain down the street
tram_stop.png the v2 tram paused at a shelter (?tram=1)
night_crowd.png VIDEO REGAL glowing amid CLOSED neighbours at night — the §3.5 hours story (clean-night boot). NB: no visible street crowd — see the note below.
browsers.png an occupied shop's interior life — a browser at the rack + the keeper at the counter, both human-sized (R10 giant-rig fix). figures human-sized vs door/fittings: yes.
dig_real.png riffling a real-cover record bin (?dig=1&stock=real)
katoomba_main.png plan-agnostic main strip (?plansrc=osm&town=katoomba)

Note on night_crowd (Lane F, R10)

Re-framed to the tighter, readable "one lit shop in a closed town" composition. It does not show a standing street crowd, and that is not a framing bug: Lane D's night patronage parks ducked-in patrons hidden inside the shop (they become the interior browsers seen in browsers.png), and seed 20261990's video shop sits on a low-traffic corner, so none gather visibly outside (tested: 0 patronage / 0 visible at night). The town's night life is the interior presence + the neon-vs-CLOSED mood. A visible outdoor night queue would need a new Lane-D mechanic (loiter-outside-the-openLate-shop) — parked for v3. The ~20 fps in night captures is a headless-chromium software-GL artifact (the scene is light, ~128 draws / 65k tris); on real hardware the night scene is not a perf concern.

Regression workflow

Before a risky change, snapshot the good state into before/, then re-run v2_tour.py and eyeball v2_contact.html. Process rule (R10): any shot containing a humanoid gets an explicit "figures human-sized relative to doors/fittings: yes" line in the progress note — actually look.