PROCITY/tools
m3ultra 687d23f654 Lane F R15 (v3.0): identity continuity — wire D's tonight-roster into the crowd (ledger #3)
The ped you followed into a venue now turns up in its crowd. D published the seam in R14; F wires the three touches:
- interior_mode.js: crew.spawn({ roster: rosterOf(shop.id) }) — the front crowd slots become tonight's roster
- index.html: rosterOf=(id)=>citizens.tonightRoster(id) into interior_mode; onAdmit=(e)=>citizens.recordVenueEntry(id,e)
  on the queue (each admit relays into the roster); the clear is automatic on the existing setGig(id,false)
- flags_check.py: smoke_continuity — asserts the seam (crowd includes roster-cap, pedIndex in tonightRoster),
  empty-roster injects nobody (shell side of D's byte-identical law), + ledger #5 settled-tris honesty

Verified: 2 queue admits carry into the crowd; empty roster 0-injected; settled interior 71k->182k tris
(C's finding — interior gate is draws <=54, no violation). 0 console errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 11:19:19 +10:00
..
qa Lane F R15 (v3.0): retire the R12 single-venue alias (ledger #2) 2026-07-16 11:14:19 +10:00
flags_check.py Lane F R15 (v3.0): identity continuity — wire D's tonight-roster into the crowd (ledger #3) 2026-07-16 11:19:19 +10:00
qa.sh Lane D round 10: fix interior giant rigs + no-giants QA gate 2026-07-15 13:01:54 +10:00
shots.py Lane F R4 finalize: gate table all-6-green + v1 tour shots + interior-shot fix 2026-07-14 20:22:23 +10:00
soak.py Lane F R9 F3+F4: v2.0 tour (11 shots) + full-default & all-on soaks + docs freeze 2026-07-15 11:57:11 +10:00
v2_tour.py Lane F R10: verify giant-rig fix + re-shoot tour + re-frame night_crowd 2026-07-15 13:56:23 +10:00