Wire production aircraft callbacks and diagnose native prison action selection

This commit is contained in:
2026-09-19 20:03:38 +02:00
parent 53eaf3894d
commit f870443b9b
58 changed files with 40247 additions and 27 deletions
+7
View File
@@ -43,3 +43,10 @@ The observer never adopts a replacement and never revives. Destroying the gate c
## First native observation
[Ordinary Chat184437](evidence/game-2026-09-19-184437-gate-geometry/runner.json.txt) compiles and emits59 gate samples before inventory opening cancels the gate observer. Independent validation passes41 joined READY-through-last observations with zero static-geometry drift. Native context is `(6092.77,213.226,7154)`, radius2, gate `(6090,211.344,7154)`, prison center `(6090,211.444,7160)`, duration4. The lock is not selected at the distant spawn; no hold was sent. Same-API gate/input position agrees within1cm; the camera observer's transform translation trails GetOrigin by1–3cm while walking, bounded to5cm in the join. No broader route/action proof is inferred.
## Optional native action-choice diagnosis
`--observe-prison-choices` requires the existing gate/input observers and forwards the same nonce as `errOrdinaryGateChoices`. With input testing it additionally requires the explicit approach mode. The diagnostic calls only native identity/selected-action/filtered-cache getters; it logs at most eight ordered classes/IDs and cached permissions, under a separate `ERR GATE CHOICE` prefix. Normal SAMPLE/GEOMETRY and default observers remain unchanged. `ordinary_gate_choices.py` joins optional records to raw input/camera/gate samples by nonce, index and native clock.
The [194928 diagnosis](evidence/gate-choice-review-2026-09-19-194928/review.json) parses353 native records. Samples304–353 show exactly disabled `ERR_PrisonDoorAction` ID1 first, followed by permitted `ERR_UnlockPrisonAction` ID0; the selected action is the disabled door. The exact gate context and lock permission are present. The original alignment runner remains failed because it never selected the lock; no wheel/F input was sent. Future selection must pin the original same-run IDs rather than treat these per-instance native numbers as universal constants. Changing action visibility, duration or interaction geometry to force this test is unnecessary.