1
0
Files
homelab-public-context/runtime/latest.json
T

39 lines
13 KiB
JSON

{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "SUPPORT-260920-PVEPRO-BRAND-BINDINGS-PREFLIGHT-READONLY-751R1",
"status": "OK",
"rc": 0,
"host": "pve01",
"mode": "read-only",
"component": "pvepro-brand-bindings-preflight-readonly",
"started_at_utc": "2026-09-20T04:56:28Z",
"finished_at_utc": "2026-09-20T04:56:34Z",
"reference_register_checked": true,
"reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
"error_register_checked": true,
"error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
"command_sha256": "ce17ff5b135c4881575974b749b41c050d9b0dd034ee4f3d25030dfbb7599854",
"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": "a59b5a73fa6822548037066f812e375f333f5149d17c161fb6fa66efff30e63c",
"sanitized_output_sha256": "a59b5a73fa6822548037066f812e375f333f5149d17c161fb6fa66efff30e63c",
"output_truncated_in_json": false,
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
"output": "COMMAND_ID=SUPPORT-260920-PVEPRO-BRAND-BINDINGS-PREFLIGHT-READONLY-751R1\nMODE=read-only\nCOMPONENT=pvepro-brand-bindings-preflight-readonly\nCURRENT_WORKSTATION=NEW_WINDOWS_COMPUTER\nDEFAULT_STYLE_ID=1\nPROPERTY_NAME_SCHEMA={\"Collation\":null,\"Field\":\"property_name\",\"Type\":\"varbinary(50)\"}\nPROPERTY_QUERY_COUNTS={\"lower\":1,\"original\":0}\nTARGET_PROPERTY_NAMES=[\"publicFaviconUrl\",\"publicIconUrl\",\"publicIconUrlLarge\",\"publicLogoHeight\",\"publicLogoUrl\",\"publicLogoUrl2x\",\"publicLogoWidth\",\"publicMetadataLogoUrl\"]\nPROPERTY_publicFaviconUrl_STYLE_0_1={\"group_name\":\"basic\",\"has_variations\":0,\"property_id\":219,\"property_name\":\"publicFaviconUrl\",\"property_type\":\"value\",\"property_value\":\"\\\"\\\"\",\"style_id\":0,\"value_type\":\"string\"}\nSTYLE_CACHE_1={\"assets\":[],\"assets_decoded\":true,\"assets_keys\":[],\"assets_sha256\":\"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945\",\"parent_id\":0,\"properties\":[],\"properties_decoded\":true,\"properties_keys\":[],\"properties_sha256\":\"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945\",\"style_id\":1,\"title\":\"Default style\"}\nTEMPLATE_BINDING_1={\"property\":\"publicIconUrl\",\"style_id\":0,\"template\":\"PAGE_CONTAINER\",\"template_id\":595}\nTEMPLATE_BINDING_2={\"property\":\"publicMetadataLogoUrl\",\"style_id\":0,\"template\":\"PAGE_CONTAINER\",\"template_id\":595}\nTEMPLATE_BINDING_3={\"property\":\"publicFaviconUrl\",\"style_id\":0,\"template\":\"PAGE_CONTAINER\",\"template_id\":595}\nTEMPLATE_BINDING_4={\"property\":\"publicLogoWidth\",\"style_id\":0,\"template\":\"PAGE_CONTAINER\",\"template_id\":595}\nTEMPLATE_BINDING_5={\"property\":\"publicLogoHeight\",\"style_id\":0,\"template\":\"PAGE_CONTAINER\",\"template_id\":595}\nNATIVE_FILE_1={\"path\":\"src/XF/Repository/StylePropertyRepository.php\",\"sha256\":\"7268de5c119d5e654d08913218823305478955236d320365cde0ee1996f87e9d\"}\nNATIVE_METHOD_1_1={\"declaration\":\"public function getUngroupedPropertyMapsInStyle(\\\\XF\\\\Entity\\\\Style $style, array $groups)\",\"line\":61,\"method\":\"getUngroupedPropertyMapsInStyle\"}\nNATIVE_METHOD_1_2={\"declaration\":\"public function getStyleColorData(?\\\\XF\\\\Entity\\\\Style $style = null)\",\"line\":90,\"method\":\"getStyleColorData\"}\nNATIVE_METHOD_1_3={\"declaration\":\"protected function getColorMapFromPropertyGroup(\\\\XF\\\\Entity\\\\Style $style, $group)\",\"line\":128,\"method\":\"getColorMapFromPropertyGroup\"}\nNATIVE_METHOD_1_4={\"declaration\":\"protected function getColorMapVariationFromPropertyGroup(\",\"line\":137,\"method\":\"getColorMapVariationFromPropertyGroup\"}\nNATIVE_METHOD_1_5={\"declaration\":\"public function getEffectivePropertiesInStyle(\\\\XF\\\\Entity\\\\Style $style)\",\"line\":168,\"method\":\"getEffectivePropertiesInStyle\"}\nNATIVE_METHOD_1_6={\"declaration\":\"public function getEffectivePropertyInStyle(\\\\XF\\\\Entity\\\\Style $style, $propertyName)\",\"line\":182,\"method\":\"getEffectivePropertyInStyle\"}\nNATIVE_METHOD_1_7={\"declaration\":\"public function getEffectivePropertyGroupsInStyle(\\\\XF\\\\Entity\\\\Style $style)\",\"line\":195,\"method\":\"getEffectivePropertyGroupsInStyle\"}\nNATIVE_METHOD_1_8={\"declaration\":\"public function getPropertiesDerivedFrom($propertyId)\",\"line\":243,\"method\":\"getPropertiesDerivedFrom\"}\nNATIVE_METHOD_1_9={\"declaration\":\"public function updatePropertyValues(\\\\XF\\\\Entity\\\\Style $style, array $values, array $revertProperties = [])\",\"line\":253,\"method\":\"updatePropertyValues\"}\nNATIVE_METHOD_1_10={\"declaration\":\"public function getDefaultPropertyValue($valueType, array $options)\",\"line\":358,\"method\":\"getDefaultPropertyValue\"}\nNATIVE_FILE_2={\"path\":\"src/XF/Repository/StyleRepository.php\",\"sha256\":\"a1d1dd5e2fa90c19ab285ac1ecdc8dc9aeaa1538c1bfb9bd62e10cbaad2c7eec\"}\nNATIVE_METHOD_2_1={\"declaration\":\"public function getMasterStyle()\",\"line\":31,\"method\":\"getMasterStyle\"}\nNATIVE_METHOD_2_2={\"declaration\":\"public function getSelectableStyles()\",\"line\":43,\"method\":\"getSelectableStyles\"}\nNATIVE_METHOD_2_3={\"declaration\":\"public function getSelectedStyleIdForUser(?User $user = null): int\",\"line\":57,\"method\":\"getSelectedStyleIdForUser\"}\nNATIVE_METHOD_2_4={\"declaration\":\"public function getUserSelectableStyles(?User $user = null)\",\"line\":83,\"method\":\"getUserSelectableStyles\"}\nNATIVE_METHOD_2_5={\"declaration\":\"public function getStyleTree($withMaster = null)\",\"line\":101,\"method\":\"getStyleTree\"}\nNATIVE_METHOD_2_6={\"declaration\":\"public function getStyleCacheData()\",\"line\":182,\"method\":\"getStyleCacheData\"}\nNATIVE_METHOD_2_7={\"declaration\":\"public function rebuildStyleCache()\",\"line\":196,\"method\":\"rebuildStyleCache\"}\nRENDERED_PAGE={\"bytes\":76216,\"code\":200,\"html_lang\":\"ru-RU\",\"ok\":true}\nRENDERED_REF_1={\"kind\":\"link\",\"rel\":\"manifest\",\"sizes\":null,\"type\":null,\"url\":\"/webmanifest.php\"}\nRENDERED_REF_2={\"alt\":\"PVEPro\",\"height\":\"36\",\"kind\":\"img\",\"url\":\"/styles/default/xenforo/xenforo-logo.svg\",\"width\":\"100\"}\nRENDERED_REF_3={\"alt\":\"PVEPro\",\"height\":\"36\",\"kind\":\"img\",\"url\":\"/styles/default/xenforo/xenforo-logo.svg\",\"width\":\"100\"}\nRENDERED_META_1={\"name\":\"theme-color\",\"value\":\"#0f578a\"}\nRENDERED_META_2={\"name\":\"theme-color\",\"value\":\"#0a1c29\"}\nRENDERED_META_3={\"name\":\"apple-mobile-web-app-title\",\"value\":\"PVEPro\"}\nNATIVE_WEBMANIFEST={\"background_color\":\"#ebebeb\",\"bytes\":504,\"code\":200,\"display\":\"standalone\",\"json_ok\":true,\"name\":\"PVEPro\",\"scope\":\"/\",\"start_url\":\"/index.php\",\"theme_color\":\"#0f578a\"}\nPRIOR_REFERENCE_STATUS={\"available\":true,\"head\":\"c2da370466b5ab97346233378e3a7df94fb45f2e\",\"inventory_truncated\":false,\"matching_files\":12}\nPRIOR_REFERENCE_FILE_1={\"bytes\":1303,\"path\":\"docs/operations/brand-assets.md\",\"sha256\":\"9fc0b97c73be6462143edd7cf30c23fe68cdd97ac9441fe11b81651d947ef6f1\"}\nPRIOR_REFERENCE_FILE_2={\"bytes\":1706,\"path\":\"docs/operations/pwa-staging.md\",\"sha256\":\"1d49edc904a8ef27589301240fbe360deed7cdf0b2ba3d244af28f1cde7da44e\"}\nPRIOR_REFERENCE_FILE_3={\"bytes\":2142,\"path\":\"docs/operations/style-staging.md\",\"sha256\":\"7cc57486e57574ce25fd09e1cb03ffb4fd28954415834c757f32c0ca74df8d09\"}\nPRIOR_REFERENCE_FILE_4={\"bytes\":2711,\"path\":\"assets/brand/brand198/newfidom-favicon-32.png\",\"sha256\":\"accef45839db50d101b2de8499e0e6cb68f0153414f65395f7d776fdc9cdce93\"}\nPRIOR_REFERENCE_FILE_5={\"bytes\":46585,\"path\":\"assets/brand/brand198/newfidom-pwa-192.png\",\"sha256\":\"db0307c1a668b40cd6771f618a2ad080fe136871addff491edaaed540e74386b\"}\nPRIOR_REFERENCE_FILE_6={\"bytes\":267485,\"path\":\"assets/brand/brand198/newfidom-pwa-512.png\",\"sha256\":\"39f204179d59082463616d07ea78bcbb594af774959f05a0d357b15974dd172a\"}\nPRIOR_REFERENCE_FILE_7={\"bytes\":1506,\"path\":\"config/newfi-brand-assets.json\",\"sha256\":\"3a08988a3c0b61abeb860833a139347d131568dacc06296393c24b6573c327b2\"}\nPRIOR_REFERENCE_FILE_8={\"bytes\":755,\"path\":\"config/newfi-pwa-staging.json\",\"sha256\":\"2eccc2657b0581aece7a90a8907a61a36052fd9efefc63dbfa8b39e61875d9af\"}\nPRIOR_REFERENCE_FILE_9={\"bytes\":256,\"path\":\"config/newfi-style-staging.json\",\"sha256\":\"ba17002ce7c9caf0ea1256e38780ac7ceb8c6dcd079ac1ac6905914b91579857\"}\nPRIOR_REFERENCE_FILE_10={\"bytes\":1165,\"path\":\"scripts/verify-brand-assets.py\",\"sha256\":\"efaf9bd3af3ec7d28a8ffd3f3ddf88d25f9e76bbd1c5e262e902523716ede6af\"}\nPRIOR_REFERENCE_FILE_11={\"bytes\":10992,\"path\":\"scripts/verify-pwa-staging.py\",\"sha256\":\"ad9fd930cd5b52ffd836fcf41f4859bbac910540423d1b8692102ec4c8054f0e\"}\nPRIOR_REFERENCE_FILE_12={\"bytes\":4857,\"path\":\"scripts/verify-style-staging.py\",\"sha256\":\"2a3bc464da8d0dee93e2fd16a8edfd6a7f750a8d28653d5f5bf77691fb86afad\"}\nPRIOR_RECIPE_1_PATH=\"docs/operations/brand-assets.md\"\nPRIOR_RECIPE_1_LINE_1={\"line\":5,\"text\":\"The user already installed the profile/community icon and the profile banner manually. This checkpoint deliberately does **not** write avatar/profile/banner records or files and does not alter a header logo. Header/theme composition remains for `STYLE199`.\"}\nPRIOR_RECIPE_1_LINE_2={\"line\":9,\"text\":\"- XenForo favicon style property `publicFaviconUrl` -> `styles/newfi/brand/brand198/newfidom-favicon-32.accef45839db.png`\"}\nPRIOR_RECIPE_1_LINE_3={\"line\":10,\"text\":\"- XenForo 192x192 PWA style property `publicIconUrl` -> `styles/newfi/brand/brand198/newfidom-pwa-192.db0307c1a668.png`\"}\nPRIOR_RECIPE_1_LINE_4={\"line\":11,\"text\":\"- XenForo 512x512 PWA style property `publicIconUrlLarge` -> `styles/newfi/brand/brand198/newfidom-pwa-512.39f204179d59.png`\"}\nPRIOR_RECIPE_1_LINE_5={\"line\":13,\"text\":\"All public filenames include the first 12 SHA256 characters for cache busting. Binary source assets and their exact hashes are declared in `config/newfi-brand-assets.json`.\"}\nPRIOR_RECIPE_1_LINE_6={\"line\":15,\"text\":\"Promotion contract: staging VM211 apply and VM211 loopback/Host HTTP verification, exact staging rollback proof, staging re-apply, Git commit/push, then production VM210 apply and public `https://newfi.ru` desktop/mobile/manifest/static-asset verification. XenForo application state changes use `StyleProperty::updatePropertyValues` via the repositor\"}\nPRIOR_RECIPE_2_PATH=\"docs/operations/pwa-staging.md\"\nPRIOR_RECIPE_2_LINE_1={\"line\":1,\"text\":\"# Newfi staging PWA/mobile/basic notifications checkpoint\"}\nPRIOR_RECIPE_2_LINE_2={\"line\":3,\"text\":\"This checkpoint accepts the **native XenForo 2.3.12 PWA layer already present on VM211**. It adds no custom PWA implementation and performs no XenForo runtime mutation.\"}\nPRIOR_RECIPE_2_LINE_3={\"line\":8,\"text\":\"- `webmanifest.php` exists and returns the native staging manifest.\"}\nPRIOR_RECIPE_2_LINE_4={\"line\":9,\"text\":\"- `PAGE_CONTAINER` contains the exact native manifest hook and viewport hook.\"}\nPRIOR_RECIPE_2_LINE_5={\"line\":19,\"text\":\"`NEWFI-260906-PWA166-RCA` proved that `pve01` could not resolve `newfi-staging.gram1.ru`, while the manifest was healthy with explicit VM211 resolution and from VM211 itself. The verifier therefore observes pve01 DNS but does not use it as a PWA correctness gate; HTTP smoke uses explicit VM211 resolution while preserving the staging Host header.\"}\nPRIOR_RECIPE_2_LINE_6={\"line\":23,\"text\":\"The colors returned by the native manifest are observed XenForo runtime values only and are not an approved permanent \\u00ab\\u0411\\u043e\\u043b\\u044c\\u0448\\u0430\\u044f \\u0432\\u043e\\u0434\\u0430\\u00bb identity.\"}\nPRIOR_RECIPE_3_PATH=\"docs/operations/style-staging.md\"\nPRIOR_RECIPE_3_LINE_1={\"line\":19,\"text\":\"There are no Newfi color, font, logo, spacing, border or layout overrides here. The child\"}\nPRIOR_RECIPE_3_LINE_2={\"line\":21,\"text\":\"once an actual palette/logo/type/layout specification exists.\"}\nPRIOR_RECIPE_3_LINE_3={\"line\":29,\"text\":\"`Style::_postSave()` performs XenForo's rebuild/cache handling.\"}\nPRIOR_RECIPE_3_LINE_4={\"line\":34,\"text\":\"Rollback is proven before acceptance with an explicit PHP-process boundary:\"}\nPROPERTY_BINDINGS_RESOLVED=true\nPRODUCTION_UNCHANGED=true\nSTAGING_UNCHANGED=true\nNO_MUTATION=true\nPRODUCT_CHECKPOINTS_REMAINING=20\nTASK_RESULT=\"PASS_PVEPRO_BRAND_BINDINGS_PREFLIGHT\"\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260920-PVEPRO-BRAND-BINDINGS-PREFLIGHT-READONLY-751R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n"
}