GATE B, STRESS. Phase 2, 29 July 2026. RE RUN and EXTENDED until every item the protocol names for this phase has actually been executed. WHY THERE IS A SECOND FILE. gate-b-results.txt recorded three profiles: the 8 and 32 way promotion race, load, and soak. The protocol's Phase 2 stress list names FIVE items, and the general Gate B text names three more beyond that. The missing ones were not recorded as gaps anywhere, and a gate reporting PASS while a third of its list was never attempted is the same class of problem as an instrument that passes by measuring nothing. Instrument: tools/verify/stress, now carrying seven profiles. Database profiles target missionmatch_staging on M4:5432, and the tool still REFUSES to run against a database named missionmatch. ================================================================================ EVERY PROFILE'S POSITIVE CONTROL RAN FIRST AND FAILED AS REQUIRED ================================================================================ RACE, n=8 control elected 8 of 8 winners, DETECTED. counted: winners=1 RACE, n=32 control elected 32 of 32 winners, DETECTED. counted: winners=1 LOAD, database control target p95 of 1ns, DETECTED at 9.609ms counted samples=33156 rps=1105 p95=9.595ms p99=11.466ms errors=0 SOAK, 30 MINUTES, THE FIRST ONE THIS TOOL HAS EVER BEEN ABLE TO REPORT counted samples=2,028,801 rps=1127 p95=8.931ms p99=10.503ms errors=0 target p95 under 300ms: MET by a factor of 33 TWO MILLION SAMPLES IS THE PROOF OF FINDING D16. The reporting step used an insertion sort, O(n squared), so a run of this size could never complete. The only soak ever executed before today was SIXTY SECONDS at 60,000 samples. The protocol has always asked for thirty minutes, so its soak requirement had never once been measurable. Every number was collected correctly and none of it was printable. Fixed with sort.Slice; this is the first counted 30 minute run. VOLUME, new a 200 page PWS, 198,676 bytes control an unmeetable 1ns time cap, DETECTED counted 400 chunks, 200 tables, 1600 rate rows in 19ms, 2 MB allocated caps 20s and 512 MB: both met by a wide margin CONCURRENT EXTRACT, new 25 documents of 60 pages, 59,433 bytes each control planted retention left 2,060 KB reachable, past the 512 KB cap, DETECTED counted retained heap growth 138 KB against a 512 KB cap MEMORY BOUNDED means nothing is still held after the work finishes, so the measurement is live heap growth above a baseline after a forced collection. SCRUB FLOOD, new 1000 checks over 500 rounds, four private payload shapes and one public control a genuinely allowable payload planted into the private set was counted 100 times, proving the misroute counter and its assertion both fire, DETECTED counted 0 private misroutes, 0 public false refusals BOTH NUMBERS MATTER: zero misroutes is also the score of a gate that refuses everything. AUTHENTICATED HTTP LOAD, new, and this closes an item open across TWO phase closes Real logins through the real login flow, real cookies, real CSRF tokens with the Origin header the middleware requires, through nginx and TLS, as seeded recruiter and manager. control A an unmeetable 1ns p95, DETECTED at 53.067ms control B run flat out rather than paced: 17,314 of 429, ZERO of 500, and the SERVED SHARE assertion fired, "only 6 percent of requests were SERVED, so this run does not count" counted samples=25,924 over 10 minutes at the protocol's 50 rps p95=37.352ms p99=67.644ms 2xx=25,924 429=0 other4xx=0 5xx=0 transport=0 ONE HUNDRED PERCENT SERVED. Targets p95 under 300ms, p99 under 800ms, zero 5xx: MET. THESE ARE NOT COMPARABLE TO THE DATABASE PROFILE'S NUMBERS and must never be quoted interchangeably. One measures psql, the other measures a user. ================================================================================ THE FAILURE DRILL, ALL THREE PARTS, NOW COMPLETE ================================================================================ 1. NGINX FAILOVER WITH ZERO CLIENT VISIBLE 5xx. Measured for real rather than rehearsed: incident D6 took one of two production nodes down for 1 minute 59 seconds under live traffic, nginx failed over on one upstream refusal, and ZERO 5xx were served across 112 requests. Stronger evidence than a drill. 2. SATURATE THE RATE LIMITED ROUTES AND OBSERVE 429, NEVER 500. Observed in http-load control B above: 17,314 responses of 429 and ZERO of 500 under deliberate saturation. 3. KILL THE PHASE'S WORKER BINARY MID BATCH AND RERUN, COMPLETES WITHOUT DUPLICATES. Run 29 July: five documents reset to pending, expected counts recorded first the worker was SIGKILLed 1.2 seconds in, having decided 3 of the 5 the rerun completed the remaining 2 AFTER: all five 'done', ZERO still pending DUPLICATE ASSERTION: zero chunks sharing a document, a content hash AND a section label, which is the actual duplication signature. The one same hash pair that exists is in 05_PWS_amended and is LEGITIMATE: the literal text "Warranty Program. N/A" appears twice in the source document, and an identical span producing an identical fingerprint is the citation hash working, not a duplicate write. WHY THIS MATTERS FOR THIS PHASE: extraction writes CHUNKS and a chunk is a citation. A duplicate citation is worse than a missing one, because it reads as corroboration. ================================================================================ FOUR OF MY OWN INSTRUMENTS WERE BROKEN, AND THAT IS THE MOST USEFUL PART OF THIS FILE ================================================================================ CONCURRENT EXTRACT measured cumulative allocation, which is identical whether results are retained or discarded, and its control branch returned an error UNCONDITIONALLY so it reported success while detecting nothing. Then its cap was 4096 KB, a number chosen from nothing, which the real leak came in under. Both fixed: live heap after a forced collection, a cap derived from a measured run and a measured leak. SCRUB FLOOD laundered payload CONTENT while keeping provenance, then blamed the gate for correctly allowing a payload whose only private element had been stripped. Privacy here has two sources, provenance and markers, and a control that conflates them measures neither. AUTHENTICATED HTTP LOAD first ran flat out, saturated the limiter, and computed its percentiles almost entirely from 429 responses while reporting PASS. It also mislabelled every one of those 429s as the entitlement gate in its own output, when all eight routes answer 200 for those roles unthrottled. Fixed by pacing to the protocol's stated 50 rps and by asserting a minimum served share. THE SOAK could never report at protocol scale, finding D16, described above. ================================================================================ NOTHING IS OUTSTANDING IN GATE B ================================================================================ Every Phase 2 stress item and every general Gate B item has now been executed with a control that failed first. The one caveat carried forward is a statement about comparability rather than a gap: the database load and soak numbers and the authenticated HTTP numbers measure different things and are recorded separately for that reason.