Z: P10 -- what Auto Resolve should cost, written before the click

The turn-54 End Turn stopped on a Von Neumann encounter at Gallandro. That is
the workload the finding says does not exist and lane J asks for: every
encounter measured so far had the no-battle flag set, so the combat resolver
has never run under an instrument.

Three falsifications, and the interesting one is the third: a non-zero cost
that does not appear under ApplyEncounterResult means combat proper is drawing,
which nothing hooks, and the bracket residual goes positive for the first time.
This commit is contained in:
alex 2026-09-08 10:12:09 -04:00
parent fe39c82bea
commit d7e2080fb6

View file

@ -180,3 +180,42 @@ cost this campaign has ever recorded — and the bracket total becomes `ProcessT
This is the first genuinely falsifiable numeric claim this lane can make: every earlier one compared 0
against 0.
---
## 7. P10, written with the encounter dialog on screen and unclicked
The turn-54 End Turn on the Zuul long run stopped on an **Encounter at Gallandro**: the player's 5 ships
(3 DE Colonizer, 2 DE Armor) against a **Von Neumann**, with the dialog offering Fight Manually / Auto
Resolve / Fight Manually If Opponent Does / Retreat. Auto Resolve has not been clicked yet.
This is the workload `sots-re/findings/control-flow/tail-rng-ledger.md` §8 says does not exist and lane J's
`combat-resolver.md` asks for: **every encounter measured so far had `res->+0x4` set, so
`ApplyEncounterResult` was a whole-function no-op and the combat resolver has never executed under any
instrument this campaign has built.**
**P10. Clicking Auto Resolve produces the first non-zero tail cost this campaign has recorded.**
Specifically: `ApplyEncounterResult` records `res_no_battle = 0` for the first time; its measured `rng`
delta is **greater than 0**; and `OnAllCombatDone_Tail`'s total equals that delta, because node-line decay
is still 30-odd turns from firing and every other phase has measured 0 across 54 turns.
On the size, following lane J's map of the three conditional sites: there is no node cannon here, so R1
should not fire. A **Von Neumann is salvage** — R2 is one inlined `NextFloat` per back-engineering candidate
per combatant with a non-zero salvage slot, and R3 one `NextInt` per successful R2 roll. So the expected
cost is **small and odd-shaped: a handful of words, not a multiple of anything.** I am deliberately not
naming a single number, because I have not read the resolver and lane J has: a range with a mechanism
behind it is the honest form of this prediction.
*Falsified by:*
* **tail cost 0 with `res_no_battle = 0`** — then the resolver really has no draw on a plain battle path,
which would make lane J's "no unconditional draw" stronger than either of us expected, and would mean a
battle is free to a reimplementation;
* **a large cost (tens or hundreds of words)** — then something in the battle path draws per ship or per
round, and the resolver's three sites are not the whole story;
* **a non-zero cost that does NOT show up under `ApplyEncounterResult`** — then the draw happens in combat
proper (`RunCombatRound` / the combat server), which runs *between* `ProcessTurn` and the tail and is
hooked by nobody; the bracket residual would go positive for the first time and that is where it would
appear.
The third case is the one to watch: it is the only way this workload can produce a **non-zero residual**,
which every prediction so far has said should be 0 on a quiet turn.