Trust · operations

Operations

Live availability for the server and for the tanks, every incident since the project started, the append-only receipt chain behind the controls that caused them, the state copies and restore drills, and the delivery record. Trust overview →

Live figures refresh every 15 seconds in place. Last updated .

100%
Server availability
0% unscheduled downtime
100%
Tank availability
0% unscheduled downtime
3.2h
Scheduled downtime
excluded from availability
OPEN
Tank access
0 active players

Availability since project start

Availability timeline Server and tank availability from project start to now, 10d 8h measured. Server lane: no downtime recorded. Tank lane: 5 incidents totalling 3h 21m of degraded availability. Server Tank RESOLVED · Planned maintenance · Maintenance control verification · 2026-08-18 21:45ZRESOLVED · Test alert · Test alert E001 · 2026-08-19 00:17ZRESOLVED · Owner security exercise · Owner-confirmed white-hat dry run · 2026-08-19 00:23ZRESOLVED · Test alert · Test alert E002 · 2026-08-19 00:24ZRESOLVED · Test alert · Test alert E003 · 2026-08-19 00:24ZRESOLVED · Audit control · Tank maintenance · 2026-08-19 00:24ZRESOLVED · Test alert · Test alert E999 · 2026-08-19 00:51ZRESOLVED · Audit control · Tank maintenance · 2026-08-19 00:51ZRESOLVED · Owner security exercise · Owner-confirmed white-hat dry run · 2026-08-19 03:19Z 2026-08-18 10d 8h measured now
  • Planned maintenance — 2026-08-18 21:45Z, lasting 5m.
  • Owner security exercise — 2026-08-19 00:23Z, lasting 1m.
  • Audit control — 2026-08-19 00:24Z, lasting 23m.
  • Audit control — 2026-08-19 00:51Z, lasting 2h 41m.
  • Owner security exercise — 2026-08-19 03:19Z, lasting 11m.
ServerAvailable 100%

Every legend entry links to the record that produced it. Chart markers are pointer shortcuts to the same records; by keyboard, reach them through the legend above or the incident list on Incidents.

Tank activity

0 human players and 96 computer-controlled agents across the four tanks. Agents are rule-based: fixed steering and target selection, no model and no inference call.

Tank activity: human players and computer-controlled agents per tank
TankActive playersAgentsTop scoreLeader
Pacific0240
Atlantic0240
Indian0240
Arctic0240

State copies and restore drills

Everything the tank holds — the control receipt chain, the 90-day action log, player profiles and spend history — is copied to object storage on a daily schedule. A restore drill reads the most recent copy back out of object storage, restores that copy into a scratch instance, and compares the scratch instance’s export digest against the copy’s; equal digests mean the stored copy reconstitutes the state it was taken from rather than merely something like it. If no copy can be read, the drill fails and says so rather than testing the live object instead. Passed.

State copies and restore drills
MeasureValue
Last copy taken2026-08-28 03:17:13 UTC
What it covered43 keys (28 player profiles), 23 control receipts, 732 action-log rows
Copy digest (SHA-256)f1f455ca42312df5fdcfe3af33c4c65fa809136065d0c29d35ba3e6f33c922e0
Copies retained8 dated, plus the most recent
Last restore drillPassed · 2026-08-23 21:00:39 UTC
Drill resultcopy of 2026-08-23 21:00Z read back from backups/state/latest.json; digest 268f0d9798529281…; 35 keys, 17 receipts, 727 log rows; live state has moved on since the copy
Availability evidence

Incidents

Scheduled tank downtime is tracked separately from unscheduled outages and from server availability, because only one of the three is a fault. 9 recorded over 10d 8h. Raw incident JSON →

Every incident since project start

3.2h of it scheduled and excluded from availability.

