Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
28 lines
1.7 KiB
JSON
28 lines
1.7 KiB
JSON
{
|
|
"status": "Approved, no blocker",
|
|
"review": "Minimal Stop-only guard preserves unconditional instance-owned callback and chat listener cleanup while restricting global panel close to exact current local controller. Scope and Accept behavior unchanged.",
|
|
"expression_evidence": [
|
|
"Existing ERR_ChatClient.Accept uses !m_Stopped && GetGame() && m_Controller == GetGame().GetPlayerController() before Scope.",
|
|
"Existing ERR_PlayerAdminCommands.ERR_StartChatClient uses GetGame() && this == GetGame().GetPlayerController(); same supported Enforce short-circuit/reference truthiness pattern."
|
|
],
|
|
"test_scope": "Extracted actual Poll, Scope, Accept and Stop method bodies. Native queue/menu/invoker boundaries doubled. Constructor/Register/OnCommand and controller RPCs not executed by this harness; call-site ownership was independently source-reviewed.",
|
|
"limits": "No native/GUI execution, no real multiplayer claim, no target changes.",
|
|
"hashes": {
|
|
"/tmp/erri-chat-ownership-0624/before.c": "ae856e9fa0e19fc35d5c839fc5001bb28ce633eab59710911e7e56057dd452f0",
|
|
"/tmp/erri-chat-ownership-0624/after.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
|
|
"/tmp/erri-chat-ownership-0624/test_chat_client_ownership.py": "c559dbda1af996455038da9eeb5ffcfc6332da9b93082da8ad3071f5d72b8bdf"
|
|
},
|
|
"results": {
|
|
"red": {
|
|
"exit_code": 1,
|
|
"log": "/tmp/erri-chat-review-0624/red.log",
|
|
"sha256": "73b71e19d8e75ddc55547eea666081abe8d8270e4dbea2d01ec04b532653ac1b"
|
|
},
|
|
"green": {
|
|
"exit_code": 0,
|
|
"log": "/tmp/erri-chat-review-0624/green.log",
|
|
"sha256": "1e5e0eb3f442af8fa0b30e996458106357f2846bc473fe980b66d9e01b87564e"
|
|
}
|
|
}
|
|
}
|