Files
EscapistsReintroduced/docs/evidence/recovery-launcher-2026-10-02/observer/review.json
T
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

56 lines
3.4 KiB
JSON

{
"verdict": "Concrete source presentation defect reproduced; minimal proposal fixes it",
"before": "All-unconscious status already replicated from RecoveryService contains30s defeat/recovery/reconnect facts. PlayerGuide skips server-designated observers; Observer ignores RecoveryStatus and deduplicates only reason/target availability, so no automatic warning reaches affected unconscious players.",
"after": "Existing observer hint appends current replicated recovery status and refreshes only when reason/availability/status changed. Cache advances only on accepted ShowCustom; close clears status; existing ownership and active/conscious gates remain unchanged.",
"production_files": [
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c"
],
"test_files": [
"tests/test_hint_delivery.py",
"tests/test_observer_ownership.py"
],
"baseline_red": "red.log:actual method compiles, fails assertion requiring updated medical warning while observer reason/target unchanged",
"proposal_green": [
"green.log",
"ownership-green.log"
],
"coverage": [
"stable message dedup",
"status changes stalled\u2192recovering\u2192reserved help\u2192clear",
"rejected hint/missing manager retry without cache advance",
"ordinary guide cannot deliver this unconscious state",
"wake closes presentation",
"old controller cannot display replacement status",
"inactive round stops hints and clears cache",
"new round uses only current status"
],
"medical_policy_changed": false,
"native_launched": false,
"target_changed": false,
"native_limits": "Getter proves accepted native hint path/state only; no claim of full-resolution readability, manual UI or multiplayer. Existing fixture itself arranges treatment/knockout, unchanged.",
"manifest": {
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": {
"working_sha256": "4acbd2b23803f1fde3701fbddffd56edd83693196f0be2fe99f3be9b79a12b3d",
"index_sha256": "31d08123fa9f49dde380354bd839d1a9deb175cdb940311b4a64dd56eeb04ed7",
"proposal_sha256": "682aa5549470c69fc72d261fbfcf9f7a04a41a66e0101b269ccc00bc282ad05d"
},
"tests/test_hint_delivery.py": {
"working_sha256": "1ec462cea5890379ad33ea3f16591896e085d1a30fd1af4a3411b14e5dc8acc3",
"index_sha256": "1ec462cea5890379ad33ea3f16591896e085d1a30fd1af4a3411b14e5dc8acc3",
"proposal_sha256": "6066e2b00e54553ac298a3f9b37060a23851f5ca5d4f98eb25e502b2c44240a6"
},
"tests/test_observer_ownership.py": {
"working_sha256": "879c6185d834c03f8d62e7e35359c8bb5f6821f6dde03c73957be2ba614947c6",
"index_sha256": "879c6185d834c03f8d62e7e35359c8bb5f6821f6dde03c73957be2ba614947c6",
"proposal_sha256": "8e485c3d2e6ae90df82cbc7829996138db8e9a5a4a42a5e2bcaa3bffa61368de"
},
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": {
"working_sha256": "7d5ff3389ee806ac213db5be3a68288b3399142ccc29806df0d65b34a0b2fc3c",
"index_sha256": "7b9308c9c35413fa76a7bdc8923f99785fb393ad9d06ba4b36df4d8aa29e574b",
"proposal_sha256": "66b1c4591b0ecc67cb08418a115bb02ed2b0168b7ae970f1e0a1ea335c59dc5b"
}
},
"apply_check": true,
"workbench_only_fixture": "ERR_UnconsciousCameraProbe adds accepted-cache getter and2assertions: stage1 nonempty actual RecoveryStatus containing treatment/natural-recovery branch equals accepted hint cache; stage4 awakening clears cache. No synthetic policy/timing change."
}