Incidents by cause since project start 9 incidents across 10d 8h of project time, grouped into 4 causes. Each mark is a link to that incident's entry and control receipt. 08-1908-2008-2108-2208-2308-2408-2508-2608-2708-2808-29 Operator maintenance 2RESOLVED · Tank maintenance · 2026-08-19 00:24Z · 23mRESOLVED · Tank maintenance · 2026-08-19 00:51Z · 2.7hSecurity exercise 2RESOLVED · Owner-confirmed white-hat dry run · 2026-08-19 00:23Z · 58sRESOLVED · Owner-confirmed white-hat dry run · 2026-08-19 03:19Z · 11mPlanned maintenance 1RESOLVED · Maintenance control verification · 2026-08-18 21:45Z · 5mTest alert 4RESOLVED · Test alert E001 · 2026-08-19 00:17Z · 0sRESOLVED · Test alert E002 · 2026-08-19 00:24Z · 0sRESOLVED · Test alert E003 · 2026-08-19 00:24Z · 0sRESOLVED · Test alert E999 · 2026-08-19 00:51Z · 0s 2026-08-18 · project start now

Bars show how long impact lasted; diamonds are instantaneous events. Every mark is a link to its incident and control receipt, reachable by keyboard as well as pointer.

ALL CLEAR

No active incidents

History

Resolved incidents (9)

RESOLVED · Owner security exercise

Owner-confirmed white-hat dry run

Closed by WG-018 hotfix: operations auth now accepts only the minted environment token, refuses plaintext HTTP, denies when no token is configured, and every response carries HSTS. Fix verified in production. Investigation closed; the separate maintenance gate was not changed.

2026-08-19T03:19:25.421Z → 2026-08-19T03:30:26.405Z

Open control receipt →

RESOLVED · Audit control

Tank maintenance

Scheduled maintenance

2026-08-19T00:51:56.822Z → 2026-08-19T03:33:16.937Z

Open control receipt →

RESOLVED · Test alert

Test alert E999

Authenticated operations message-response test; no downtime occurred.

2026-08-19T00:51:53.982Z → 2026-08-19T00:51:53.982Z

Open control receipt →

RESOLVED · Audit control

Tank maintenance

Scheduled maintenance

2026-08-19T00:24:50.937Z → 2026-08-19T00:48:04.651Z

Open control receipt →

RESOLVED · Test alert

Test alert E003

Authenticated operations message-response test; no downtime occurred.

2026-08-19T00:24:48.299Z → 2026-08-19T00:24:48.299Z

Open control receipt →

RESOLVED · Test alert

Test alert E002

Authenticated operations message-response test; no downtime occurred.

2026-08-19T00:24:06.488Z → 2026-08-19T00:24:06.488Z

Open control receipt →

RESOLVED · Owner security exercise

Owner-confirmed white-hat dry run

Owner confirmed this report was a controlled closeout dry run with no compromise identified. Investigation closed; the separate maintenance gate was not changed.

2026-08-19T00:23:10.437Z → 2026-08-19T01:39:27.228Z

Open control receipt →

RESOLVED · Test alert

Test alert E001

Authenticated operations message-response test; no downtime occurred.

2026-08-19T00:17:05.123Z → 2026-08-19T00:17:05.123Z

Open control receipt →

RESOLVED · Planned maintenance

Maintenance control verification

The tank was briefly taken offline while root-wide downtime routing and Durable Object reductions were verified.

2026-08-18T21:45:00.000Z → 2026-08-18T21:49:30.000Z

Control receipts

Append-only control history

SHA-25624 entries · chain head 2ee686237e6995045283f4d22dfb240741c753fa91bc57beb15c9052d28d636a
Verified24 entries re-hashed · matches the stored anchor
24 of 24 receipts, page 1 of 3
#24
BACKUP-TAKEN
State copied to object storage

Service state copied to object storage: 43 keys, 23 receipts, 114837 bytes.

2026-08-28T03:17:14.933Z · actor system · ref backups/state/2026-08-28T03-17-13-619Z.json
2ee686237e699504…
#23
BACKUP-TAKEN
State copied to object storage

