diff --git a/runtime/history/NEWFI-260908-A-PORTAL200-APPLY4FIX4.json b/runtime/history/NEWFI-260908-A-PORTAL200-APPLY4FIX4.json
new file mode 100644
index 00000000..67c38834
--- /dev/null
+++ b/runtime/history/NEWFI-260908-A-PORTAL200-APPLY4FIX4.json
@@ -0,0 +1,38 @@
+{
+ "schema_version": 1,
+ "channel": "homelab-runtime",
+ "command_id": "NEWFI-260908-A-PORTAL200-APPLY4FIX4",
+ "status": "FAIL",
+ "rc": 1,
+ "host": "pve01",
+ "mode": "change",
+ "component": "newfi-portal200-apply4fix4-dynamic-template-hash-deploy",
+ "started_at_utc": "2026-09-08T04:11:30Z",
+ "finished_at_utc": "2026-09-08T04:13:13Z",
+ "reference_register_checked": true,
+ "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
+ "error_register_checked": true,
+ "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
+ "command_sha256": "a5d4e8688e706e2eac604ae9b64945f897e671ba9c44be82b63559b4970c0c2d",
+ "duplicate_failed_command_blocked": false,
+ "block_reason": null,
+ "execution_started": true,
+ "change_declared": true,
+ "result_contract_valid": true,
+ "result_contract_status": "FAIL",
+ "result_contract_error": null,
+ "command_rc": 1,
+ "changes_made": true,
+ "rollback_started": true,
+ "rollback_restored": false,
+ "mutation_outcome": "ROLLBACK_FAILED",
+ "sanitized": true,
+ "secrets_included": false,
+ "private_addresses_included": false,
+ "raw_evidence_retained_locally": true,
+ "raw_evidence_sha256": "742f49cca6bb4d7976093b862a105b737ab06ab1fcd8ebe45b166dded2868373",
+ "sanitized_output_sha256": "742f49cca6bb4d7976093b862a105b737ab06ab1fcd8ebe45b166dded2868373",
+ "output_truncated_in_json": false,
+ "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
+ "output": "NEWFI_APPLY4FIX4_BEGIN=true\nCOMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX4\nCOMPONENT=newfi-portal200-apply4fix4-dynamic-template-hash-deploy\nMODE=change\nFLOW=exact-syntax-patch->dual-presave-preflight->staging->rollback-proof->staging-reapply->git-push->production->final\nADDON_REBUILD_METHOD=xf:addon-rebuild -n -f Newfi/Portal + XenForo Entity API templates\nTEMPLATE_IMPORT_WORKAROUND=native_baseline_template_rebuild_then_entity_api_then_candidate_dev_output\nFORCE_JUSTIFICATION=same_version_candidate_requires_force_to_skip_rebuildable_check\nERROR_REGISTER_CHECK=OK\nERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0\nREFERENCE_CHECK=OK\nREFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nRECOVERY5_HISTORY_SHA256=08c00e675ffa960eca55102a114d305fb1a15291ff7e401dc43c09d087c32ece\nSYNTAX1_HISTORY_SHA256=993e1e336b0806f5453e25a81df2d3f20597c90e7027fe97b9794f9401fe13a4\nFAILED_FIX3_HISTORY_SHA256=fb2b4aa365fabbb14fa4d0ea7d94352d3309bbf9013df1958ddbe5da3798b152\nTEMPLATE_SYNTAX_PATCH={\"bad_line\":\" {$dog.full_name ?: $dog.name}\",\"fixed_line\":\" {$dog.full_name}{$dog.name}\",\"fixed_xml_bytes\":11021,\"fixed_xml_sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"original_xml_sha256\":\"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861\"}\nCANDIDATE_TEMPLATE_EFFECTIVE_SHAS={\"newfi_portal\":\"adfd0b49bdef6ab33af849ddce7150c193072bcb9c688c077534eff522924d46\",\"newfi_portal.less\":\"25b1dc49e89ef7615a11cd1023876c4ab9b5f96f90b1fca52a4815bb5992fbe8\"}\nCANDIDATE_IDENTITY={\"effective_new\":{\"Pub/Controller/Portal.php\":[363,\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\"],\"Service/PortalData.php\":[5213,\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\"],\"_data/templates.xml\":[11021,\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\"]},\"mode\":\"sparse_exact_three_blobs\",\"result_tree_sha256\":\"40ec92a7af4f8824f620c0687b62303541dc11f1c7ca91711bc50bd9d728839d\",\"source_expected_new\":{\"Pub/Controller/Portal.php\":[363,\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\"],\"Service/PortalData.php\":[5213,\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\"],\"_data/templates.xml\":[10977,\"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861\"]},\"version_id\":1000010,\"version_string\":\"1.0.0 Alpha 1\"}\nNEWFI-STAGING_TEMPLATE_PRESAVE_VALIDATE={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"presave\\\":\\\"OK\\\"},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"presave\\\":\\\"OK\\\"}]\",\"rc\":0}\nNEWFI-PROD_TEMPLATE_PRESAVE_VALIDATE={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"presave\\\":\\\"OK\\\"},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"presave\\\":\\\"OK\\\"}]\",\"rc\":0}\nTEMPLATE_PRESAVE_PREFLIGHT=PASS_NO_PERSISTENT_MUTATION\nPORTAL200_PREFLIGHT=PASS\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nNEWFI-STAGING_ENTITY_TEMPLATE_APPLY={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1610,\\\"created\\\":false},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1616,\\\"created\\\":true}]\",\"rc\":0}\nNEWFI-STAGING_RENDER_VERIFY={\"html_bytes\":3964,\"portal_count\":5}\nSTAGING_APPLY1_VERIFY=PASS\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nSTAGING_PLANNED_ROLLBACK_PROOF=PASS\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nNEWFI-STAGING_ENTITY_TEMPLATE_APPLY={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1610,\\\"created\\\":false},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1617,\\\"created\\\":true}]\",\"rc\":0}\nNEWFI-STAGING_RENDER_VERIFY={\"html_bytes\":3964,\"portal_count\":5}\nSTAGING_FINAL_REAPPLY=PASS\nAPPLY4_FAILURE=DeployError:GIT_DIFF_SCOPE_FAIL\nFAILURE_ROLLBACK_BEGIN=true\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nFAILURE_ROLLBACK_STAGING=PASS\nFAILURE_ROLLBACK_GIT=FAIL:GIT_EXPLICIT_PATH_RESTORE_FAILED:error: pathspec 'src/addons/Newfi/Portal/Service/PortalData.php' did not match any file(s) known to git\\n\nFAILURE_ROLLBACK_END=false\nFINAL_DECISION=FAIL_PORTAL200_APPLY4FIX4_ROLLBACK_INCOMPLETE\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"NEWFI-260908-A-PORTAL200-APPLY4FIX4\",\"status\":\"FAIL\",\"changes_made\":true,\"rollback_started\":true,\"rollback_restored\":false}\n"
+}
diff --git a/runtime/history/NEWFI-260908-A-PORTAL200-APPLY4FIX4.txt b/runtime/history/NEWFI-260908-A-PORTAL200-APPLY4FIX4.txt
new file mode 100644
index 00000000..36bcf867
--- /dev/null
+++ b/runtime/history/NEWFI-260908-A-PORTAL200-APPLY4FIX4.txt
@@ -0,0 +1,82 @@
+CHAT_OUTPUT_BEGIN
+COMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX4
+STATUS=FAIL
+RC=1
+HOST=pve01
+MODE=change
+COMPONENT=newfi-portal200-apply4fix4-dynamic-template-hash-deploy
+REFERENCE_REGISTER_CHECK=OK
+REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
+ERROR_REGISTER_CHECK=OK
+ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
+COMMAND_SHA256=a5d4e8688e706e2eac604ae9b64945f897e671ba9c44be82b63559b4970c0c2d
+DUPLICATE_FAILED_COMMAND_BLOCKED=false
+EXECUTION_STARTED=true
+CHANGE_DECLARED=true
+RESULT_CONTRACT_VALID=true
+RESULT_CONTRACT_STATUS=FAIL
+RESULT_CONTRACT_ERROR=NONE
+COMMAND_RC=1
+CHANGES_MADE=true
+ROLLBACK_STARTED=true
+ROLLBACK_RESTORED=false
+MUTATION_OUTCOME=ROLLBACK_FAILED
+SANITIZED=yes
+SECRETS_INCLUDED=no
+PRIVATE_ADDRESSES_INCLUDED=no
+RAW_EVIDENCE_SHA256=742f49cca6bb4d7976093b862a105b737ab06ab1fcd8ebe45b166dded2868373
+SANITIZED_OUTPUT_SHA256=742f49cca6bb4d7976093b862a105b737ab06ab1fcd8ebe45b166dded2868373
+OUTPUT_BEGIN
+NEWFI_APPLY4FIX4_BEGIN=true
+COMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX4
+COMPONENT=newfi-portal200-apply4fix4-dynamic-template-hash-deploy
+MODE=change
+FLOW=exact-syntax-patch->dual-presave-preflight->staging->rollback-proof->staging-reapply->git-push->production->final
+ADDON_REBUILD_METHOD=xf:addon-rebuild -n -f Newfi/Portal + XenForo Entity API templates
+TEMPLATE_IMPORT_WORKAROUND=native_baseline_template_rebuild_then_entity_api_then_candidate_dev_output
+FORCE_JUSTIFICATION=same_version_candidate_requires_force_to_skip_rebuildable_check
+ERROR_REGISTER_CHECK=OK
+ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
+REFERENCE_CHECK=OK
+REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
+AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED
+RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
+RECOVERY5_HISTORY_SHA256=08c00e675ffa960eca55102a114d305fb1a15291ff7e401dc43c09d087c32ece
+SYNTAX1_HISTORY_SHA256=993e1e336b0806f5453e25a81df2d3f20597c90e7027fe97b9794f9401fe13a4
+FAILED_FIX3_HISTORY_SHA256=fb2b4aa365fabbb14fa4d0ea7d94352d3309bbf9013df1958ddbe5da3798b152
+TEMPLATE_SYNTAX_PATCH={"bad_line":" {$dog.full_name ?: $dog.name}","fixed_line":" {$dog.full_name}{$dog.name}","fixed_xml_bytes":11021,"fixed_xml_sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28","original_xml_sha256":"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861"}
+CANDIDATE_TEMPLATE_EFFECTIVE_SHAS={"newfi_portal":"adfd0b49bdef6ab33af849ddce7150c193072bcb9c688c077534eff522924d46","newfi_portal.less":"25b1dc49e89ef7615a11cd1023876c4ab9b5f96f90b1fca52a4815bb5992fbe8"}
+CANDIDATE_IDENTITY={"effective_new":{"Pub/Controller/Portal.php":[363,"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d"],"Service/PortalData.php":[5213,"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d"],"_data/templates.xml":[11021,"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28"]},"mode":"sparse_exact_three_blobs","result_tree_sha256":"40ec92a7af4f8824f620c0687b62303541dc11f1c7ca91711bc50bd9d728839d","source_expected_new":{"Pub/Controller/Portal.php":[363,"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d"],"Service/PortalData.php":[5213,"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d"],"_data/templates.xml":[10977,"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861"]},"version_id":1000010,"version_string":"1.0.0 Alpha 1"}
+NEWFI-STAGING_TEMPLATE_PRESAVE_VALIDATE={"err":"","out":"[{\"title\":\"newfi_portal\",\"presave\":\"OK\"},{\"title\":\"newfi_portal.less\",\"presave\":\"OK\"}]","rc":0}
+NEWFI-PROD_TEMPLATE_PRESAVE_VALIDATE={"err":"","out":"[{\"title\":\"newfi_portal\",\"presave\":\"OK\"},{\"title\":\"newfi_portal.less\",\"presave\":\"OK\"}]","rc":0}
+TEMPLATE_PRESAVE_PREFLIGHT=PASS_NO_PERSISTENT_MUTATION
+PORTAL200_PREFLIGHT=PASS
+NEWFI-STAGING_NATIVE_REBUILD_RC=0
+NEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\nImporting add-on data\nImporting... Add-on data (Navigation)\nImporting... Add-on data (Phrases)\nImporting... Add-on data (Routes)\nImporting... Add-on data (Templates)\n
+NEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=
+NEWFI-STAGING_ENTITY_TEMPLATE_APPLY={"err":"","out":"[{\"title\":\"newfi_portal\",\"type\":\"public\",\"style_id\":0,\"template_id\":1610,\"created\":false},{\"title\":\"newfi_portal.less\",\"type\":\"public\",\"style_id\":0,\"template_id\":1616,\"created\":true}]","rc":0}
+NEWFI-STAGING_RENDER_VERIFY={"html_bytes":3964,"portal_count":5}
+STAGING_APPLY1_VERIFY=PASS
+NEWFI-STAGING_NATIVE_REBUILD_RC=0
+NEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\nImporting add-on data\nImporting... Add-on data (Navigation)\nImporting... Add-on data (Phrases)\nImporting... Add-on data (Routes)\nImporting... Add-on data (Templates)\n
+NEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=
+STAGING_PLANNED_ROLLBACK_PROOF=PASS
+NEWFI-STAGING_NATIVE_REBUILD_RC=0
+NEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\nImporting add-on data\nImporting... Add-on data (Navigation)\nImporting... Add-on data (Phrases)\nImporting... Add-on data (Routes)\nImporting... Add-on data (Templates)\n
+NEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=
+NEWFI-STAGING_ENTITY_TEMPLATE_APPLY={"err":"","out":"[{\"title\":\"newfi_portal\",\"type\":\"public\",\"style_id\":0,\"template_id\":1610,\"created\":false},{\"title\":\"newfi_portal.less\",\"type\":\"public\",\"style_id\":0,\"template_id\":1617,\"created\":true}]","rc":0}
+NEWFI-STAGING_RENDER_VERIFY={"html_bytes":3964,"portal_count":5}
+STAGING_FINAL_REAPPLY=PASS
+APPLY4_FAILURE=DeployError:GIT_DIFF_SCOPE_FAIL
+FAILURE_ROLLBACK_BEGIN=true
+NEWFI-STAGING_NATIVE_REBUILD_RC=0
+NEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\nImporting add-on data\nImporting... Add-on data (Navigation)\nImporting... Add-on data (Phrases)\nImporting... Add-on data (Routes)\nImporting... Add-on data (Templates)\n
+NEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=
+FAILURE_ROLLBACK_STAGING=PASS
+FAILURE_ROLLBACK_GIT=FAIL:GIT_EXPLICIT_PATH_RESTORE_FAILED:error: pathspec 'src/addons/Newfi/Portal/Service/PortalData.php' did not match any file(s) known to git\n
+FAILURE_ROLLBACK_END=false
+FINAL_DECISION=FAIL_PORTAL200_APPLY4FIX4_ROLLBACK_INCOMPLETE
+HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"NEWFI-260908-A-PORTAL200-APPLY4FIX4","status":"FAIL","changes_made":true,"rollback_started":true,"rollback_restored":false}
+
+OUTPUT_END
+CHAT_OUTPUT_END
diff --git a/runtime/latest.json b/runtime/latest.json
index ded6abee..67c38834 100644
--- a/runtime/latest.json
+++ b/runtime/latest.json
@@ -1,19 +1,19 @@
{
"schema_version": 1,
"channel": "homelab-runtime",
- "command_id": "NEWFI-260908-A-PORTAL200-APPLY4FIX3",
+ "command_id": "NEWFI-260908-A-PORTAL200-APPLY4FIX4",
"status": "FAIL",
"rc": 1,
"host": "pve01",
"mode": "change",
- "component": "newfi-portal200-apply4fix3-syntax-fixed-entity-template-deploy",
- "started_at_utc": "2026-09-08T04:05:40Z",
- "finished_at_utc": "2026-09-08T04:06:44Z",
+ "component": "newfi-portal200-apply4fix4-dynamic-template-hash-deploy",
+ "started_at_utc": "2026-09-08T04:11:30Z",
+ "finished_at_utc": "2026-09-08T04:13:13Z",
"reference_register_checked": true,
"reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
"error_register_checked": true,
"error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
- "command_sha256": "3fa62b0b3ed7807ca949acf08fc7ba54fae1eb33d93aaa34d295142bcb7b41fa",
+ "command_sha256": "a5d4e8688e706e2eac604ae9b64945f897e671ba9c44be82b63559b4970c0c2d",
"duplicate_failed_command_blocked": false,
"block_reason": null,
"execution_started": true,
@@ -24,15 +24,15 @@
"command_rc": 1,
"changes_made": true,
"rollback_started": true,
- "rollback_restored": true,
- "mutation_outcome": "ROLLED_BACK",
+ "rollback_restored": false,
+ "mutation_outcome": "ROLLBACK_FAILED",
"sanitized": true,
"secrets_included": false,
"private_addresses_included": false,
"raw_evidence_retained_locally": true,
- "raw_evidence_sha256": "18793efab9caa512741132921bd7710982303a09a0af96cc4ec9922ac00c267b",
- "sanitized_output_sha256": "18793efab9caa512741132921bd7710982303a09a0af96cc4ec9922ac00c267b",
+ "raw_evidence_sha256": "742f49cca6bb4d7976093b862a105b737ab06ab1fcd8ebe45b166dded2868373",
+ "sanitized_output_sha256": "742f49cca6bb4d7976093b862a105b737ab06ab1fcd8ebe45b166dded2868373",
"output_truncated_in_json": false,
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
- "output": "NEWFI_APPLY4FIX3_BEGIN=true\nCOMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX3\nCOMPONENT=newfi-portal200-apply4fix3-syntax-fixed-entity-template-deploy\nMODE=change\nFLOW=exact-syntax-patch->dual-presave-preflight->staging->rollback-proof->staging-reapply->git-push->production->final\nADDON_REBUILD_METHOD=xf:addon-rebuild -n -f Newfi/Portal + XenForo Entity API templates\nTEMPLATE_IMPORT_WORKAROUND=native_baseline_template_rebuild_then_entity_api_then_candidate_dev_output\nFORCE_JUSTIFICATION=same_version_candidate_requires_force_to_skip_rebuildable_check\nERROR_REGISTER_CHECK=OK\nERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0\nREFERENCE_CHECK=OK\nREFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nRECOVERY5_HISTORY_SHA256=08c00e675ffa960eca55102a114d305fb1a15291ff7e401dc43c09d087c32ece\nSYNTAX1_HISTORY_SHA256=993e1e336b0806f5453e25a81df2d3f20597c90e7027fe97b9794f9401fe13a4\nFAILED_FIX2_HISTORY_SHA256=ad59a2ee8f644a371a8f76ea2149ae4305cc56ab709dc2433081611bc6f4c578\nTEMPLATE_SYNTAX_PATCH={\"bad_line\":\" {$dog.full_name ?: $dog.name}\",\"fixed_line\":\" {$dog.full_name}{$dog.name}\",\"fixed_xml_bytes\":11021,\"fixed_xml_sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"original_xml_sha256\":\"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861\"}\nCANDIDATE_IDENTITY={\"effective_new\":{\"Pub/Controller/Portal.php\":[363,\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\"],\"Service/PortalData.php\":[5213,\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\"],\"_data/templates.xml\":[11021,\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\"]},\"mode\":\"sparse_exact_three_blobs\",\"result_tree_sha256\":\"40ec92a7af4f8824f620c0687b62303541dc11f1c7ca91711bc50bd9d728839d\",\"source_expected_new\":{\"Pub/Controller/Portal.php\":[363,\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\"],\"Service/PortalData.php\":[5213,\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\"],\"_data/templates.xml\":[10977,\"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861\"]},\"version_id\":1000010,\"version_string\":\"1.0.0 Alpha 1\"}\nNEWFI-STAGING_TEMPLATE_PRESAVE_VALIDATE={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"presave\\\":\\\"OK\\\"},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"presave\\\":\\\"OK\\\"}]\",\"rc\":0}\nNEWFI-PROD_TEMPLATE_PRESAVE_VALIDATE={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"presave\\\":\\\"OK\\\"},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"presave\\\":\\\"OK\\\"}]\",\"rc\":0}\nTEMPLATE_PRESAVE_PREFLIGHT=PASS_NO_PERSISTENT_MUTATION\nPORTAL200_PREFLIGHT=PASS\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nNEWFI-STAGING_ENTITY_TEMPLATE_APPLY={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1610,\\\"created\\\":false},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1615,\\\"created\\\":true}]\",\"rc\":0}\nAPPLY4_FAILURE=DeployError:newfi-staging_NEW_TEMPLATE_HASH_MISMATCH:('0', 'newfi_portal')\nFAILURE_ROLLBACK_BEGIN=true\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nFAILURE_ROLLBACK_STAGING=PASS\nFAILURE_ROLLBACK_GIT=PASS_EXPLICIT_PATH_RESTORE\nFAILURE_ROLLBACK_END=true\nFINAL_DECISION=FAIL_PORTAL200_APPLY4FIX3_ROLLBACK_RESTORED\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"NEWFI-260908-A-PORTAL200-APPLY4FIX3\",\"status\":\"FAIL\",\"changes_made\":true,\"rollback_started\":true,\"rollback_restored\":true}\n"
+ "output": "NEWFI_APPLY4FIX4_BEGIN=true\nCOMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX4\nCOMPONENT=newfi-portal200-apply4fix4-dynamic-template-hash-deploy\nMODE=change\nFLOW=exact-syntax-patch->dual-presave-preflight->staging->rollback-proof->staging-reapply->git-push->production->final\nADDON_REBUILD_METHOD=xf:addon-rebuild -n -f Newfi/Portal + XenForo Entity API templates\nTEMPLATE_IMPORT_WORKAROUND=native_baseline_template_rebuild_then_entity_api_then_candidate_dev_output\nFORCE_JUSTIFICATION=same_version_candidate_requires_force_to_skip_rebuildable_check\nERROR_REGISTER_CHECK=OK\nERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0\nREFERENCE_CHECK=OK\nREFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nRECOVERY5_HISTORY_SHA256=08c00e675ffa960eca55102a114d305fb1a15291ff7e401dc43c09d087c32ece\nSYNTAX1_HISTORY_SHA256=993e1e336b0806f5453e25a81df2d3f20597c90e7027fe97b9794f9401fe13a4\nFAILED_FIX3_HISTORY_SHA256=fb2b4aa365fabbb14fa4d0ea7d94352d3309bbf9013df1958ddbe5da3798b152\nTEMPLATE_SYNTAX_PATCH={\"bad_line\":\" {$dog.full_name ?: $dog.name}\",\"fixed_line\":\" {$dog.full_name}{$dog.name}\",\"fixed_xml_bytes\":11021,\"fixed_xml_sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"original_xml_sha256\":\"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861\"}\nCANDIDATE_TEMPLATE_EFFECTIVE_SHAS={\"newfi_portal\":\"adfd0b49bdef6ab33af849ddce7150c193072bcb9c688c077534eff522924d46\",\"newfi_portal.less\":\"25b1dc49e89ef7615a11cd1023876c4ab9b5f96f90b1fca52a4815bb5992fbe8\"}\nCANDIDATE_IDENTITY={\"effective_new\":{\"Pub/Controller/Portal.php\":[363,\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\"],\"Service/PortalData.php\":[5213,\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\"],\"_data/templates.xml\":[11021,\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\"]},\"mode\":\"sparse_exact_three_blobs\",\"result_tree_sha256\":\"40ec92a7af4f8824f620c0687b62303541dc11f1c7ca91711bc50bd9d728839d\",\"source_expected_new\":{\"Pub/Controller/Portal.php\":[363,\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\"],\"Service/PortalData.php\":[5213,\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\"],\"_data/templates.xml\":[10977,\"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861\"]},\"version_id\":1000010,\"version_string\":\"1.0.0 Alpha 1\"}\nNEWFI-STAGING_TEMPLATE_PRESAVE_VALIDATE={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"presave\\\":\\\"OK\\\"},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"presave\\\":\\\"OK\\\"}]\",\"rc\":0}\nNEWFI-PROD_TEMPLATE_PRESAVE_VALIDATE={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"presave\\\":\\\"OK\\\"},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"presave\\\":\\\"OK\\\"}]\",\"rc\":0}\nTEMPLATE_PRESAVE_PREFLIGHT=PASS_NO_PERSISTENT_MUTATION\nPORTAL200_PREFLIGHT=PASS\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nNEWFI-STAGING_ENTITY_TEMPLATE_APPLY={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1610,\\\"created\\\":false},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1616,\\\"created\\\":true}]\",\"rc\":0}\nNEWFI-STAGING_RENDER_VERIFY={\"html_bytes\":3964,\"portal_count\":5}\nSTAGING_APPLY1_VERIFY=PASS\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nSTAGING_PLANNED_ROLLBACK_PROOF=PASS\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nNEWFI-STAGING_ENTITY_TEMPLATE_APPLY={\"err\":\"\",\"out\":\"[{\\\"title\\\":\\\"newfi_portal\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1610,\\\"created\\\":false},{\\\"title\\\":\\\"newfi_portal.less\\\",\\\"type\\\":\\\"public\\\",\\\"style_id\\\":0,\\\"template_id\\\":1617,\\\"created\\\":true}]\",\"rc\":0}\nNEWFI-STAGING_RENDER_VERIFY={\"html_bytes\":3964,\"portal_count\":5}\nSTAGING_FINAL_REAPPLY=PASS\nAPPLY4_FAILURE=DeployError:GIT_DIFF_SCOPE_FAIL\nFAILURE_ROLLBACK_BEGIN=true\nNEWFI-STAGING_NATIVE_REBUILD_RC=0\nNEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\\nImporting add-on data\\nImporting... Add-on data (Navigation)\\nImporting... Add-on data (Phrases)\\nImporting... Add-on data (Routes)\\nImporting... Add-on data (Templates)\\n\nNEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=\nFAILURE_ROLLBACK_STAGING=PASS\nFAILURE_ROLLBACK_GIT=FAIL:GIT_EXPLICIT_PATH_RESTORE_FAILED:error: pathspec 'src/addons/Newfi/Portal/Service/PortalData.php' did not match any file(s) known to git\\n\nFAILURE_ROLLBACK_END=false\nFINAL_DECISION=FAIL_PORTAL200_APPLY4FIX4_ROLLBACK_INCOMPLETE\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"NEWFI-260908-A-PORTAL200-APPLY4FIX4\",\"status\":\"FAIL\",\"changes_made\":true,\"rollback_started\":true,\"rollback_restored\":false}\n"
}
diff --git a/runtime/latest.txt b/runtime/latest.txt
index eba2308f..36bcf867 100644
--- a/runtime/latest.txt
+++ b/runtime/latest.txt
@@ -1,15 +1,15 @@
CHAT_OUTPUT_BEGIN
-COMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX3
+COMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX4
STATUS=FAIL
RC=1
HOST=pve01
MODE=change
-COMPONENT=newfi-portal200-apply4fix3-syntax-fixed-entity-template-deploy
+COMPONENT=newfi-portal200-apply4fix4-dynamic-template-hash-deploy
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
-COMMAND_SHA256=3fa62b0b3ed7807ca949acf08fc7ba54fae1eb33d93aaa34d295142bcb7b41fa
+COMMAND_SHA256=a5d4e8688e706e2eac604ae9b64945f897e671ba9c44be82b63559b4970c0c2d
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=true
@@ -19,17 +19,17 @@ RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=1
CHANGES_MADE=true
ROLLBACK_STARTED=true
-ROLLBACK_RESTORED=true
-MUTATION_OUTCOME=ROLLED_BACK
+ROLLBACK_RESTORED=false
+MUTATION_OUTCOME=ROLLBACK_FAILED
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
-RAW_EVIDENCE_SHA256=18793efab9caa512741132921bd7710982303a09a0af96cc4ec9922ac00c267b
-SANITIZED_OUTPUT_SHA256=18793efab9caa512741132921bd7710982303a09a0af96cc4ec9922ac00c267b
+RAW_EVIDENCE_SHA256=742f49cca6bb4d7976093b862a105b737ab06ab1fcd8ebe45b166dded2868373
+SANITIZED_OUTPUT_SHA256=742f49cca6bb4d7976093b862a105b737ab06ab1fcd8ebe45b166dded2868373
OUTPUT_BEGIN
-NEWFI_APPLY4FIX3_BEGIN=true
-COMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX3
-COMPONENT=newfi-portal200-apply4fix3-syntax-fixed-entity-template-deploy
+NEWFI_APPLY4FIX4_BEGIN=true
+COMMAND_ID=NEWFI-260908-A-PORTAL200-APPLY4FIX4
+COMPONENT=newfi-portal200-apply4fix4-dynamic-template-hash-deploy
MODE=change
FLOW=exact-syntax-patch->dual-presave-preflight->staging->rollback-proof->staging-reapply->git-push->production->final
ADDON_REBUILD_METHOD=xf:addon-rebuild -n -f Newfi/Portal + XenForo Entity API templates
@@ -43,8 +43,9 @@ AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED
RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
RECOVERY5_HISTORY_SHA256=08c00e675ffa960eca55102a114d305fb1a15291ff7e401dc43c09d087c32ece
SYNTAX1_HISTORY_SHA256=993e1e336b0806f5453e25a81df2d3f20597c90e7027fe97b9794f9401fe13a4
-FAILED_FIX2_HISTORY_SHA256=ad59a2ee8f644a371a8f76ea2149ae4305cc56ab709dc2433081611bc6f4c578
+FAILED_FIX3_HISTORY_SHA256=fb2b4aa365fabbb14fa4d0ea7d94352d3309bbf9013df1958ddbe5da3798b152
TEMPLATE_SYNTAX_PATCH={"bad_line":" {$dog.full_name ?: $dog.name}","fixed_line":" {$dog.full_name}{$dog.name}","fixed_xml_bytes":11021,"fixed_xml_sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28","original_xml_sha256":"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861"}
+CANDIDATE_TEMPLATE_EFFECTIVE_SHAS={"newfi_portal":"adfd0b49bdef6ab33af849ddce7150c193072bcb9c688c077534eff522924d46","newfi_portal.less":"25b1dc49e89ef7615a11cd1023876c4ab9b5f96f90b1fca52a4815bb5992fbe8"}
CANDIDATE_IDENTITY={"effective_new":{"Pub/Controller/Portal.php":[363,"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d"],"Service/PortalData.php":[5213,"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d"],"_data/templates.xml":[11021,"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28"]},"mode":"sparse_exact_three_blobs","result_tree_sha256":"40ec92a7af4f8824f620c0687b62303541dc11f1c7ca91711bc50bd9d728839d","source_expected_new":{"Pub/Controller/Portal.php":[363,"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d"],"Service/PortalData.php":[5213,"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d"],"_data/templates.xml":[10977,"1650c3d868d4bc47703f1b75f1f179cd25309b2d3b20a2b848e81a4423c00861"]},"version_id":1000010,"version_string":"1.0.0 Alpha 1"}
NEWFI-STAGING_TEMPLATE_PRESAVE_VALIDATE={"err":"","out":"[{\"title\":\"newfi_portal\",\"presave\":\"OK\"},{\"title\":\"newfi_portal.less\",\"presave\":\"OK\"}]","rc":0}
NEWFI-PROD_TEMPLATE_PRESAVE_VALIDATE={"err":"","out":"[{\"title\":\"newfi_portal\",\"presave\":\"OK\"},{\"title\":\"newfi_portal.less\",\"presave\":\"OK\"}]","rc":0}
@@ -53,17 +54,29 @@ PORTAL200_PREFLIGHT=PASS
NEWFI-STAGING_NATIVE_REBUILD_RC=0
NEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\nImporting add-on data\nImporting... Add-on data (Navigation)\nImporting... Add-on data (Phrases)\nImporting... Add-on data (Routes)\nImporting... Add-on data (Templates)\n
NEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=
-NEWFI-STAGING_ENTITY_TEMPLATE_APPLY={"err":"","out":"[{\"title\":\"newfi_portal\",\"type\":\"public\",\"style_id\":0,\"template_id\":1610,\"created\":false},{\"title\":\"newfi_portal.less\",\"type\":\"public\",\"style_id\":0,\"template_id\":1615,\"created\":true}]","rc":0}
-APPLY4_FAILURE=DeployError:newfi-staging_NEW_TEMPLATE_HASH_MISMATCH:('0', 'newfi_portal')
+NEWFI-STAGING_ENTITY_TEMPLATE_APPLY={"err":"","out":"[{\"title\":\"newfi_portal\",\"type\":\"public\",\"style_id\":0,\"template_id\":1610,\"created\":false},{\"title\":\"newfi_portal.less\",\"type\":\"public\",\"style_id\":0,\"template_id\":1616,\"created\":true}]","rc":0}
+NEWFI-STAGING_RENDER_VERIFY={"html_bytes":3964,"portal_count":5}
+STAGING_APPLY1_VERIFY=PASS
+NEWFI-STAGING_NATIVE_REBUILD_RC=0
+NEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\nImporting add-on data\nImporting... Add-on data (Navigation)\nImporting... Add-on data (Phrases)\nImporting... Add-on data (Routes)\nImporting... Add-on data (Templates)\n
+NEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=
+STAGING_PLANNED_ROLLBACK_PROOF=PASS
+NEWFI-STAGING_NATIVE_REBUILD_RC=0
+NEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\nImporting add-on data\nImporting... Add-on data (Navigation)\nImporting... Add-on data (Phrases)\nImporting... Add-on data (Routes)\nImporting... Add-on data (Templates)\n
+NEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=
+NEWFI-STAGING_ENTITY_TEMPLATE_APPLY={"err":"","out":"[{\"title\":\"newfi_portal\",\"type\":\"public\",\"style_id\":0,\"template_id\":1610,\"created\":false},{\"title\":\"newfi_portal.less\",\"type\":\"public\",\"style_id\":0,\"template_id\":1617,\"created\":true}]","rc":0}
+NEWFI-STAGING_RENDER_VERIFY={"html_bytes":3964,"portal_count":5}
+STAGING_FINAL_REAPPLY=PASS
+APPLY4_FAILURE=DeployError:GIT_DIFF_SCOPE_FAIL
FAILURE_ROLLBACK_BEGIN=true
NEWFI-STAGING_NATIVE_REBUILD_RC=0
NEWFI-STAGING_NATIVE_REBUILD_STDOUT_TAIL=\nImporting add-on data\nImporting... Add-on data (Navigation)\nImporting... Add-on data (Phrases)\nImporting... Add-on data (Routes)\nImporting... Add-on data (Templates)\n
NEWFI-STAGING_NATIVE_REBUILD_STDERR_TAIL=
FAILURE_ROLLBACK_STAGING=PASS
-FAILURE_ROLLBACK_GIT=PASS_EXPLICIT_PATH_RESTORE
-FAILURE_ROLLBACK_END=true
-FINAL_DECISION=FAIL_PORTAL200_APPLY4FIX3_ROLLBACK_RESTORED
-HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"NEWFI-260908-A-PORTAL200-APPLY4FIX3","status":"FAIL","changes_made":true,"rollback_started":true,"rollback_restored":true}
+FAILURE_ROLLBACK_GIT=FAIL:GIT_EXPLICIT_PATH_RESTORE_FAILED:error: pathspec 'src/addons/Newfi/Portal/Service/PortalData.php' did not match any file(s) known to git\n
+FAILURE_ROLLBACK_END=false
+FINAL_DECISION=FAIL_PORTAL200_APPLY4FIX4_ROLLBACK_INCOMPLETE
+HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"NEWFI-260908-A-PORTAL200-APPLY4FIX4","status":"FAIL","changes_made":true,"rollback_started":true,"rollback_restored":false}
OUTPUT_END
CHAT_OUTPUT_END