diff --git a/runtime/history/NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69.json b/runtime/history/NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69.json new file mode 100644 index 00000000..90ff105d --- /dev/null +++ b/runtime/history/NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "newfi-preflight68-harness-rca", + "started_at_utc": "2026-09-09T09:08:46Z", + "finished_at_utc": "2026-09-09T09:08:46Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "d7a45a7f52a9c4959b19631fc7bf6084b2e2a740a97a92cdece0c186acf70006", + "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": 0, + "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": "effdaaa983ace048945a0774b92c60561a3fd33c04126402962ee1b456ca0963", + "sanitized_output_sha256": "effdaaa983ace048945a0774b92c60561a3fd33c04126402962ee1b456ca0963", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "NEWFI69_BEGIN\nCOMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nNEWFI69_STEP_GIT_BEGIN=true\nNEWFI69_STEP_GIT_END={\"state\":\"OK\"}\nNEWFI69_STEP_CLUSTER_BEGIN=true\nNEWFI69_STEP_CLUSTER_END={\"state\":\"OK\"}\nNEWFI69_GIT={\"head_rc\":0,\"head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"branch_rc\":0,\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"status_rc\":0,\"clean\":true,\"remote_rc\":0,\"remote_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"portal_files\":[{\"path\":\"Pub/Controller/Portal.php\",\"bytes\":363,\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\"},{\"path\":\"Pub/View/Portal.php\",\"bytes\":79,\"sha256\":\"26e3b77c2c86d4f4a6fd51f0472e3f38e70e14c984ffd8d04dcec39071a2a69f\"},{\"path\":\"Service/PortalData.php\",\"bytes\":5213,\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\"},{\"path\":\"_data/navigation.xml\",\"bytes\":281,\"sha256\":\"5d724ef5141438bdd0b9dba6a583d330bc6940b0ace5c21c7a8d5301e7d8d649\"},{\"path\":\"_data/phrases.xml\",\"bytes\":173,\"sha256\":\"15282a06a956bda4e810f6b26b1703676dd766424029cd372ce0fd7832dbe09c\"},{\"path\":\"_data/routes.xml\",\"bytes\":144,\"sha256\":\"9b80ef229bcebb49a5930369bb272ed85367deef66070f432948001096673629\"},{\"path\":\"_data/templates.xml\",\"bytes\":11021,\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\"},{\"path\":\"addon.json\",\"bytes\":378,\"sha256\":\"288a61044c941107162d045be49ab2e7c844d1586b25378a7289b3c7275010ab\"}]}\nNEWFI69_CLUSTER={\"rc\":0,\"stdout_bytes\":4263,\"stderr\":\"\",\"json_type\":\"list\",\"item_count\":13,\"selected\":{\"210\":{\"vmid\":210,\"name\":\"newfi-prod\",\"node\":\"pve01\",\"status\":\"running\",\"type\":\"qemu\"},\"211\":{\"vmid\":211,\"name\":\"newfi-staging\",\"node\":\"pve03\",\"status\":\"running\",\"type\":\"qemu\"}}}\nNEWFI69_STEP_PRODUCTION_QGA_BEGIN=true\nNEWFI69_STEP_PRODUCTION_QGA_END={\"state\":\"EXCEPTION\",\"type\":\"AttributeError\",\"message\":\"'bytes' object has no attribute 'encode'\"}\nNEWFI69_PRODUCTION_QGA={\"state\":\"EXCEPTION\",\"type\":\"AttributeError\",\"message\":\"'bytes' object has no attribute 'encode'\"}\nNEWFI69_STEP_STAGING_QGA_BEGIN=true\nNEWFI69_STEP_STAGING_QGA_END={\"state\":\"EXCEPTION\",\"type\":\"AttributeError\",\"message\":\"'bytes' object has no attribute 'encode'\"}\nNEWFI69_STAGING_QGA={\"state\":\"EXCEPTION\",\"type\":\"AttributeError\",\"message\":\"'bytes' object has no attribute 'encode'\"}\nNEWFI69_GAPS=[\"PRODUCTION_QGA_NOT_COMPLETE\",\"STAGING_QGA_NOT_COMPLETE\"]\nNEWFI69_MUTATION_SCOPE=NONE_READ_ONLY\nNEWFI69_DECISION=RCA_EVIDENCE_PARTIAL\nNEWFI69_END\n" +} diff --git a/runtime/history/NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69.txt b/runtime/history/NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69.txt new file mode 100644 index 00000000..03f8c918 --- /dev/null +++ b/runtime/history/NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69.txt @@ -0,0 +1,54 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=newfi-preflight68-harness-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=d7a45a7f52a9c4959b19631fc7bf6084b2e2a740a97a92cdece0c186acf70006 +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=0 +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=effdaaa983ace048945a0774b92c60561a3fd33c04126402962ee1b456ca0963 +SANITIZED_OUTPUT_SHA256=effdaaa983ace048945a0774b92c60561a3fd33c04126402962ee1b456ca0963 +OUTPUT_BEGIN +NEWFI69_BEGIN +COMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69 +ERROR_REGISTER_CHECK=OK +REFERENCE_CHECK=OK +AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED +RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d +NEWFI69_STEP_GIT_BEGIN=true +NEWFI69_STEP_GIT_END={"state":"OK"} +NEWFI69_STEP_CLUSTER_BEGIN=true +NEWFI69_STEP_CLUSTER_END={"state":"OK"} +NEWFI69_GIT={"head_rc":0,"head":"a1efc08a15ba91971c2297d886b25ca2097e6935","branch_rc":0,"branch":"implementation/newfi-closed-mvp-20260906","status_rc":0,"clean":true,"remote_rc":0,"remote_head":"a1efc08a15ba91971c2297d886b25ca2097e6935","portal_files":[{"path":"Pub/Controller/Portal.php","bytes":363,"sha256":"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d"},{"path":"Pub/View/Portal.php","bytes":79,"sha256":"26e3b77c2c86d4f4a6fd51f0472e3f38e70e14c984ffd8d04dcec39071a2a69f"},{"path":"Service/PortalData.php","bytes":5213,"sha256":"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d"},{"path":"_data/navigation.xml","bytes":281,"sha256":"5d724ef5141438bdd0b9dba6a583d330bc6940b0ace5c21c7a8d5301e7d8d649"},{"path":"_data/phrases.xml","bytes":173,"sha256":"15282a06a956bda4e810f6b26b1703676dd766424029cd372ce0fd7832dbe09c"},{"path":"_data/routes.xml","bytes":144,"sha256":"9b80ef229bcebb49a5930369bb272ed85367deef66070f432948001096673629"},{"path":"_data/templates.xml","bytes":11021,"sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28"},{"path":"addon.json","bytes":378,"sha256":"288a61044c941107162d045be49ab2e7c844d1586b25378a7289b3c7275010ab"}]} +NEWFI69_CLUSTER={"rc":0,"stdout_bytes":4263,"stderr":"","json_type":"list","item_count":13,"selected":{"210":{"vmid":210,"name":"newfi-prod","node":"pve01","status":"running","type":"qemu"},"211":{"vmid":211,"name":"newfi-staging","node":"pve03","status":"running","type":"qemu"}}} +NEWFI69_STEP_PRODUCTION_QGA_BEGIN=true +NEWFI69_STEP_PRODUCTION_QGA_END={"state":"EXCEPTION","type":"AttributeError","message":"'bytes' object has no attribute 'encode'"} +NEWFI69_PRODUCTION_QGA={"state":"EXCEPTION","type":"AttributeError","message":"'bytes' object has no attribute 'encode'"} +NEWFI69_STEP_STAGING_QGA_BEGIN=true +NEWFI69_STEP_STAGING_QGA_END={"state":"EXCEPTION","type":"AttributeError","message":"'bytes' object has no attribute 'encode'"} +NEWFI69_STAGING_QGA={"state":"EXCEPTION","type":"AttributeError","message":"'bytes' object has no attribute 'encode'"} +NEWFI69_GAPS=["PRODUCTION_QGA_NOT_COMPLETE","STAGING_QGA_NOT_COMPLETE"] +NEWFI69_MUTATION_SCOPE=NONE_READ_ONLY +NEWFI69_DECISION=RCA_EVIDENCE_PARTIAL +NEWFI69_END + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 23d40b98..90ff105d 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "NEWFI-260909-NEWFDOM-PREFLIGHT68", - "status": "FAIL", - "rc": 3, + "command_id": "NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69", + "status": "OK", + "rc": 0, "host": "pve01", "mode": "read-only", - "component": "newfi-product-source-install-preflight", - "started_at_utc": "2026-09-09T08:48:51Z", - "finished_at_utc": "2026-09-09T08:48:52Z", + "component": "newfi-preflight68-harness-rca", + "started_at_utc": "2026-09-09T09:08:46Z", + "finished_at_utc": "2026-09-09T09:08:46Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "20b572af19f0e926da6f5639d5910e5d0456ac552e3a217ed7a75eedcf6a3397", + "command_sha256": "d7a45a7f52a9c4959b19631fc7bf6084b2e2a740a97a92cdece0c186acf70006", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -21,7 +21,7 @@ "result_contract_valid": true, "result_contract_status": null, "result_contract_error": null, - "command_rc": 3, + "command_rc": 0, "changes_made": false, "rollback_started": false, "rollback_restored": null, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "6d94a229d383d9c4ff0f65e0bc504a4ca17e5f8c091ff2dce0b6db970c43ecf5", - "sanitized_output_sha256": "6d94a229d383d9c4ff0f65e0bc504a4ca17e5f8c091ff2dce0b6db970c43ecf5", + "raw_evidence_sha256": "effdaaa983ace048945a0774b92c60561a3fd33c04126402962ee1b456ca0963", + "sanitized_output_sha256": "effdaaa983ace048945a0774b92c60561a3fd33c04126402962ee1b456ca0963", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "NEWFI68_BEGIN\nCOMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT68\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nNEWFI68_GIT={\"head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"head_rc\":0,\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"branch_rc\":0,\"clean\":true,\"status_rc\":0,\"dirty_bytes\":0,\"remote_rc\":0,\"remote_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"recent_log_rc\":0,\"recent_log\":[\"a1efc08a15ba91971c2297d886b25ca2097e6935\\t2026-09-08T07:25:49+03:00\\tfeat(newfi): deploy Portal200 homepage\",\"06bab5acd124e768f70305b3d7eca2f595871890\\t2026-09-07T09:46:47+03:00\\tstyle: apply Big Water XenForo theme [NEWFI-260907-STYLE199B]\",\"4ade504e649ce35d05322a6b69d758a1ef1803b5\\t2026-09-07T08:37:05+03:00\\tbrand: add Newfi technical identity assets\",\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\\t2026-09-07T02:28:36+03:00\\tops: authorize final Newfi public cutover\",\"781612748127a55d113bd3c488a8d4a89150d0ec\\t2026-09-07T02:23:00+03:00\\tops: authorize final Newfi public cutover\",\"07d41d0d94c2be71078d906ffbf32d8a5b7c91a4\\t2026-09-07T02:15:56+03:00\\tops: authorize final Newfi public cutover\",\"32b0462cf5654bd4a2d3c62ff60cb988d89eadd9\\t2026-09-07T01:58:09+03:00\\tops: accept Newfi production VM deployment\",\"9c1405588883f2e5ecd0c285d2b1ac561b045ee8\\t2026-09-07T01:11:49+03:00\\tdocs: seal Newfi private staging backup restore gate\",\"957a99628dec7962bcbe330b7ef22662938f959a\\t2026-09-07T00:19:11+03:00\\tdocs: accept Newfi private staging rollback gate\",\"73678d54181e0a290e42da4f1e77f313aae589c8\\t2026-09-06T23:44:38+03:00\\tops: accept native XenForo PWA staging baseline\",\"5c83eca866acd9aaa29ca99a92b4381039aee7d6\\t2026-09-06T22:13:39+03:00\\tfeat: accept XFMG gallery integration checkpoint\",\"8e95f8a42e917c7c27ced25b814f06cb89ce089f\\t2026-09-06T21:55:56+03:00\\tfeat: add Newfi Dogs closed-MVP checkpoint\",\"79d232dbea220a72ede78ddd973bc5038294836f\\t2026-09-06T21:47:31+03:00\\tfeat: add Newfi Events closed-MVP checkpoint\",\"6a1cddeba16a38bbe26b048d523a62d6f8e4a76c\\t2026-09-06T20:48:45+03:00\\tcontent: refine Newfi knowledge base baseline\",\"84a75fca5d8f72181d6074f5e0e57fe68927f857\\t2026-09-06T20:17:25+03:00\\tsecurity: establish closed-launch rights and privacy\",\"5cb1d1739abc2ee2be3d86e0dbd79156c5173460\\t2026-09-06T19:57:39+03:00\\tfeat: add Newfi staging style container\",\"ca07bfc20953585887f7cc2f1d443cf8313912c8\\t2026-09-06T16:40:06+03:00\\tfeat: add Portal navigation and widgets\",\"82dd2066df377ba9d904f68f90898e009413eec9\\t2026-09-06T16:15:39+03:00\\tfeat: add Newfi Portal staging checkpoint\",\"7e431707486f5d5a6bfea04ef2fdceccabe05219\\t2026-09-06T12:48:11+03:00\\tcontent: establish Newfi closed-MVP structure\",\"38688a88c3850e43e310e755faa0c6178e203e26\\t2026-09-06T12:29:44+03:00\\tops: accept Newfi foundation v1\",\"73fc9087187b3472359a8ce51fd5c3f19262f409\\t2026-09-06T12:17:54+03:00\\tfix: align Newfi core verifier with foundation schema\",\"beb054ee374142a9b65c28b0ac985156cfac5da8\\t2026-09-06T12:02:34+03:00\\tops: prove Newfi foundation restore\",\"dbe3361bbf5a8703e4a3fabae61e9bf09b60da6e\\t2026-09-06T11:22:54+03:00\\tsecurity: establish Newfi staging baseline\",\"211fa95ebafec97b63fbc3905422496da8d48fff\\t2026-09-06T10:58:24+03:00\\tdocs: record approved Newfi contact sender\",\"26b443d97b211b5653b83922176b5fbef7460089\\t2026-09-06T10:56:20+03:00\\tsecurity: add Newfi staging baseline verifier\",\"c17dd35122a96a5526b968ed7a9f19aca20e4486\\t2026-09-06T10:36:49+03:00\\tdocs: record Newfi mail acceptance\",\"e4f7b4318e2b0c1aa799edf91f39992c4b3ba378\\t2026-09-05T01:48:16+03:00\\tfeat: add XenForo add-ons and Russian language\",\"52ce7eea055d2af1e6408ff5c1801f6183665cbc\\t2026-09-05T01:15:43+03:00\\tfeat: install XenForo staging core\",\"e946a97f3fa9a24ee8ae037b7118d2b6e06bb23e\\t2026-09-05T00:45:53+03:00\\tinfra: add Newfi web foundation\",\"aeab20ea3763b5a513e2276ea6841b8d9a3b3285\\t2026-09-05T00:17:27+03:00\\tdocs: define Newfi service isolation\",\"ab059928dae1485893960484add20b2cc51ecff8\\t2026-09-04T20:46:16+03:00\\tdocs: define Newfi PHP 8.3 package source\",\"417a1990942f51b968d805fd238327597d40d777\\t2026-09-04T20:28:39+03:00\\tinfra: establish Newfi staging VM\",\"a722848b934baa9626537392af7d9c5408c8e018\\t2026-09-04T19:25:28+03:00\\tdocs: reserve Newfi infrastructure\",\"6360c4c919c4c5b3cb2430dd55fe63b6ad595a28\\t2026-09-04T19:19:36+03:00\\tchore: ignore local worktrees\",\"e6ff74ad838b2bc1b4e3a3e835230ddd51b2be5f\\t2026-09-04T19:15:17+03:00\\tdocs: plan Newfi foundation\",\"7df9884d0d740e1c39f99b669fd41dd451f4fc52\\t2026-09-04T19:08:43+03:00\\tdocs: define Newfi closed MVP\"],\"recent_name_status_rc\":0,\"recent_name_status\":[\"@@a1efc08a15ba91971c2297d886b25ca2097e6935\\tfeat(newfi): deploy Portal200 homepage\",\"\",\"M\\tsrc/addons/Newfi/Portal/Pub/Controller/Portal.php\",\"A\\tsrc/addons/Newfi/Portal/Service/PortalData.php\",\"M\\tsrc/addons/Newfi/Portal/_data/templates.xml\",\"@@06bab5acd124e768f70305b3d7eca2f595871890\\tstyle: apply Big Water XenForo theme [NEWFI-260907-STYLE199B]\",\"\",\"A\\tconfig/newfi-style199.json\",\"A\\tdocs/operations/style199.md\",\"A\\tscripts/verify-style199.py\",\"@@4ade504e649ce35d05322a6b69d758a1ef1803b5\\tbrand: add Newfi technical identity assets\",\"\",\"A\\tassets/brand/brand198/newfidom-favicon-32.png\",\"A\\tassets/brand/brand198/newfidom-pwa-192.png\",\"A\\tassets/brand/brand198/newfidom-pwa-512.png\",\"A\\tconfig/newfi-brand-assets.json\",\"A\\tdocs/operations/brand-assets.md\",\"A\\tscripts/verify-brand-assets.py\",\"@@9f7e0ca285d8ddfdd97e4539daaa81695272b705\\tops: authorize final Newfi public cutover\",\"\",\"A\\tdocs/checkpoints/public-cutover-v3.md\",\"@@781612748127a55d113bd3c488a8d4a89150d0ec\\tops: authorize final Newfi public cutover\",\"\",\"A\\tdocs/checkpoints/public-cutover-v2.md\",\"@@07d41d0d94c2be71078d906ffbf32d8a5b7c91a4\\tops: authorize final Newfi public cutover\",\"\",\"A\\tdocs/checkpoints/public-cutover-v1.md\",\"@@32b0462cf5654bd4a2d3c62ff60cb988d89eadd9\\tops: accept Newfi production VM deployment\",\"\",\"A\\tdocs/checkpoints/production-vm-v1.md\",\"@@9c1405588883f2e5ecd0c285d2b1ac561b045ee8\\tdocs: seal Newfi private staging backup restore gate\",\"\",\"A\\tdocs/checkpoints/private-staging-backup-restore.md\",\"@@957a99628dec7962bcbe330b7ef22662938f959a\\tdocs: accept Newfi private staging rollback gate\",\"\",\"A\\tdocs/checkpoints/private-staging-v1.md\",\"@@73678d54181e0a290e42da4f1e77f313aae589c8\\tops: accept native XenForo PWA staging baseline\",\"\",\"A\\tconfig/newfi-pwa-staging.json\",\"A\\tdocs/operations/pwa-staging.md\",\"A\\tscripts/verify-pwa-staging.py\",\"@@5c83eca866acd9aaa29ca99a92b4381039aee7d6\\tfeat: accept XFMG gallery integration checkpoint\",\"\",\"A\\tconfig/newfi-gallery.json\",\"A\\tdocs/operations/gallery.md\",\"A\\tscripts/verify-gallery-staging.py\",\"@@8e95f8a42e917c7c27ced25b814f06cb89ce089f\\tfeat: add Newfi Dogs closed-MVP checkpoint\",\"\",\"A\\tconfig/newfi-dogs.json\",\"A\\tdocs/operations/dogs.md\",\"A\\tscripts/verify-dogs-staging.py\",\"A\\tsrc/addons/Newfi/Dogs/Entity/Dog.php\",\"A\\tsrc/addons/Newfi/Dogs/Pub/Controller/Dogs.php\",\"A\\tsrc/addons/Newfi/Dogs/Pub/View/Dogs.php\",\"A\\tsrc/addons/Newfi/Dogs/Setup.php\",\"A\\tsrc/addons/Newfi/Dogs/_data/routes.xml\",\"A\\tsrc/addons/Newfi/Dogs/_data/templates.xml\",\"A\\tsrc/addons/Newfi/Dogs/addon.json\",\"@@79d232dbea220a72ede78ddd973bc5038294836f\\tfeat: add Newfi Events closed-MVP checkpoint\",\"\",\"A\\tconfig/newfi-events.json\",\"A\\tdocs/operations/events.md\",\"A\\tscripts/verify-events-staging.py\",\"A\\tsrc/addons/Newfi/Events/Entity/Event.php\",\"A\\tsrc/addons/Newfi/Events/Entity/EventChange.php\",\"A\\tsrc/addons/Newfi/Events/Entity/EventSource.php\",\"A\\tsrc/addons/Newfi/Events/Pub/Controller/Events.php\",\"A\\tsrc/addons/Newfi/Events/Pub/View/Events.php\",\"A\\tsrc/addons/Newfi/Events/Setup.php\",\"A\\tsrc/addons/Newfi/Events/_data/routes.xml\",\"A\\tsrc/addons/Newfi/Events/_data/templates.xml\",\"A\\tsrc/addons/Newfi/Events/addon.json\",\"@@6a1cddeba16a38bbe26b048d523a62d6f8e4a76c\\tcontent: refine Newfi knowledge base baseline\",\"\",\"A\\tconfig/newfi-kb.json\",\"A\\tdocs/operations/kb-xfrm.md\",\"A\\tscripts/verify-kb-xfrm.py\",\"@@84a75fca5d8f72181d6074f5e0e57fe68927f857\\tsecurity: establish closed-launch rights and privacy\",\"\",\"A\\tconfig/newfi-rights-privacy.json\",\"A\\tdocs/operations/rights-privacy.md\",\"A\\tscripts/verify-rights-privacy.py\",\"@@5cb1d1739abc2ee2be3d86e0dbd79156c5173460\\tfeat: add Newfi staging style container\",\"\",\"A\\tconfig/newfi-style-staging.json\",\"A\\tdocs/operations/style-staging.md\",\"A\\tscripts/verify-style-staging.py\",\"@@ca07bfc20953585887f7cc2f1d443cf8313912c8\\tfeat: add Portal navigation and widgets\",\"\",\"A\\tdocs/operations/portal-navigation.md\",\"A\\tscripts/verify-portal-navigation.py\",\"A\\tsrc/addons/Newfi/Portal/_data/navigation.xml\",\"A\\tsrc/addons/Newfi/Portal/_data/phrases.xml\",\"M\\tsrc/addons/Newfi/Portal/_data/templates.xml\",\"@@82dd2066df377ba9d904f68f90898e009413eec9\\tfeat: add Newfi Portal staging checkpoint\",\"\",\"A\\tdocs/operations/portal.md\",\"A\\tscripts/verify-portal-staging.py\",\"A\\tsrc/addons/Newfi/Portal/Pub/Controller/Portal.php\",\"A\\tsrc/addons/Newfi/Portal/Pub/View/Portal.php\",\"A\\tsrc/addons/Newfi/Portal/_data/routes.xml\",\"A\\tsrc/addons/Newfi/Portal/_data/templates.xml\",\"A\\tsrc/addons/Newfi/Portal/addon.json\",\"@@7e431707486f5d5a6bfea04ef2fdceccabe05219\\tcontent: establish Newfi closed-MVP structure\",\"\",\"A\\tdocs/operations/content-structure.md\",\"A\\tscripts/verify-content-structure.sh\",\"@@38688a88c3850e43e310e755faa0c6178e203e26\\tops: accept Newfi foundation v1\",\"\",\"A\\tdocs/checkpoints/foundation-v1.md\",\"M\\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md\",\"@@73fc9087187b3472359a8ce51fd5c3f19262f409\\tfix: align Newfi core verifier with foundation schema\",\"\",\"M\\tscripts/verify-xenforo-core.sh\",\"@@beb054ee374142a9b65c28b0ac985156cfac5da8\\tops: prove Newfi foundation restore\",\"\",\"A\\tdocs/operations/backup-restore.md\",\"M\\tdocs/operations/security-baseline.md\",\"M\\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md\",\"A\\tscripts/verify-foundation-restore.sh\",\"@@dbe3361bbf5a8703e4a3fabae61e9bf09b60da6e\\tsecurity: establish Newfi staging baseline\",\"\",\"M\\tdocs/operations/security-baseline.md\",\"M\\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md\",\"@@211fa95ebafec97b63fbc3905422496da8d48fff\\tdocs: record approved Newfi contact sender\",\"\",\"M\\tdocs/operations/mail.md\",\"M\\tdocs/operations/xenforo-install.md\",\"M\\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md\",\"@@26b443d97b211b5653b83922176b5fbef7460089\\tsecurity: add Newfi staging baseline verifier\",\"\",\"A\\tdocs/operations/security-baseline.md\",\"M\\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md\",\"A\\tscripts/verify-staging-security.sh\",\"@@c17dd35122a96a5526b968ed7a9f19aca20e4486\\tdocs: record Newfi mail acceptance\",\"\",\"A\\tdocs/operations/mail.md\",\"M\\tdocs/operations/xenforo-install.md\",\"M\\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md\",\"@@e4f7b4318e2b0c1aa799edf91f39992c4b3ba378\\tfeat: add XenForo add-ons and Russian language\",\"\",\"A\\tdocs/operations/addons-language.md\",\"A\\tscripts/verify-addons-language.sh\",\"@@52ce7eea055d2af1e6408ff5c1801f6183665cbc\\tfeat: install XenForo staging core\",\"\",\"A\\tdeploy/cron/newfi-xenforo-run-jobs.cron\",\"A\\tdeploy/cron/newfi-xenforo-run-jobs.sh\",\"A\\tdocs/operations/xenforo-install.md\",\"A\\tscripts/verify-xenforo-core.sh\",\"@@e946a97f3fa9a24ee8ae037b7118d2b6e06bb23e\\tinfra: add Newfi web foundation\",\"\",\"A\\tdeploy/nginx/newfi-staging.conf\",\"A\\tdeploy/php/newfi-staging-pool.conf\",\"M\\tdocs/operations/database.md\",\"A\\tscripts/verify-web-foundation.sh\",\"@@aeab20ea3763b5a513e2276ea6841b8d9a3b3285\\tdocs: define Newfi service isolation\",\"\",\"A\\tdocs/operations/database.md\",\"@@ab059928dae1485893960484add20b2cc51ecff8\\tdocs: define Newfi PHP 8.3 package source\",\"\",\"M\\tdeploy/proxmox/newfi-staging.md\",\"M\\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md\",\"@@417a1990942f51b968d805fd238327597d40d777\\tinfra: establish Newfi staging VM\",\"\",\"A\\tdeploy/proxmox/newfi-staging.md\",\"A\\tscripts/verify-staging-host.sh\",\"@@a722848b934baa9626537392af7d9c5408c8e018\\tdocs: reserve Newfi infrastructure\",\"\",\"A\\tdeploy/inventory/newfi-vm-reservation.env.example\",\"A\\tdocs/operations/infrastructure-state.md\",\"@@6360c4c919c4c5b3cb2430dd55fe63b6ad595a28\\tchore: ignore local worktrees\",\"\",\"M\\t.gitignore\",\"@@e6ff74ad838b2bc1b4e3a3e835230ddd51b2be5f\\tdocs: plan Newfi foundation\",\"\",\"A\\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md\"],\"portal_files\":[{\"path\":\"src/addons/Newfi/Portal/Pub/Controller/Portal.php\",\"bytes\":363,\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"mode\":\"0600\",\"semantics\":{\"state\":\"OK\",\"kind\":\"php\",\"facts\":{\"classes\":[\"Portal\"],\"methods\":[\"actionIndex\"],\"namespaces\":[\"Newfi\\\\Portal\\\\Pub\\\\Controller\"],\"uses\":[\"XF\\\\Pub\\\\Controller\\\\AbstractController\"],\"relevant_string_literals\":[\"Newfi\\\\Portal:Portal\",\"Newfi\\\\Portal:PortalData\",\"newfi_portal\",\"portal\"]}}},{\"path\":\"src/addons/Newfi/Portal/Pub/View/Portal.php\",\"bytes\":79,\"sha256\":\"26e3b77c2c86d4f4a6fd51f0472e3f38e70e14c984ffd8d04dcec39071a2a69f\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"php\",\"facts\":{\"classes\":[\"Portal\"],\"methods\":[],\"namespaces\":[\"Newfi\\\\Portal\\\\Pub\\\\View\"],\"uses\":[],\"relevant_string_literals\":[]}}},{\"path\":\"src/addons/Newfi/Portal/Service/PortalData.php\",\"bytes\":5213,\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"mode\":\"0600\",\"semantics\":{\"state\":\"OK\",\"kind\":\"php\",\"facts\":{\"classes\":[\"PortalData\"],\"methods\":[\"build\",\"buildDogs\",\"buildEvents\",\"buildForums\",\"buildMedia\",\"buildResources\",\"section\"],\"namespaces\":[\"Newfi\\\\Portal\\\\Service\"],\"uses\":[\"XFMG\\\\Finder\\\\Category as MediaCategoryFinder\",\"XFMG\\\\Repository\\\\Media as MediaRepository\",\"XFRM\\\\Finder\\\\Category as ResourceCategoryFinder\",\"XFRM\\\\Repository\\\\ResourceItem as ResourceRepository\",\"XF\\\\Repository\\\\ForumRepository\",\"XF\\\\Repository\\\\ThreadRepository\",\"XF\\\\Service\\\\AbstractService\"],\"relevant_string_literals\":[\"Newfi\\\\Dogs:Dog\",\"Newfi\\\\Events:Event\",\"dog_id\",\"dogs\",\"event_id\",\"events\",\"media\",\"media_date\",\"resources\"]}}},{\"path\":\"src/addons/Newfi/Portal/_data/navigation.xml\",\"bytes\":281,\"sha256\":\"5d724ef5141438bdd0b9dba6a583d330bc6940b0ace5c21c7a8d5301e7d8d649\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"xml\",\"facts\":{\"parse\":\"OK\",\"tags\":[\"navigation\",\"navigation_entry\"],\"relevant_attributes\":[{\"navigation_id\":\"newfiPortal\"}]}}},{\"path\":\"src/addons/Newfi/Portal/_data/phrases.xml\",\"bytes\":173,\"sha256\":\"15282a06a956bda4e810f6b26b1703676dd766424029cd372ce0fd7832dbe09c\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"xml\",\"facts\":{\"parse\":\"OK\",\"tags\":[\"phrase\",\"phrases\"],\"relevant_attributes\":[{\"title\":\"nav.newfiPortal\"}]}}},{\"path\":\"src/addons/Newfi/Portal/_data/routes.xml\",\"bytes\":144,\"sha256\":\"9b80ef229bcebb49a5930369bb272ed85367deef66070f432948001096673629\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"xml\",\"facts\":{\"parse\":\"OK\",\"tags\":[\"route\",\"routes\"],\"relevant_attributes\":[{\"route_prefix\":\"portal\"},{\"controller\":\"Newfi\\\\Portal:Portal\"}]}}},{\"path\":\"src/addons/Newfi/Portal/_data/templates.xml\",\"bytes\":11021,\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"mode\":\"0600\",\"semantics\":{\"state\":\"OK\",\"kind\":\"templates_xml\",\"facts\":{\"parse\":\"OK\",\"templates\":[{\"title\":\"newfi_portal\",\"type\":\"public\",\"version_id\":\"1000010\",\"bytes\":7071,\"sha256\":\"adfd0b49bdef6ab33af849ddce7150c193072bcb9c688c077534eff522924d46\",\"xf_if_count\":9,\"xf_foreach_count\":5,\"xf_widget_count\":0,\"variables\":[\"$dog\",\"$dog.city\",\"$dog.full_name\",\"$dog.name\",\"$event\",\"$event.starts_at\",\"$event.title\",\"$media\",\"$media.media_date\",\"$media.title\",\"$media.username\",\"$portal.dogs.hasItems\",\"$portal.dogs.items\",\"$portal.events.hasItems\",\"$portal.events.items\",\"$portal.forums.hasItems\",\"$portal.forums.items\",\"$portal.media.available\",\"$portal.media.hasItems\",\"$portal.media.items\",\"$portal.resources.available\",\"$portal.resources.hasItems\",\"$portal.resources.items\",\"$resource\",\"$resource.last_update\",\"$resource.tag_line\",\"$resource.title\",\"$thread\",\"$thread.Forum.Node.title\",\"$thread.last_post_date\",\"$thread.title\"],\"css_classes\":[\"button\",\"button button--primary\",\"newfiPortal\",\"newfiPortal-actions\",\"newfiPortal-card\",\"newfiPortal-card newfiPortal-card--wide\",\"newfiPortal-cardHeader\",\"newfiPortal-cta\",\"newfiPortal-empty\",\"newfiPortal-eyebrow\",\"newfiPortal-grid\",\"newfiPortal-hero\",\"newfiPortal-heroCopy\",\"newfiPortal-kicker\",\"newfiPortal-list\",\"newfiPortal-listItem\",\"newfiPortal-listItem newfiPortal-listItem--static\",\"newfiPortal-locked\",\"newfiPortal-mediaItem\",\"newfiPortal-mediaList\",\"newfiPortal-textLink\"],\"public_text\":[\"\\u0411\\u0430\\u0437\\u0430 \\u0437\\u043d\\u0430\\u043d\\u0438\\u0439\",\"\\u0411\\u0430\\u0437\\u0430 \\u0437\\u043d\\u0430\\u043d\\u0438\\u0439 \\u0434\\u043e\\u0441\\u0442\\u0443\\u043f\\u043d\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043d\\u0438\\u043a\\u0430\\u043c \\u0441 \\u0441\\u043e\\u043e\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0443\\u044e\\u0449\\u0438\\u043c\\u0438 \\u043f\\u0440\\u0430\\u0432\\u0430\\u043c\\u0438.\",\"\\u0411\\u043b\\u0438\\u0436\\u0430\\u0439\\u0448\\u0438\\u0435 \\u0441\\u043e\\u0431\\u044b\\u0442\\u0438\\u044f\",\"\\u0412\\u0441\\u0435 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043b\\u044b\",\"\\u0412\\u0441\\u0435 \\u0441\\u043e\\u0431\\u0430\\u043a\\u0438\",\"\\u0412\\u0441\\u0435 \\u0441\\u043e\\u0431\\u044b\\u0442\\u0438\\u044f\",\"\\u0413\\u0430\\u043b\\u0435\\u0440\\u0435\\u044f\",\"\\u0413\\u0430\\u043b\\u0435\\u0440\\u0435\\u044f \\u0434\\u043e\\u0441\\u0442\\u0443\\u043f\\u043d\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043d\\u0438\\u043a\\u0430\\u043c \\u0441 \\u0441\\u043e\\u043e\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0443\\u044e\\u0449\\u0438\\u043c\\u0438 \\u043f\\u0440\\u0430\\u0432\\u0430\\u043c\\u0438.\",\"\\u0414\\u043e\\u043c \\u0441\\u043e\\u043e\\u0431\\u0449\\u0435\\u0441\\u0442\\u0432\\u0430 \\u043d\\u044c\\u044e\\u0444\\u0430\\u0443\\u043d\\u0434\\u043b\\u0435\\u043d\\u0434\\u043e\\u0432\",\"\\u0417\\u0430\\u0434\\u0430\\u0439\\u0442\\u0435 \\u0432\\u043e\\u043f\\u0440\\u043e\\u0441, \\u043f\\u043e\\u0434\\u0435\\u043b\\u0438\\u0442\\u0435\\u0441\\u044c \\u043e\\u043f\\u044b\\u0442\\u043e\\u043c \\u0438\\u043b\\u0438 \\u0434\\u043e\\u0431\\u0430\\u0432\\u044c\\u0442\\u0435 \\u043c\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043b \\u0432 \\u043f\\u043e\\u0434\\u0445\\u043e\\u0434\\u044f\\u0449\\u0438\\u0439 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043b.\",\"\\u041a \\u043e\\u0431\\u0441\\u0443\\u0436\\u0434\\u0435\\u043d\\u0438\\u044f\\u043c\",\"\\u041a\\u0430\\u043b\\u0435\\u043d\\u0434\\u0430\\u0440\\u044c\",\"\\u041a\\u0430\\u0440\\u0442\\u043e\\u0447\\u043a\\u0438 \\u0441\\u043e\\u0431\\u0430\\u043a \\u043f\\u043e\\u044f\\u0432\\u044f\\u0442\\u0441\\u044f \\u0437\\u0434\\u0435\\u0441\\u044c \\u043f\\u043e\\u0441\\u043b\\u0435 \\u0437\\u0430\\u043f\\u043e\\u043b\\u043d\\u0435\\u043d\\u0438\\u044f \\u043a\\u0430\\u0442\\u0430\\u043b\\u043e\\u0433\\u0430.\",\"\\u041c\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043b\\u044b\",\"\\u041d\\u0430\\u0448\\u0438 \\u0441\\u043e\\u0431\\u0430\\u043a\\u0438\",\"\\u041d\\u043e\\u0432\\u044b\\u0435 \\u0432\\u044b\\u0441\\u0442\\u0430\\u0432\\u043a\\u0438 \\u0438 \\u0432\\u0441\\u0442\\u0440\\u0435\\u0447\\u0438 \\u043f\\u043e\\u044f\\u0432\\u044f\\u0442\\u0441\\u044f \\u0437\\u0434\\u0435\\u0441\\u044c \\u043f\\u043e\\u0441\\u043b\\u0435 \\u043f\\u0443\\u0431\\u043b\\u0438\\u043a\\u0430\\u0446\\u0438\\u0438.\",\"\\u041d\\u043e\\u0432\\u044b\\u0435 \\u0442\\u0435\\u043c\\u044b \\u043f\\u043e\\u044f\\u0432\\u044f\\u0442\\u0441\\u044f \\u0437\\u0434\\u0435\\u0441\\u044c \\u043f\\u043e\\u0441\\u043b\\u0435 \\u043d\\u0430\\u0447\\u0430\\u043b\\u0430 \\u043e\\u0431\\u0441\\u0443\\u0436\\u0434\\u0435\\u043d\\u0438\\u0439.\",\"\\u041d\\u044c\\u044e\\u0444\\u0414\\u043e\\u043c\",\"\\u041d\\u044c\\u044e\\u0444\\u0430\\u0443\\u043d\\u0434\\u043b\\u0435\\u043d\\u0434\\u044b \\u00b7 \\u0437\\u043d\\u0430\\u043d\\u0438\\u044f \\u00b7 \\u043b\\u044e\\u0434\\u0438\",\"\\u041e\\u0431\\u0441\\u0443\\u0436\\u0434\\u0435\\u043d\\u0438\\u044f, \\u043f\\u0440\\u0430\\u043a\\u0442\\u0438\\u0447\\u0435\\u0441\\u043a\\u0438\\u0435 \\u043c\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043b\\u044b, \\u0441\\u043e\\u0431\\u044b\\u0442\\u0438\\u044f, \\u0444\\u043e\\u0442\\u043e\\u0433\\u0440\\u0430\\u0444\\u0438\\u0438 \\u0438 \\u0441\\u043e\\u0431\\u0430\\u043a\\u0438 \\u0441\\u043e\\u043e\\u0431\\u0449\\u0435\\u0441\\u0442\\u0432\\u0430 \\u2014 \\u0432 \\u043e\\u0434\\u043d\\u043e\\u0439 \\u0442\\u043e\\u0447\\u043a\\u0435 \\u0432\\u0445\\u043e\\u0434\\u0430.\",\"\\u041e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0431\\u0430\\u0437\\u0443 \\u0437\\u043d\\u0430\\u043d\\u0438\\u0439\",\"\\u041e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0433\\u0430\\u043b\\u0435\\u0440\\u0435\\u044e\",\"\\u041f\\u0435\\u0440\\u0435\\u0439\\u0442\\u0438 \\u043a \\u0444\\u043e\\u0440\\u0443\\u043c\\u0443\",\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435 \\u043d\\u0430\\u0447\\u0438\\u043d\\u0430\\u0435\\u0442\\u0441\\u044f \\u0441 \\u0436\\u0438\\u0432\\u043e\\u0433\\u043e \\u0441\\u043e\\u043e\\u0431\\u0449\\u0435\\u0441\\u0442\\u0432\\u0430\",\"\\u041f\\u043e\\u0441\\u043b\\u0435\\u0434\\u043d\\u0438\\u0435 \\u043e\\u0431\\u0441\\u0443\\u0436\\u0434\\u0435\\u043d\\u0438\\u044f\",\"\\u041f\\u0440\\u043e\\u0432\\u0435\\u0440\\u0435\\u043d\\u043d\\u044b\\u0435 \\u043c\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043b\\u044b \\u043f\\u043e\\u044f\\u0432\\u044f\\u0442\\u0441\\u044f \\u0437\\u0434\\u0435\\u0441\\u044c \\u043f\\u043e\\u0441\\u043b\\u0435 \\u043f\\u0443\\u0431\\u043b\\u0438\\u043a\\u0430\\u0446\\u0438\\u0438.\",\"\\u0421\\u0432\\u0435\\u0436\\u0438\\u0435 \\u0444\\u043e\\u0442\\u043e\\u0433\\u0440\\u0430\\u0444\\u0438\\u0438\",\"\\u0421\\u043e\\u0431\\u0430\\u043a\\u0438\",\"\\u0421\\u043e\\u0431\\u044b\\u0442\\u0438\\u044f\",\"\\u0421\\u043e\\u043e\\u0431\\u0449\\u0435\\u0441\\u0442\\u0432\\u043e\",\"\\u0424\\u043e\\u0442\\u043e\\u0433\\u0440\\u0430\\u0444\\u0438\\u0438 \\u043f\\u043e\\u044f\\u0432\\u044f\\u0442\\u0441\\u044f \\u0437\\u0434\\u0435\\u0441\\u044c \\u043f\\u043e\\u0441\\u043b\\u0435 \\u043f\\u0443\\u0431\\u043b\\u0438\\u043a\\u0430\\u0446\\u0438\\u0438 \\u0432 \\u0433\\u0430\\u043b\\u0435\\u0440\\u0435\\u0435.\"]},{\"title\":\"newfi_portal.less\",\"type\":\"public\",\"version_id\":\"1000010\",\"bytes\":3634,\"sha256\":\"25b1dc49e89ef7615a11cd1023876c4ab9b5f96f90b1fca52a4815bb5992fbe8\",\"xf_if_count\":0,\"xf_foreach_count\":0,\"xf_widget_count\":0,\"variables\":[],\"css_classes\":[],\"public_text\":[]}]}}},{\"path\":\"src/addons/Newfi/Portal/addon.json\",\"bytes\":378,\"sha256\":\"288a61044c941107162d045be49ab2e7c844d1586b25378a7289b3c7275010ab\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"description\",\"dev\",\"dev_url\",\"extra_urls\",\"faq_url\",\"icon\",\"legacy_addon_id\",\"require\",\"support_url\",\"title\",\"version_id\",\"version_string\"],\"selected\":{\"title\":\"Newfi Portal\",\"description\":\"Minimal private-staging portal for the Newfi closed MVP.\",\"version_id\":1000010,\"version_string\":\"1.0.0 Alpha 1\",\"dev\":\"Newfi\",\"require\":{\"XF\":[2031270,\"XenForo 2.3.12+\"]},\"icon\":\"\",\"legacy_addon_id\":\"\"}}}}],\"relevant_files\":[{\"path\":\"config/newfi-brand-assets.json\",\"bytes\":1506,\"sha256\":\"3a08988a3c0b61abeb860833a139347d131568dacc06296393c24b6573c327b2\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"assets\",\"checkpoint\",\"header_logo\",\"manual_profile_assets\",\"roadmap_after_pass\",\"roadmap_before\",\"runtime_base\",\"style_id\",\"style_properties\",\"style_title\"],\"selected\":{}}}},{\"path\":\"config/newfi-dogs.json\",\"bytes\":463,\"sha256\":\"87ecff2788eb4779d3ee34416667fcde7c2ce5ad7faadbbe6cee8f76cd24bcb5\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"addon_id\",\"checkpoint\",\"fields\",\"persistent_seed_dogs\",\"route\",\"scope_note\",\"table\"],\"selected\":{}}}},{\"path\":\"config/newfi-events.json\",\"bytes\":741,\"sha256\":\"9c69edc5a2538da9e77639badcdde08956454e55f9c48de64acce2a001abc547\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"addon_id\",\"checkpoint\",\"editorial_states\",\"identity\",\"persistent_seed_events\",\"route\",\"tables\"],\"selected\":{}}}},{\"path\":\"config/newfi-gallery.json\",\"bytes\":781,\"sha256\":\"126626756c0aafb2f10355737325836abd80a157c73988ece5cff74aaaed5286\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"checkpoint\",\"content\",\"dogs\",\"portal\",\"privacy\",\"smoke\",\"xfmg\"],\"selected\":{}}}},{\"path\":\"config/newfi-kb.json\",\"bytes\":340,\"sha256\":\"7924c119998e58f9f3c25637bb26945958f5d3b0550fcade0a3d12a1a0153231\",\"mode\":\"0600\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"checkpoint\",\"child_taxonomy\",\"demo_description_removed\",\"description\",\"persistent_seed_resources\",\"root_category_id\",\"temporary_smoke\",\"title\"],\"selected\":{\"title\":\"\\u0411\\u0430\\u0437\\u0430 \\u0437\\u043d\\u0430\\u043d\\u0438\\u0439\",\"description\":\"\"}}}},{\"path\":\"config/newfi-pwa-staging.json\",\"bytes\":755,\"sha256\":\"2eccc2657b0581aece7a90a8907a61a36052fd9efefc63dbfa8b39e61875d9af\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"browser_installability_accepted\",\"checkpoint\",\"custom_pwa_layer\",\"expected_push_subscriptions\",\"fake_push_subscriptions_allowed\",\"http_smoke_resolution\",\"https_limitation_reference\",\"manifest_endpoint\",\"native_layer\",\"pve01_dns_is_acceptance_gate\",\"real_notification_sent\",\"runtime_mutation\",\"schema_version\",\"service_worker\",\"vapid_required_present\",\"visual_identity_note\"],\"selected\":{}}}},{\"path\":\"config/newfi-rights-privacy.json\",\"bytes\":701,\"sha256\":\"a26edf02d3cd40831c6a17a1631a3d8c0d15eddbd7eff0417d71f537a55e1784\",\"mode\":\"0600\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"board_active\",\"checkpoint\",\"guest_denies\",\"guest_group_id\",\"index_route\",\"privacy_defaults\",\"public_cutover\",\"registration_setup\"],\"selected\":{}}}},{\"path\":\"config/newfi-style-staging.json\",\"bytes\":256,\"sha256\":\"ba17002ce7c9caf0ea1256e38780ac7ceb8c6dcd079ac1ac6905914b91579857\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"description\",\"enable_variations\",\"make_default\",\"parent_style_id\",\"title\",\"user_selectable\",\"visual_overrides\"],\"selected\":{\"title\":\"Newfi Staging\",\"description\":\"Private staging style container; visual identity intentionally not defined.\"}}}},{\"path\":\"config/newfi-style199.json\",\"bytes\":6471,\"sha256\":\"15f9c3b83dbde87a6071a50d69beb0685d0b5be42c25cf3317928cffee3893de\",\"mode\":\"0644\",\"semantics\":{\"state\":\"OK\",\"kind\":\"json\",\"facts\":{\"parse\":\"OK\",\"top_level_keys\":[\"acceptance\",\"brand_dependencies\",\"command_id\",\"design_language\",\"parent_style_id\",\"property_values\",\"style_id\",\"theme\"],\"selected\":{}}}},{\"path\":\"docs/operations/brand-assets.md\",\"bytes\":1303,\"sha256\":\"9fc0b97c73be6462143edd7cf30c23fe68cdd97ac9441fe11b81651d947ef6f1\",\"mode\":\"0644\"},{\"path\":\"docs/operations/portal-navigation.md\",\"bytes\":1870,\"sha256\":\"66e03d84ade36af39cf518a51bdd842f0800ef232c5a9676970ce9c65ce32553\",\"mode\":\"0644\"},{\"path\":\"docs/operations/portal.md\",\"bytes\":1648,\"sha256\":\"8fa654db0c45d8fbda6b022cc11ad5597dc5543ab98bcee774034d2718cd8708\",\"mode\":\"0644\"},{\"path\":\"docs/operations/style-staging.md\",\"bytes\":2142,\"sha256\":\"7cc57486e57574ce25fd09e1cb03ffb4fd28954415834c757f32c0ca74df8d09\",\"mode\":\"0644\"},{\"path\":\"docs/operations/style199.md\",\"bytes\":594,\"sha256\":\"0170fa1361c2fa1035c7892b72ad7591b17419b9b6e7144b941133854e56e441\",\"mode\":\"0644\"},{\"path\":\"docs/superpowers/plans/2026-09-04-newfidom-foundation.md\",\"bytes\":10886,\"sha256\":\"71b104556e575518d0b1a31f5cfc3c9d6c0200a5133cd243bc43ff436e531390\",\"mode\":\"0600\"},{\"path\":\"docs/superpowers/specs/2026-09-04-newfidom-closed-mvp-design.md\",\"bytes\":6282,\"sha256\":\"97326a5363b5dfdec4b4cdd9f64cc5b5d326a7e810bec7996005100d001ff828\",\"mode\":\"0600\"},{\"path\":\"scripts/verify-brand-assets.py\",\"bytes\":1165,\"sha256\":\"efaf9bd3af3ec7d28a8ffd3f3ddf88d25f9e76bbd1c5e262e902523716ede6af\",\"mode\":\"0755\",\"semantics\":{\"state\":\"OK\",\"kind\":\"script\",\"facts\":{\"markers\":[\"PASS\"],\"xf_commands\":[]}}},{\"path\":\"scripts/verify-portal-navigation.py\",\"bytes\":5256,\"sha256\":\"25c0e846c93b1cfaa23072ad062da6ce32f7df823db642dac18d1150dae05cec\",\"mode\":\"0755\",\"semantics\":{\"state\":\"OK\",\"kind\":\"script\",\"facts\":{\"markers\":[\"PASS\"],\"xf_commands\":[\"XF::phrase\",\"XF::setupApp\",\"XF::start\",\"xf:widget\"]}}},{\"path\":\"scripts/verify-portal-staging.py\",\"bytes\":5003,\"sha256\":\"07cdf461aa7126a9519b209f431c0dbff093b3984f372fa855bb6bf53920fab9\",\"mode\":\"0755\",\"semantics\":{\"state\":\"OK\",\"kind\":\"script\",\"facts\":{\"markers\":[\"PASS\"],\"xf_commands\":[\"XF::setupApp\",\"XF::start\"]}}},{\"path\":\"scripts/verify-style-staging.py\",\"bytes\":4857,\"sha256\":\"2a3bc464da8d0dee93e2fd16a8edfd6a7f750a8d28653d5f5bf77691fb86afad\",\"mode\":\"0755\",\"semantics\":{\"state\":\"OK\",\"kind\":\"script\",\"facts\":{\"markers\":[\"PASS\"],\"xf_commands\":[\"XF::setupApp\",\"XF::start\"]}}},{\"path\":\"scripts/verify-style199.py\",\"bytes\":694,\"sha256\":\"4fc81cc1d99aac2302c0a0e5e73cbf82959fb2df099cfbeb14db6cb8a40bcca6\",\"mode\":\"0755\",\"semantics\":{\"state\":\"OK\",\"kind\":\"script\",\"facts\":{\"markers\":[\"PASS\"],\"xf_commands\":[]}}}],\"audit66_expected_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"head_matches_audit66\":true}\nNEWFI68_CLUSTER={\"state\":\"OK\",\"selected\":{\"210\":{\"vmid\":210,\"name\":\"newfi-prod\",\"node\":\"pve01\",\"status\":\"running\",\"type\":\"qemu\"},\"211\":{\"vmid\":211,\"name\":\"newfi-staging\",\"node\":\"pve03\",\"status\":\"running\",\"type\":\"qemu\"}}}\nNEWFI68_EXCEPTION=AttributeError\n" + "output": "NEWFI69_BEGIN\nCOMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69\nERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nNEWFI69_STEP_GIT_BEGIN=true\nNEWFI69_STEP_GIT_END={\"state\":\"OK\"}\nNEWFI69_STEP_CLUSTER_BEGIN=true\nNEWFI69_STEP_CLUSTER_END={\"state\":\"OK\"}\nNEWFI69_GIT={\"head_rc\":0,\"head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"branch_rc\":0,\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"status_rc\":0,\"clean\":true,\"remote_rc\":0,\"remote_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"portal_files\":[{\"path\":\"Pub/Controller/Portal.php\",\"bytes\":363,\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\"},{\"path\":\"Pub/View/Portal.php\",\"bytes\":79,\"sha256\":\"26e3b77c2c86d4f4a6fd51f0472e3f38e70e14c984ffd8d04dcec39071a2a69f\"},{\"path\":\"Service/PortalData.php\",\"bytes\":5213,\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\"},{\"path\":\"_data/navigation.xml\",\"bytes\":281,\"sha256\":\"5d724ef5141438bdd0b9dba6a583d330bc6940b0ace5c21c7a8d5301e7d8d649\"},{\"path\":\"_data/phrases.xml\",\"bytes\":173,\"sha256\":\"15282a06a956bda4e810f6b26b1703676dd766424029cd372ce0fd7832dbe09c\"},{\"path\":\"_data/routes.xml\",\"bytes\":144,\"sha256\":\"9b80ef229bcebb49a5930369bb272ed85367deef66070f432948001096673629\"},{\"path\":\"_data/templates.xml\",\"bytes\":11021,\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\"},{\"path\":\"addon.json\",\"bytes\":378,\"sha256\":\"288a61044c941107162d045be49ab2e7c844d1586b25378a7289b3c7275010ab\"}]}\nNEWFI69_CLUSTER={\"rc\":0,\"stdout_bytes\":4263,\"stderr\":\"\",\"json_type\":\"list\",\"item_count\":13,\"selected\":{\"210\":{\"vmid\":210,\"name\":\"newfi-prod\",\"node\":\"pve01\",\"status\":\"running\",\"type\":\"qemu\"},\"211\":{\"vmid\":211,\"name\":\"newfi-staging\",\"node\":\"pve03\",\"status\":\"running\",\"type\":\"qemu\"}}}\nNEWFI69_STEP_PRODUCTION_QGA_BEGIN=true\nNEWFI69_STEP_PRODUCTION_QGA_END={\"state\":\"EXCEPTION\",\"type\":\"AttributeError\",\"message\":\"'bytes' object has no attribute 'encode'\"}\nNEWFI69_PRODUCTION_QGA={\"state\":\"EXCEPTION\",\"type\":\"AttributeError\",\"message\":\"'bytes' object has no attribute 'encode'\"}\nNEWFI69_STEP_STAGING_QGA_BEGIN=true\nNEWFI69_STEP_STAGING_QGA_END={\"state\":\"EXCEPTION\",\"type\":\"AttributeError\",\"message\":\"'bytes' object has no attribute 'encode'\"}\nNEWFI69_STAGING_QGA={\"state\":\"EXCEPTION\",\"type\":\"AttributeError\",\"message\":\"'bytes' object has no attribute 'encode'\"}\nNEWFI69_GAPS=[\"PRODUCTION_QGA_NOT_COMPLETE\",\"STAGING_QGA_NOT_COMPLETE\"]\nNEWFI69_MUTATION_SCOPE=NONE_READ_ONLY\nNEWFI69_DECISION=RCA_EVIDENCE_PARTIAL\nNEWFI69_END\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 9e79120a..03f8c918 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,22 +1,22 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT68 -STATUS=FAIL -RC=3 +COMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69 +STATUS=OK +RC=0 HOST=pve01 MODE=read-only -COMPONENT=newfi-product-source-install-preflight +COMPONENT=newfi-preflight68-harness-rca REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=20b572af19f0e926da6f5639d5910e5d0456ac552e3a217ed7a75eedcf6a3397 +COMMAND_SHA256=d7a45a7f52a9c4959b19631fc7bf6084b2e2a740a97a92cdece0c186acf70006 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 +COMMAND_RC=0 CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null @@ -24,18 +24,31 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=6d94a229d383d9c4ff0f65e0bc504a4ca17e5f8c091ff2dce0b6db970c43ecf5 -SANITIZED_OUTPUT_SHA256=6d94a229d383d9c4ff0f65e0bc504a4ca17e5f8c091ff2dce0b6db970c43ecf5 +RAW_EVIDENCE_SHA256=effdaaa983ace048945a0774b92c60561a3fd33c04126402962ee1b456ca0963 +SANITIZED_OUTPUT_SHA256=effdaaa983ace048945a0774b92c60561a3fd33c04126402962ee1b456ca0963 OUTPUT_BEGIN -NEWFI68_BEGIN -COMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT68 +NEWFI69_BEGIN +COMMAND_ID=NEWFI-260909-NEWFDOM-PREFLIGHT-RCA69 ERROR_REGISTER_CHECK=OK REFERENCE_CHECK=OK AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d -NEWFI68_GIT={"head":"a1efc08a15ba91971c2297d886b25ca2097e6935","head_rc":0,"branch":"implementation/newfi-closed-mvp-20260906","branch_rc":0,"clean":true,"status_rc":0,"dirty_bytes":0,"remote_rc":0,"remote_head":"a1efc08a15ba91971c2297d886b25ca2097e6935","recent_log_rc":0,"recent_log":["a1efc08a15ba91971c2297d886b25ca2097e6935\t2026-09-08T07:25:49+03:00\tfeat(newfi): deploy Portal200 homepage","06bab5acd124e768f70305b3d7eca2f595871890\t2026-09-07T09:46:47+03:00\tstyle: apply Big Water XenForo theme [NEWFI-260907-STYLE199B]","4ade504e649ce35d05322a6b69d758a1ef1803b5\t2026-09-07T08:37:05+03:00\tbrand: add Newfi technical identity assets","9f7e0ca285d8ddfdd97e4539daaa81695272b705\t2026-09-07T02:28:36+03:00\tops: authorize final Newfi public cutover","781612748127a55d113bd3c488a8d4a89150d0ec\t2026-09-07T02:23:00+03:00\tops: authorize final Newfi public cutover","07d41d0d94c2be71078d906ffbf32d8a5b7c91a4\t2026-09-07T02:15:56+03:00\tops: authorize final Newfi public cutover","32b0462cf5654bd4a2d3c62ff60cb988d89eadd9\t2026-09-07T01:58:09+03:00\tops: accept Newfi production VM deployment","9c1405588883f2e5ecd0c285d2b1ac561b045ee8\t2026-09-07T01:11:49+03:00\tdocs: seal Newfi private staging backup restore gate","957a99628dec7962bcbe330b7ef22662938f959a\t2026-09-07T00:19:11+03:00\tdocs: accept Newfi private staging rollback gate","73678d54181e0a290e42da4f1e77f313aae589c8\t2026-09-06T23:44:38+03:00\tops: accept native XenForo PWA staging baseline","5c83eca866acd9aaa29ca99a92b4381039aee7d6\t2026-09-06T22:13:39+03:00\tfeat: accept XFMG gallery integration checkpoint","8e95f8a42e917c7c27ced25b814f06cb89ce089f\t2026-09-06T21:55:56+03:00\tfeat: add Newfi Dogs closed-MVP checkpoint","79d232dbea220a72ede78ddd973bc5038294836f\t2026-09-06T21:47:31+03:00\tfeat: add Newfi Events closed-MVP checkpoint","6a1cddeba16a38bbe26b048d523a62d6f8e4a76c\t2026-09-06T20:48:45+03:00\tcontent: refine Newfi knowledge base baseline","84a75fca5d8f72181d6074f5e0e57fe68927f857\t2026-09-06T20:17:25+03:00\tsecurity: establish closed-launch rights and privacy","5cb1d1739abc2ee2be3d86e0dbd79156c5173460\t2026-09-06T19:57:39+03:00\tfeat: add Newfi staging style container","ca07bfc20953585887f7cc2f1d443cf8313912c8\t2026-09-06T16:40:06+03:00\tfeat: add Portal navigation and widgets","82dd2066df377ba9d904f68f90898e009413eec9\t2026-09-06T16:15:39+03:00\tfeat: add Newfi Portal staging checkpoint","7e431707486f5d5a6bfea04ef2fdceccabe05219\t2026-09-06T12:48:11+03:00\tcontent: establish Newfi closed-MVP structure","38688a88c3850e43e310e755faa0c6178e203e26\t2026-09-06T12:29:44+03:00\tops: accept Newfi foundation v1","73fc9087187b3472359a8ce51fd5c3f19262f409\t2026-09-06T12:17:54+03:00\tfix: align Newfi core verifier with foundation schema","beb054ee374142a9b65c28b0ac985156cfac5da8\t2026-09-06T12:02:34+03:00\tops: prove Newfi foundation restore","dbe3361bbf5a8703e4a3fabae61e9bf09b60da6e\t2026-09-06T11:22:54+03:00\tsecurity: establish Newfi staging baseline","211fa95ebafec97b63fbc3905422496da8d48fff\t2026-09-06T10:58:24+03:00\tdocs: record approved Newfi contact sender","26b443d97b211b5653b83922176b5fbef7460089\t2026-09-06T10:56:20+03:00\tsecurity: add Newfi staging baseline verifier","c17dd35122a96a5526b968ed7a9f19aca20e4486\t2026-09-06T10:36:49+03:00\tdocs: record Newfi mail acceptance","e4f7b4318e2b0c1aa799edf91f39992c4b3ba378\t2026-09-05T01:48:16+03:00\tfeat: add XenForo add-ons and Russian language","52ce7eea055d2af1e6408ff5c1801f6183665cbc\t2026-09-05T01:15:43+03:00\tfeat: install XenForo staging core","e946a97f3fa9a24ee8ae037b7118d2b6e06bb23e\t2026-09-05T00:45:53+03:00\tinfra: add Newfi web foundation","aeab20ea3763b5a513e2276ea6841b8d9a3b3285\t2026-09-05T00:17:27+03:00\tdocs: define Newfi service isolation","ab059928dae1485893960484add20b2cc51ecff8\t2026-09-04T20:46:16+03:00\tdocs: define Newfi PHP 8.3 package source","417a1990942f51b968d805fd238327597d40d777\t2026-09-04T20:28:39+03:00\tinfra: establish Newfi staging VM","a722848b934baa9626537392af7d9c5408c8e018\t2026-09-04T19:25:28+03:00\tdocs: reserve Newfi infrastructure","6360c4c919c4c5b3cb2430dd55fe63b6ad595a28\t2026-09-04T19:19:36+03:00\tchore: ignore local worktrees","e6ff74ad838b2bc1b4e3a3e835230ddd51b2be5f\t2026-09-04T19:15:17+03:00\tdocs: plan Newfi foundation","7df9884d0d740e1c39f99b669fd41dd451f4fc52\t2026-09-04T19:08:43+03:00\tdocs: define Newfi closed MVP"],"recent_name_status_rc":0,"recent_name_status":["@@a1efc08a15ba91971c2297d886b25ca2097e6935\tfeat(newfi): deploy Portal200 homepage","","M\tsrc/addons/Newfi/Portal/Pub/Controller/Portal.php","A\tsrc/addons/Newfi/Portal/Service/PortalData.php","M\tsrc/addons/Newfi/Portal/_data/templates.xml","@@06bab5acd124e768f70305b3d7eca2f595871890\tstyle: apply Big Water XenForo theme [NEWFI-260907-STYLE199B]","","A\tconfig/newfi-style199.json","A\tdocs/operations/style199.md","A\tscripts/verify-style199.py","@@4ade504e649ce35d05322a6b69d758a1ef1803b5\tbrand: add Newfi technical identity assets","","A\tassets/brand/brand198/newfidom-favicon-32.png","A\tassets/brand/brand198/newfidom-pwa-192.png","A\tassets/brand/brand198/newfidom-pwa-512.png","A\tconfig/newfi-brand-assets.json","A\tdocs/operations/brand-assets.md","A\tscripts/verify-brand-assets.py","@@9f7e0ca285d8ddfdd97e4539daaa81695272b705\tops: authorize final Newfi public cutover","","A\tdocs/checkpoints/public-cutover-v3.md","@@781612748127a55d113bd3c488a8d4a89150d0ec\tops: authorize final Newfi public cutover","","A\tdocs/checkpoints/public-cutover-v2.md","@@07d41d0d94c2be71078d906ffbf32d8a5b7c91a4\tops: authorize final Newfi public cutover","","A\tdocs/checkpoints/public-cutover-v1.md","@@32b0462cf5654bd4a2d3c62ff60cb988d89eadd9\tops: accept Newfi production VM deployment","","A\tdocs/checkpoints/production-vm-v1.md","@@9c1405588883f2e5ecd0c285d2b1ac561b045ee8\tdocs: seal Newfi private staging backup restore gate","","A\tdocs/checkpoints/private-staging-backup-restore.md","@@957a99628dec7962bcbe330b7ef22662938f959a\tdocs: accept Newfi private staging rollback gate","","A\tdocs/checkpoints/private-staging-v1.md","@@73678d54181e0a290e42da4f1e77f313aae589c8\tops: accept native XenForo PWA staging baseline","","A\tconfig/newfi-pwa-staging.json","A\tdocs/operations/pwa-staging.md","A\tscripts/verify-pwa-staging.py","@@5c83eca866acd9aaa29ca99a92b4381039aee7d6\tfeat: accept XFMG gallery integration checkpoint","","A\tconfig/newfi-gallery.json","A\tdocs/operations/gallery.md","A\tscripts/verify-gallery-staging.py","@@8e95f8a42e917c7c27ced25b814f06cb89ce089f\tfeat: add Newfi Dogs closed-MVP checkpoint","","A\tconfig/newfi-dogs.json","A\tdocs/operations/dogs.md","A\tscripts/verify-dogs-staging.py","A\tsrc/addons/Newfi/Dogs/Entity/Dog.php","A\tsrc/addons/Newfi/Dogs/Pub/Controller/Dogs.php","A\tsrc/addons/Newfi/Dogs/Pub/View/Dogs.php","A\tsrc/addons/Newfi/Dogs/Setup.php","A\tsrc/addons/Newfi/Dogs/_data/routes.xml","A\tsrc/addons/Newfi/Dogs/_data/templates.xml","A\tsrc/addons/Newfi/Dogs/addon.json","@@79d232dbea220a72ede78ddd973bc5038294836f\tfeat: add Newfi Events closed-MVP checkpoint","","A\tconfig/newfi-events.json","A\tdocs/operations/events.md","A\tscripts/verify-events-staging.py","A\tsrc/addons/Newfi/Events/Entity/Event.php","A\tsrc/addons/Newfi/Events/Entity/EventChange.php","A\tsrc/addons/Newfi/Events/Entity/EventSource.php","A\tsrc/addons/Newfi/Events/Pub/Controller/Events.php","A\tsrc/addons/Newfi/Events/Pub/View/Events.php","A\tsrc/addons/Newfi/Events/Setup.php","A\tsrc/addons/Newfi/Events/_data/routes.xml","A\tsrc/addons/Newfi/Events/_data/templates.xml","A\tsrc/addons/Newfi/Events/addon.json","@@6a1cddeba16a38bbe26b048d523a62d6f8e4a76c\tcontent: refine Newfi knowledge base baseline","","A\tconfig/newfi-kb.json","A\tdocs/operations/kb-xfrm.md","A\tscripts/verify-kb-xfrm.py","@@84a75fca5d8f72181d6074f5e0e57fe68927f857\tsecurity: establish closed-launch rights and privacy","","A\tconfig/newfi-rights-privacy.json","A\tdocs/operations/rights-privacy.md","A\tscripts/verify-rights-privacy.py","@@5cb1d1739abc2ee2be3d86e0dbd79156c5173460\tfeat: add Newfi staging style container","","A\tconfig/newfi-style-staging.json","A\tdocs/operations/style-staging.md","A\tscripts/verify-style-staging.py","@@ca07bfc20953585887f7cc2f1d443cf8313912c8\tfeat: add Portal navigation and widgets","","A\tdocs/operations/portal-navigation.md","A\tscripts/verify-portal-navigation.py","A\tsrc/addons/Newfi/Portal/_data/navigation.xml","A\tsrc/addons/Newfi/Portal/_data/phrases.xml","M\tsrc/addons/Newfi/Portal/_data/templates.xml","@@82dd2066df377ba9d904f68f90898e009413eec9\tfeat: add Newfi Portal staging checkpoint","","A\tdocs/operations/portal.md","A\tscripts/verify-portal-staging.py","A\tsrc/addons/Newfi/Portal/Pub/Controller/Portal.php","A\tsrc/addons/Newfi/Portal/Pub/View/Portal.php","A\tsrc/addons/Newfi/Portal/_data/routes.xml","A\tsrc/addons/Newfi/Portal/_data/templates.xml","A\tsrc/addons/Newfi/Portal/addon.json","@@7e431707486f5d5a6bfea04ef2fdceccabe05219\tcontent: establish Newfi closed-MVP structure","","A\tdocs/operations/content-structure.md","A\tscripts/verify-content-structure.sh","@@38688a88c3850e43e310e755faa0c6178e203e26\tops: accept Newfi foundation v1","","A\tdocs/checkpoints/foundation-v1.md","M\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md","@@73fc9087187b3472359a8ce51fd5c3f19262f409\tfix: align Newfi core verifier with foundation schema","","M\tscripts/verify-xenforo-core.sh","@@beb054ee374142a9b65c28b0ac985156cfac5da8\tops: prove Newfi foundation restore","","A\tdocs/operations/backup-restore.md","M\tdocs/operations/security-baseline.md","M\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md","A\tscripts/verify-foundation-restore.sh","@@dbe3361bbf5a8703e4a3fabae61e9bf09b60da6e\tsecurity: establish Newfi staging baseline","","M\tdocs/operations/security-baseline.md","M\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md","@@211fa95ebafec97b63fbc3905422496da8d48fff\tdocs: record approved Newfi contact sender","","M\tdocs/operations/mail.md","M\tdocs/operations/xenforo-install.md","M\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md","@@26b443d97b211b5653b83922176b5fbef7460089\tsecurity: add Newfi staging baseline verifier","","A\tdocs/operations/security-baseline.md","M\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md","A\tscripts/verify-staging-security.sh","@@c17dd35122a96a5526b968ed7a9f19aca20e4486\tdocs: record Newfi mail acceptance","","A\tdocs/operations/mail.md","M\tdocs/operations/xenforo-install.md","M\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md","@@e4f7b4318e2b0c1aa799edf91f39992c4b3ba378\tfeat: add XenForo add-ons and Russian language","","A\tdocs/operations/addons-language.md","A\tscripts/verify-addons-language.sh","@@52ce7eea055d2af1e6408ff5c1801f6183665cbc\tfeat: install XenForo staging core","","A\tdeploy/cron/newfi-xenforo-run-jobs.cron","A\tdeploy/cron/newfi-xenforo-run-jobs.sh","A\tdocs/operations/xenforo-install.md","A\tscripts/verify-xenforo-core.sh","@@e946a97f3fa9a24ee8ae037b7118d2b6e06bb23e\tinfra: add Newfi web foundation","","A\tdeploy/nginx/newfi-staging.conf","A\tdeploy/php/newfi-staging-pool.conf","M\tdocs/operations/database.md","A\tscripts/verify-web-foundation.sh","@@aeab20ea3763b5a513e2276ea6841b8d9a3b3285\tdocs: define Newfi service isolation","","A\tdocs/operations/database.md","@@ab059928dae1485893960484add20b2cc51ecff8\tdocs: define Newfi PHP 8.3 package source","","M\tdeploy/proxmox/newfi-staging.md","M\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md","@@417a1990942f51b968d805fd238327597d40d777\tinfra: establish Newfi staging VM","","A\tdeploy/proxmox/newfi-staging.md","A\tscripts/verify-staging-host.sh","@@a722848b934baa9626537392af7d9c5408c8e018\tdocs: reserve Newfi infrastructure","","A\tdeploy/inventory/newfi-vm-reservation.env.example","A\tdocs/operations/infrastructure-state.md","@@6360c4c919c4c5b3cb2430dd55fe63b6ad595a28\tchore: ignore local worktrees","","M\t.gitignore","@@e6ff74ad838b2bc1b4e3a3e835230ddd51b2be5f\tdocs: plan Newfi foundation","","A\tdocs/superpowers/plans/2026-09-04-newfidom-foundation.md"],"portal_files":[{"path":"src/addons/Newfi/Portal/Pub/Controller/Portal.php","bytes":363,"sha256":"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d","mode":"0600","semantics":{"state":"OK","kind":"php","facts":{"classes":["Portal"],"methods":["actionIndex"],"namespaces":["Newfi\\Portal\\Pub\\Controller"],"uses":["XF\\Pub\\Controller\\AbstractController"],"relevant_string_literals":["Newfi\\Portal:Portal","Newfi\\Portal:PortalData","newfi_portal","portal"]}}},{"path":"src/addons/Newfi/Portal/Pub/View/Portal.php","bytes":79,"sha256":"26e3b77c2c86d4f4a6fd51f0472e3f38e70e14c984ffd8d04dcec39071a2a69f","mode":"0644","semantics":{"state":"OK","kind":"php","facts":{"classes":["Portal"],"methods":[],"namespaces":["Newfi\\Portal\\Pub\\View"],"uses":[],"relevant_string_literals":[]}}},{"path":"src/addons/Newfi/Portal/Service/PortalData.php","bytes":5213,"sha256":"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d","mode":"0600","semantics":{"state":"OK","kind":"php","facts":{"classes":["PortalData"],"methods":["build","buildDogs","buildEvents","buildForums","buildMedia","buildResources","section"],"namespaces":["Newfi\\Portal\\Service"],"uses":["XFMG\\Finder\\Category as MediaCategoryFinder","XFMG\\Repository\\Media as MediaRepository","XFRM\\Finder\\Category as ResourceCategoryFinder","XFRM\\Repository\\ResourceItem as ResourceRepository","XF\\Repository\\ForumRepository","XF\\Repository\\ThreadRepository","XF\\Service\\AbstractService"],"relevant_string_literals":["Newfi\\Dogs:Dog","Newfi\\Events:Event","dog_id","dogs","event_id","events","media","media_date","resources"]}}},{"path":"src/addons/Newfi/Portal/_data/navigation.xml","bytes":281,"sha256":"5d724ef5141438bdd0b9dba6a583d330bc6940b0ace5c21c7a8d5301e7d8d649","mode":"0644","semantics":{"state":"OK","kind":"xml","facts":{"parse":"OK","tags":["navigation","navigation_entry"],"relevant_attributes":[{"navigation_id":"newfiPortal"}]}}},{"path":"src/addons/Newfi/Portal/_data/phrases.xml","bytes":173,"sha256":"15282a06a956bda4e810f6b26b1703676dd766424029cd372ce0fd7832dbe09c","mode":"0644","semantics":{"state":"OK","kind":"xml","facts":{"parse":"OK","tags":["phrase","phrases"],"relevant_attributes":[{"title":"nav.newfiPortal"}]}}},{"path":"src/addons/Newfi/Portal/_data/routes.xml","bytes":144,"sha256":"9b80ef229bcebb49a5930369bb272ed85367deef66070f432948001096673629","mode":"0644","semantics":{"state":"OK","kind":"xml","facts":{"parse":"OK","tags":["route","routes"],"relevant_attributes":[{"route_prefix":"portal"},{"controller":"Newfi\\Portal:Portal"}]}}},{"path":"src/addons/Newfi/Portal/_data/templates.xml","bytes":11021,"sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28","mode":"0600","semantics":{"state":"OK","kind":"templates_xml","facts":{"parse":"OK","templates":[{"title":"newfi_portal","type":"public","version_id":"1000010","bytes":7071,"sha256":"adfd0b49bdef6ab33af849ddce7150c193072bcb9c688c077534eff522924d46","xf_if_count":9,"xf_foreach_count":5,"xf_widget_count":0,"variables":["$dog","$dog.city","$dog.full_name","$dog.name","$event","$event.starts_at","$event.title","$media","$media.media_date","$media.title","$media.username","$portal.dogs.hasItems","$portal.dogs.items","$portal.events.hasItems","$portal.events.items","$portal.forums.hasItems","$portal.forums.items","$portal.media.available","$portal.media.hasItems","$portal.media.items","$portal.resources.available","$portal.resources.hasItems","$portal.resources.items","$resource","$resource.last_update","$resource.tag_line","$resource.title","$thread","$thread.Forum.Node.title","$thread.last_post_date","$thread.title"],"css_classes":["button","button button--primary","newfiPortal","newfiPortal-actions","newfiPortal-card","newfiPortal-card newfiPortal-card--wide","newfiPortal-cardHeader","newfiPortal-cta","newfiPortal-empty","newfiPortal-eyebrow","newfiPortal-grid","newfiPortal-hero","newfiPortal-heroCopy","newfiPortal-kicker","newfiPortal-list","newfiPortal-listItem","newfiPortal-listItem newfiPortal-listItem--static","newfiPortal-locked","newfiPortal-mediaItem","newfiPortal-mediaList","newfiPortal-textLink"],"public_text":["\u0411\u0430\u0437\u0430 \u0437\u043d\u0430\u043d\u0438\u0439","\u0411\u0430\u0437\u0430 \u0437\u043d\u0430\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438.","\u0411\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f","\u0412\u0441\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b","\u0412\u0441\u0435 \u0441\u043e\u0431\u0430\u043a\u0438","\u0412\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f","\u0413\u0430\u043b\u0435\u0440\u0435\u044f","\u0413\u0430\u043b\u0435\u0440\u0435\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438.","\u0414\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u043d\u044c\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434\u043e\u0432","\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0432\u043e\u043f\u0440\u043e\u0441, \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u043e\u043f\u044b\u0442\u043e\u043c \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0432 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b.","\u041a \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u043c","\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c","\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0441\u043e\u0431\u0430\u043a \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430.","\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b","\u041d\u0430\u0448\u0438 \u0441\u043e\u0431\u0430\u043a\u0438","\u041d\u043e\u0432\u044b\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.","\u041d\u043e\u0432\u044b\u0435 \u0442\u0435\u043c\u044b \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439.","\u041d\u044c\u044e\u0444\u0414\u043e\u043c","\u041d\u044c\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434\u044b \u00b7 \u0437\u043d\u0430\u043d\u0438\u044f \u00b7 \u043b\u044e\u0434\u0438","\u041e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b, \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0438 \u0441\u043e\u0431\u0430\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u2014 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u0432\u0445\u043e\u0434\u0430.","\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0431\u0430\u0437\u0443 \u0437\u043d\u0430\u043d\u0438\u0439","\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0433\u0430\u043b\u0435\u0440\u0435\u044e","\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0444\u043e\u0440\u0443\u043c\u0443","\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0436\u0438\u0432\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430","\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f","\u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.","\u0421\u0432\u0435\u0436\u0438\u0435 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438","\u0421\u043e\u0431\u0430\u043a\u0438","\u0421\u043e\u0431\u044b\u0442\u0438\u044f","\u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e","\u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0433\u0430\u043b\u0435\u0440\u0435\u0435."]},{"title":"newfi_portal.less","type":"public","version_id":"1000010","bytes":3634,"sha256":"25b1dc49e89ef7615a11cd1023876c4ab9b5f96f90b1fca52a4815bb5992fbe8","xf_if_count":0,"xf_foreach_count":0,"xf_widget_count":0,"variables":[],"css_classes":[],"public_text":[]}]}}},{"path":"src/addons/Newfi/Portal/addon.json","bytes":378,"sha256":"288a61044c941107162d045be49ab2e7c844d1586b25378a7289b3c7275010ab","mode":"0644","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["description","dev","dev_url","extra_urls","faq_url","icon","legacy_addon_id","require","support_url","title","version_id","version_string"],"selected":{"title":"Newfi Portal","description":"Minimal private-staging portal for the Newfi closed MVP.","version_id":1000010,"version_string":"1.0.0 Alpha 1","dev":"Newfi","require":{"XF":[2031270,"XenForo 2.3.12+"]},"icon":"","legacy_addon_id":""}}}}],"relevant_files":[{"path":"config/newfi-brand-assets.json","bytes":1506,"sha256":"3a08988a3c0b61abeb860833a139347d131568dacc06296393c24b6573c327b2","mode":"0644","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["assets","checkpoint","header_logo","manual_profile_assets","roadmap_after_pass","roadmap_before","runtime_base","style_id","style_properties","style_title"],"selected":{}}}},{"path":"config/newfi-dogs.json","bytes":463,"sha256":"87ecff2788eb4779d3ee34416667fcde7c2ce5ad7faadbbe6cee8f76cd24bcb5","mode":"0644","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["addon_id","checkpoint","fields","persistent_seed_dogs","route","scope_note","table"],"selected":{}}}},{"path":"config/newfi-events.json","bytes":741,"sha256":"9c69edc5a2538da9e77639badcdde08956454e55f9c48de64acce2a001abc547","mode":"0644","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["addon_id","checkpoint","editorial_states","identity","persistent_seed_events","route","tables"],"selected":{}}}},{"path":"config/newfi-gallery.json","bytes":781,"sha256":"126626756c0aafb2f10355737325836abd80a157c73988ece5cff74aaaed5286","mode":"0644","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["checkpoint","content","dogs","portal","privacy","smoke","xfmg"],"selected":{}}}},{"path":"config/newfi-kb.json","bytes":340,"sha256":"7924c119998e58f9f3c25637bb26945958f5d3b0550fcade0a3d12a1a0153231","mode":"0600","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["checkpoint","child_taxonomy","demo_description_removed","description","persistent_seed_resources","root_category_id","temporary_smoke","title"],"selected":{"title":"\u0411\u0430\u0437\u0430 \u0437\u043d\u0430\u043d\u0438\u0439","description":""}}}},{"path":"config/newfi-pwa-staging.json","bytes":755,"sha256":"2eccc2657b0581aece7a90a8907a61a36052fd9efefc63dbfa8b39e61875d9af","mode":"0644","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["browser_installability_accepted","checkpoint","custom_pwa_layer","expected_push_subscriptions","fake_push_subscriptions_allowed","http_smoke_resolution","https_limitation_reference","manifest_endpoint","native_layer","pve01_dns_is_acceptance_gate","real_notification_sent","runtime_mutation","schema_version","service_worker","vapid_required_present","visual_identity_note"],"selected":{}}}},{"path":"config/newfi-rights-privacy.json","bytes":701,"sha256":"a26edf02d3cd40831c6a17a1631a3d8c0d15eddbd7eff0417d71f537a55e1784","mode":"0600","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["board_active","checkpoint","guest_denies","guest_group_id","index_route","privacy_defaults","public_cutover","registration_setup"],"selected":{}}}},{"path":"config/newfi-style-staging.json","bytes":256,"sha256":"ba17002ce7c9caf0ea1256e38780ac7ceb8c6dcd079ac1ac6905914b91579857","mode":"0644","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["description","enable_variations","make_default","parent_style_id","title","user_selectable","visual_overrides"],"selected":{"title":"Newfi Staging","description":"Private staging style container; visual identity intentionally not defined."}}}},{"path":"config/newfi-style199.json","bytes":6471,"sha256":"15f9c3b83dbde87a6071a50d69beb0685d0b5be42c25cf3317928cffee3893de","mode":"0644","semantics":{"state":"OK","kind":"json","facts":{"parse":"OK","top_level_keys":["acceptance","brand_dependencies","command_id","design_language","parent_style_id","property_values","style_id","theme"],"selected":{}}}},{"path":"docs/operations/brand-assets.md","bytes":1303,"sha256":"9fc0b97c73be6462143edd7cf30c23fe68cdd97ac9441fe11b81651d947ef6f1","mode":"0644"},{"path":"docs/operations/portal-navigation.md","bytes":1870,"sha256":"66e03d84ade36af39cf518a51bdd842f0800ef232c5a9676970ce9c65ce32553","mode":"0644"},{"path":"docs/operations/portal.md","bytes":1648,"sha256":"8fa654db0c45d8fbda6b022cc11ad5597dc5543ab98bcee774034d2718cd8708","mode":"0644"},{"path":"docs/operations/style-staging.md","bytes":2142,"sha256":"7cc57486e57574ce25fd09e1cb03ffb4fd28954415834c757f32c0ca74df8d09","mode":"0644"},{"path":"docs/operations/style199.md","bytes":594,"sha256":"0170fa1361c2fa1035c7892b72ad7591b17419b9b6e7144b941133854e56e441","mode":"0644"},{"path":"docs/superpowers/plans/2026-09-04-newfidom-foundation.md","bytes":10886,"sha256":"71b104556e575518d0b1a31f5cfc3c9d6c0200a5133cd243bc43ff436e531390","mode":"0600"},{"path":"docs/superpowers/specs/2026-09-04-newfidom-closed-mvp-design.md","bytes":6282,"sha256":"97326a5363b5dfdec4b4cdd9f64cc5b5d326a7e810bec7996005100d001ff828","mode":"0600"},{"path":"scripts/verify-brand-assets.py","bytes":1165,"sha256":"efaf9bd3af3ec7d28a8ffd3f3ddf88d25f9e76bbd1c5e262e902523716ede6af","mode":"0755","semantics":{"state":"OK","kind":"script","facts":{"markers":["PASS"],"xf_commands":[]}}},{"path":"scripts/verify-portal-navigation.py","bytes":5256,"sha256":"25c0e846c93b1cfaa23072ad062da6ce32f7df823db642dac18d1150dae05cec","mode":"0755","semantics":{"state":"OK","kind":"script","facts":{"markers":["PASS"],"xf_commands":["XF::phrase","XF::setupApp","XF::start","xf:widget"]}}},{"path":"scripts/verify-portal-staging.py","bytes":5003,"sha256":"07cdf461aa7126a9519b209f431c0dbff093b3984f372fa855bb6bf53920fab9","mode":"0755","semantics":{"state":"OK","kind":"script","facts":{"markers":["PASS"],"xf_commands":["XF::setupApp","XF::start"]}}},{"path":"scripts/verify-style-staging.py","bytes":4857,"sha256":"2a3bc464da8d0dee93e2fd16a8edfd6a7f750a8d28653d5f5bf77691fb86afad","mode":"0755","semantics":{"state":"OK","kind":"script","facts":{"markers":["PASS"],"xf_commands":["XF::setupApp","XF::start"]}}},{"path":"scripts/verify-style199.py","bytes":694,"sha256":"4fc81cc1d99aac2302c0a0e5e73cbf82959fb2df099cfbeb14db6cb8a40bcca6","mode":"0755","semantics":{"state":"OK","kind":"script","facts":{"markers":["PASS"],"xf_commands":[]}}}],"audit66_expected_head":"a1efc08a15ba91971c2297d886b25ca2097e6935","head_matches_audit66":true} -NEWFI68_CLUSTER={"state":"OK","selected":{"210":{"vmid":210,"name":"newfi-prod","node":"pve01","status":"running","type":"qemu"},"211":{"vmid":211,"name":"newfi-staging","node":"pve03","status":"running","type":"qemu"}}} -NEWFI68_EXCEPTION=AttributeError +NEWFI69_STEP_GIT_BEGIN=true +NEWFI69_STEP_GIT_END={"state":"OK"} +NEWFI69_STEP_CLUSTER_BEGIN=true +NEWFI69_STEP_CLUSTER_END={"state":"OK"} +NEWFI69_GIT={"head_rc":0,"head":"a1efc08a15ba91971c2297d886b25ca2097e6935","branch_rc":0,"branch":"implementation/newfi-closed-mvp-20260906","status_rc":0,"clean":true,"remote_rc":0,"remote_head":"a1efc08a15ba91971c2297d886b25ca2097e6935","portal_files":[{"path":"Pub/Controller/Portal.php","bytes":363,"sha256":"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d"},{"path":"Pub/View/Portal.php","bytes":79,"sha256":"26e3b77c2c86d4f4a6fd51f0472e3f38e70e14c984ffd8d04dcec39071a2a69f"},{"path":"Service/PortalData.php","bytes":5213,"sha256":"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d"},{"path":"_data/navigation.xml","bytes":281,"sha256":"5d724ef5141438bdd0b9dba6a583d330bc6940b0ace5c21c7a8d5301e7d8d649"},{"path":"_data/phrases.xml","bytes":173,"sha256":"15282a06a956bda4e810f6b26b1703676dd766424029cd372ce0fd7832dbe09c"},{"path":"_data/routes.xml","bytes":144,"sha256":"9b80ef229bcebb49a5930369bb272ed85367deef66070f432948001096673629"},{"path":"_data/templates.xml","bytes":11021,"sha256":"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28"},{"path":"addon.json","bytes":378,"sha256":"288a61044c941107162d045be49ab2e7c844d1586b25378a7289b3c7275010ab"}]} +NEWFI69_CLUSTER={"rc":0,"stdout_bytes":4263,"stderr":"","json_type":"list","item_count":13,"selected":{"210":{"vmid":210,"name":"newfi-prod","node":"pve01","status":"running","type":"qemu"},"211":{"vmid":211,"name":"newfi-staging","node":"pve03","status":"running","type":"qemu"}}} +NEWFI69_STEP_PRODUCTION_QGA_BEGIN=true +NEWFI69_STEP_PRODUCTION_QGA_END={"state":"EXCEPTION","type":"AttributeError","message":"'bytes' object has no attribute 'encode'"} +NEWFI69_PRODUCTION_QGA={"state":"EXCEPTION","type":"AttributeError","message":"'bytes' object has no attribute 'encode'"} +NEWFI69_STEP_STAGING_QGA_BEGIN=true +NEWFI69_STEP_STAGING_QGA_END={"state":"EXCEPTION","type":"AttributeError","message":"'bytes' object has no attribute 'encode'"} +NEWFI69_STAGING_QGA={"state":"EXCEPTION","type":"AttributeError","message":"'bytes' object has no attribute 'encode'"} +NEWFI69_GAPS=["PRODUCTION_QGA_NOT_COMPLETE","STAGING_QGA_NOT_COMPLETE"] +NEWFI69_MUTATION_SCOPE=NONE_READ_ONLY +NEWFI69_DECISION=RCA_EVIDENCE_PARTIAL +NEWFI69_END OUTPUT_END CHAT_OUTPUT_END