Service state copied to object storage: 43 keys, 22 receipts, 113066 bytes.

2026-08-27T03:17:15.288Z · actor system · ref backups/state/2026-08-27T03-17-13-614Z.json
ee6ee66e7e69890d…
#22
BACKUP-TAKEN
State copied to object storage

Service state copied to object storage: 40 keys, 21 receipts, 109499 bytes.

2026-08-26T03:17:15.921Z · actor system · ref backups/state/2026-08-26T03-17-13-962Z.json
ec70a09c7027cbd0…
#21
BACKUP-TAKEN
State copied to object storage

Service state copied to object storage: 40 keys, 20 receipts, 107805 bytes.

2026-08-25T03:17:15.295Z · actor system · ref backups/state/2026-08-25T03-17-13-622Z.json
bbe27a5d512dba2b…
#20
BACKUP-TAKEN
State copied to object storage

Service state copied to object storage: 36 keys, 19 receipts, 103253 bytes.

2026-08-24T03:17:15.362Z · actor system · ref backups/state/2026-08-24T03-17-13-807Z.json
77e90cd50ced8533…
#19
RESTORE-DRILL-PASSED
Restore drill passed

The most recent copy in object storage was read back, restored into a scratch instance, and its export digest matched the copy's.

2026-08-23T21:00:39.523Z · actor operator · ref /status/#backup
4010714abaa3fe2b…
#18
BACKUP-TAKEN
State copied to object storage

Service state copied to object storage: 35 keys, 17 receipts, 101063 bytes.

2026-08-23T21:00:38.964Z · actor system · ref backups/state/2026-08-23T21-00-38-643Z.json
d02aa85f9595115a…
#17
BACKUP-TAKEN
State copied to object storage

Service state copied to object storage: 35 keys, 16 receipts, 99666 bytes.

2026-08-23T03:17:21.982Z · actor system · ref backups/state/2026-08-23T03-17-21-440Z.json
f4224ee7670157b3…
#16
RESTORE-DRILL-PASSED
Restore drill passed

A copy of service state was restored into a scratch instance and its export digest matched the original.

2026-08-22T20:52:04.347Z · actor operator · ref /status/#backup
670c76118f7e7abf…
#15
BACKUP-TAKEN
State copied to object storage

Service state copied to object storage: 34 keys, 14 receipts, 97906 bytes.

2026-08-22T20:51:57.233Z · actor system · ref backups/state/2026-08-22T20-51-56-979Z.json
f0ea7f309c17ce25…
#14
OPS-MAINTENANCE-OFF
Game traffic restored

Authenticated operations control restored the game and resolved operational downtime.

2026-08-19T03:33:16.937Z · actor ops · ref maintenance-1787100716822
9458a54f59a2a3b2…
#13
SECURITY-REPORT-RESOLVED
White-hat dry run resolved

Closed by WG-018 hotfix: operations auth now accepts only the minted environment token, refuses plaintext HTTP, denies when no token is configured, and every response carries HSTS. Fix verified in production. Investigation closed; the separate maintenance gate was not changed.

2026-08-19T03:30:26.405Z · actor owner · ref white-hat-ce395a2b-6d48-49bd-b8e3-f58e6b58b162
db3a8128b0362552…
#12
SECURITY-LOCKDOWN
Security report forced game downtime

Report white-hat-ce395a2b-6d48-49bd-b8e3-f58e6b58b162 triggered immediate game downtime pending operator review.

2026-08-19T03:19:25.421Z · actor public-report · ref white-hat-ce395a2b-6d48-49bd-b8e3-f58e6b58b162
49514b0112c85573…
#11
SECURITY-REPORT-RESOLVED
White-hat dry run resolved

Owner confirmed this report was a controlled closeout dry run with no compromise identified. Investigation closed; the separate maintenance gate was not changed.

