diff --git a/runtime/history/SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5.json b/runtime/history/SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5.json new file mode 100644 index 00000000..b1953a20 --- /dev/null +++ b/runtime/history/SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5", + "status": "FAIL", + "rc": 3, + "host": "pve01", + "mode": "read-only", + "component": "xenforo-fleet-error-and-merge-rca", + "started_at_utc": "2026-09-17T22:26:06Z", + "finished_at_utc": "2026-09-17T22:26:08Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "ddaa9ec571a64f8bd0b8cae2c093748039b6dc3fd6600cb8ab25bec3996db287", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 3, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "ef9693b9cc37b7ee0af6ff57943414fc0efe16d10fbabcb3595839c719b6a045", + "sanitized_output_sha256": "ef9693b9cc37b7ee0af6ff57943414fc0efe16d10fbabcb3595839c719b6a045", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "TPL495T3R5_WRAPPER_BEGIN=true\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nTPL495T3R5_BEGIN=true\nMODE=READ_ONLY_ERROR_AND_MERGE_RCA\nVM211_EXCLUDED=true\nTPL495T3R5_ERROR_ROWS=[{\"site\":\"codevipe.ru\",\"error_id\":11,\"exception_date\":1789683149,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"dsmods.ru\",\"error_id\":3,\"exception_date\":1789683149,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"gamevipe.ru\",\"error_id\":2,\"exception_date\":1789683149,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"hkmods.ru\",\"error_id\":13,\"exception_date\":1789683150,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"kingofwolk.ru\",\"error_id\":1,\"exception_date\":1789683150,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"zakrutim.ru\",\"error_id\":2,\"exception_date\":1789683150,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"newfi.ru\",\"error_id\":33,\"exception_date\":1789683151,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"}]\nTPL495T3R5_DECISION=HOLD_NATIVE_SERVICE_UNRESOLVED_codevipe.ru\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5\",\"status\":\"FAIL\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" +} diff --git a/runtime/history/SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5.txt b/runtime/history/SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5.txt new file mode 100644 index 00000000..89b07aca --- /dev/null +++ b/runtime/history/SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5.txt @@ -0,0 +1,42 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5 +STATUS=FAIL +RC=3 +HOST=pve01 +MODE=read-only +COMPONENT=xenforo-fleet-error-and-merge-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=ddaa9ec571a64f8bd0b8cae2c093748039b6dc3fd6600cb8ab25bec3996db287 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=3 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=ef9693b9cc37b7ee0af6ff57943414fc0efe16d10fbabcb3595839c719b6a045 +SANITIZED_OUTPUT_SHA256=ef9693b9cc37b7ee0af6ff57943414fc0efe16d10fbabcb3595839c719b6a045 +OUTPUT_BEGIN +TPL495T3R5_WRAPPER_BEGIN=true +ERROR_REGISTER_CHECK=OK +REFERENCE_CHECK=OK +AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED +TPL495T3R5_BEGIN=true +MODE=READ_ONLY_ERROR_AND_MERGE_RCA +VM211_EXCLUDED=true +TPL495T3R5_ERROR_ROWS=[{"site":"codevipe.ru","error_id":11,"exception_date":1789683149,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"dsmods.ru","error_id":3,"exception_date":1789683149,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"gamevipe.ru","error_id":2,"exception_date":1789683149,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"hkmods.ru","error_id":13,"exception_date":1789683150,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"kingofwolk.ru","error_id":1,"exception_date":1789683150,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"zakrutim.ru","error_id":2,"exception_date":1789683150,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"newfi.ru","error_id":33,"exception_date":1789683151,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"}] +TPL495T3R5_DECISION=HOLD_NATIVE_SERVICE_UNRESOLVED_codevipe.ru +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5","status":"FAIL","changes_made":false,"rollback_started":false,"rollback_restored":null} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 23f046c3..b1953a20 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260918-XENFORO-TEMPLATE-MERGE-SERVICE-RCA-495T3R4", + "command_id": "SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5", "status": "FAIL", "rc": 3, "host": "pve01", "mode": "read-only", - "component": "xenforo-template-merge-service-rca", - "started_at_utc": "2026-09-17T22:19:22Z", - "finished_at_utc": "2026-09-17T22:19:25Z", + "component": "xenforo-fleet-error-and-merge-rca", + "started_at_utc": "2026-09-17T22:26:06Z", + "finished_at_utc": "2026-09-17T22:26:08Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "f66955361fd82d2307ead100b2a5ecc8ef99f53c90131cfb6997170c5140693f", + "command_sha256": "ddaa9ec571a64f8bd0b8cae2c093748039b6dc3fd6600cb8ab25bec3996db287", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "8e37e2561ea1769921a2d635d9d29e56238ab6889f6cc1953a6b5d87931e828d", - "sanitized_output_sha256": "8e37e2561ea1769921a2d635d9d29e56238ab6889f6cc1953a6b5d87931e828d", + "raw_evidence_sha256": "ef9693b9cc37b7ee0af6ff57943414fc0efe16d10fbabcb3595839c719b6a045", + "sanitized_output_sha256": "ef9693b9cc37b7ee0af6ff57943414fc0efe16d10fbabcb3595839c719b6a045", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "TPL495T3R4_WRAPPER_BEGIN=true\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nTPL495T3R4_BEGIN=true\nMODE=READ_ONLY_MERGE_SERVICE_RCA\nVM211_EXCLUDED=true\nTPL495T3R4_SAFE_REPORT={\"affected\":[\"codevipe.ru\",\"dsmods.ru\",\"gamevipe.ru\",\"hkmods.ru\",\"zakrutim.ru\"],\"outdated_total\":5,\"xf_error_rows_total\":7,\"sites\":[{\"site\":\"codevipe.ru\",\"xf_error_rows\":1,\"board_active\":\"1\",\"outdated_count_repo\":1,\"action_merge_outdated\":{\"descriptor\":{\"exists\":true,\"class\":\"XF\\\\Admin\\\\Controller\\\\TemplateController\",\"public\":true,\"required\":1,\"total\":1,\"params\":[{\"name\":\"params\",\"optional\":false,\"type\":\"XF\\\\Mvc\\\\ParameterBag\"}],\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"source_sha256\":\"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61\",\"token_skeleton\":\"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }\"},\"service_bindings\":[],\"history_receivers\":[\"historyRepo\"]},\"filesystem_hits\":[{\"file\":\"src/XF/Job/TemplateMerge.php\",\"file_sha256\":\"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93\",\"definition\":false,\"occurrences\":[{\"line\":89,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"file_sha256\":\"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060\",\"definition\":false,\"occurrences\":[{\"line\":452,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"definition\":true,\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"definition_hits\":[{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"outdated\":[{\"template_id\":1401,\"type\":\"public\",\"title\":\"extra.less\",\"style_id\":2,\"addon_id\":\"\",\"version_id\":0,\"version_string\":\"\",\"last_edit_date\":1784195301,\"body\":{\"sha256\":\"ca051810957679432c36024c18f3adbf3a087c7a034cd46d72edfffbd4564b6c\",\"bytes\":2396,\"lines\":131},\"outdated_meta\":{\"template_id\":1401,\"parent_version_string\":\"2.0.0 Alpha\",\"parent_last_edit_date\":1721849139,\"outdated_by_version\":1,\"outdated_by_date\":0},\"native_service\":null}]},{\"site\":\"dsmods.ru\",\"xf_error_rows\":1,\"board_active\":\"1\",\"outdated_count_repo\":1,\"action_merge_outdated\":{\"descriptor\":{\"exists\":true,\"class\":\"XF\\\\Admin\\\\Controller\\\\TemplateController\",\"public\":true,\"required\":1,\"total\":1,\"params\":[{\"name\":\"params\",\"optional\":false,\"type\":\"XF\\\\Mvc\\\\ParameterBag\"}],\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"source_sha256\":\"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61\",\"token_skeleton\":\"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }\"},\"service_bindings\":[],\"history_receivers\":[\"historyRepo\"]},\"filesystem_hits\":[{\"file\":\"src/XF/Job/TemplateMerge.php\",\"file_sha256\":\"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93\",\"definition\":false,\"occurrences\":[{\"line\":89,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"file_sha256\":\"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060\",\"definition\":false,\"occurrences\":[{\"line\":452,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"definition\":true,\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"definition_hits\":[{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"outdated\":[{\"template_id\":1317,\"type\":\"public\",\"title\":\"extra.less\",\"style_id\":2,\"addon_id\":\"\",\"version_id\":0,\"version_string\":\"\",\"last_edit_date\":1784195301,\"body\":{\"sha256\":\"3898034b75b561c774b41f6e1d8dce66a171fe30c7c210d543b41a8133e42fa2\",\"bytes\":2402,\"lines\":131},\"outdated_meta\":{\"template_id\":1317,\"parent_version_string\":\"2.0.0 Alpha\",\"parent_last_edit_date\":1728727128,\"outdated_by_version\":1,\"outdated_by_date\":0},\"native_service\":null}]},{\"site\":\"gamevipe.ru\",\"xf_error_rows\":1,\"board_active\":\"1\",\"outdated_count_repo\":1,\"action_merge_outdated\":{\"descriptor\":{\"exists\":true,\"class\":\"XF\\\\Admin\\\\Controller\\\\TemplateController\",\"public\":true,\"required\":1,\"total\":1,\"params\":[{\"name\":\"params\",\"optional\":false,\"type\":\"XF\\\\Mvc\\\\ParameterBag\"}],\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"source_sha256\":\"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61\",\"token_skeleton\":\"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }\"},\"service_bindings\":[],\"history_receivers\":[\"historyRepo\"]},\"filesystem_hits\":[{\"file\":\"src/XF/Job/TemplateMerge.php\",\"file_sha256\":\"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93\",\"definition\":false,\"occurrences\":[{\"line\":89,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"file_sha256\":\"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060\",\"definition\":false,\"occurrences\":[{\"line\":452,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"definition\":true,\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"definition_hits\":[{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"outdated\":[{\"template_id\":1696,\"type\":\"public\",\"title\":\"extra.less\",\"style_id\":2,\"addon_id\":\"\",\"version_id\":0,\"version_string\":\"\",\"last_edit_date\":1784195301,\"body\":{\"sha256\":\"fde07ae7d5f65a3cdee23b7f90834229c95495fb69db44727345b550441646ab\",\"bytes\":2410,\"lines\":131},\"outdated_meta\":{\"template_id\":1696,\"parent_version_string\":\"2.0.0 Alpha\",\"parent_last_edit_date\":1720986507,\"outdated_by_version\":1,\"outdated_by_date\":0},\"native_service\":null}]},{\"site\":\"hkmods.ru\",\"xf_error_rows\":1,\"board_active\":\"1\",\"outdated_count_repo\":1,\"action_merge_outdated\":{\"descriptor\":{\"exists\":true,\"class\":\"XF\\\\Admin\\\\Controller\\\\TemplateController\",\"public\":true,\"required\":1,\"total\":1,\"params\":[{\"name\":\"params\",\"optional\":false,\"type\":\"XF\\\\Mvc\\\\ParameterBag\"}],\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"source_sha256\":\"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61\",\"token_skeleton\":\"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }\"},\"service_bindings\":[],\"history_receivers\":[\"historyRepo\"]},\"filesystem_hits\":[{\"file\":\"src/XF/Job/TemplateMerge.php\",\"file_sha256\":\"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93\",\"definition\":false,\"occurrences\":[{\"line\":89,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"file_sha256\":\"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060\",\"definition\":false,\"occurrences\":[{\"line\":452,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"definition\":true,\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"definition_hits\":[{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"outdated\":[{\"template_id\":2021,\"type\":\"public\",\"title\":\"extra.less\",\"style_id\":2,\"addon_id\":\"\",\"version_id\":0,\"version_string\":\"\",\"last_edit_date\":1784195301,\"body\":{\"sha256\":\"2339326596eb8f77111df70fa4336809e67615942b4b7b1afb2777d8ee447bd3\",\"bytes\":2422,\"lines\":131},\"outdated_meta\":{\"template_id\":2021,\"parent_version_string\":\"2.0.0 Alpha\",\"parent_last_edit_date\":1691944582,\"outdated_by_version\":1,\"outdated_by_date\":0},\"native_service\":null}]},{\"site\":\"kingofwolk.ru\",\"xf_error_rows\":1,\"board_active\":\"1\",\"outdated_count_repo\":0,\"action_merge_outdated\":{\"descriptor\":{\"exists\":true,\"class\":\"XF\\\\Admin\\\\Controller\\\\TemplateController\",\"public\":true,\"required\":1,\"total\":1,\"params\":[{\"name\":\"params\",\"optional\":false,\"type\":\"XF\\\\Mvc\\\\ParameterBag\"}],\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"source_sha256\":\"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61\",\"token_skeleton\":\"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }\"},\"service_bindings\":[],\"history_receivers\":[\"historyRepo\"]},\"filesystem_hits\":[{\"file\":\"src/XF/Job/TemplateMerge.php\",\"file_sha256\":\"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93\",\"definition\":false,\"occurrences\":[{\"line\":89,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"file_sha256\":\"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060\",\"definition\":false,\"occurrences\":[{\"line\":452,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"definition\":true,\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"definition_hits\":[{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"outdated\":[]},{\"site\":\"zakrutim.ru\",\"xf_error_rows\":1,\"board_active\":\"1\",\"outdated_count_repo\":1,\"action_merge_outdated\":{\"descriptor\":{\"exists\":true,\"class\":\"XF\\\\Admin\\\\Controller\\\\TemplateController\",\"public\":true,\"required\":1,\"total\":1,\"params\":[{\"name\":\"params\",\"optional\":false,\"type\":\"XF\\\\Mvc\\\\ParameterBag\"}],\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"source_sha256\":\"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61\",\"token_skeleton\":\"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }\"},\"service_bindings\":[],\"history_receivers\":[\"historyRepo\"]},\"filesystem_hits\":[{\"file\":\"src/XF/Job/TemplateMerge.php\",\"file_sha256\":\"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93\",\"definition\":false,\"occurrences\":[{\"line\":89,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"file_sha256\":\"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060\",\"definition\":false,\"occurrences\":[{\"line\":452,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"definition\":true,\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"definition_hits\":[{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"outdated\":[{\"template_id\":1921,\"type\":\"public\",\"title\":\"extra.less\",\"style_id\":2,\"addon_id\":\"\",\"version_id\":0,\"version_string\":\"\",\"last_edit_date\":1784195301,\"body\":{\"sha256\":\"9662d1b57f5f6fcd2992fd9d150aeb887c242f792eb750cf6cb458d65b99a12d\",\"bytes\":2435,\"lines\":131},\"outdated_meta\":{\"template_id\":1921,\"parent_version_string\":\"2.0.0 Alpha\",\"parent_last_edit_date\":1692264832,\"outdated_by_version\":1,\"outdated_by_date\":0},\"native_service\":null}]},{\"site\":\"newfi.ru\",\"xf_error_rows\":1,\"board_active\":\"1\",\"outdated_count_repo\":0,\"action_merge_outdated\":{\"descriptor\":{\"exists\":true,\"class\":\"XF\\\\Admin\\\\Controller\\\\TemplateController\",\"public\":true,\"required\":1,\"total\":1,\"params\":[{\"name\":\"params\",\"optional\":false,\"type\":\"XF\\\\Mvc\\\\ParameterBag\"}],\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"source_sha256\":\"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61\",\"token_skeleton\":\"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\\\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }\"},\"service_bindings\":[],\"history_receivers\":[\"historyRepo\"]},\"filesystem_hits\":[{\"file\":\"src/XF/Job/TemplateMerge.php\",\"file_sha256\":\"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93\",\"definition\":false,\"occurrences\":[{\"line\":89,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Admin/Controller/TemplateController.php\",\"file_sha256\":\"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060\",\"definition\":false,\"occurrences\":[{\"line\":452,\"sha256\":\"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96\"}]},{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"definition\":true,\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"definition_hits\":[{\"file\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"file_sha256\":\"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655\",\"occurrences\":[{\"line\":11,\"sha256\":\"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22\"}]}],\"outdated\":[]}],\"scope\":\"READ_ONLY_NO_XENFORO_MUTATION\"}\nTPL495T3R4_DECISION=HOLD_XF_ERROR_LOG_NOT_ZERO\nTPL495T3R4_HOLD=7\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260918-XENFORO-TEMPLATE-MERGE-SERVICE-RCA-495T3R4\",\"status\":\"FAIL\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" + "output": "TPL495T3R5_WRAPPER_BEGIN=true\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nTPL495T3R5_BEGIN=true\nMODE=READ_ONLY_ERROR_AND_MERGE_RCA\nVM211_EXCLUDED=true\nTPL495T3R5_ERROR_ROWS=[{\"site\":\"codevipe.ru\",\"error_id\":11,\"exception_date\":1789683149,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"dsmods.ru\",\"error_id\":3,\"exception_date\":1789683149,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"gamevipe.ru\",\"error_id\":2,\"exception_date\":1789683149,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"hkmods.ru\",\"error_id\":13,\"exception_date\":1789683150,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"kingofwolk.ru\",\"error_id\":1,\"exception_date\":1789683150,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"zakrutim.ru\",\"error_id\":2,\"exception_date\":1789683150,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"},{\"site\":\"newfi.ru\",\"error_id\":33,\"exception_date\":1789683151,\"exception_type\":\"ErrorException\",\"message\":\"Fatal Error: Cannot declare class XF\\\\Repository\\\\TemplateHistoryRepository, because the name is already in use\",\"filename\":\"src/XF/Repository/TemplateHistoryRepository.php\",\"line\":9,\"trace_sha256\":\"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8\"}]\nTPL495T3R5_DECISION=HOLD_NATIVE_SERVICE_UNRESOLVED_codevipe.ru\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5\",\"status\":\"FAIL\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 5879d492..89b07aca 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260918-XENFORO-TEMPLATE-MERGE-SERVICE-RCA-495T3R4 +COMMAND_ID=SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5 STATUS=FAIL RC=3 HOST=pve01 MODE=read-only -COMPONENT=xenforo-template-merge-service-rca +COMPONENT=xenforo-fleet-error-and-merge-rca REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=f66955361fd82d2307ead100b2a5ecc8ef99f53c90131cfb6997170c5140693f +COMMAND_SHA256=ddaa9ec571a64f8bd0b8cae2c093748039b6dc3fd6600cb8ab25bec3996db287 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,20 +24,19 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=8e37e2561ea1769921a2d635d9d29e56238ab6889f6cc1953a6b5d87931e828d -SANITIZED_OUTPUT_SHA256=8e37e2561ea1769921a2d635d9d29e56238ab6889f6cc1953a6b5d87931e828d +RAW_EVIDENCE_SHA256=ef9693b9cc37b7ee0af6ff57943414fc0efe16d10fbabcb3595839c719b6a045 +SANITIZED_OUTPUT_SHA256=ef9693b9cc37b7ee0af6ff57943414fc0efe16d10fbabcb3595839c719b6a045 OUTPUT_BEGIN -TPL495T3R4_WRAPPER_BEGIN=true +TPL495T3R5_WRAPPER_BEGIN=true ERROR_REGISTER_CHECK=OK REFERENCE_CHECK=OK AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED -TPL495T3R4_BEGIN=true -MODE=READ_ONLY_MERGE_SERVICE_RCA +TPL495T3R5_BEGIN=true +MODE=READ_ONLY_ERROR_AND_MERGE_RCA VM211_EXCLUDED=true -TPL495T3R4_SAFE_REPORT={"affected":["codevipe.ru","dsmods.ru","gamevipe.ru","hkmods.ru","zakrutim.ru"],"outdated_total":5,"xf_error_rows_total":7,"sites":[{"site":"codevipe.ru","xf_error_rows":1,"board_active":"1","outdated_count_repo":1,"action_merge_outdated":{"descriptor":{"exists":true,"class":"XF\\Admin\\Controller\\TemplateController","public":true,"required":1,"total":1,"params":[{"name":"params","optional":false,"type":"XF\\Mvc\\ParameterBag"}],"file":"src/XF/Admin/Controller/TemplateController.php","source_sha256":"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61","token_skeleton":"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }"},"service_bindings":[],"history_receivers":["historyRepo"]},"filesystem_hits":[{"file":"src/XF/Job/TemplateMerge.php","file_sha256":"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93","definition":false,"occurrences":[{"line":89,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Admin/Controller/TemplateController.php","file_sha256":"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060","definition":false,"occurrences":[{"line":452,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","definition":true,"occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"definition_hits":[{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"outdated":[{"template_id":1401,"type":"public","title":"extra.less","style_id":2,"addon_id":"","version_id":0,"version_string":"","last_edit_date":1784195301,"body":{"sha256":"ca051810957679432c36024c18f3adbf3a087c7a034cd46d72edfffbd4564b6c","bytes":2396,"lines":131},"outdated_meta":{"template_id":1401,"parent_version_string":"2.0.0 Alpha","parent_last_edit_date":1721849139,"outdated_by_version":1,"outdated_by_date":0},"native_service":null}]},{"site":"dsmods.ru","xf_error_rows":1,"board_active":"1","outdated_count_repo":1,"action_merge_outdated":{"descriptor":{"exists":true,"class":"XF\\Admin\\Controller\\TemplateController","public":true,"required":1,"total":1,"params":[{"name":"params","optional":false,"type":"XF\\Mvc\\ParameterBag"}],"file":"src/XF/Admin/Controller/TemplateController.php","source_sha256":"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61","token_skeleton":"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }"},"service_bindings":[],"history_receivers":["historyRepo"]},"filesystem_hits":[{"file":"src/XF/Job/TemplateMerge.php","file_sha256":"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93","definition":false,"occurrences":[{"line":89,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Admin/Controller/TemplateController.php","file_sha256":"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060","definition":false,"occurrences":[{"line":452,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","definition":true,"occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"definition_hits":[{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"outdated":[{"template_id":1317,"type":"public","title":"extra.less","style_id":2,"addon_id":"","version_id":0,"version_string":"","last_edit_date":1784195301,"body":{"sha256":"3898034b75b561c774b41f6e1d8dce66a171fe30c7c210d543b41a8133e42fa2","bytes":2402,"lines":131},"outdated_meta":{"template_id":1317,"parent_version_string":"2.0.0 Alpha","parent_last_edit_date":1728727128,"outdated_by_version":1,"outdated_by_date":0},"native_service":null}]},{"site":"gamevipe.ru","xf_error_rows":1,"board_active":"1","outdated_count_repo":1,"action_merge_outdated":{"descriptor":{"exists":true,"class":"XF\\Admin\\Controller\\TemplateController","public":true,"required":1,"total":1,"params":[{"name":"params","optional":false,"type":"XF\\Mvc\\ParameterBag"}],"file":"src/XF/Admin/Controller/TemplateController.php","source_sha256":"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61","token_skeleton":"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }"},"service_bindings":[],"history_receivers":["historyRepo"]},"filesystem_hits":[{"file":"src/XF/Job/TemplateMerge.php","file_sha256":"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93","definition":false,"occurrences":[{"line":89,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Admin/Controller/TemplateController.php","file_sha256":"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060","definition":false,"occurrences":[{"line":452,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","definition":true,"occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"definition_hits":[{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"outdated":[{"template_id":1696,"type":"public","title":"extra.less","style_id":2,"addon_id":"","version_id":0,"version_string":"","last_edit_date":1784195301,"body":{"sha256":"fde07ae7d5f65a3cdee23b7f90834229c95495fb69db44727345b550441646ab","bytes":2410,"lines":131},"outdated_meta":{"template_id":1696,"parent_version_string":"2.0.0 Alpha","parent_last_edit_date":1720986507,"outdated_by_version":1,"outdated_by_date":0},"native_service":null}]},{"site":"hkmods.ru","xf_error_rows":1,"board_active":"1","outdated_count_repo":1,"action_merge_outdated":{"descriptor":{"exists":true,"class":"XF\\Admin\\Controller\\TemplateController","public":true,"required":1,"total":1,"params":[{"name":"params","optional":false,"type":"XF\\Mvc\\ParameterBag"}],"file":"src/XF/Admin/Controller/TemplateController.php","source_sha256":"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61","token_skeleton":"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }"},"service_bindings":[],"history_receivers":["historyRepo"]},"filesystem_hits":[{"file":"src/XF/Job/TemplateMerge.php","file_sha256":"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93","definition":false,"occurrences":[{"line":89,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Admin/Controller/TemplateController.php","file_sha256":"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060","definition":false,"occurrences":[{"line":452,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","definition":true,"occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"definition_hits":[{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"outdated":[{"template_id":2021,"type":"public","title":"extra.less","style_id":2,"addon_id":"","version_id":0,"version_string":"","last_edit_date":1784195301,"body":{"sha256":"2339326596eb8f77111df70fa4336809e67615942b4b7b1afb2777d8ee447bd3","bytes":2422,"lines":131},"outdated_meta":{"template_id":2021,"parent_version_string":"2.0.0 Alpha","parent_last_edit_date":1691944582,"outdated_by_version":1,"outdated_by_date":0},"native_service":null}]},{"site":"kingofwolk.ru","xf_error_rows":1,"board_active":"1","outdated_count_repo":0,"action_merge_outdated":{"descriptor":{"exists":true,"class":"XF\\Admin\\Controller\\TemplateController","public":true,"required":1,"total":1,"params":[{"name":"params","optional":false,"type":"XF\\Mvc\\ParameterBag"}],"file":"src/XF/Admin/Controller/TemplateController.php","source_sha256":"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61","token_skeleton":"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }"},"service_bindings":[],"history_receivers":["historyRepo"]},"filesystem_hits":[{"file":"src/XF/Job/TemplateMerge.php","file_sha256":"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93","definition":false,"occurrences":[{"line":89,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Admin/Controller/TemplateController.php","file_sha256":"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060","definition":false,"occurrences":[{"line":452,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","definition":true,"occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"definition_hits":[{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"outdated":[]},{"site":"zakrutim.ru","xf_error_rows":1,"board_active":"1","outdated_count_repo":1,"action_merge_outdated":{"descriptor":{"exists":true,"class":"XF\\Admin\\Controller\\TemplateController","public":true,"required":1,"total":1,"params":[{"name":"params","optional":false,"type":"XF\\Mvc\\ParameterBag"}],"file":"src/XF/Admin/Controller/TemplateController.php","source_sha256":"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61","token_skeleton":"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }"},"service_bindings":[],"history_receivers":["historyRepo"]},"filesystem_hits":[{"file":"src/XF/Job/TemplateMerge.php","file_sha256":"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93","definition":false,"occurrences":[{"line":89,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Admin/Controller/TemplateController.php","file_sha256":"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060","definition":false,"occurrences":[{"line":452,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","definition":true,"occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"definition_hits":[{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"outdated":[{"template_id":1921,"type":"public","title":"extra.less","style_id":2,"addon_id":"","version_id":0,"version_string":"","last_edit_date":1784195301,"body":{"sha256":"9662d1b57f5f6fcd2992fd9d150aeb887c242f792eb750cf6cb458d65b99a12d","bytes":2435,"lines":131},"outdated_meta":{"template_id":1921,"parent_version_string":"2.0.0 Alpha","parent_last_edit_date":1692264832,"outdated_by_version":1,"outdated_by_date":0},"native_service":null}]},{"site":"newfi.ru","xf_error_rows":1,"board_active":"1","outdated_count_repo":0,"action_merge_outdated":{"descriptor":{"exists":true,"class":"XF\\Admin\\Controller\\TemplateController","public":true,"required":1,"total":1,"params":[{"name":"params","optional":false,"type":"XF\\Mvc\\ParameterBag"}],"file":"src/XF/Admin/Controller/TemplateController.php","source_sha256":"1379d227c66f90a1e58acd7d0a3d00af36a7a8a3eaeee728cbb752231f6fcd61","token_skeleton":"public function actionMergeOutdated ( ParameterBag $params ) { $this -> setSectionContext ( ) ; $template = $this -> assertTemplateForComparison ( $params -> template_id ) ; $parentTemplate = $template -> ParentTemplate ; if ( ! $parentTemplate -> last_edit_date || $parentTemplate -> last_edit_date < $template -> last_edit_date ) { return $this -> error ( \\XF :: phrase ( ) ) ; } $historyRepo = $this -> repository ( TemplateHistoryRepository :: class ) ; $previousVersion = $historyRepo -> getHistoryForMerge ( $template , $parentTemplate ) ; if ( ! $previousVersion ) { return $this -> error ( \\XF :: phrase ( ) ) ; } if ( $this -> isPost ( ) ) { $merged = $this -> filter ( , ) ; $final = implode ( , $merged ) ; $template -> template = $final ; $template -> last_edit_date = time ( ) ; if ( ! $template -> isChanged ( ) ) { $template -> updateVersionId ( ) ; } $template -> save ( ) ; return $this -> redirect ( $this -> buildLink ( ) ) ; } else { $diff = new Diff3 ( ) ; $diffs = $diff -> findDifferences ( $template -> template , $previousVersion -> template , $parentTemplate -> template ) ; $viewParams = [ => $template , => $parentTemplate , => $previousVersion , => $diffs , ] ; return $this -> view ( , , $viewParams ) ; } }"},"service_bindings":[],"history_receivers":["historyRepo"]},"filesystem_hits":[{"file":"src/XF/Job/TemplateMerge.php","file_sha256":"7cac80d14ba46c6889f99d0603eed60b387bdf527458a15e912bddc0015e3a93","definition":false,"occurrences":[{"line":89,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Admin/Controller/TemplateController.php","file_sha256":"73b31a31b0498882cf599b3bb95d00ec42783d921d720dadd5342f7d6716f060","definition":false,"occurrences":[{"line":452,"sha256":"acf4133f395cfc430e8fd41a922367ee843ff80ad9653089d5525859d1ac4b96"}]},{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","definition":true,"occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"definition_hits":[{"file":"src/XF/Repository/TemplateHistoryRepository.php","file_sha256":"5a3ee2f82eea6014df5a2db82ed37c49820c53abf375fde133884c93fef4a655","occurrences":[{"line":11,"sha256":"62a29cb3534609192eff09eb69949a75b9e6f150b6a77f31e491c28ca9233f22"}]}],"outdated":[]}],"scope":"READ_ONLY_NO_XENFORO_MUTATION"} -TPL495T3R4_DECISION=HOLD_XF_ERROR_LOG_NOT_ZERO -TPL495T3R4_HOLD=7 -HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260918-XENFORO-TEMPLATE-MERGE-SERVICE-RCA-495T3R4","status":"FAIL","changes_made":false,"rollback_started":false,"rollback_restored":null} +TPL495T3R5_ERROR_ROWS=[{"site":"codevipe.ru","error_id":11,"exception_date":1789683149,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"dsmods.ru","error_id":3,"exception_date":1789683149,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"gamevipe.ru","error_id":2,"exception_date":1789683149,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"hkmods.ru","error_id":13,"exception_date":1789683150,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"kingofwolk.ru","error_id":1,"exception_date":1789683150,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"zakrutim.ru","error_id":2,"exception_date":1789683150,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"},{"site":"newfi.ru","error_id":33,"exception_date":1789683151,"exception_type":"ErrorException","message":"Fatal Error: Cannot declare class XF\\Repository\\TemplateHistoryRepository, because the name is already in use","filename":"src/XF/Repository/TemplateHistoryRepository.php","line":9,"trace_sha256":"2bd1b7c5fe3391e132efde79dd0e7b7e7ce9b94c26fb8c61d7523df1346ae4e8"}] +TPL495T3R5_DECISION=HOLD_NATIVE_SERVICE_UNRESOLVED_codevipe.ru +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260918-XENFORO-FLEET-ERROR-AND-MERGE-RCA-495T3R5","status":"FAIL","changes_made":false,"rollback_started":false,"rollback_restored":null} OUTPUT_END CHAT_OUTPUT_END