Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
51 lines
3.9 KiB
JSON
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."
|
|
}
|