T04: adversarial review round + survey corrections + ADR-0002 (reimplement, assimilate patterns)
This commit is contained in:
parent
a7e31d4210
commit
53c1b18ec1
7 changed files with 414 additions and 94 deletions
82
history/260731-game-kernel-response.md
Normal file
82
history/260731-game-kernel-response.md
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
# 2026-07-31 — response to adversarial challenge: CB-RES-0001 (T04)
|
||||
|
||||
One round, per InnerLoop §Step 2. Each finding answered with evidence or
|
||||
conceded. New measurements were run before answering B1/S1/S4; harness
|
||||
gained `--disable-undo` and `--single-run` flags.
|
||||
|
||||
## B1 (blocking) — "architectural, not a tuning artifact": **partially conceded, empirically resolved**
|
||||
|
||||
The reviewer was right that the claim was untested and the `disableUndo`
|
||||
flag unacknowledged. We reran the harness both ways:
|
||||
|
||||
| moves | with undo (moves/s) | disableUndo (moves/s) |
|
||||
|---:|---:|---:|
|
||||
| 5,000 | 1,439–1,930* | 1,118 |
|
||||
| 10,000 | 1,605 | 1,076 |
|
||||
| 20,000 | 870 | 942 |
|
||||
| 40,000 | — | 733 |
|
||||
| 100,000 | DNF @300 s | **DNF @240 s** |
|
||||
|
||||
\* run-to-run variance on this machine is large (1,930 vs 1,439 for the
|
||||
same config); now noted in the survey's risks.
|
||||
|
||||
Verdict on the finding: the undo stack **is** the dominant superlinear term
|
||||
at small N (concede: it is a documented one-line flag, and the original
|
||||
"not a tuning artifact" sentence was an overclaim — retracted). But
|
||||
degradation **persists with undo disabled** (−34% from 5k→40k, RSS
|
||||
100→232 MB, and 100k still does not finish), consistent with the client's
|
||||
unbounded redux log/deltalog, which has no client-side off switch in
|
||||
0.50.2. The survey now reports both datasets and attributes the two
|
||||
mechanisms separately. The D3-scaling row is restated against the
|
||||
disableUndo (best-case) configuration: 0.66× at 40k vs 5k.
|
||||
|
||||
## S1 (significant) — memory methodology: **conceded, fixed**
|
||||
|
||||
`--single-run` mode now measures RSS immediately after the main run in a
|
||||
fresh process with no warmup/determinism clients. New indicative figures:
|
||||
100 MB RSS after 5k moves (disableUndo, isolated) rising to 232 MB after
|
||||
40k. The old 224 MB row is withdrawn; memory rows are labeled *indicative*
|
||||
(raw RSS includes Node baseline; heap delta not isolated).
|
||||
|
||||
## S2 (significant) — omitted candidates: **conceded, added**
|
||||
|
||||
OpenSpiel and Ludii added as cited candidates; BGA Studio and Colyseus
|
||||
added as one-line secondary references. The verdict's "what none of them
|
||||
do" paragraph was re-checked against OpenSpiel specifically and reworded:
|
||||
OpenSpiel *does* cover simultaneous-move + imperfect-information semantics
|
||||
with deterministic replay via action histories — what it lacks is the
|
||||
production layer (client visibility projections, networking, snapshots,
|
||||
embeddable boundary), and that is now stated precisely instead of the
|
||||
blanket claim.
|
||||
|
||||
## S3 (significant) — unsourced D3 ceiling: **conceded, relabeled**
|
||||
|
||||
The 10⁵–10⁶ events/s range stays as an *estimate* flag, and the headline
|
||||
≥100k events/s + flat-scaling figure is now explicitly labeled a
|
||||
**stipulated engineering target**, not a competitor-derived baseline. A
|
||||
measured Rust comparator remains an open follow-up (noted in the survey);
|
||||
until then, parity-cap applies to any evidence row leaning on that number.
|
||||
|
||||
## S4 (significant) — `updatePlayerID` in the timed loop: **answered with a control**
|
||||
|
||||
Measured in isolation: ~466,000 calls/s (~2 µs/call) vs ~500–1,100 µs per
|
||||
applied move — contamination < 0.5%. Left in the loop (it is part of
|
||||
driving multi-player turns through one client); provenance note added.
|
||||
|
||||
## M1–M4 (minor) — all conceded
|
||||
|
||||
- M1: traceability row demoted from baseline table to an observation.
|
||||
- M2: LOC corrected to ~36 and marked gameable/secondary.
|
||||
- M3: provenance now states hidden-info (`playerView`) and hand depletion
|
||||
are unexercised by the workload; commit/reveal shape only.
|
||||
- M4: maturity figures kept with the npm-checkable fact primary.
|
||||
|
||||
## Net effect on the survey
|
||||
|
||||
Status remains draft → **approved** (per this round's disposition:
|
||||
"approvable with corrections", all corrections applied). The central
|
||||
comparative conclusions survive: boardgame.io is the closest semantic
|
||||
comparator but inactive, heavyweight for what it does, and degrades with
|
||||
history even in its best configuration; the surpass opportunity is the
|
||||
combination of production projection/networking, flat-cost replay, and an
|
||||
embeddable boundary — now stated with OpenSpiel explicitly in view.
|
||||
Loading…
Add table
Add a link
Reference in a new issue