Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
34 lines
2.5 KiB
JSON
34 lines
2.5 KiB
JSON
{
|
|
"status": "Frozen isolated proposal; working tree and index untouched",
|
|
"files": {
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "4acbd2b23803f1fde3701fbddffd56edd83693196f0be2fe99f3be9b79a12b3d",
|
|
"tests/test_hint_delivery.py": "1ec462cea5890379ad33ea3f16591896e085d1a30fd1af4a3411b14e5dc8acc3",
|
|
"tests/test_observer_ownership.py": "f35d60fbdcdcde6bcdaaa403924fc8316d6684730c25ede6c15e619a4474a80e"
|
|
},
|
|
"baseline": "baseline-manifest.json captures exact separate index/working hashes and files, including inherited Observer43 additions/2 deletions",
|
|
"patch_sha256": "30358e01568a6a6693598dbe93f6a723b38bcd9395bf482e939eac95afcc015d",
|
|
"results": {
|
|
"red": {
|
|
"exit_code": 1,
|
|
"log_sha256": "88609415af870674d5da47156077cbbba0d599d587a7286e5767810d7438e065"
|
|
},
|
|
"green": {
|
|
"exit_code": 0,
|
|
"log_sha256": "359367fd4e4c429eca157de941b568ba6c66b18e27f64d95e057fe512c73e78d"
|
|
},
|
|
"hint-green": {
|
|
"exit_code": 0,
|
|
"log_sha256": "670a12abaa16aae6ff07d3fc7fb3492063a50cf8d78760da610705275e8f7efa"
|
|
}
|
|
},
|
|
"apply_check": true,
|
|
"registration_needed": "tests/test_observer_ownership.py is new; parent must register in tools/check.py preserving existing edits",
|
|
"sdk_evidence": {
|
|
"source": "/tmp/erri-vanilla-stock/scripts/Game/Camera/SCR_ManualCamera.c",
|
|
"lines": "EOnInit451-468 sets native global camera; Terminate419 only exits own components; destructor521 invokes SwitchToPreviousCamera266, which first requires exact camera current"
|
|
},
|
|
"behavior": "Former local controller retains timer after replacement; awakened former body can close editor and select old body camera, or old observer may spawn camera whose native init selects globally. Guard stops only old monitor/resets recovery latches/cleans exact own observer before any those calls. Current owner normal recovery and restart monitor remain unchanged.",
|
|
"test_boundary": "Actual Start/Update/Recovery/Close methods; camera/editor/hint/native scheduler doubles. Baseline compiled then fails meaningful global-camera/editor assertion. New current camera, timer, respawn placeholder and hints preserved; exact old current camera native fallback control uses live previous camera. The SDK dynamically finds previous camera: double uses pinned previous solely to model current-identity guard, not native camera-list fidelity. No engine/UI proof.",
|
|
"index_own_patch": "observer-index-own.patch contains only production11line guard applied to original index baseline; main fix.patch applies against captured working tree. Parent controls staging."
|
|
}
|