AS: correct this lane's own over-claim -- 0x0083ce50 is a shared placement validator, not the spy-deploy path

This commit is contained in:
alex 2026-09-09 00:12:21 -04:00
parent 4a212e25b4
commit aef3d487f3

View file

@ -646,6 +646,18 @@ touched** — this lane needed no new verbs, which is the first VM lane in a whi
* **Ghidra's size for `0x008877b0` is 1,869 bytes; the next function starts at `0x00887f30`, i.e.
1,920.** The detection roll at `0x00887c8a` is inside both, but the 51-byte shortfall is rule 17
again, on the very function this lane exists to read.
* **This lane's own pre-registered §1.1, corrected here rather than edited there (rule 12).**
`docs/AS-predictions.md` calls `0x0083ce50` "the deploy validator" and says its `0x1000000`
refusal bit *is* the `Can't deploy spy: Spy requires an asteroid belt to hide.` message. Read
properly afterwards, `0x0083ce50` is a **shared placement validator** with ~21 refusal bits
(colonise, mine, dump ore, too many things present, …), reached from `0x00760ce0` and the order
path `0x00849460`, and it is **not on `ServerSpyManager::DeploySpy`'s call chain at all** — that
chain is `SHIPACTION_DEPLOYSPY 0x0078c930` → vtable slot 7 `0x00887410` → `AddSpy`, and it never
calls `0x00743f80`. What survives, and is all §1.2 needs, is that **`0x00743f80` bit 0 gates a
belt-shaped refusal there and the detection roll here**; *which* action that refusal belongs to
was over-claimed and is not established. The empirical half is unaffected: `Deploy Spy` was
offered and accepted at a belt system, and the corpus agreement of `ARes2 > 0` with `TerrFl & 1`
is 616 of 616.
---