2026-08-19T01:39:27.228Z · actor owner · ref white-hat-752ff51a-0a26-4b07-a317-c2a2f3533b06
6409b0e976ab192b…
#10
OPS-MAINTENANCE-ON
Game traffic disabled

Scheduled maintenance. This is separate from 1 security report.

2026-08-19T00:51:56.822Z · actor ops · ref maintenance-1787100716822
bb41422982f3a8e9…
#9
TEST-ALERT
Test alert E999

Authenticated message-response control completed without downtime.

2026-08-19T00:51:53.982Z · actor ops · ref E999
754a2ab1e13c6ab8…
#8
OPS-MAINTENANCE-OFF
Game traffic restored

Authenticated operations control restored game traffic. 1 security report remains open until separately resolved.

2026-08-19T00:48:04.651Z · actor ops · ref maintenance-1787099090937
e9cfbec0bee88be6…
#7
SECURITY-REPORT-REOPENED
Security report investigation restored

Corrected prior restoration semantics: service impact ended, but the security report remains open.

2026-08-19T00:31:54.264Z · actor system · ref white-hat-752ff51a-0a26-4b07-a317-c2a2f3533b06
8a928eb6fb0e6547…
#6
OPS-MAINTENANCE-ON
Game traffic disabled

Scheduled maintenance

2026-08-19T00:24:50.937Z · actor ops · ref maintenance-1787099090937
2cfb630bc508e57f…
#5
TEST-ALERT
Test alert E003

Authenticated message-response control completed without downtime.

2026-08-19T00:24:48.299Z · actor ops · ref E003
b2963f69eecc7ea2…
#4
OPS-MAINTENANCE-OFF
Game traffic restored

Authenticated operations control restored the game and resolved active downtime incidents.

2026-08-19T00:24:08.117Z · actor ops · ref test-alert-E002-1787099046488
c2d88c81d3799be4…
#3
TEST-ALERT
Test alert E002

Authenticated message-response control completed without downtime.

2026-08-19T00:24:06.488Z · actor ops · ref E002
c78be3fe89b475ca…
#2
SECURITY-LOCKDOWN
Security report forced game downtime

Report white-hat-752ff51a-0a26-4b07-a317-c2a2f3533b06 triggered immediate game downtime pending operator review.

2026-08-19T00:23:10.437Z · actor public-report · ref white-hat-752ff51a-0a26-4b07-a317-c2a2f3533b06
2bb078710feae7d9…
#1
TEST-ALERT
Test alert E001

Authenticated message-response control completed without downtime.

2026-08-19T00:17:05.123Z · actor ops · ref E001
22848f18c3f2e909…
Project record

Delivery

Every feature update, the deployment batch that carried it, and how those batches line up against the availability above and the metered spend. The same record is available as data.

