Files
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

51 lines
3.9 KiB
JSON

{
"status": "Final frozen proposal independently reviewed: no blocker",
"source_sha256": {
"/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7422f79bfa5ecf9b13c37b7ad0cf0b23469ed7059e85462ff96b7704084d29d9",
"/home/jakub/devel/escapistsrereintroduced/addons/core/Prefabs/ERR/SpectatorCamera.et": "cd2dcaca0df4c39816e582c594591a535525ed77827ffa3de24d27b79996544d",
"/tmp/erri-vanilla-stock/scripts/Game/Camera/SCR_ManualCamera.c": "3829954162b7067351823d3c137bbe0d00f78df71a061738ff37fc2ab83af478",
"/tmp/erri-vanilla-stock/scripts/Game/Camera/SCR_CameraBase.c": "322095927443d1f50c6b987d1d8327e722f8be1f0ed19f80d63605a851e868d1",
"/tmp/erri-vanilla-stock/scripts/Game/Camera/Components/SCR_BaseManualCameraComponent.c": "f931860983b80e5c056ba620e624f1e0b49c44483619fd4bfa5a94c4f04339cd",
"/tmp/erri-vanilla-stock/scripts/Game/generated/Camera/CameraManager.c": "c266da47e622be67d38432fa419059938ca584d3d655cb9fd111f0d3de7f6b0c"
},
"findings": [
"UpdateObserverClient must verify exact local controller before UpdateRecoveryCamera, which may close global editor and set old player camera.",
"Stale cleanup must remove only its bound monitor, reset its monitor latch and recovery body/deadline, and close only its own observer camera.",
"SCR_ManualCamera.Terminate invokes owned component exits once, then count=-1. Successor spectator prefab has only ERR_FollowSurvivorCameraComponent; it has no Exit override, while base Exit is empty. No scripted input-context deactivation is involved.",
"Manual-camera destructor SwitchToPreviousCamera checks current camera equals this before changing it. Deleting inactive old camera cannot switch a different current camera through visible script code.",
"Context activation is in ProcessComponents; noncurrent camera postframe returns before it. Current normal unconscious/recovery handling must remain unchanged."
],
"limits": "Native camera registration/unregistration implementation is opaque; no native/UI run or real multiplayer claim. Target/reference not edited.",
"proposal_patch": {
"path": "/tmp/erri-observer-0454/fix.patch",
"sha256": "30358e01568a6a6693598dbe93f6a723b38bcd9395bf482e939eac95afcc015d"
},
"tests": {
"red": {
"source_sha256": "7422f79bfa5ecf9b13c37b7ad0cf0b23469ed7059e85462ff96b7704084d29d9",
"test": "/tmp/erri-observer-0454/tests/test_observer_ownership.py",
"test_sha256": "f35d60fbdcdcde6bcdaaa403924fc8316d6684730c25ede6c15e619a4474a80e",
"exit_code": 1,
"log": "/tmp/erri-observer-review-0454/red.log",
"log_sha256": "88266ec197cb4dc85206cf0669bbfeb24eefe095a1b4570f5097fec3410c572f"
},
"green": {
"source_sha256": "4acbd2b23803f1fde3701fbddffd56edd83693196f0be2fe99f3be9b79a12b3d",
"test": "/tmp/erri-observer-0454/tests/test_observer_ownership.py",
"test_sha256": "f35d60fbdcdcde6bcdaaa403924fc8316d6684730c25ede6c15e619a4474a80e",
"exit_code": 0,
"log": "/tmp/erri-observer-review-0454/green.log",
"log_sha256": "359367fd4e4c429eca157de941b568ba6c66b18e27f64d95e057fe512c73e78d"
},
"hint-green": {
"source_sha256": "4acbd2b23803f1fde3701fbddffd56edd83693196f0be2fe99f3be9b79a12b3d",
"test": "/tmp/erri-observer-0454/tests/test_hint_delivery.py",
"test_sha256": "1ec462cea5890379ad33ea3f16591896e085d1a30fd1af4a3411b14e5dc8acc3",
"exit_code": 0,
"log": "/tmp/erri-observer-review-0454/hint-green.log",
"log_sha256": "670a12abaa16aae6ff07d3fc7fb3492063a50cf8d78760da610705275e8f7efa"
}
},
"conclusion": "Early local-controller guard prevents stale recovery/editor/camera side effects and stale camera creation. Exact owned old camera is cleaned while newer current camera, timer, hints and placeholder remain unchanged. Normal current-controller recovery and single monitor restart tested. No new production issue identified."
}