v0.7.9 — solitaire setup screen feedback, and the dead settings it exposed
Four pieces of feedback from Jesse on the solitaire setup screen. THE COLLISION LIMITS DID NOTHING IN SOLITAIRE. Asked to reword those entries to "the game ends immediately and results in a loss", which was unwriteable: advance.ts gated the §3.4 check on competitive/coop, and a solitaire game's mode is 'solitaire'. Both limits were offered as live settings, rode into the config, and never fired — the existing text was already false. The exclusion was never a stated rule and nothing recorded a reason for it. Jesse's ruling: the settings do what they say, so the gate is gone rather than the controls. Measured, not asserted — 200 standard developer-bot games: loss/collisionFloor 1 in 200, Days played 5.00 -> 4.98 mean with a minimum of 1, collisions per game unchanged at 0.14. Recorded in TODO.md under Play Balance, since full-length figures predate it. Extra start defaults to ownOffice: at one seat it is the same rule as anyOffice (apply.ts only rejects another seat's start), so this is a label fix with no gameplay effect. Also: collision wording on all three screens, Employee Rotation reads "not applicable for solitaire", and the save warning is legible at 14px on an amber panel with buttons that say Continue Existing Saved Game and Deal New Game. 869 tests pass, two new; one asserted the opposite of the ruling and says so where it was reversed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AdG46Ja2PEDBkpqiDazMoX
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
193800a649
commit
f2c87b6871
@@ -19,6 +19,58 @@ page as `v0.1.0 · <sha> · <date>`, so what is deployed can always be identifie
|
||||
|
||||
---
|
||||
|
||||
## 0.7.9 — 2026-08-30
|
||||
|
||||
Four pieces of feedback on the solitaire setup screen, plus the rules bug the second one exposed.
|
||||
|
||||
### The collision limits were dead settings in solitaire — now they are not
|
||||
|
||||
Asked to reword the collision entries to "the game ends immediately and results in a loss", which
|
||||
turned out to be unwriteable: `advance.ts` gated the whole §3.4 check on
|
||||
`mode === 'competitive' || mode === 'coop'`, and a solitaire game's mode is `'solitaire'`. So both
|
||||
limits were offered on the New Game dialog as live settings, rode into the config, and never fired.
|
||||
A solitaire player could set a limit of 1 and crash all game. The *existing* text beside them ("the
|
||||
game ends in a loss") was already false; the new wording would only have made it more so.
|
||||
|
||||
The exclusion was never a stated rule — §3.4 does not carve solitaire out — and nothing recorded a
|
||||
reason for it. **Jesse's ruling: the settings do what they say**, so the mode gate is gone rather
|
||||
than the controls.
|
||||
|
||||
**A solitaire game can therefore now end early, and that is measured rather than asserted.** Over
|
||||
200 standard games with the developer bot: `loss/collisionFloor` **1 game in 200**, with Days played
|
||||
falling 5.00 → 4.98 mean and a *minimum of 1* — a bad opening Day can now end a game outright.
|
||||
Collisions per game are unchanged (0.14 mean, max 3), which is the point: the ending is rare because
|
||||
crashes are, not because the check is lenient. `0` still switches either limit off, at one seat
|
||||
exactly as at four, and that path has its own test now.
|
||||
|
||||
Every figure in `TODO.md` quoted from a full-length solitaire run predates this.
|
||||
|
||||
### Where an Extra may start defaults to your own Control Point
|
||||
|
||||
Was "any player's". At one seat the two are the *same rule* — `apply.ts` only rejects `ownOffice`
|
||||
when `start.seat !== seatOf(s, player)`, which cannot happen — so this is a labelling fix with no
|
||||
gameplay effect and nothing to re-measure. The permissive label described a permission a lone player
|
||||
was never being granted, and named an "any player" they have no contrast with.
|
||||
|
||||
### Three wording and layout fixes
|
||||
|
||||
- **The collision entries** on all three screens now read "The game ends immediately and results in
|
||||
a loss…". The Revenue floor keeps its own wording, since it is settled at the end rather than on
|
||||
the spot.
|
||||
- **Employee Rotation** on the solitaire screen says "not applicable for solitaire" instead of
|
||||
"meaningless at a table of one, shown here so this screen and the lobby read as one list" — which
|
||||
explained the page's own construction to somebody who had not asked.
|
||||
- **The save warning is legible.** It sat in `.ng-note`, the same dim 11px grey as the twenty
|
||||
explanatory notes above it, while being the only thing on the screen describing something
|
||||
irreversible. It is 14px on an amber panel now — amber and not red because losing a save is a real
|
||||
cost, not a danger, and red would outrank the actual rules above it. The buttons say **Continue
|
||||
Existing Saved Game** and **Deal New Game** rather than "Continue saved game" and "Deal".
|
||||
|
||||
869 tests pass, two of them new; one existing test asserted the opposite of the ruling above and
|
||||
says so where it was reversed.
|
||||
|
||||
---
|
||||
|
||||
## 0.7.8 — 2026-08-30
|
||||
|
||||
### The setup screen was unreachable for anyone who had ever played
|
||||
|
||||
Reference in New Issue
Block a user