26
Deployment batches
48 feature updates shipped
2.0/h
Commit velocity
16 updates in 8h of build time
Server and tank availability across 10d 8h of project time Each strip is 84 equal slices of the project. Server availability 100 percent, with the slices carrying the 26 deployments picked out. Tank availability 100 percent, with the slices carrying its 9 incidents picked out, of which 3.2h was scheduled downtime excluded from the figure. 08-1908-2008-2108-2208-2308-2408-2508-2608-2708-2808-29 8h build ends Server100% uptime Server availability 100% over 10d 8h, no unscheduled downtime D01 and D02 · release · 5 updates · 55m into the buildD03 and D04 and D05 · release · 9 updates · 3h 5m into the buildD06 and D07 · release · 2 updates · 6h 30m into the buildD08 and D09 and D10 and D11 and D12 and D13 and D14 · release · 7 updates · 2026-08-19 01:12ZD20 and D21 · hotfix · 4 updates · 14h 32m into the buildD22 and D23 and D24 · release · 3 updates · 15h 15m into the buildD25 and D26 · release · 2 updates · 19h into the buildD15 · hotfix · 4 updates · 2026-08-20 23:43ZD16 · hotfix · 3 updates · 2026-08-21 00:46ZD17 · hotfix · 4 updates · 2026-08-21 14:50ZD18 · hotfix · 4 updates · 2026-08-21 16:02ZD19 · hotfix · 1 update · 2026-08-21 20:34Z Shark Tank100% uptime Tank availability 100% over 10d 8h Planned maintenance · Maintenance control verification · 2026-08-18 21:45Z · 5m · scheduled, excluded from availabilitySecurity exercise · Owner-confirmed white-hat dry run · 2026-08-19 00:23Z · 58s · scheduled, excluded from availabilityOperator maintenance · Tank maintenance · 2026-08-19 00:51Z · 2.7h · scheduled, excluded from availability Metered spend across the same 10d 8h Metered spend reached $0.0402, 0.80 percent of the $5.00 hard stop that closes the game. Metered spend USD $0.00$0.01$0.02$0.03$0.04$0.05$0.0402 metered Budget used $0.0402 of $5.00$0.0402 used · 0.80% of the $5.00 hard stop$5.00 2026-08-18 · project start now · 10d 8h measured
Project goals

Built for speed. Operated with evidence.

Next goal · ISO/IEC 42001 + ISO/IEC 27001 certification · In progress
Speed

Ship a complete playable and operational proof of concept inside one working day.

Security

Stop gameplay immediately without hiding status, incidents, or control history.

Accessibility

Support keyboard, mouse, touch, responsive layouts, and readable evidence.

Human accountable

Keep high-impact controls authenticated, attributable, and receipt-backed.

8h total elapsed

Feature-to-deployment map

Commit velocity: 2.0/hour16 feature updates · 7 production deployments · 2.3 updates/deployment
Sortable feature-to-deployment map
Feature updateDeployment
WG-001featureServe the game and its operations pages from one WorkerHost the game and public operations as one controlled deployment.00:00D01
WG-002featureRun the game simulation on the serverRun movement, growth, collisions, bots, and state on the server.00:25D01
WG-003enhancementAdd size-based combat, a dash and rocketsLarge sharks eat smaller sharks; rockets beat every shark.00:55D01
WG-004fixFix frame tearing and input lagTighten rendering and steering for mouse, keyboard, and touch.01:20D02
WG-005enhancementAdapt the game UI to any screen and inputSupport desktop, keyboard-only, mouse-only, and mobile play.01:50D02
WG-006featurePublish service and tank logs with downloadsPublish service and tank evidence without internal player identifiers.02:15D03
WG-007enhancementMatch the debug drawer to the public log formatAlign the selected debug language with public tank logs.02:40D03
WG-008featureMap every product action to the usage it billsMap product actions to Workers, Durable Objects, D1, and R2 usage.03:05D03
WG-009enhancementStop gameplay when spend reaches the limitReset current-spend tracking and stop gameplay at the measured limit.03:30D04
WG-010featurePut maintenance, billing and alerts behind one panelKeep maintenance, billing, alerts, and security controls together.04:00D04
WG-011fixRestore gameplay without closing the investigationRestoring gameplay ends impact without closing the investigation.04:25D04
WG-012enhancementChain every control decision into a signed receiptLink control decisions in an append-only SHA-256 receipt chain.04:50D05
WG-013fixStop tables clipping timestamps and identifiersContain timestamps, subjects, schemas, and identifiers at every viewport.05:15D05
WG-014enhancementKeep the site up while the tank is closedKeep the portal online while billing or operators close the Shark Tank.05:35D05
WG-015enhancementOrganise the evidence for ISO 27001 and 42001Organize evidence toward ISO/IEC 27001 and ISO/IEC 42001.06:30D06
WG-016fixUnify the wording across every pageUnify Shark Tank language, reason-coded evidence, and the final sales narrative.08:00D07
WG-017bonusRewrite the outage jokesSpent the bonus hour rewriting the outage jokes. Shipped zero business value, on time and under budget.09:00D08
WG-018hotfixRequire TLS and a token on the operations gateClosed in 7 minutes. Operations auth had an unauthenticated fallback when no token was set. It now accepts only the minted token, over TLS, and denies when there is none.Security report and control receipts →09:07D09
WG-019hotfixDraw the arena boundary that kills on contactClosed in 10 minutes. The arena radius killed on contact but was never drawn. It now renders, with a warning band inside it.Reproduced on production before the fix →09:17D10
WG-020hotfixAdd a thumbstick and ability pads for touchClosed in 38 minutes. Tapping to steer spent the dash on every tap. Touch play now steers from a thumbstick, with the abilities on their own pads.Controls and layout verified on a phone viewport →09:55D11
WG-021hotfixMeasure availability from project start, not 24 hoursClosed in 21 minutes. A rolling 24-hour availability window forgot every incident older than a day. Availability now runs from project start, and the logs page carries the full record.Availability bar and legend →10:16D12
WG-022hotfixMerge three billing tables into one meterClosed in 13 minutes. Three billing tables in three column shapes compared against nothing. One meter now reads every service on a shared axis, and spend is sampled hourly and charted.Usage against the free tier →10:29D13
WG-023hotfixChart incidents by cause, start and durationClosed in 13 minutes. The incident page redrew the status page's availability bar and said nothing about the incidents themselves. It now charts each incident by cause, start and duration.Incident chart →10:42D14
WG-024hotfixPut taking the game offline behind authenticationClosed in 12 minutes. The route that disabled the game was gated by two forgeable headers, one of them published in the public API document. Reporting and taking the game down are now separate operations, and only the takedown is authenticated.Control receipts →10:54D15
WG-025hotfixStop the status page reloading itselfClosed in 6 minutes. A three-second full-page reload wiped screen-reader position and keyboard focus, with no way to stop it. Figures now update in place, and the refresh can be paused.Availability status →11:00D15
WG-026hotfixStop dialogs stealing keyboard focusClosed in 4 minutes. The in-game dialogs re-armed their focus trap on every re-render, throwing keyboard users back to the Close button twice a minute. The trap now arms once per dialog.Play the game →11:04D15
WG-027hotfixFix unreadable overlay text in light modeClosed in 5 minutes. The light theme turned overlay text near-black but left the panels behind it dark, hiding the score at 1.05:1. On-canvas overlays now keep one palette in both themes.Play the game →11:09D15
WG-028hotfixKey log throttling to the connection, not a cookieClosed in 14 minutes. Public log writes were throttled against the visitor's own cookie, so dropping it bought a fresh allowance every request. Throttling is now keyed to the connection, under a ceiling shared by every visitor at once.Public service log →11:23D16
WG-029hotfixCheck tank capacity when a seat is takenClosed in 4 minutes. Seats were counted when a connection opened rather than when it sat down, so one client could open enough connections to claim every seat. Capacity is now checked at the moment a seat is taken.Tank occupancy →11:27D16
WG-030hotfixBound the incident record so it cannot block recoveryClosed in 9 minutes. Incidents were stored as one ever-growing record, written by the same operation that restores service, so a long enough history would have blocked recovery. The record is now bounded, and only resolved incidents are archived.Incident record →11:36D16
WG-031hotfixAnnounce search and paging results onceClosed in 11 minutes. Searching or paging the evidence tables rewrote the record count in silence, and a paging button that switched itself off dropped the keyboard to the top of the page. The count now speaks the whole result once per settled search, and the buttons keep their place.Public evidence →11:47D17
WG-032hotfixStop chart marks swallowing the keyboardClosed in 3 minutes. Each mark on the incident and availability charts was a keyboard stop that announced nothing and showed no focus ring. The marks are pointer shortcuts again, and the same records are ordinary links beside each chart.Incidents →11:50D17
WG-033hotfixGive every API endpoint its own headingClosed in 8 minutes. The API reference had one heading and thirty-one identically named sections beneath it, so assistive software could not reach a particular endpoint. Every operation is now its own heading, with an index of all thirty-one at the top.API reference →11:58D17
WG-034hotfixStop the tank list reading itself aloudClosed in 9 minutes. The tank list read every tank's counts aloud every three seconds, because a moving top score rewrote the whole sentence. It now speaks only what changed, and the same pass fixed the light theme's status colours.Play the game →12:07D17
WG-035hotfixReplace the content policy that allowed any scriptClosed in 24 minutes. The pages carried a content security policy that allowed any inline script, which is the one thing such a policy exists to refuse. Each response now mints a single-use token and runs only the scripts carrying it.Public evidence →12:31D18
WG-036hotfixStrip internal detail from errors and exportsClosed in 12 minutes. Internal failure messages, build identifiers and exported player names all reached public output, the last of them as text a spreadsheet would run as a formula. All three now say only what a reader needs.Cost and capacity meters →12:43D18
WG-037hotfixVerify the receipt chain on every readClosed in 21 minutes. This page called the control history tamper-evident, but nothing re-checked it and its head was only ever compared against itself. Every receipt is now re-derived on read, and the verdict is stated on the page.Control receipts →13:04D18
WG-038hotfixStrip invisible characters from display namesClosed in 14 minutes. A display name could carry invisible characters that reversed the leaderboard around it or impersonated another player, and saved players had no ceiling. Those characters are stripped, and new saved entries are bounded without evicting a real player.Play the game →13:18D18
WG-039hotfixReport today's spend on a readable scaleClosed in 18 minutes. Every included allowance resets daily, but the cost page reported lifetime totals on a linear bar where 0.008% of an allowance and 8% were the same invisible sliver. It now measures the day and plots every meter on a logarithmic axis.Usage against the free tier →13:36D19
WG-040hotfixEvery page can be navigated without a mouse or a screenClosed in 26 minutes. None of these pages let you jump past the navigation, so reaching the content meant tabbing through the same links every visit. Sorted columns showed which way they were sorted with an arrow and nothing else. Tables carried no name, and nothing tied a column heading to the figures beneath it. Following a link to a particular receipt scrolled to it but left the keyboard behind.Public evidence →14:02D20
WG-041hotfixThe outage page says there is an outageClosed in 11 minutes. When the game was taken down, the page announced itself with a randomised joke in the browser tab and in its only heading — funny, but it never said the game was down. The availability chart had the same fault in another form: the picture carried the downtime, the text beside it did not. Two faint colours were also too close to their background to read comfortably.Status →14:13D20
WG-042hotfixThe game stops going quiet at the moments that matterClosed in 19 minutes. Anything said twice in a row was only said once: a second death at the same score, or a second disconnect, passed in silence. Losing the connection was drawn on screen but never spoken. Turning off the on-screen radar also removed the spoken description of where you are, so a visual setting silenced a non-visual aid. The help shortcut fired from one keypress with no way to switch it off, including while typing.Play the game →14:32D20
WG-043hotfixPlayers can use their own nameClosed in 9 minutes. A name written entirely in Chinese, Cyrillic, Greek, Hebrew, Korean or emoji was refused and the player was renamed to Player, while a name mixing one of those with Latin letters was fine. The name check compared against Latin letters only, so a name containing none of them looked empty rather than unscreenable. Names are now accepted on what they actually contain.Play the game →14:41D21
WG-044featurePublish the policies the standards ask forBuilt in 34 minutes. The conformance register recorded what this service does against two standards, but the written record behind it did not exist — and the largest block of missing rows was not engineering, it was four documents nobody had written. They are now published at /policies/ as pages rather than filed as documents nobody can check: what the service is and where its boundary sits, what it protects and refuses to do, who is accountable for what, and what the computer-controlled sharks actually are. Twenty-seven gaps closed; readiness moved from 45 to 61 per cent.Policies →15:15D22
WG-045featureWrite down how risk is decided, and what the sharks actually areBuilt in 58 minutes. The register said what this service does but not how it decides what to do about anything. There is now a stated method for scoring a risk, an assessment that names the twelve this service actually carries — the spend ceiling, one durable object holding the receipt chain with no backup, display-name abuse, a provider outage, unscanned dependencies — and objectives measured from live routes rather than asserted. Five more documents cover how the computer-controlled sharks are built and checked, how code is written and released, who may reach what, and which laws and licences apply. Writing them turned up four things the service was describing inaccurately, and those were corrected rather than left flattering. Sixteen gaps closed; readiness moved from 61 to 77 per cent.Policies →16:13D23
WG-046featureDo the things the register said were only written downBuilt in 71 minutes. Forty-two rows were marked partial, and sorting them showed most were not missing writing at all — they were activities defined and never performed, or one piece of engineering nobody had built. The engineering came first: everything the tank holds — the receipt chain, the ninety-day log, player profiles, spend history — is now copied daily to object storage under a digest, and the copy is proven by restoring it into a scratch instance and checking the two digests match. The first drill failed for a real reason and that failure is on the public chain in front of the passes. Then four activities were run for the first time and recorded — an access review, a supplier check, a compliance review and the AI policy review — and seven documents written for what remained. Ten rows are still open and named: no dependency scanning, no erasure route, no audit independence, and supplier certificates nobody has obtained. Readiness moved from 77 to 93 per cent.Policies →17:24D24
WG-047featureSplit the site in two, because it was serving two audiences from one menuBuilt in 96 minutes. The site is a game and a public conformance record, for two sets of people who want nothing from each other, and every page carried the same ten-item menu listing both. Thirteen of the site's sixty thousand words were for players. The game keeps one link out; the record gets its own front door at /trust/ with six figures on it, each one a link to the page that owns it and none of them stored twice. The roadmap and incident pages folded into operations, so the receipt chain renders once instead of on two pages and the uptime and spend numbers appear only where they are measured. Cost moved to /spend/, because "inquiry" was being used for the billing page and for the whole record at the same time. The policy set became one route per document with an anchor on every section — it was 201 KB with no identifier on any of its 144 headings, so nothing in it could be cited. Old addresses redirect and the published JSON did not move. Also fixed on the way through: money could be spent on routes the spend limit exempted, saving a profile had nothing bounding it, a body-size check a chunked request walked straight past, a header set on one branch of the router, chart links no keyboard could reach, thirteen tables with no header row, a button that told a screen reader the opposite of what was happening, and a register that needed three screens of sideways scrolling on a phone.Trust and operations →19:00D25
WG-048featureDeploy the split, then close the four things it left behindBuilt in 88 minutes. The previous version was written and never deployed, so for its whole life the register pointed at routes the live service did not serve; that went out first. Then four things that were written down but not true. The restore drill said it restored the most recent copy and did not: it exported the live object and restored that, which proves the object can copy itself and proves nothing about object storage. It now reads the copy back out of the bucket, and with no bucket or no copy it fails and says so instead of quietly testing something else. Three policy records stated the evidence walk's result as a present-tense measurement and all three had the previous version's numbers; they are read off the register when the page is built, so they cannot go stale again. The link checker accepted any 200 as proof a route exists, but every unrouted path here answers 200 with the game — it now requires each response to carry something only the real page emits. And the split had left the spend and API pages reachable from two of the seven trust pages, so every page carries the whole estate in its footer. Two other things: the stylesheet was 38.6 KB re-sent on every page view and is now fetched once and cached, and every link on the delivery chart is a 24-pixel target instead of nine.Operations →20:28D26