diff --git a/runtime/history/GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z.json b/runtime/history/GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z.json new file mode 100644 index 0000000..0469faf --- /dev/null +++ b/runtime/history/GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "gram1-site-avax-link-compact-discovery", + "started_at_utc": "2026-07-31T10:56:28Z", + "finished_at_utc": "2026-07-31T10:56:41Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "f18f5902084315ea5fa968b3ee453aa38d3d3e8a69cb517f8ae875dd2538c4b1", + "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": "533ca4b7aef4c7c7d32e8ce2c7818e87acc6a15d9d2a0c988ddd608792647bbf", + "sanitized_output_sha256": "4ed7f1df1cf5e4266c5b8639a314408722fb04f41b3c43b6f928a044c7cfc1ef", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"baseline\":{\"branch\":\"site-gram1-ru-baseline-20260731\",\"commit\":\"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49\",\"host_source_map\":[{\"baseline_host_dir\":\"hosts/local\",\"domain_match_count\":1000,\"hostname\":\"pve01\",\"roots\":[\"/root/homelab-configs-worktree\",\"/root/homelab-configs-worktree/docs\",\"/root/homelab-configs-worktree/docs/operations\",\"/srv/homelab-desired-state\",\"/srv/homelab-desired-state/health\",\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"/srv/homelab-desired-state/sbin\",\"/srv/homelab-ops-worktrees/cr-2026-0015\",\"/root/homelab-ops-cr-2026-0004\",\"/root/homelab-ops-cr-2026-0012\"],\"ssh_target\":null,\"target\":\"local\"},{\"baseline_host_dir\":\"hosts/pve02\",\"domain_match_count\":16,\"hostname\":\"pve02\",\"roots\":[\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"/srv/homelab-desired-state/routerguard-tuya\"],\"ssh_target\":\"pve02\",\"target\":\"pve02\"},{\"baseline_host_dir\":\"hosts/pve03\",\"domain_match_count\":6,\"hostname\":\"pve03\",\"roots\":[],\"ssh_target\":\"pve03\",\"target\":\"pve03\"}],\"snapshot_path\":\"sites/gram1.ru/baseline/20260731T071400Z\"},\"baseline_evidence\":{\"audit_count\":3,\"avax_present\":false,\"link_present\":true,\"providers\":{},\"ranked_change_files\":[{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"audit_label\":\"baseline:local/source\",\"bytes\":528351,\"kinds\":[\"api\",\"coin_registry\"],\"path\":\"01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"providers\":[],\"score\":31,\"sha256\":\"977b61a620ea32d2ccfa4b5ebad611713c0b4aa7991f9af0332b2febf4007fd1\",\"snippets\":[{\"line\":9,\"text\":\"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0.\"},{\"line\":18,\"text\":\"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH\"},{\"line\":227,\"text\":\"/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.textContent=e,t&&i.setAttribu\"},{\"line\":253,\"text\":\"/app/frontend/assets/index-tlrv6MVo.js:908:`,position:{start:{line:l+u,column:1},end:{line:l+u,column:1}}})}return l+=i,t}if(Object.prototype.hasOwnProperty.call(n,`children`)){var f=l;return n.children=e(n.children),t.push(n),n.position={s\"}],\"symbols\":{\"ADA\":11,\"DOT\":4,\"LINK\":24}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\",\"audit_label\":\"baseline:local/source\",\"bytes\":504281,\"kinds\":[\"coin_registry\"],\"path\":\"01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\",\"providers\":[],\"score\":24,\"sha256\":\"1ac8fe15ebd06db8ef3a9c6127fe5efe7ecbb76d395abbe551c249b249492d21\",\"snippets\":[{\"line\":239,\"text\":\"..md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.text\"},{\"line\":378,\"text\":\"126: labels: '{__address__=\\\"[PRIVATE_IP]:8000\\\", __meta_docker_container_id=\\\"\\\", __meta_docker_container_label_com_docker_compose_config_hash=\\\"\\\", __meta_docker_container_label_com_docker_compose_container_number=\\\"1\\\",\"},{\"line\":458,\"text\":\"/app/node_modules/knex/lib/knex-builder/internal/config-resolver.js:33: `knex: Unknown configuration option 'client' value ${clientName}. Note that it is case-sensitive, check documentation for supported values.`\"},{\"line\":469,\"text\":\"/app/node_modules/jsonwebtoken/README.md:37:encoded private key for RSA and ECDSA. In case of a private key with passphrase an object `{ key, passphrase }` can be used (based on [crypto documentation](https://nodejs.org/api/crypto.html#cryp\"}],\"symbols\":{\"ADA\":11,\"LINK\":14}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1724,\"kinds\":[\"coin_registry\"],\"path\":\"04_homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"providers\":[],\"score\":13,\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1640,\"kinds\":[\"coin_registry\"],\"path\":\"04_homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"providers\":[],\"score\":13,\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1497,\"kinds\":[\"coin_registry\"],\"path\":\"04_homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"providers\":[],\"score\":13,\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1724,\"kinds\":[\"coin_registry\"],\"path\":\"05_health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"providers\":[],\"score\":13,\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-production-apply.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1640,\"kinds\":[\"coin_registry\"],\"path\":\"05_health/crypto-portfolio-remove-grt-production-apply.txt\",\"providers\":[],\"score\":13,\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1497,\"kinds\":[\"coin_registry\"],\"path\":\"05_health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"providers\":[],\"score\":13,\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/app-level-backup-decisions.md\",\"audit_label\":\"baseline:local/source\",\"bytes\":5089,\"kinds\":[\"coin_registry\"],\"path\":\"01_homelab-configs-worktree/docs/app-level-backup-decisions.md\",\"providers\":[],\"score\":12,\"sha256\":\"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd\",\"snippets\":[{\"line\":31,\"text\":\"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |\"},{\"line\":75,\"text\":\"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets.\"}],\"symbols\":{}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/container-update-wave-20260619.md\",\"audit_label\":\"baseline:local/source\",\"bytes\":6626,\"kinds\":[\"coin_registry\"],\"path\":\"01_homelab-configs-worktree/reports/container-update-wave-20260619.md\",\"providers\":[],\"score\":12,\"sha256\":\"c50e024cb0d2e17fece62d048d6739b4b4e425095ce4b852d17a39bb0713b74c\",\"snippets\":[{\"line\":56,\"text\":\"| Wave 3 | immich_server | OK | NO | pg_dump, health/HTTP/assets/users/Docker/Kuma/daily OK |\"},{\"line\":62,\"text\":\"| Wave 3 | immich_postgres | OK | NO | pg_dump, pg_isready, assets/users, Immich HTTP OK |\"}],\"symbols\":{}}],\"roots_with_files\":3,\"symbols\":{\"ADA\":22,\"DOT\":10,\"LINK\":73,\"POL\":18,\"TRX\":4},\"total_files_scanned\":3725},\"changes_made\":false,\"command_id\":\"GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z\",\"decision\":\"READY_TO_BUILD_TRANSACTIONAL_AVAX_LINK_CHANGE\",\"gitea_changed\":false,\"live_audit_summaries\":[{\"avax_present\":false,\"files_scanned\":1181,\"git\":{\"branch\":\"main\",\"dirty\":false,\"head\":\"cfab5168f800d63eba1bc0f669427ff8fcd48006\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-configs.git\",\"top_level\":\"/root/homelab-configs-worktree\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-configs-worktree\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-configs-worktree\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"ADA\":22,\"DOT\":4,\"LINK\":55,\"TRX\":4},\"top_matches\":[{\"absolute_path\":\"/root/homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":528364,\"kinds\":[\"api\",\"coin_registry\"],\"path\":\"reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"providers\":[],\"score\":31,\"sha256\":\"74cafb6f6a21b39aa9ab56df8b5f9e1f4c420b5ca36d178e8631cdbe98943b4a\",\"snippets\":[{\"line\":9,\"text\":\"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0.\"},{\"line\":18,\"text\":\"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH\"}],\"symbols\":{\"ADA\":11,\"DOT\":4,\"LINK\":24}},{\"absolute_path\":\"/root/homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":504333,\"kinds\":[\"coin_registry\"],\"path\":\"reports/mkdocs-refresh-discovery-20260621.md\",\"providers\":[],\"score\":24,\"sha256\":\"d0cfc6d4e78171cadab7432e3cd5269ff03cc3a5632519cc03ec5acc5499d333\",\"snippets\":[{\"line\":239,\"text\":\"./reports/npmplus-api-certificate-endpoint-preflight-20260621.md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);\"},{\"line\":378,\"text\":\"126: labels: '{__address__=\\\"[PRIVATE_IP]:8000\\\", __meta_docker_container_id=\\\"\\\", __meta_docker_container_label_com_docker_compose_config_hash=\\\"\\\", __meta_docker_container_label_com_docker_compose_container_number=\\\"1\\\",\"}],\"symbols\":{\"ADA\":11,\"LINK\":14}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/app-level-backup-decisions.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":5089,\"kinds\":[\"coin_registry\"],\"path\":\"docs/app-level-backup-decisions.md\",\"providers\":[],\"score\":12,\"sha256\":\"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd\",\"snippets\":[{\"line\":31,\"text\":\"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |\"},{\"line\":75,\"text\":\"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets.\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/reports/container-update-wave-20260619.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":6626,\"kinds\":[\"coin_registry\"],\"path\":\"reports/container-update-wave-20260619.md\",\"providers\":[],\"score\":12,\"sha256\":\"c50e024cb0d2e17fece62d048d6739b4b4e425095ce4b852d17a39bb0713b74c\",\"snippets\":[{\"line\":56,\"text\":\"| Wave 3 | immich_server | OK | NO | pg_dump, health/HTTP/assets/users/Docker/Kuma/daily OK |\"},{\"line\":62,\"text\":\"| Wave 3 | immich_postgres | OK | NO | pg_dump, pg_isready, assets/users, Immich HTTP OK |\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/runbooks/app-level-backup-decisions.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":5089,\"kinds\":[\"coin_registry\"],\"path\":\"runbooks/app-level-backup-decisions.md\",\"providers\":[],\"score\":12,\"sha256\":\"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd\",\"snippets\":[{\"line\":31,\"text\":\"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |\"},{\"line\":75,\"text\":\"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets.\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/reports/base-os-package-cve-analysis-20260619.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":44330,\"kinds\":[],\"path\":\"reports/base-os-package-cve-analysis-20260619.md\",\"providers\":[],\"score\":10,\"sha256\":\"9c554193dab1798af18df9a3de2e263ead881257040cc553b3551250174e7573\",\"snippets\":[{\"line\":47,\"text\":\"| `libcrypto3` | 26 | 2 | 24 |\"},{\"line\":127,\"text\":\"| `libcrypto3` | `3.5.7-r0` | 13 |\"}],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":723,\"git\":{\"branch\":\"main\",\"dirty\":false,\"head\":\"cfab5168f800d63eba1bc0f669427ff8fcd48006\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-configs.git\",\"top_level\":\"/root/homelab-configs-worktree\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-configs-worktree/docs\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-configs-worktree/docs\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"LINK\":9},\"top_matches\":[{\"absolute_path\":\"/root/homelab-configs-worktree/docs/app-level-backup-decisions.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":5089,\"kinds\":[\"coin_registry\"],\"path\":\"app-level-backup-decisions.md\",\"providers\":[],\"score\":12,\"sha256\":\"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd\",\"snippets\":[{\"line\":31,\"text\":\"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |\"},{\"line\":75,\"text\":\"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets.\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":3056,\"kinds\":[\"api\",\"frontend\"],\"path\":\"operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"01e028863ae1393613019df014131064b7feb1a8a98fb39f73d70967801a0062\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.json\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":9460,\"kinds\":[\"api\",\"frontend\"],\"path\":\"operations/p1-exposure-watch-route-review-package-20260625T213727Z.json\",\"providers\":[],\"score\":8,\"sha256\":\"f8456d53676fee3304850b00408c0b814e174142dfa365459141e1969c355929\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":6022,\"kinds\":[\"api\",\"frontend\"],\"path\":\"operations/p1-exposure-watch-route-review-package-20260625T213727Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"366cd6d7cc670cf4b5ff41e0c29a6a36382512b5d4dcd9f8171df20481f0861c\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-router-sanitized-review-plan-20260625T201130Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":2419,\"kinds\":[\"api\",\"frontend\"],\"path\":\"operations/p1-router-sanitized-review-plan-20260625T201130Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"a9d0f4afaf9cbdc3d42bd261d6e7937c9bde95c9699b5212d0fbd7ca83ffbecd\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.json\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":9445,\"kinds\":[\"database\",\"frontend\"],\"path\":\"operations/p1-homepage-service-catalog-model-20260625T155520Z.json\",\"providers\":[],\"score\":7,\"sha256\":\"d711ec23a8b77eac5d29c4a90bda7244a389cd9776f2c616d139a45555a327f7\",\"snippets\":[],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":660,\"git\":{\"branch\":\"main\",\"dirty\":false,\"head\":\"cfab5168f800d63eba1bc0f669427ff8fcd48006\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-configs.git\",\"top_level\":\"/root/homelab-configs-worktree\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-configs-worktree/docs/operations\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"LINK\":7},\"top_matches\":[{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":3056,\"kinds\":[\"api\",\"frontend\"],\"path\":\"p1-exposure-watch-route-review-final-close-20260625T213956Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"01e028863ae1393613019df014131064b7feb1a8a98fb39f73d70967801a0062\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.json\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":9460,\"kinds\":[\"api\",\"frontend\"],\"path\":\"p1-exposure-watch-route-review-package-20260625T213727Z.json\",\"providers\":[],\"score\":8,\"sha256\":\"f8456d53676fee3304850b00408c0b814e174142dfa365459141e1969c355929\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":6022,\"kinds\":[\"api\",\"frontend\"],\"path\":\"p1-exposure-watch-route-review-package-20260625T213727Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"366cd6d7cc670cf4b5ff41e0c29a6a36382512b5d4dcd9f8171df20481f0861c\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-router-sanitized-review-plan-20260625T201130Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":2419,\"kinds\":[\"api\",\"frontend\"],\"path\":\"p1-router-sanitized-review-plan-20260625T201130Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"a9d0f4afaf9cbdc3d42bd261d6e7937c9bde95c9699b5212d0fbd7ca83ffbecd\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.json\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":9445,\"kinds\":[\"database\",\"frontend\"],\"path\":\"p1-homepage-service-catalog-model-20260625T155520Z.json\",\"providers\":[],\"score\":7,\"sha256\":\"d711ec23a8b77eac5d29c4a90bda7244a389cd9776f2c616d139a45555a327f7\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":2753,\"kinds\":[\"database\",\"frontend\"],\"path\":\"p1-homepage-service-catalog-model-20260625T155520Z.md\",\"providers\":[],\"score\":7,\"sha256\":\"e39d1091562fe09ab14630905571e054d6477379ad46f4b48cae888bc89478ae\",\"snippets\":[],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":682,\"git\":{\"branch\":\"master\",\"dirty\":false,\"head\":\"173b61c40ec2584ac14da018311b15729b86c611\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-desired-state.git\",\"top_level\":\"/srv/homelab-desired-state\"},\"host\":\"pve01\",\"label\":\"live:/srv/homelab-desired-state\",\"link_present\":true,\"providers\":{},\"root\":\"/srv/homelab-desired-state\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"DOT\":3,\"LINK\":1,\"POL\":9},\"top_matches\":[{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":1724,\"kinds\":[\"coin_registry\"],\"path\":\"health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"providers\":[],\"score\":13,\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":1640,\"kinds\":[\"coin_registry\"],\"path\":\"health/crypto-portfolio-remove-grt-production-apply.txt\",\"providers\":[],\"score\":13,\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":1497,\"kinds\":[\"coin_registry\"],\"path\":\"health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"providers\":[],\"score\":13,\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/app-states/latest-crypto-portfolio.json\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":1138,\"kinds\":[\"test\"],\"path\":\"app-states/latest-crypto-portfolio.json\",\"providers\":[],\"score\":12,\"sha256\":\"a1265d4a6312fd1b709f33799ccfa02f89fd2a476ee32dd1bd16f2a165ed2805\",\"snippets\":[{\"line\":2,\"text\":\"\\\"app\\\": \\\"crypto-portfolio\\\",\"},{\"line\":6,\"text\":\"\\\"core-apps:/opt/stacks/crypto-portfolio\\\"\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-chart-health.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":139,\"kinds\":[\"coin_registry\"],\"path\":\"health/crypto-portfolio-chart-health.txt\",\"providers\":[],\"score\":10,\"sha256\":\"69f05461ce0e44cf2595a2357d367e5a2d905f930e6fcf53f9979d03ed847018\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-31T04:50:57Z TYPE=crypto-portfolio-chart-health BAD=0 LIBRARY_OK=true DISK_CACHE_PRESENT=true SYMBOLS=2 STALE_COUNT=2\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-desired-state/health/xenforo-branding-rollout.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":202,\"kinds\":[\"coin_registry\"],\"path\":\"health/xenforo-branding-rollout.txt\",\"providers\":[],\"score\":10,\"sha256\":\"f8ef93393c5d51c604e2adb907f331d1b070ce0cad08811d79bbe155de7bb7fe\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-16T09:14:29Z TYPE=xenforo-branding TASK=xenforo-branding-rollout-v3 FORUM_COUNT=5 BRAND_FILES=35 DATABASE_CHANGED=NO TEMPLATE_CHANGED=NO STYLE_CHANGED=NO PUBLIC_ASSETS_VERIFIED=YES\"}],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":488,\"git\":{\"branch\":\"master\",\"dirty\":false,\"head\":\"173b61c40ec2584ac14da018311b15729b86c611\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-desired-state.git\",\"top_level\":\"/srv/homelab-desired-state\"},\"host\":\"pve01\",\"label\":\"live:/srv/homelab-desired-state/health\",\"link_present\":true,\"providers\":{},\"root\":\"/srv/homelab-desired-state/health\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"DOT\":3,\"LINK\":1,\"POL\":9},\"top_matches\":[{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":1724,\"kinds\":[\"coin_registry\"],\"path\":\"crypto-portfolio-remove-grt-browser-smoke.txt\",\"providers\":[],\"score\":13,\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":1640,\"kinds\":[\"coin_registry\"],\"path\":\"crypto-portfolio-remove-grt-production-apply.txt\",\"providers\":[],\"score\":13,\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":1497,\"kinds\":[\"coin_registry\"],\"path\":\"crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"providers\":[],\"score\":13,\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-chart-health.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":139,\"kinds\":[\"coin_registry\"],\"path\":\"crypto-portfolio-chart-health.txt\",\"providers\":[],\"score\":10,\"sha256\":\"69f05461ce0e44cf2595a2357d367e5a2d905f930e6fcf53f9979d03ed847018\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-31T04:50:57Z TYPE=crypto-portfolio-chart-health BAD=0 LIBRARY_OK=true DISK_CACHE_PRESENT=true SYMBOLS=2 STALE_COUNT=2\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-desired-state/health/xenforo-branding-rollout.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":202,\"kinds\":[\"coin_registry\"],\"path\":\"xenforo-branding-rollout.txt\",\"providers\":[],\"score\":10,\"sha256\":\"f8ef93393c5d51c604e2adb907f331d1b070ce0cad08811d79bbe155de7bb7fe\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-16T09:14:29Z TYPE=xenforo-branding TASK=xenforo-branding-rollout-v3 FORUM_COUNT=5 BRAND_FILES=35 DATABASE_CHANGED=NO TEMPLATE_CHANGED=NO STYLE_CHANGED=NO PUBLIC_ASSETS_VERIFIED=YES\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-final-seal.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":1407,\"kinds\":[\"frontend\"],\"path\":\"crypto-portfolio-ui-center-alert-currency-final-seal.txt\",\"providers\":[],\"score\":9,\"sha256\":\"27b8fcc222008229d43140d44d290ed811365508bb9a193ae65fdf3958e4d8c8\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T08:37:54Z TYPE=crypto-portfolio-ui-center-alert-currency-final-seal BAD=0 DANGLING_IMAGE_REFERENCE_GATE=OK DESIRED_STATE_SYNC_ARTIFACT_GATE=OK APP=crypto-portfolio PRODUCTION_CHANGED=NO_FINAL_SEAL_ONLY APP_SHA256= None:\"}],\"symbols\":{\"LINK\":6}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":38408,\"kinds\":[\"coin_registry\"],\"path\":\"errors/regression-cases.json\",\"providers\":[],\"score\":21,\"sha256\":\"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e\",\"snippets\":[{\"line\":37,\"text\":\"\\\"required_control\\\": \\\"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\\\",\"},{\"line\":54,\"text\":\"\\\"incident\\\": \\\"install -m attempted chmod semantics unsupported by pmxcfs.\\\",\"}],\"symbols\":{\"LINK\":11}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":7694,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"providers\":[],\"score\":21,\"sha256\":\"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429\",\"snippets\":[{\"line\":138,\"text\":\"\\\"REG-062-RX-RING-AUTO-ROLLBACK-ON-LINK-OR-QUORUM-FAILURE\\\",\"},{\"line\":139,\"text\":\"\\\"REG-063-RX-RING-CANARY-SURVIVES-SSH-LINK-LOSS\\\",\"}],\"symbols\":{\"LINK\":4}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"}],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":70,\"git\":{\"branch\":\"cr-2026-0004-backup-tail-closure\",\"dirty\":true,\"head\":\"bf80410f592f8eb9eaa80695f609870fe3fb85fd\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-ops.git\",\"top_level\":\"/root/homelab-ops-cr-2026-0004\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-ops-cr-2026-0004\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-ops-cr-2026-0004\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"DOT\":6,\"LINK\":30},\"top_matches\":[{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/apply.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":6806,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/phases/apply.sh\",\"providers\":[],\"score\":18,\"sha256\":\"1c713b76c5bb4282d0dfe2c5d18143bfff8a2817089d1b960c4eac333a922fd0\",\"snippets\":[{\"line\":11,\"text\":\"pve02(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\\\"; }\"},{\"line\":12,\"text\":\"pve03(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\\\"; }\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-full-handoff-recovery-v1/phases/apply.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":2355,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-full-handoff-recovery-v1/phases/apply.sh\",\"providers\":[],\"score\":18,\"sha256\":\"83d9fe06de17f1c3e91525905db74b426a7ab81452e84f0a30f5c8b8f70cebe7\",\"snippets\":[{\"line\":11,\"text\":\"cat \\\"$PKG/assets/HOMELAB_FULL_HANDOFF_CURRENT_2026-07-10.md\\\" > /etc/pve/HOMELAB_FULL_HANDOFF_CURRENT.md\"},{\"line\":12,\"text\":\"cmp -s \\\"$PKG/assets/HOMELAB_FULL_HANDOFF_CURRENT_2026-07-10.md\\\" /etc/pve/HOMELAB_FULL_HANDOFF_CURRENT.md\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/task.json\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":8432,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/task.json\",\"providers\":[],\"score\":16,\"sha256\":\"7747f19466e5bcd8fafebffa10c83a16ad43f172f66aad0135d91f073d064b32\",\"snippets\":[{\"line\":185,\"text\":\"\\\"assets/homelab-vm160-remote-backup\\\",\"},{\"line\":186,\"text\":\"\\\"assets/pve02-worker.sh\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/dry-run.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":3348,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/phases/dry-run.sh\",\"providers\":[],\"score\":12,\"sha256\":\"ac4c4149c7539e6ff72599c660dbea9ecb694e22f6c202b35b27ab1c25472f06\",\"snippets\":[{\"line\":11,\"text\":\"pve02(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\\\"; }\"},{\"line\":12,\"text\":\"pve03(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\\\"; }\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/preflight.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":4245,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/phases/preflight.sh\",\"providers\":[],\"score\":12,\"sha256\":\"c92d6fe583502b188482c2a07264aff7d4bc946ff5f66b60846f3679e02c0ea3\",\"snippets\":[{\"line\":11,\"text\":\"pve02(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\\\"; }\"},{\"line\":12,\"text\":\"pve03(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\\\"; }\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/prepare.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":2617,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/phases/prepare.sh\",\"providers\":[],\"score\":12,\"sha256\":\"37871a80d9cbd5554d31557d409af19c2b634fe19b8a967e47de481a189922ff\",\"snippets\":[{\"line\":11,\"text\":\"pve02(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\\\"; }\"},{\"line\":12,\"text\":\"pve03(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\\\"; }\"}],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":87,\"git\":{\"branch\":\"cr-2026-0012-skladchik-cookie-refresh-runbook\",\"dirty\":false,\"head\":\"f5b22d867ea467987008408e3fb1fb0e17fa7b2e\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-ops.git\",\"top_level\":\"/root/homelab-ops-cr-2026-0012\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-ops-cr-2026-0012\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-ops-cr-2026-0012\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"LINK\":3},\"top_matches\":[{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":3549,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"providers\":[],\"score\":20,\"sha256\":\"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9\",\"snippets\":[{\"line\":30,\"text\":\"edge_prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":32,\"text\":\"edge_dry = (TASK / \\\"assets/edge-dry-run.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":8942,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"providers\":[],\"score\":20,\"sha256\":\"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513\",\"snippets\":[{\"line\":16,\"text\":\"class SkladchikConcurrencyGuardTests(unittest.TestCase):\"},{\"line\":21,\"text\":\"source = (TASK / \\\"assets/edge-preflight.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/errors/regression-cases.json\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":26500,\"kinds\":[\"coin_registry\"],\"path\":\"errors/regression-cases.json\",\"providers\":[],\"score\":18,\"sha256\":\"5dab56a2e73e4a3582d4792b91a0c803d485e68b40791bc456315748b15490a0\",\"snippets\":[{\"line\":37,\"text\":\"\\\"required_control\\\": \\\"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\\\",\"},{\"line\":54,\"text\":\"\\\"incident\\\": \\\"install -m attempted chmod semantics unsupported by pmxcfs.\\\",\"}],\"symbols\":{}}]}],\"live_evidence\":{\"audit_count\":10,\"avax_present\":false,\"link_present\":true,\"providers\":{},\"ranked_change_files\":[{\"absolute_path\":\"/root/homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":528364,\"kinds\":[\"api\",\"coin_registry\"],\"path\":\"reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"providers\":[],\"score\":31,\"sha256\":\"74cafb6f6a21b39aa9ab56df8b5f9e1f4c420b5ca36d178e8631cdbe98943b4a\",\"snippets\":[{\"line\":9,\"text\":\"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0.\"},{\"line\":18,\"text\":\"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH\"},{\"line\":227,\"text\":\"/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.textContent=e,t&&i.setAttribu\"},{\"line\":253,\"text\":\"/app/frontend/assets/index-tlrv6MVo.js:908:`,position:{start:{line:l+u,column:1},end:{line:l+u,column:1}}})}return l+=i,t}if(Object.prototype.hasOwnProperty.call(n,`children`)){var f=l;return n.children=e(n.children),t.push(n),n.position={s\"}],\"symbols\":{\"ADA\":11,\"DOT\":4,\"LINK\":24}},{\"absolute_path\":\"/root/homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":504333,\"kinds\":[\"coin_registry\"],\"path\":\"reports/mkdocs-refresh-discovery-20260621.md\",\"providers\":[],\"score\":24,\"sha256\":\"d0cfc6d4e78171cadab7432e3cd5269ff03cc3a5632519cc03ec5acc5499d333\",\"snippets\":[{\"line\":239,\"text\":\"./reports/npmplus-api-certificate-endpoint-preflight-20260621.md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);\"},{\"line\":378,\"text\":\"126: labels: '{__address__=\\\"[PRIVATE_IP]:8000\\\", __meta_docker_container_id=\\\"\\\", __meta_docker_container_label_com_docker_compose_config_hash=\\\"\\\", __meta_docker_container_label_com_docker_compose_container_number=\\\"1\\\",\"},{\"line\":458,\"text\":\"/app/node_modules/knex/lib/knex-builder/internal/config-resolver.js:33: `knex: Unknown configuration option 'client' value ${clientName}. Note that it is case-sensitive, check documentation for supported values.`\"},{\"line\":469,\"text\":\"/app/node_modules/jsonwebtoken/README.md:37:encoded private key for RSA and ECDSA. In case of a private key with passphrase an object `{ key, passphrase }` can be used (based on [crypto documentation](https://nodejs.org/api/crypto.html#cryp\"}],\"symbols\":{\"ADA\":11,\"LINK\":14}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":13506,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py\",\"providers\":[],\"score\":23,\"sha256\":\"91b7a0a01b0eaa1db6a726eb8b009726e75bad5e11959be9494d82c5b5bf00df\",\"snippets\":[{\"line\":10,\"text\":\"REMOTE = TASK / \\\"assets\\\" / \\\"pve03-r8152-rx-ring-canary.sh\\\"\"},{\"line\":23,\"text\":\"def test_01_shell_syntax_and_declared_remote_asset(self) -> None:\"},{\"line\":26,\"text\":\"self.assertEqual(self.contract[\\\"remote_scripts\\\"], [\\\"assets/pve03-r8152-rx-ring-canary.sh\\\"])\"},{\"line\":36,\"text\":\"self.assertTrue(source[\\\"tx_not_available_supported\\\"])\"}],\"symbols\":{\"LINK\":6}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":38408,\"kinds\":[\"coin_registry\"],\"path\":\"errors/regression-cases.json\",\"providers\":[],\"score\":21,\"sha256\":\"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e\",\"snippets\":[{\"line\":37,\"text\":\"\\\"required_control\\\": \\\"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\\\",\"},{\"line\":54,\"text\":\"\\\"incident\\\": \\\"install -m attempted chmod semantics unsupported by pmxcfs.\\\",\"},{\"line\":78,\"text\":\"\\\"incident\\\": \\\"A task named for /dev/null retained unrelated backup-tail reads, writes, mutations and assets.\\\",\"},{\"line\":163,\"text\":\"\\\"required_control\\\": \\\"A remotely executed mutation script must be included in the task package, syntax checked, hash pinned, deployed from that asset and covered by rollback.\\\",\"}],\"symbols\":{\"LINK\":11}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":7694,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"providers\":[],\"score\":21,\"sha256\":\"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429\",\"snippets\":[{\"line\":138,\"text\":\"\\\"REG-062-RX-RING-AUTO-ROLLBACK-ON-LINK-OR-QUORUM-FAILURE\\\",\"},{\"line\":139,\"text\":\"\\\"REG-063-RX-RING-CANARY-SURVIVES-SSH-LINK-LOSS\\\",\"},{\"line\":165,\"text\":\"\\\"tx_ring_evidence_policy\\\": \\\"opaque-string-preserve-exactly; n/a is supported and no TX mutation is allowed\\\",\"},{\"line\":167,\"text\":\"\\\"tx_not_available_supported\\\": true\"}],\"symbols\":{\"LINK\":4}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":51,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":59,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"},{\"line\":48,\"text\":\"TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\",\"},{\"line\":49,\"text\":\"TASK / \\\"assets/pve01/skladchik-reports-monitor-cookie-update\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"},{\"line\":46,\"text\":\"prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":47,\"text\":\"rollback = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":3549,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"providers\":[],\"score\":20,\"sha256\":\"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9\",\"snippets\":[{\"line\":30,\"text\":\"edge_prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":32,\"text\":\"edge_dry = (TASK / \\\"assets/edge-dry-run.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":42,\"text\":\"edge = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":64,\"text\":\"TASK / \\\"assets/edge-prepare.sh\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":8942,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"providers\":[],\"score\":20,\"sha256\":\"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513\",\"snippets\":[{\"line\":16,\"text\":\"class SkladchikConcurrencyGuardTests(unittest.TestCase):\"},{\"line\":21,\"text\":\"source = (TASK / \\\"assets/edge-preflight.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":29,\"text\":\"source = (TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":42,\"text\":\"source = (TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":51,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":59,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"},{\"line\":48,\"text\":\"TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\",\"},{\"line\":49,\"text\":\"TASK / \\\"assets/pve01/skladchik-reports-monitor-cookie-update\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"},{\"line\":46,\"text\":\"prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":47,\"text\":\"rollback = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":3549,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"providers\":[],\"score\":20,\"sha256\":\"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9\",\"snippets\":[{\"line\":30,\"text\":\"edge_prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":32,\"text\":\"edge_dry = (TASK / \\\"assets/edge-dry-run.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":42,\"text\":\"edge = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":64,\"text\":\"TASK / \\\"assets/edge-prepare.sh\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":8942,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"providers\":[],\"score\":20,\"sha256\":\"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513\",\"snippets\":[{\"line\":16,\"text\":\"class SkladchikConcurrencyGuardTests(unittest.TestCase):\"},{\"line\":21,\"text\":\"source = (TASK / \\\"assets/edge-preflight.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":29,\"text\":\"source = (TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":42,\"text\":\"source = (TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":51,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":59,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"},{\"line\":48,\"text\":\"TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\",\"},{\"line\":49,\"text\":\"TASK / \\\"assets/pve01/skladchik-reports-monitor-cookie-update\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"},{\"line\":46,\"text\":\"prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":47,\"text\":\"rollback = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}}],\"roots_with_files\":10,\"symbols\":{\"ADA\":22,\"DOT\":16,\"LINK\":154,\"POL\":18,\"TRX\":4},\"total_files_scanned\":4141},\"live_probe_results\":[{\"duration_seconds\":null,\"hostname\":\"pve01\",\"rc\":0,\"ssh_target\":null,\"stderr\":null,\"target\":\"local\"},{\"duration_seconds\":0.407,\"hostname\":null,\"rc\":1,\"ssh_target\":\"pve02\",\"stderr\":\"Traceback (most recent call last): File \\\"\\\", line 916, in File \\\"\\\", line 729, in main File \\\"\\\", line 354, in remote_worker File \\\"\\\", line 227, in scan_tree File \\\"\\\", line 128, in run File \\\"/usr/lib/python3.13/subprocess.py\\\", line 554, in run with Popen(*popenargs, **kwargs) as process: ~~~~~^^^^^^^^^^^^^^^^^^^^^^ File \\\"/usr/lib/python3.13/subprocess.py\\\", line 1039, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pass_fds, cwd, env, ^^^^^^^^^^^^^^^^^^^ ...<5 lines>... gid, gids, uid, umask, ^^^^^^^^^^^^^^^^^^^^^^ start_new_session, process_group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File \\\"/usr/lib/python3.13/subprocess.py\\\", line 1972, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'git'\",\"target\":null}],\"mutation_outcome\":\"NO_MUTATION\",\"output_compaction\":{\"level\":0,\"limit_bytes\":65536,\"original_json_bytes\":64527},\"production_site_changed\":false,\"rc\":0,\"required_assets\":[\"AVAX\",\"LINK\"],\"rollback_restored\":null,\"rollback_started\":false,\"schema\":2,\"status\":\"OK\"}\n" +} diff --git a/runtime/history/GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z.txt b/runtime/history/GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z.txt new file mode 100644 index 0000000..62b8328 --- /dev/null +++ b/runtime/history/GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z.txt @@ -0,0 +1,34 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z +STATUS=OK +RC=0 +HOST=pve01 +MODE=verify +COMPONENT=gram1-site-avax-link-compact-discovery +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=f18f5902084315ea5fa968b3ee453aa38d3d3e8a69cb517f8ae875dd2538c4b1 +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=533ca4b7aef4c7c7d32e8ce2c7818e87acc6a15d9d2a0c988ddd608792647bbf +SANITIZED_OUTPUT_SHA256=4ed7f1df1cf5e4266c5b8639a314408722fb04f41b3c43b6f928a044c7cfc1ef +OUTPUT_BEGIN +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"baseline":{"branch":"site-gram1-ru-baseline-20260731","commit":"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49","host_source_map":[{"baseline_host_dir":"hosts/local","domain_match_count":1000,"hostname":"pve01","roots":["/root/homelab-configs-worktree","/root/homelab-configs-worktree/docs","/root/homelab-configs-worktree/docs/operations","/srv/homelab-desired-state","/srv/homelab-desired-state/health","/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","/srv/homelab-desired-state/sbin","/srv/homelab-ops-worktrees/cr-2026-0015","/root/homelab-ops-cr-2026-0004","/root/homelab-ops-cr-2026-0012"],"ssh_target":null,"target":"local"},{"baseline_host_dir":"hosts/pve02","domain_match_count":16,"hostname":"pve02","roots":["/root/evidence/forum-prod-diag-20260629T032514Z","/root/evidence/forum-prod-os-baseline-20260629T034119Z","/root/evidence/forum-prod-offline-fix2-20260629T033832Z","/root/evidence/forum-prod-recover-20260629T025511Z","/root/evidence/forum-prod-recreate-20260629T030810Z","/srv/homelab-desired-state/routerguard-tuya"],"ssh_target":"pve02","target":"pve02"},{"baseline_host_dir":"hosts/pve03","domain_match_count":6,"hostname":"pve03","roots":[],"ssh_target":"pve03","target":"pve03"}],"snapshot_path":"sites/gram1.ru/baseline/20260731T071400Z"},"baseline_evidence":{"audit_count":3,"avax_present":false,"link_present":true,"providers":{},"ranked_change_files":[{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md","audit_label":"baseline:local/source","bytes":528351,"kinds":["api","coin_registry"],"path":"01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md","providers":[],"score":31,"sha256":"977b61a620ea32d2ccfa4b5ebad611713c0b4aa7991f9af0332b2febf4007fd1","snippets":[{"line":9,"text":"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0."},{"line":18,"text":"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH"},{"line":227,"text":"/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.textContent=e,t&&i.setAttribu"},{"line":253,"text":"/app/frontend/assets/index-tlrv6MVo.js:908:`,position:{start:{line:l+u,column:1},end:{line:l+u,column:1}}})}return l+=i,t}if(Object.prototype.hasOwnProperty.call(n,`children`)){var f=l;return n.children=e(n.children),t.push(n),n.position={s"}],"symbols":{"ADA":11,"DOT":4,"LINK":24}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md","audit_label":"baseline:local/source","bytes":504281,"kinds":["coin_registry"],"path":"01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md","providers":[],"score":24,"sha256":"1ac8fe15ebd06db8ef3a9c6127fe5efe7ecbb76d395abbe551c249b249492d21","snippets":[{"line":239,"text":"..md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.text"},{"line":378,"text":"126: labels: '{__address__=\"[PRIVATE_IP]:8000\", __meta_docker_container_id=\"\", __meta_docker_container_label_com_docker_compose_config_hash=\"\", __meta_docker_container_label_com_docker_compose_container_number=\"1\","},{"line":458,"text":"/app/node_modules/knex/lib/knex-builder/internal/config-resolver.js:33: `knex: Unknown configuration option 'client' value ${clientName}. Note that it is case-sensitive, check documentation for supported values.`"},{"line":469,"text":"/app/node_modules/jsonwebtoken/README.md:37:encoded private key for RSA and ECDSA. In case of a private key with passphrase an object `{ key, passphrase }` can be used (based on [crypto documentation](https://nodejs.org/api/crypto.html#cryp"}],"symbols":{"ADA":11,"LINK":14}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","audit_label":"baseline:local/source","bytes":1724,"kinds":["coin_registry"],"path":"04_homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","providers":[],"score":13,"sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","audit_label":"baseline:local/source","bytes":1640,"kinds":["coin_registry"],"path":"04_homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","providers":[],"score":13,"sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","audit_label":"baseline:local/source","bytes":1497,"kinds":["coin_registry"],"path":"04_homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","providers":[],"score":13,"sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-browser-smoke.txt","audit_label":"baseline:local/source","bytes":1724,"kinds":["coin_registry"],"path":"05_health/crypto-portfolio-remove-grt-browser-smoke.txt","providers":[],"score":13,"sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-production-apply.txt","audit_label":"baseline:local/source","bytes":1640,"kinds":["coin_registry"],"path":"05_health/crypto-portfolio-remove-grt-production-apply.txt","providers":[],"score":13,"sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-runtime-dry-run.txt","audit_label":"baseline:local/source","bytes":1497,"kinds":["coin_registry"],"path":"05_health/crypto-portfolio-remove-grt-runtime-dry-run.txt","providers":[],"score":13,"sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/app-level-backup-decisions.md","audit_label":"baseline:local/source","bytes":5089,"kinds":["coin_registry"],"path":"01_homelab-configs-worktree/docs/app-level-backup-decisions.md","providers":[],"score":12,"sha256":"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd","snippets":[{"line":31,"text":"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |"},{"line":75,"text":"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets."}],"symbols":{}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/container-update-wave-20260619.md","audit_label":"baseline:local/source","bytes":6626,"kinds":["coin_registry"],"path":"01_homelab-configs-worktree/reports/container-update-wave-20260619.md","providers":[],"score":12,"sha256":"c50e024cb0d2e17fece62d048d6739b4b4e425095ce4b852d17a39bb0713b74c","snippets":[{"line":56,"text":"| Wave 3 | immich_server | OK | NO | pg_dump, health/HTTP/assets/users/Docker/Kuma/daily OK |"},{"line":62,"text":"| Wave 3 | immich_postgres | OK | NO | pg_dump, pg_isready, assets/users, Immich HTTP OK |"}],"symbols":{}}],"roots_with_files":3,"symbols":{"ADA":22,"DOT":10,"LINK":73,"POL":18,"TRX":4},"total_files_scanned":3725},"changes_made":false,"command_id":"GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z","decision":"READY_TO_BUILD_TRANSACTIONAL_AVAX_LINK_CHANGE","gitea_changed":false,"live_audit_summaries":[{"avax_present":false,"files_scanned":1181,"git":{"branch":"main","dirty":false,"head":"cfab5168f800d63eba1bc0f669427ff8fcd48006","origin":"https://git.gram1.ru/homelab-admin/homelab-configs.git","top_level":"/root/homelab-configs-worktree"},"host":"pve01","label":"live:/root/homelab-configs-worktree","link_present":true,"providers":{},"root":"/root/homelab-configs-worktree","root_exists":true,"ssh_target":null,"symbols":{"ADA":22,"DOT":4,"LINK":55,"TRX":4},"top_matches":[{"absolute_path":"/root/homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md","audit_label":"live:/root/homelab-configs-worktree","bytes":528364,"kinds":["api","coin_registry"],"path":"reports/npmplus-api-certificate-endpoint-preflight-20260621.md","providers":[],"score":31,"sha256":"74cafb6f6a21b39aa9ab56df8b5f9e1f4c420b5ca36d178e8631cdbe98943b4a","snippets":[{"line":9,"text":"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0."},{"line":18,"text":"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH"}],"symbols":{"ADA":11,"DOT":4,"LINK":24}},{"absolute_path":"/root/homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md","audit_label":"live:/root/homelab-configs-worktree","bytes":504333,"kinds":["coin_registry"],"path":"reports/mkdocs-refresh-discovery-20260621.md","providers":[],"score":24,"sha256":"d0cfc6d4e78171cadab7432e3cd5269ff03cc3a5632519cc03ec5acc5499d333","snippets":[{"line":239,"text":"./reports/npmplus-api-certificate-endpoint-preflight-20260621.md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);"},{"line":378,"text":"126: labels: '{__address__=\"[PRIVATE_IP]:8000\", __meta_docker_container_id=\"\", __meta_docker_container_label_com_docker_compose_config_hash=\"\", __meta_docker_container_label_com_docker_compose_container_number=\"1\","}],"symbols":{"ADA":11,"LINK":14}},{"absolute_path":"/root/homelab-configs-worktree/docs/app-level-backup-decisions.md","audit_label":"live:/root/homelab-configs-worktree","bytes":5089,"kinds":["coin_registry"],"path":"docs/app-level-backup-decisions.md","providers":[],"score":12,"sha256":"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd","snippets":[{"line":31,"text":"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |"},{"line":75,"text":"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets."}],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/reports/container-update-wave-20260619.md","audit_label":"live:/root/homelab-configs-worktree","bytes":6626,"kinds":["coin_registry"],"path":"reports/container-update-wave-20260619.md","providers":[],"score":12,"sha256":"c50e024cb0d2e17fece62d048d6739b4b4e425095ce4b852d17a39bb0713b74c","snippets":[{"line":56,"text":"| Wave 3 | immich_server | OK | NO | pg_dump, health/HTTP/assets/users/Docker/Kuma/daily OK |"},{"line":62,"text":"| Wave 3 | immich_postgres | OK | NO | pg_dump, pg_isready, assets/users, Immich HTTP OK |"}],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/runbooks/app-level-backup-decisions.md","audit_label":"live:/root/homelab-configs-worktree","bytes":5089,"kinds":["coin_registry"],"path":"runbooks/app-level-backup-decisions.md","providers":[],"score":12,"sha256":"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd","snippets":[{"line":31,"text":"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |"},{"line":75,"text":"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets."}],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/reports/base-os-package-cve-analysis-20260619.md","audit_label":"live:/root/homelab-configs-worktree","bytes":44330,"kinds":[],"path":"reports/base-os-package-cve-analysis-20260619.md","providers":[],"score":10,"sha256":"9c554193dab1798af18df9a3de2e263ead881257040cc553b3551250174e7573","snippets":[{"line":47,"text":"| `libcrypto3` | 26 | 2 | 24 |"},{"line":127,"text":"| `libcrypto3` | `3.5.7-r0` | 13 |"}],"symbols":{}}]},{"avax_present":false,"files_scanned":723,"git":{"branch":"main","dirty":false,"head":"cfab5168f800d63eba1bc0f669427ff8fcd48006","origin":"https://git.gram1.ru/homelab-admin/homelab-configs.git","top_level":"/root/homelab-configs-worktree"},"host":"pve01","label":"live:/root/homelab-configs-worktree/docs","link_present":true,"providers":{},"root":"/root/homelab-configs-worktree/docs","root_exists":true,"ssh_target":null,"symbols":{"LINK":9},"top_matches":[{"absolute_path":"/root/homelab-configs-worktree/docs/app-level-backup-decisions.md","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":5089,"kinds":["coin_registry"],"path":"app-level-backup-decisions.md","providers":[],"score":12,"sha256":"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd","snippets":[{"line":31,"text":"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |"},{"line":75,"text":"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets."}],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":3056,"kinds":["api","frontend"],"path":"operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md","providers":[],"score":8,"sha256":"01e028863ae1393613019df014131064b7feb1a8a98fb39f73d70967801a0062","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.json","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":9460,"kinds":["api","frontend"],"path":"operations/p1-exposure-watch-route-review-package-20260625T213727Z.json","providers":[],"score":8,"sha256":"f8456d53676fee3304850b00408c0b814e174142dfa365459141e1969c355929","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.md","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":6022,"kinds":["api","frontend"],"path":"operations/p1-exposure-watch-route-review-package-20260625T213727Z.md","providers":[],"score":8,"sha256":"366cd6d7cc670cf4b5ff41e0c29a6a36382512b5d4dcd9f8171df20481f0861c","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-router-sanitized-review-plan-20260625T201130Z.md","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":2419,"kinds":["api","frontend"],"path":"operations/p1-router-sanitized-review-plan-20260625T201130Z.md","providers":[],"score":8,"sha256":"a9d0f4afaf9cbdc3d42bd261d6e7937c9bde95c9699b5212d0fbd7ca83ffbecd","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.json","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":9445,"kinds":["database","frontend"],"path":"operations/p1-homepage-service-catalog-model-20260625T155520Z.json","providers":[],"score":7,"sha256":"d711ec23a8b77eac5d29c4a90bda7244a389cd9776f2c616d139a45555a327f7","snippets":[],"symbols":{}}]},{"avax_present":false,"files_scanned":660,"git":{"branch":"main","dirty":false,"head":"cfab5168f800d63eba1bc0f669427ff8fcd48006","origin":"https://git.gram1.ru/homelab-admin/homelab-configs.git","top_level":"/root/homelab-configs-worktree"},"host":"pve01","label":"live:/root/homelab-configs-worktree/docs/operations","link_present":true,"providers":{},"root":"/root/homelab-configs-worktree/docs/operations","root_exists":true,"ssh_target":null,"symbols":{"LINK":7},"top_matches":[{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":3056,"kinds":["api","frontend"],"path":"p1-exposure-watch-route-review-final-close-20260625T213956Z.md","providers":[],"score":8,"sha256":"01e028863ae1393613019df014131064b7feb1a8a98fb39f73d70967801a0062","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.json","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":9460,"kinds":["api","frontend"],"path":"p1-exposure-watch-route-review-package-20260625T213727Z.json","providers":[],"score":8,"sha256":"f8456d53676fee3304850b00408c0b814e174142dfa365459141e1969c355929","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.md","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":6022,"kinds":["api","frontend"],"path":"p1-exposure-watch-route-review-package-20260625T213727Z.md","providers":[],"score":8,"sha256":"366cd6d7cc670cf4b5ff41e0c29a6a36382512b5d4dcd9f8171df20481f0861c","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-router-sanitized-review-plan-20260625T201130Z.md","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":2419,"kinds":["api","frontend"],"path":"p1-router-sanitized-review-plan-20260625T201130Z.md","providers":[],"score":8,"sha256":"a9d0f4afaf9cbdc3d42bd261d6e7937c9bde95c9699b5212d0fbd7ca83ffbecd","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.json","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":9445,"kinds":["database","frontend"],"path":"p1-homepage-service-catalog-model-20260625T155520Z.json","providers":[],"score":7,"sha256":"d711ec23a8b77eac5d29c4a90bda7244a389cd9776f2c616d139a45555a327f7","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.md","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":2753,"kinds":["database","frontend"],"path":"p1-homepage-service-catalog-model-20260625T155520Z.md","providers":[],"score":7,"sha256":"e39d1091562fe09ab14630905571e054d6477379ad46f4b48cae888bc89478ae","snippets":[],"symbols":{}}]},{"avax_present":false,"files_scanned":682,"git":{"branch":"master","dirty":false,"head":"173b61c40ec2584ac14da018311b15729b86c611","origin":"https://git.gram1.ru/homelab-admin/homelab-desired-state.git","top_level":"/srv/homelab-desired-state"},"host":"pve01","label":"live:/srv/homelab-desired-state","link_present":true,"providers":{},"root":"/srv/homelab-desired-state","root_exists":true,"ssh_target":null,"symbols":{"DOT":3,"LINK":1,"POL":9},"top_matches":[{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","audit_label":"live:/srv/homelab-desired-state","bytes":1724,"kinds":["coin_registry"],"path":"health/crypto-portfolio-remove-grt-browser-smoke.txt","providers":[],"score":13,"sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","audit_label":"live:/srv/homelab-desired-state","bytes":1640,"kinds":["coin_registry"],"path":"health/crypto-portfolio-remove-grt-production-apply.txt","providers":[],"score":13,"sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","audit_label":"live:/srv/homelab-desired-state","bytes":1497,"kinds":["coin_registry"],"path":"health/crypto-portfolio-remove-grt-runtime-dry-run.txt","providers":[],"score":13,"sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/app-states/latest-crypto-portfolio.json","audit_label":"live:/srv/homelab-desired-state","bytes":1138,"kinds":["test"],"path":"app-states/latest-crypto-portfolio.json","providers":[],"score":12,"sha256":"a1265d4a6312fd1b709f33799ccfa02f89fd2a476ee32dd1bd16f2a165ed2805","snippets":[{"line":2,"text":"\"app\": \"crypto-portfolio\","},{"line":6,"text":"\"core-apps:/opt/stacks/crypto-portfolio\""}],"symbols":{}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-chart-health.txt","audit_label":"live:/srv/homelab-desired-state","bytes":139,"kinds":["coin_registry"],"path":"health/crypto-portfolio-chart-health.txt","providers":[],"score":10,"sha256":"69f05461ce0e44cf2595a2357d367e5a2d905f930e6fcf53f9979d03ed847018","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-31T04:50:57Z TYPE=crypto-portfolio-chart-health BAD=0 LIBRARY_OK=true DISK_CACHE_PRESENT=true SYMBOLS=2 STALE_COUNT=2"}],"symbols":{}},{"absolute_path":"/srv/homelab-desired-state/health/xenforo-branding-rollout.txt","audit_label":"live:/srv/homelab-desired-state","bytes":202,"kinds":["coin_registry"],"path":"health/xenforo-branding-rollout.txt","providers":[],"score":10,"sha256":"f8ef93393c5d51c604e2adb907f331d1b070ce0cad08811d79bbe155de7bb7fe","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-16T09:14:29Z TYPE=xenforo-branding TASK=xenforo-branding-rollout-v3 FORUM_COUNT=5 BRAND_FILES=35 DATABASE_CHANGED=NO TEMPLATE_CHANGED=NO STYLE_CHANGED=NO PUBLIC_ASSETS_VERIFIED=YES"}],"symbols":{}}]},{"avax_present":false,"files_scanned":488,"git":{"branch":"master","dirty":false,"head":"173b61c40ec2584ac14da018311b15729b86c611","origin":"https://git.gram1.ru/homelab-admin/homelab-desired-state.git","top_level":"/srv/homelab-desired-state"},"host":"pve01","label":"live:/srv/homelab-desired-state/health","link_present":true,"providers":{},"root":"/srv/homelab-desired-state/health","root_exists":true,"ssh_target":null,"symbols":{"DOT":3,"LINK":1,"POL":9},"top_matches":[{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":1724,"kinds":["coin_registry"],"path":"crypto-portfolio-remove-grt-browser-smoke.txt","providers":[],"score":13,"sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":1640,"kinds":["coin_registry"],"path":"crypto-portfolio-remove-grt-production-apply.txt","providers":[],"score":13,"sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":1497,"kinds":["coin_registry"],"path":"crypto-portfolio-remove-grt-runtime-dry-run.txt","providers":[],"score":13,"sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-chart-health.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":139,"kinds":["coin_registry"],"path":"crypto-portfolio-chart-health.txt","providers":[],"score":10,"sha256":"69f05461ce0e44cf2595a2357d367e5a2d905f930e6fcf53f9979d03ed847018","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-31T04:50:57Z TYPE=crypto-portfolio-chart-health BAD=0 LIBRARY_OK=true DISK_CACHE_PRESENT=true SYMBOLS=2 STALE_COUNT=2"}],"symbols":{}},{"absolute_path":"/srv/homelab-desired-state/health/xenforo-branding-rollout.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":202,"kinds":["coin_registry"],"path":"xenforo-branding-rollout.txt","providers":[],"score":10,"sha256":"f8ef93393c5d51c604e2adb907f331d1b070ce0cad08811d79bbe155de7bb7fe","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-16T09:14:29Z TYPE=xenforo-branding TASK=xenforo-branding-rollout-v3 FORUM_COUNT=5 BRAND_FILES=35 DATABASE_CHANGED=NO TEMPLATE_CHANGED=NO STYLE_CHANGED=NO PUBLIC_ASSETS_VERIFIED=YES"}],"symbols":{}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-final-seal.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":1407,"kinds":["frontend"],"path":"crypto-portfolio-ui-center-alert-currency-final-seal.txt","providers":[],"score":9,"sha256":"27b8fcc222008229d43140d44d290ed811365508bb9a193ae65fdf3958e4d8c8","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T08:37:54Z TYPE=crypto-portfolio-ui-center-alert-currency-final-seal BAD=0 DANGLING_IMAGE_REFERENCE_GATE=OK DESIRED_STATE_SYNC_ARTIFACT_GATE=OK APP=crypto-portfolio PRODUCTION_CHANGED=NO_FINAL_SEAL_ONLY APP_SHA256= None:"}],"symbols":{"LINK":6}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":38408,"kinds":["coin_registry"],"path":"errors/regression-cases.json","providers":[],"score":21,"sha256":"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e","snippets":[{"line":37,"text":"\"required_control\": \"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\","},{"line":54,"text":"\"incident\": \"install -m attempted chmod semantics unsupported by pmxcfs.\","}],"symbols":{"LINK":11}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":7694,"kinds":["coin_registry"],"path":"tasks/pve03-r8152-rx-ring-canary-v1/task.json","providers":[],"score":21,"sha256":"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429","snippets":[{"line":138,"text":"\"REG-062-RX-RING-AUTO-ROLLBACK-ON-LINK-OR-QUORUM-FAILURE\","},{"line":139,"text":"\"REG-063-RX-RING-CANARY-SURVIVES-SSH-LINK-LOSS\","}],"symbols":{"LINK":4}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""}],"symbols":{}}]},{"avax_present":false,"files_scanned":70,"git":{"branch":"cr-2026-0004-backup-tail-closure","dirty":true,"head":"bf80410f592f8eb9eaa80695f609870fe3fb85fd","origin":"https://git.gram1.ru/homelab-admin/homelab-ops.git","top_level":"/root/homelab-ops-cr-2026-0004"},"host":"pve01","label":"live:/root/homelab-ops-cr-2026-0004","link_present":true,"providers":{},"root":"/root/homelab-ops-cr-2026-0004","root_exists":true,"ssh_target":null,"symbols":{"DOT":6,"LINK":30},"top_matches":[{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/apply.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":6806,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/phases/apply.sh","providers":[],"score":18,"sha256":"1c713b76c5bb4282d0dfe2c5d18143bfff8a2817089d1b960c4eac333a922fd0","snippets":[{"line":11,"text":"pve02(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\"; }"},{"line":12,"text":"pve03(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\"; }"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-full-handoff-recovery-v1/phases/apply.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":2355,"kinds":["coin_registry"],"path":"tasks/homelab-full-handoff-recovery-v1/phases/apply.sh","providers":[],"score":18,"sha256":"83d9fe06de17f1c3e91525905db74b426a7ab81452e84f0a30f5c8b8f70cebe7","snippets":[{"line":11,"text":"cat \"$PKG/assets/HOMELAB_FULL_HANDOFF_CURRENT_2026-07-10.md\" > /etc/pve/HOMELAB_FULL_HANDOFF_CURRENT.md"},{"line":12,"text":"cmp -s \"$PKG/assets/HOMELAB_FULL_HANDOFF_CURRENT_2026-07-10.md\" /etc/pve/HOMELAB_FULL_HANDOFF_CURRENT.md"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/task.json","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":8432,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/task.json","providers":[],"score":16,"sha256":"7747f19466e5bcd8fafebffa10c83a16ad43f172f66aad0135d91f073d064b32","snippets":[{"line":185,"text":"\"assets/homelab-vm160-remote-backup\","},{"line":186,"text":"\"assets/pve02-worker.sh\","}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/dry-run.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":3348,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/phases/dry-run.sh","providers":[],"score":12,"sha256":"ac4c4149c7539e6ff72599c660dbea9ecb694e22f6c202b35b27ab1c25472f06","snippets":[{"line":11,"text":"pve02(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\"; }"},{"line":12,"text":"pve03(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\"; }"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/preflight.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":4245,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/phases/preflight.sh","providers":[],"score":12,"sha256":"c92d6fe583502b188482c2a07264aff7d4bc946ff5f66b60846f3679e02c0ea3","snippets":[{"line":11,"text":"pve02(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\"; }"},{"line":12,"text":"pve03(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\"; }"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/prepare.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":2617,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/phases/prepare.sh","providers":[],"score":12,"sha256":"37871a80d9cbd5554d31557d409af19c2b634fe19b8a967e47de481a189922ff","snippets":[{"line":11,"text":"pve02(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\"; }"},{"line":12,"text":"pve03(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\"; }"}],"symbols":{}}]},{"avax_present":false,"files_scanned":87,"git":{"branch":"cr-2026-0012-skladchik-cookie-refresh-runbook","dirty":false,"head":"f5b22d867ea467987008408e3fb1fb0e17fa7b2e","origin":"https://git.gram1.ru/homelab-admin/homelab-ops.git","top_level":"/root/homelab-ops-cr-2026-0012"},"host":"pve01","label":"live:/root/homelab-ops-cr-2026-0012","link_present":true,"providers":{},"root":"/root/homelab-ops-cr-2026-0012","root_exists":true,"ssh_target":null,"symbols":{"LINK":3},"top_matches":[{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":3549,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","providers":[],"score":20,"sha256":"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9","snippets":[{"line":30,"text":"edge_prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":32,"text":"edge_dry = (TASK / \"assets/edge-dry-run.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0009_skladchik_concurrency_guard.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":8942,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0009_skladchik_concurrency_guard.py","providers":[],"score":20,"sha256":"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513","snippets":[{"line":16,"text":"class SkladchikConcurrencyGuardTests(unittest.TestCase):"},{"line":21,"text":"source = (TASK / \"assets/edge-preflight.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/errors/regression-cases.json","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":26500,"kinds":["coin_registry"],"path":"errors/regression-cases.json","providers":[],"score":18,"sha256":"5dab56a2e73e4a3582d4792b91a0c803d485e68b40791bc456315748b15490a0","snippets":[{"line":37,"text":"\"required_control\": \"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\","},{"line":54,"text":"\"incident\": \"install -m attempted chmod semantics unsupported by pmxcfs.\","}],"symbols":{}}]}],"live_evidence":{"audit_count":10,"avax_present":false,"link_present":true,"providers":{},"ranked_change_files":[{"absolute_path":"/root/homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md","audit_label":"live:/root/homelab-configs-worktree","bytes":528364,"kinds":["api","coin_registry"],"path":"reports/npmplus-api-certificate-endpoint-preflight-20260621.md","providers":[],"score":31,"sha256":"74cafb6f6a21b39aa9ab56df8b5f9e1f4c420b5ca36d178e8631cdbe98943b4a","snippets":[{"line":9,"text":"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0."},{"line":18,"text":"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH"},{"line":227,"text":"/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.textContent=e,t&&i.setAttribu"},{"line":253,"text":"/app/frontend/assets/index-tlrv6MVo.js:908:`,position:{start:{line:l+u,column:1},end:{line:l+u,column:1}}})}return l+=i,t}if(Object.prototype.hasOwnProperty.call(n,`children`)){var f=l;return n.children=e(n.children),t.push(n),n.position={s"}],"symbols":{"ADA":11,"DOT":4,"LINK":24}},{"absolute_path":"/root/homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md","audit_label":"live:/root/homelab-configs-worktree","bytes":504333,"kinds":["coin_registry"],"path":"reports/mkdocs-refresh-discovery-20260621.md","providers":[],"score":24,"sha256":"d0cfc6d4e78171cadab7432e3cd5269ff03cc3a5632519cc03ec5acc5499d333","snippets":[{"line":239,"text":"./reports/npmplus-api-certificate-endpoint-preflight-20260621.md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);"},{"line":378,"text":"126: labels: '{__address__=\"[PRIVATE_IP]:8000\", __meta_docker_container_id=\"\", __meta_docker_container_label_com_docker_compose_config_hash=\"\", __meta_docker_container_label_com_docker_compose_container_number=\"1\","},{"line":458,"text":"/app/node_modules/knex/lib/knex-builder/internal/config-resolver.js:33: `knex: Unknown configuration option 'client' value ${clientName}. Note that it is case-sensitive, check documentation for supported values.`"},{"line":469,"text":"/app/node_modules/jsonwebtoken/README.md:37:encoded private key for RSA and ECDSA. In case of a private key with passphrase an object `{ key, passphrase }` can be used (based on [crypto documentation](https://nodejs.org/api/crypto.html#cryp"}],"symbols":{"ADA":11,"LINK":14}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":13506,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py","providers":[],"score":23,"sha256":"91b7a0a01b0eaa1db6a726eb8b009726e75bad5e11959be9494d82c5b5bf00df","snippets":[{"line":10,"text":"REMOTE = TASK / \"assets\" / \"pve03-r8152-rx-ring-canary.sh\""},{"line":23,"text":"def test_01_shell_syntax_and_declared_remote_asset(self) -> None:"},{"line":26,"text":"self.assertEqual(self.contract[\"remote_scripts\"], [\"assets/pve03-r8152-rx-ring-canary.sh\"])"},{"line":36,"text":"self.assertTrue(source[\"tx_not_available_supported\"])"}],"symbols":{"LINK":6}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":38408,"kinds":["coin_registry"],"path":"errors/regression-cases.json","providers":[],"score":21,"sha256":"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e","snippets":[{"line":37,"text":"\"required_control\": \"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\","},{"line":54,"text":"\"incident\": \"install -m attempted chmod semantics unsupported by pmxcfs.\","},{"line":78,"text":"\"incident\": \"A task named for /dev/null retained unrelated backup-tail reads, writes, mutations and assets.\","},{"line":163,"text":"\"required_control\": \"A remotely executed mutation script must be included in the task package, syntax checked, hash pinned, deployed from that asset and covered by rollback.\","}],"symbols":{"LINK":11}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":7694,"kinds":["coin_registry"],"path":"tasks/pve03-r8152-rx-ring-canary-v1/task.json","providers":[],"score":21,"sha256":"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429","snippets":[{"line":138,"text":"\"REG-062-RX-RING-AUTO-ROLLBACK-ON-LINK-OR-QUORUM-FAILURE\","},{"line":139,"text":"\"REG-063-RX-RING-CANARY-SURVIVES-SSH-LINK-LOSS\","},{"line":165,"text":"\"tx_ring_evidence_policy\": \"opaque-string-preserve-exactly; n/a is supported and no TX mutation is allowed\","},{"line":167,"text":"\"tx_not_available_supported\": true"}],"symbols":{"LINK":4}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":51,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":59,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"},{"line":48,"text":"TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\","},{"line":49,"text":"TASK / \"assets/pve01/skladchik-reports-monitor-cookie-update\","}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""},{"line":46,"text":"prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":47,"text":"rollback = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":3549,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","providers":[],"score":20,"sha256":"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9","snippets":[{"line":30,"text":"edge_prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":32,"text":"edge_dry = (TASK / \"assets/edge-dry-run.sh\").read_text(encoding=\"utf-8\")"},{"line":42,"text":"edge = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"},{"line":64,"text":"TASK / \"assets/edge-prepare.sh\","}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0009_skladchik_concurrency_guard.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":8942,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0009_skladchik_concurrency_guard.py","providers":[],"score":20,"sha256":"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513","snippets":[{"line":16,"text":"class SkladchikConcurrencyGuardTests(unittest.TestCase):"},{"line":21,"text":"source = (TASK / \"assets/edge-preflight.sh\").read_text(encoding=\"utf-8\")"},{"line":29,"text":"source = (TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\").read_text(encoding=\"utf-8\")"},{"line":42,"text":"source = (TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":51,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":59,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"},{"line":48,"text":"TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\","},{"line":49,"text":"TASK / \"assets/pve01/skladchik-reports-monitor-cookie-update\","}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""},{"line":46,"text":"prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":47,"text":"rollback = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":3549,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","providers":[],"score":20,"sha256":"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9","snippets":[{"line":30,"text":"edge_prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":32,"text":"edge_dry = (TASK / \"assets/edge-dry-run.sh\").read_text(encoding=\"utf-8\")"},{"line":42,"text":"edge = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"},{"line":64,"text":"TASK / \"assets/edge-prepare.sh\","}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0009_skladchik_concurrency_guard.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":8942,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0009_skladchik_concurrency_guard.py","providers":[],"score":20,"sha256":"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513","snippets":[{"line":16,"text":"class SkladchikConcurrencyGuardTests(unittest.TestCase):"},{"line":21,"text":"source = (TASK / \"assets/edge-preflight.sh\").read_text(encoding=\"utf-8\")"},{"line":29,"text":"source = (TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\").read_text(encoding=\"utf-8\")"},{"line":42,"text":"source = (TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":51,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":59,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"},{"line":48,"text":"TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\","},{"line":49,"text":"TASK / \"assets/pve01/skladchik-reports-monitor-cookie-update\","}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""},{"line":46,"text":"prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":47,"text":"rollback = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}}],"roots_with_files":10,"symbols":{"ADA":22,"DOT":16,"LINK":154,"POL":18,"TRX":4},"total_files_scanned":4141},"live_probe_results":[{"duration_seconds":null,"hostname":"pve01","rc":0,"ssh_target":null,"stderr":null,"target":"local"},{"duration_seconds":0.407,"hostname":null,"rc":1,"ssh_target":"pve02","stderr":"Traceback (most recent call last): File \"\", line 916, in File \"\", line 729, in main File \"\", line 354, in remote_worker File \"\", line 227, in scan_tree File \"\", line 128, in run File \"/usr/lib/python3.13/subprocess.py\", line 554, in run with Popen(*popenargs, **kwargs) as process: ~~~~~^^^^^^^^^^^^^^^^^^^^^^ File \"/usr/lib/python3.13/subprocess.py\", line 1039, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pass_fds, cwd, env, ^^^^^^^^^^^^^^^^^^^ ...<5 lines>... gid, gids, uid, umask, ^^^^^^^^^^^^^^^^^^^^^^ start_new_session, process_group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File \"/usr/lib/python3.13/subprocess.py\", line 1972, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'git'","target":null}],"mutation_outcome":"NO_MUTATION","output_compaction":{"level":0,"limit_bytes":65536,"original_json_bytes":64527},"production_site_changed":false,"rc":0,"required_assets":["AVAX","LINK"],"rollback_restored":null,"rollback_started":false,"schema":2,"status":"OK"} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 0f47e01..0469faf 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "GRAM1-SITE-AVAX-LINK-V1-EXACT-DISCOVERY-20260731T134500Z", - "status": "FAIL", - "rc": 1, + "command_id": "GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z", + "status": "OK", + "rc": 0, "host": "pve01", "mode": "verify", - "component": "gram1-site-avax-link-exact-discovery", - "started_at_utc": "2026-07-31T10:50:46Z", - "finished_at_utc": "2026-07-31T10:50:59Z", + "component": "gram1-site-avax-link-compact-discovery", + "started_at_utc": "2026-07-31T10:56:28Z", + "finished_at_utc": "2026-07-31T10:56:41Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "f2225d53711a2b240fc7f02854764f1fefce4560755072b5112ffccdac9906f1", + "command_sha256": "f18f5902084315ea5fa968b3ee453aa38d3d3e8a69cb517f8ae875dd2538c4b1", "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": 1, + "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": "c179f384d3455e63160f6f9b59c027e3dd8b4dadfb3d8a2d6cbcbdb287c3e2f1", - "sanitized_output_sha256": "c179f384d3455e63160f6f9b59c027e3dd8b4dadfb3d8a2d6cbcbdb287c3e2f1", + "raw_evidence_sha256": "533ca4b7aef4c7c7d32e8ce2c7818e87acc6a15d9d2a0c988ddd608792647bbf", + "sanitized_output_sha256": "4ed7f1df1cf5e4266c5b8639a314408722fb04f41b3c43b6f928a044c7cfc1ef", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"GRAM1-SITE-AVAX-LINK-V1-EXACT-DISCOVERY-20260731T134500Z\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"GRAM1-SITE-AVAX-LINK-V1-EXACT-DISCOVERY-20260731T134500Z\",\"error\":\"bounded output exceeded: 222468 > 98304\",\"error_type\":\"RuntimeError\",\"gitea_changed\":false,\"mutation_outcome\":\"NO_MUTATION\",\"production_site_changed\":false,\"rc\":1,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"FAIL\"}\n" + "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"baseline\":{\"branch\":\"site-gram1-ru-baseline-20260731\",\"commit\":\"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49\",\"host_source_map\":[{\"baseline_host_dir\":\"hosts/local\",\"domain_match_count\":1000,\"hostname\":\"pve01\",\"roots\":[\"/root/homelab-configs-worktree\",\"/root/homelab-configs-worktree/docs\",\"/root/homelab-configs-worktree/docs/operations\",\"/srv/homelab-desired-state\",\"/srv/homelab-desired-state/health\",\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"/srv/homelab-desired-state/sbin\",\"/srv/homelab-ops-worktrees/cr-2026-0015\",\"/root/homelab-ops-cr-2026-0004\",\"/root/homelab-ops-cr-2026-0012\"],\"ssh_target\":null,\"target\":\"local\"},{\"baseline_host_dir\":\"hosts/pve02\",\"domain_match_count\":16,\"hostname\":\"pve02\",\"roots\":[\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"/srv/homelab-desired-state/routerguard-tuya\"],\"ssh_target\":\"pve02\",\"target\":\"pve02\"},{\"baseline_host_dir\":\"hosts/pve03\",\"domain_match_count\":6,\"hostname\":\"pve03\",\"roots\":[],\"ssh_target\":\"pve03\",\"target\":\"pve03\"}],\"snapshot_path\":\"sites/gram1.ru/baseline/20260731T071400Z\"},\"baseline_evidence\":{\"audit_count\":3,\"avax_present\":false,\"link_present\":true,\"providers\":{},\"ranked_change_files\":[{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"audit_label\":\"baseline:local/source\",\"bytes\":528351,\"kinds\":[\"api\",\"coin_registry\"],\"path\":\"01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"providers\":[],\"score\":31,\"sha256\":\"977b61a620ea32d2ccfa4b5ebad611713c0b4aa7991f9af0332b2febf4007fd1\",\"snippets\":[{\"line\":9,\"text\":\"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0.\"},{\"line\":18,\"text\":\"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH\"},{\"line\":227,\"text\":\"/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.textContent=e,t&&i.setAttribu\"},{\"line\":253,\"text\":\"/app/frontend/assets/index-tlrv6MVo.js:908:`,position:{start:{line:l+u,column:1},end:{line:l+u,column:1}}})}return l+=i,t}if(Object.prototype.hasOwnProperty.call(n,`children`)){var f=l;return n.children=e(n.children),t.push(n),n.position={s\"}],\"symbols\":{\"ADA\":11,\"DOT\":4,\"LINK\":24}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\",\"audit_label\":\"baseline:local/source\",\"bytes\":504281,\"kinds\":[\"coin_registry\"],\"path\":\"01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\",\"providers\":[],\"score\":24,\"sha256\":\"1ac8fe15ebd06db8ef3a9c6127fe5efe7ecbb76d395abbe551c249b249492d21\",\"snippets\":[{\"line\":239,\"text\":\"..md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.text\"},{\"line\":378,\"text\":\"126: labels: '{__address__=\\\"[PRIVATE_IP]:8000\\\", __meta_docker_container_id=\\\"\\\", __meta_docker_container_label_com_docker_compose_config_hash=\\\"\\\", __meta_docker_container_label_com_docker_compose_container_number=\\\"1\\\",\"},{\"line\":458,\"text\":\"/app/node_modules/knex/lib/knex-builder/internal/config-resolver.js:33: `knex: Unknown configuration option 'client' value ${clientName}. Note that it is case-sensitive, check documentation for supported values.`\"},{\"line\":469,\"text\":\"/app/node_modules/jsonwebtoken/README.md:37:encoded private key for RSA and ECDSA. In case of a private key with passphrase an object `{ key, passphrase }` can be used (based on [crypto documentation](https://nodejs.org/api/crypto.html#cryp\"}],\"symbols\":{\"ADA\":11,\"LINK\":14}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1724,\"kinds\":[\"coin_registry\"],\"path\":\"04_homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"providers\":[],\"score\":13,\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1640,\"kinds\":[\"coin_registry\"],\"path\":\"04_homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"providers\":[],\"score\":13,\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1497,\"kinds\":[\"coin_registry\"],\"path\":\"04_homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"providers\":[],\"score\":13,\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1724,\"kinds\":[\"coin_registry\"],\"path\":\"05_health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"providers\":[],\"score\":13,\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-production-apply.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1640,\"kinds\":[\"coin_registry\"],\"path\":\"05_health/crypto-portfolio-remove-grt-production-apply.txt\",\"providers\":[],\"score\":13,\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"audit_label\":\"baseline:local/source\",\"bytes\":1497,\"kinds\":[\"coin_registry\"],\"path\":\"05_health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"providers\":[],\"score\":13,\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/app-level-backup-decisions.md\",\"audit_label\":\"baseline:local/source\",\"bytes\":5089,\"kinds\":[\"coin_registry\"],\"path\":\"01_homelab-configs-worktree/docs/app-level-backup-decisions.md\",\"providers\":[],\"score\":12,\"sha256\":\"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd\",\"snippets\":[{\"line\":31,\"text\":\"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |\"},{\"line\":75,\"text\":\"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets.\"}],\"symbols\":{}},{\"absolute_path\":\"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/container-update-wave-20260619.md\",\"audit_label\":\"baseline:local/source\",\"bytes\":6626,\"kinds\":[\"coin_registry\"],\"path\":\"01_homelab-configs-worktree/reports/container-update-wave-20260619.md\",\"providers\":[],\"score\":12,\"sha256\":\"c50e024cb0d2e17fece62d048d6739b4b4e425095ce4b852d17a39bb0713b74c\",\"snippets\":[{\"line\":56,\"text\":\"| Wave 3 | immich_server | OK | NO | pg_dump, health/HTTP/assets/users/Docker/Kuma/daily OK |\"},{\"line\":62,\"text\":\"| Wave 3 | immich_postgres | OK | NO | pg_dump, pg_isready, assets/users, Immich HTTP OK |\"}],\"symbols\":{}}],\"roots_with_files\":3,\"symbols\":{\"ADA\":22,\"DOT\":10,\"LINK\":73,\"POL\":18,\"TRX\":4},\"total_files_scanned\":3725},\"changes_made\":false,\"command_id\":\"GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z\",\"decision\":\"READY_TO_BUILD_TRANSACTIONAL_AVAX_LINK_CHANGE\",\"gitea_changed\":false,\"live_audit_summaries\":[{\"avax_present\":false,\"files_scanned\":1181,\"git\":{\"branch\":\"main\",\"dirty\":false,\"head\":\"cfab5168f800d63eba1bc0f669427ff8fcd48006\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-configs.git\",\"top_level\":\"/root/homelab-configs-worktree\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-configs-worktree\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-configs-worktree\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"ADA\":22,\"DOT\":4,\"LINK\":55,\"TRX\":4},\"top_matches\":[{\"absolute_path\":\"/root/homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":528364,\"kinds\":[\"api\",\"coin_registry\"],\"path\":\"reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"providers\":[],\"score\":31,\"sha256\":\"74cafb6f6a21b39aa9ab56df8b5f9e1f4c420b5ca36d178e8631cdbe98943b4a\",\"snippets\":[{\"line\":9,\"text\":\"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0.\"},{\"line\":18,\"text\":\"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH\"}],\"symbols\":{\"ADA\":11,\"DOT\":4,\"LINK\":24}},{\"absolute_path\":\"/root/homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":504333,\"kinds\":[\"coin_registry\"],\"path\":\"reports/mkdocs-refresh-discovery-20260621.md\",\"providers\":[],\"score\":24,\"sha256\":\"d0cfc6d4e78171cadab7432e3cd5269ff03cc3a5632519cc03ec5acc5499d333\",\"snippets\":[{\"line\":239,\"text\":\"./reports/npmplus-api-certificate-endpoint-preflight-20260621.md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);\"},{\"line\":378,\"text\":\"126: labels: '{__address__=\\\"[PRIVATE_IP]:8000\\\", __meta_docker_container_id=\\\"\\\", __meta_docker_container_label_com_docker_compose_config_hash=\\\"\\\", __meta_docker_container_label_com_docker_compose_container_number=\\\"1\\\",\"}],\"symbols\":{\"ADA\":11,\"LINK\":14}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/app-level-backup-decisions.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":5089,\"kinds\":[\"coin_registry\"],\"path\":\"docs/app-level-backup-decisions.md\",\"providers\":[],\"score\":12,\"sha256\":\"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd\",\"snippets\":[{\"line\":31,\"text\":\"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |\"},{\"line\":75,\"text\":\"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets.\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/reports/container-update-wave-20260619.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":6626,\"kinds\":[\"coin_registry\"],\"path\":\"reports/container-update-wave-20260619.md\",\"providers\":[],\"score\":12,\"sha256\":\"c50e024cb0d2e17fece62d048d6739b4b4e425095ce4b852d17a39bb0713b74c\",\"snippets\":[{\"line\":56,\"text\":\"| Wave 3 | immich_server | OK | NO | pg_dump, health/HTTP/assets/users/Docker/Kuma/daily OK |\"},{\"line\":62,\"text\":\"| Wave 3 | immich_postgres | OK | NO | pg_dump, pg_isready, assets/users, Immich HTTP OK |\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/runbooks/app-level-backup-decisions.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":5089,\"kinds\":[\"coin_registry\"],\"path\":\"runbooks/app-level-backup-decisions.md\",\"providers\":[],\"score\":12,\"sha256\":\"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd\",\"snippets\":[{\"line\":31,\"text\":\"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |\"},{\"line\":75,\"text\":\"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets.\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/reports/base-os-package-cve-analysis-20260619.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":44330,\"kinds\":[],\"path\":\"reports/base-os-package-cve-analysis-20260619.md\",\"providers\":[],\"score\":10,\"sha256\":\"9c554193dab1798af18df9a3de2e263ead881257040cc553b3551250174e7573\",\"snippets\":[{\"line\":47,\"text\":\"| `libcrypto3` | 26 | 2 | 24 |\"},{\"line\":127,\"text\":\"| `libcrypto3` | `3.5.7-r0` | 13 |\"}],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":723,\"git\":{\"branch\":\"main\",\"dirty\":false,\"head\":\"cfab5168f800d63eba1bc0f669427ff8fcd48006\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-configs.git\",\"top_level\":\"/root/homelab-configs-worktree\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-configs-worktree/docs\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-configs-worktree/docs\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"LINK\":9},\"top_matches\":[{\"absolute_path\":\"/root/homelab-configs-worktree/docs/app-level-backup-decisions.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":5089,\"kinds\":[\"coin_registry\"],\"path\":\"app-level-backup-decisions.md\",\"providers\":[],\"score\":12,\"sha256\":\"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd\",\"snippets\":[{\"line\":31,\"text\":\"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |\"},{\"line\":75,\"text\":\"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets.\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":3056,\"kinds\":[\"api\",\"frontend\"],\"path\":\"operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"01e028863ae1393613019df014131064b7feb1a8a98fb39f73d70967801a0062\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.json\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":9460,\"kinds\":[\"api\",\"frontend\"],\"path\":\"operations/p1-exposure-watch-route-review-package-20260625T213727Z.json\",\"providers\":[],\"score\":8,\"sha256\":\"f8456d53676fee3304850b00408c0b814e174142dfa365459141e1969c355929\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":6022,\"kinds\":[\"api\",\"frontend\"],\"path\":\"operations/p1-exposure-watch-route-review-package-20260625T213727Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"366cd6d7cc670cf4b5ff41e0c29a6a36382512b5d4dcd9f8171df20481f0861c\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-router-sanitized-review-plan-20260625T201130Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":2419,\"kinds\":[\"api\",\"frontend\"],\"path\":\"operations/p1-router-sanitized-review-plan-20260625T201130Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"a9d0f4afaf9cbdc3d42bd261d6e7937c9bde95c9699b5212d0fbd7ca83ffbecd\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.json\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs\",\"bytes\":9445,\"kinds\":[\"database\",\"frontend\"],\"path\":\"operations/p1-homepage-service-catalog-model-20260625T155520Z.json\",\"providers\":[],\"score\":7,\"sha256\":\"d711ec23a8b77eac5d29c4a90bda7244a389cd9776f2c616d139a45555a327f7\",\"snippets\":[],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":660,\"git\":{\"branch\":\"main\",\"dirty\":false,\"head\":\"cfab5168f800d63eba1bc0f669427ff8fcd48006\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-configs.git\",\"top_level\":\"/root/homelab-configs-worktree\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-configs-worktree/docs/operations\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"LINK\":7},\"top_matches\":[{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":3056,\"kinds\":[\"api\",\"frontend\"],\"path\":\"p1-exposure-watch-route-review-final-close-20260625T213956Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"01e028863ae1393613019df014131064b7feb1a8a98fb39f73d70967801a0062\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.json\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":9460,\"kinds\":[\"api\",\"frontend\"],\"path\":\"p1-exposure-watch-route-review-package-20260625T213727Z.json\",\"providers\":[],\"score\":8,\"sha256\":\"f8456d53676fee3304850b00408c0b814e174142dfa365459141e1969c355929\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":6022,\"kinds\":[\"api\",\"frontend\"],\"path\":\"p1-exposure-watch-route-review-package-20260625T213727Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"366cd6d7cc670cf4b5ff41e0c29a6a36382512b5d4dcd9f8171df20481f0861c\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-router-sanitized-review-plan-20260625T201130Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":2419,\"kinds\":[\"api\",\"frontend\"],\"path\":\"p1-router-sanitized-review-plan-20260625T201130Z.md\",\"providers\":[],\"score\":8,\"sha256\":\"a9d0f4afaf9cbdc3d42bd261d6e7937c9bde95c9699b5212d0fbd7ca83ffbecd\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.json\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":9445,\"kinds\":[\"database\",\"frontend\"],\"path\":\"p1-homepage-service-catalog-model-20260625T155520Z.json\",\"providers\":[],\"score\":7,\"sha256\":\"d711ec23a8b77eac5d29c4a90bda7244a389cd9776f2c616d139a45555a327f7\",\"snippets\":[],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.md\",\"audit_label\":\"live:/root/homelab-configs-worktree/docs/operations\",\"bytes\":2753,\"kinds\":[\"database\",\"frontend\"],\"path\":\"p1-homepage-service-catalog-model-20260625T155520Z.md\",\"providers\":[],\"score\":7,\"sha256\":\"e39d1091562fe09ab14630905571e054d6477379ad46f4b48cae888bc89478ae\",\"snippets\":[],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":682,\"git\":{\"branch\":\"master\",\"dirty\":false,\"head\":\"173b61c40ec2584ac14da018311b15729b86c611\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-desired-state.git\",\"top_level\":\"/srv/homelab-desired-state\"},\"host\":\"pve01\",\"label\":\"live:/srv/homelab-desired-state\",\"link_present\":true,\"providers\":{},\"root\":\"/srv/homelab-desired-state\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"DOT\":3,\"LINK\":1,\"POL\":9},\"top_matches\":[{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":1724,\"kinds\":[\"coin_registry\"],\"path\":\"health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"providers\":[],\"score\":13,\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":1640,\"kinds\":[\"coin_registry\"],\"path\":\"health/crypto-portfolio-remove-grt-production-apply.txt\",\"providers\":[],\"score\":13,\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":1497,\"kinds\":[\"coin_registry\"],\"path\":\"health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"providers\":[],\"score\":13,\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/app-states/latest-crypto-portfolio.json\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":1138,\"kinds\":[\"test\"],\"path\":\"app-states/latest-crypto-portfolio.json\",\"providers\":[],\"score\":12,\"sha256\":\"a1265d4a6312fd1b709f33799ccfa02f89fd2a476ee32dd1bd16f2a165ed2805\",\"snippets\":[{\"line\":2,\"text\":\"\\\"app\\\": \\\"crypto-portfolio\\\",\"},{\"line\":6,\"text\":\"\\\"core-apps:/opt/stacks/crypto-portfolio\\\"\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-chart-health.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":139,\"kinds\":[\"coin_registry\"],\"path\":\"health/crypto-portfolio-chart-health.txt\",\"providers\":[],\"score\":10,\"sha256\":\"69f05461ce0e44cf2595a2357d367e5a2d905f930e6fcf53f9979d03ed847018\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-31T04:50:57Z TYPE=crypto-portfolio-chart-health BAD=0 LIBRARY_OK=true DISK_CACHE_PRESENT=true SYMBOLS=2 STALE_COUNT=2\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-desired-state/health/xenforo-branding-rollout.txt\",\"audit_label\":\"live:/srv/homelab-desired-state\",\"bytes\":202,\"kinds\":[\"coin_registry\"],\"path\":\"health/xenforo-branding-rollout.txt\",\"providers\":[],\"score\":10,\"sha256\":\"f8ef93393c5d51c604e2adb907f331d1b070ce0cad08811d79bbe155de7bb7fe\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-16T09:14:29Z TYPE=xenforo-branding TASK=xenforo-branding-rollout-v3 FORUM_COUNT=5 BRAND_FILES=35 DATABASE_CHANGED=NO TEMPLATE_CHANGED=NO STYLE_CHANGED=NO PUBLIC_ASSETS_VERIFIED=YES\"}],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":488,\"git\":{\"branch\":\"master\",\"dirty\":false,\"head\":\"173b61c40ec2584ac14da018311b15729b86c611\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-desired-state.git\",\"top_level\":\"/srv/homelab-desired-state\"},\"host\":\"pve01\",\"label\":\"live:/srv/homelab-desired-state/health\",\"link_present\":true,\"providers\":{},\"root\":\"/srv/homelab-desired-state/health\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"DOT\":3,\"LINK\":1,\"POL\":9},\"top_matches\":[{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":1724,\"kinds\":[\"coin_registry\"],\"path\":\"crypto-portfolio-remove-grt-browser-smoke.txt\",\"providers\":[],\"score\":13,\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":1640,\"kinds\":[\"coin_registry\"],\"path\":\"crypto-portfolio-remove-grt-production-apply.txt\",\"providers\":[],\"score\":13,\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":1497,\"kinds\":[\"coin_registry\"],\"path\":\"crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"providers\":[],\"score\":13,\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO\"}],\"symbols\":{\"POL\":2}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-chart-health.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":139,\"kinds\":[\"coin_registry\"],\"path\":\"crypto-portfolio-chart-health.txt\",\"providers\":[],\"score\":10,\"sha256\":\"69f05461ce0e44cf2595a2357d367e5a2d905f930e6fcf53f9979d03ed847018\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-31T04:50:57Z TYPE=crypto-portfolio-chart-health BAD=0 LIBRARY_OK=true DISK_CACHE_PRESENT=true SYMBOLS=2 STALE_COUNT=2\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-desired-state/health/xenforo-branding-rollout.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":202,\"kinds\":[\"coin_registry\"],\"path\":\"xenforo-branding-rollout.txt\",\"providers\":[],\"score\":10,\"sha256\":\"f8ef93393c5d51c604e2adb907f331d1b070ce0cad08811d79bbe155de7bb7fe\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-16T09:14:29Z TYPE=xenforo-branding TASK=xenforo-branding-rollout-v3 FORUM_COUNT=5 BRAND_FILES=35 DATABASE_CHANGED=NO TEMPLATE_CHANGED=NO STYLE_CHANGED=NO PUBLIC_ASSETS_VERIFIED=YES\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-final-seal.txt\",\"audit_label\":\"live:/srv/homelab-desired-state/health\",\"bytes\":1407,\"kinds\":[\"frontend\"],\"path\":\"crypto-portfolio-ui-center-alert-currency-final-seal.txt\",\"providers\":[],\"score\":9,\"sha256\":\"27b8fcc222008229d43140d44d290ed811365508bb9a193ae65fdf3958e4d8c8\",\"snippets\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T08:37:54Z TYPE=crypto-portfolio-ui-center-alert-currency-final-seal BAD=0 DANGLING_IMAGE_REFERENCE_GATE=OK DESIRED_STATE_SYNC_ARTIFACT_GATE=OK APP=crypto-portfolio PRODUCTION_CHANGED=NO_FINAL_SEAL_ONLY APP_SHA256= None:\"}],\"symbols\":{\"LINK\":6}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":38408,\"kinds\":[\"coin_registry\"],\"path\":\"errors/regression-cases.json\",\"providers\":[],\"score\":21,\"sha256\":\"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e\",\"snippets\":[{\"line\":37,\"text\":\"\\\"required_control\\\": \\\"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\\\",\"},{\"line\":54,\"text\":\"\\\"incident\\\": \\\"install -m attempted chmod semantics unsupported by pmxcfs.\\\",\"}],\"symbols\":{\"LINK\":11}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":7694,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"providers\":[],\"score\":21,\"sha256\":\"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429\",\"snippets\":[{\"line\":138,\"text\":\"\\\"REG-062-RX-RING-AUTO-ROLLBACK-ON-LINK-OR-QUORUM-FAILURE\\\",\"},{\"line\":139,\"text\":\"\\\"REG-063-RX-RING-CANARY-SURVIVES-SSH-LINK-LOSS\\\",\"}],\"symbols\":{\"LINK\":4}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"}],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":70,\"git\":{\"branch\":\"cr-2026-0004-backup-tail-closure\",\"dirty\":true,\"head\":\"bf80410f592f8eb9eaa80695f609870fe3fb85fd\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-ops.git\",\"top_level\":\"/root/homelab-ops-cr-2026-0004\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-ops-cr-2026-0004\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-ops-cr-2026-0004\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"DOT\":6,\"LINK\":30},\"top_matches\":[{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/apply.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":6806,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/phases/apply.sh\",\"providers\":[],\"score\":18,\"sha256\":\"1c713b76c5bb4282d0dfe2c5d18143bfff8a2817089d1b960c4eac333a922fd0\",\"snippets\":[{\"line\":11,\"text\":\"pve02(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\\\"; }\"},{\"line\":12,\"text\":\"pve03(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\\\"; }\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-full-handoff-recovery-v1/phases/apply.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":2355,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-full-handoff-recovery-v1/phases/apply.sh\",\"providers\":[],\"score\":18,\"sha256\":\"83d9fe06de17f1c3e91525905db74b426a7ab81452e84f0a30f5c8b8f70cebe7\",\"snippets\":[{\"line\":11,\"text\":\"cat \\\"$PKG/assets/HOMELAB_FULL_HANDOFF_CURRENT_2026-07-10.md\\\" > /etc/pve/HOMELAB_FULL_HANDOFF_CURRENT.md\"},{\"line\":12,\"text\":\"cmp -s \\\"$PKG/assets/HOMELAB_FULL_HANDOFF_CURRENT_2026-07-10.md\\\" /etc/pve/HOMELAB_FULL_HANDOFF_CURRENT.md\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/task.json\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":8432,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/task.json\",\"providers\":[],\"score\":16,\"sha256\":\"7747f19466e5bcd8fafebffa10c83a16ad43f172f66aad0135d91f073d064b32\",\"snippets\":[{\"line\":185,\"text\":\"\\\"assets/homelab-vm160-remote-backup\\\",\"},{\"line\":186,\"text\":\"\\\"assets/pve02-worker.sh\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/dry-run.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":3348,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/phases/dry-run.sh\",\"providers\":[],\"score\":12,\"sha256\":\"ac4c4149c7539e6ff72599c660dbea9ecb694e22f6c202b35b27ab1c25472f06\",\"snippets\":[{\"line\":11,\"text\":\"pve02(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\\\"; }\"},{\"line\":12,\"text\":\"pve03(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\\\"; }\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/preflight.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":4245,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/phases/preflight.sh\",\"providers\":[],\"score\":12,\"sha256\":\"c92d6fe583502b188482c2a07264aff7d4bc946ff5f66b60846f3679e02c0ea3\",\"snippets\":[{\"line\":11,\"text\":\"pve02(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\\\"; }\"},{\"line\":12,\"text\":\"pve03(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\\\"; }\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/prepare.sh\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0004\",\"bytes\":2617,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/homelab-backup-tail-closure-v1/phases/prepare.sh\",\"providers\":[],\"score\":12,\"sha256\":\"37871a80d9cbd5554d31557d409af19c2b634fe19b8a967e47de481a189922ff\",\"snippets\":[{\"line\":11,\"text\":\"pve02(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\\\"; }\"},{\"line\":12,\"text\":\"pve03(){ ssh \\\"${SSH_BASE[@]}\\\" root@[PRIVATE_IP] bash -s -- \\\"$@\\\" < \\\"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\\\"; }\"}],\"symbols\":{}}]},{\"avax_present\":false,\"files_scanned\":87,\"git\":{\"branch\":\"cr-2026-0012-skladchik-cookie-refresh-runbook\",\"dirty\":false,\"head\":\"f5b22d867ea467987008408e3fb1fb0e17fa7b2e\",\"origin\":\"https://git.gram1.ru/homelab-admin/homelab-ops.git\",\"top_level\":\"/root/homelab-ops-cr-2026-0012\"},\"host\":\"pve01\",\"label\":\"live:/root/homelab-ops-cr-2026-0012\",\"link_present\":true,\"providers\":{},\"root\":\"/root/homelab-ops-cr-2026-0012\",\"root_exists\":true,\"ssh_target\":null,\"symbols\":{\"LINK\":3},\"top_matches\":[{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":3549,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"providers\":[],\"score\":20,\"sha256\":\"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9\",\"snippets\":[{\"line\":30,\"text\":\"edge_prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":32,\"text\":\"edge_dry = (TASK / \\\"assets/edge-dry-run.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":8942,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"providers\":[],\"score\":20,\"sha256\":\"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513\",\"snippets\":[{\"line\":16,\"text\":\"class SkladchikConcurrencyGuardTests(unittest.TestCase):\"},{\"line\":21,\"text\":\"source = (TASK / \\\"assets/edge-preflight.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/errors/regression-cases.json\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":26500,\"kinds\":[\"coin_registry\"],\"path\":\"errors/regression-cases.json\",\"providers\":[],\"score\":18,\"sha256\":\"5dab56a2e73e4a3582d4792b91a0c803d485e68b40791bc456315748b15490a0\",\"snippets\":[{\"line\":37,\"text\":\"\\\"required_control\\\": \\\"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\\\",\"},{\"line\":54,\"text\":\"\\\"incident\\\": \\\"install -m attempted chmod semantics unsupported by pmxcfs.\\\",\"}],\"symbols\":{}}]}],\"live_evidence\":{\"audit_count\":10,\"avax_present\":false,\"link_present\":true,\"providers\":{},\"ranked_change_files\":[{\"absolute_path\":\"/root/homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":528364,\"kinds\":[\"api\",\"coin_registry\"],\"path\":\"reports/npmplus-api-certificate-endpoint-preflight-20260621.md\",\"providers\":[],\"score\":31,\"sha256\":\"74cafb6f6a21b39aa9ab56df8b5f9e1f4c420b5ca36d178e8631cdbe98943b4a\",\"snippets\":[{\"line\":9,\"text\":\"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0.\"},{\"line\":18,\"text\":\"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH\"},{\"line\":227,\"text\":\"/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.textContent=e,t&&i.setAttribu\"},{\"line\":253,\"text\":\"/app/frontend/assets/index-tlrv6MVo.js:908:`,position:{start:{line:l+u,column:1},end:{line:l+u,column:1}}})}return l+=i,t}if(Object.prototype.hasOwnProperty.call(n,`children`)){var f=l;return n.children=e(n.children),t.push(n),n.position={s\"}],\"symbols\":{\"ADA\":11,\"DOT\":4,\"LINK\":24}},{\"absolute_path\":\"/root/homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\",\"audit_label\":\"live:/root/homelab-configs-worktree\",\"bytes\":504333,\"kinds\":[\"coin_registry\"],\"path\":\"reports/mkdocs-refresh-discovery-20260621.md\",\"providers\":[],\"score\":24,\"sha256\":\"d0cfc6d4e78171cadab7432e3cd5269ff03cc3a5632519cc03ec5acc5499d333\",\"snippets\":[{\"line\":239,\"text\":\"./reports/npmplus-api-certificate-endpoint-preflight-20260621.md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);\"},{\"line\":378,\"text\":\"126: labels: '{__address__=\\\"[PRIVATE_IP]:8000\\\", __meta_docker_container_id=\\\"\\\", __meta_docker_container_label_com_docker_compose_config_hash=\\\"\\\", __meta_docker_container_label_com_docker_compose_container_number=\\\"1\\\",\"},{\"line\":458,\"text\":\"/app/node_modules/knex/lib/knex-builder/internal/config-resolver.js:33: `knex: Unknown configuration option 'client' value ${clientName}. Note that it is case-sensitive, check documentation for supported values.`\"},{\"line\":469,\"text\":\"/app/node_modules/jsonwebtoken/README.md:37:encoded private key for RSA and ECDSA. In case of a private key with passphrase an object `{ key, passphrase }` can be used (based on [crypto documentation](https://nodejs.org/api/crypto.html#cryp\"}],\"symbols\":{\"ADA\":11,\"LINK\":14}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":13506,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py\",\"providers\":[],\"score\":23,\"sha256\":\"91b7a0a01b0eaa1db6a726eb8b009726e75bad5e11959be9494d82c5b5bf00df\",\"snippets\":[{\"line\":10,\"text\":\"REMOTE = TASK / \\\"assets\\\" / \\\"pve03-r8152-rx-ring-canary.sh\\\"\"},{\"line\":23,\"text\":\"def test_01_shell_syntax_and_declared_remote_asset(self) -> None:\"},{\"line\":26,\"text\":\"self.assertEqual(self.contract[\\\"remote_scripts\\\"], [\\\"assets/pve03-r8152-rx-ring-canary.sh\\\"])\"},{\"line\":36,\"text\":\"self.assertTrue(source[\\\"tx_not_available_supported\\\"])\"}],\"symbols\":{\"LINK\":6}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":38408,\"kinds\":[\"coin_registry\"],\"path\":\"errors/regression-cases.json\",\"providers\":[],\"score\":21,\"sha256\":\"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e\",\"snippets\":[{\"line\":37,\"text\":\"\\\"required_control\\\": \\\"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\\\",\"},{\"line\":54,\"text\":\"\\\"incident\\\": \\\"install -m attempted chmod semantics unsupported by pmxcfs.\\\",\"},{\"line\":78,\"text\":\"\\\"incident\\\": \\\"A task named for /dev/null retained unrelated backup-tail reads, writes, mutations and assets.\\\",\"},{\"line\":163,\"text\":\"\\\"required_control\\\": \\\"A remotely executed mutation script must be included in the task package, syntax checked, hash pinned, deployed from that asset and covered by rollback.\\\",\"}],\"symbols\":{\"LINK\":11}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":7694,\"kinds\":[\"coin_registry\"],\"path\":\"tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"providers\":[],\"score\":21,\"sha256\":\"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429\",\"snippets\":[{\"line\":138,\"text\":\"\\\"REG-062-RX-RING-AUTO-ROLLBACK-ON-LINK-OR-QUORUM-FAILURE\\\",\"},{\"line\":139,\"text\":\"\\\"REG-063-RX-RING-CANARY-SURVIVES-SSH-LINK-LOSS\\\",\"},{\"line\":165,\"text\":\"\\\"tx_ring_evidence_policy\\\": \\\"opaque-string-preserve-exactly; n/a is supported and no TX mutation is allowed\\\",\"},{\"line\":167,\"text\":\"\\\"tx_not_available_supported\\\": true\"}],\"symbols\":{\"LINK\":4}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":51,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":59,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"},{\"line\":48,\"text\":\"TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\",\"},{\"line\":49,\"text\":\"TASK / \\\"assets/pve01/skladchik-reports-monitor-cookie-update\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"},{\"line\":46,\"text\":\"prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":47,\"text\":\"rollback = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":3549,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"providers\":[],\"score\":20,\"sha256\":\"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9\",\"snippets\":[{\"line\":30,\"text\":\"edge_prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":32,\"text\":\"edge_dry = (TASK / \\\"assets/edge-dry-run.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":42,\"text\":\"edge = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":64,\"text\":\"TASK / \\\"assets/edge-prepare.sh\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"audit_label\":\"live:/root/homelab-ops-cr-2026-0012\",\"bytes\":8942,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"providers\":[],\"score\":20,\"sha256\":\"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513\",\"snippets\":[{\"line\":16,\"text\":\"class SkladchikConcurrencyGuardTests(unittest.TestCase):\"},{\"line\":21,\"text\":\"source = (TASK / \\\"assets/edge-preflight.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":29,\"text\":\"source = (TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":42,\"text\":\"source = (TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":51,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":59,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"},{\"line\":48,\"text\":\"TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\",\"},{\"line\":49,\"text\":\"TASK / \\\"assets/pve01/skladchik-reports-monitor-cookie-update\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"},{\"line\":46,\"text\":\"prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":47,\"text\":\"rollback = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":3549,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py\",\"providers\":[],\"score\":20,\"sha256\":\"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9\",\"snippets\":[{\"line\":30,\"text\":\"edge_prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":32,\"text\":\"edge_dry = (TASK / \\\"assets/edge-dry-run.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":42,\"text\":\"edge = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":64,\"text\":\"TASK / \\\"assets/edge-prepare.sh\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0015\",\"bytes\":8942,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0009_skladchik_concurrency_guard.py\",\"providers\":[],\"score\":20,\"sha256\":\"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513\",\"snippets\":[{\"line\":16,\"text\":\"class SkladchikConcurrencyGuardTests(unittest.TestCase):\"},{\"line\":21,\"text\":\"source = (TASK / \\\"assets/edge-preflight.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":29,\"text\":\"source = (TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":42,\"text\":\"source = (TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0006_vm160_task.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"bytes\":6046,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0006_vm160_task.py\",\"providers\":[],\"score\":20,\"sha256\":\"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2\",\"snippets\":[{\"line\":31,\"text\":\"files = sorted((TASK / \\\"phases\\\").glob(\\\"*.sh\\\")) + [TASK / \\\"assets/vm160-cloud-quorum-worker.sh\\\", TASK / \\\"assets/pve02-vm160-preflight-probe.sh\\\", TASK / \\\"assets/homelab-vm160-remote-backup\\\"]\"},{\"line\":36,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":51,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"},{\"line\":59,\"text\":\"w = self.text(\\\"assets/vm160-cloud-quorum-worker.sh\\\")\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0007_skladchik_reauth.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"bytes\":4660,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_reauth.py\",\"providers\":[],\"score\":20,\"sha256\":\"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765\",\"snippets\":[{\"line\":33,\"text\":\"relative.update(f\\\"assets/pve01/{name}\\\" for name in PVE_NAMES)\"},{\"line\":46,\"text\":\"paths += sorted((TASK / \\\"assets\\\").glob(\\\"*.sh\\\"))\"},{\"line\":48,\"text\":\"TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\",\"},{\"line\":49,\"text\":\"TASK / \\\"assets/pve01/skladchik-reports-monitor-cookie-update\\\",\"}],\"symbols\":{}},{\"absolute_path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"audit_label\":\"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"bytes\":6711,\"kinds\":[\"coin_registry\",\"test\"],\"path\":\"tests/test_cr_2026_0007_skladchik_semantic_repair.py\",\"providers\":[],\"score\":20,\"sha256\":\"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f\",\"snippets\":[{\"line\":12,\"text\":\"PVE = TASK / \\\"assets/pve01\\\"\"},{\"line\":13,\"text\":\"EDGE = TASK / \\\"assets/edge/skladchik-reports-monitor-cookie-update-edge\\\"\"},{\"line\":46,\"text\":\"prepare = (TASK / \\\"assets/edge-prepare.sh\\\").read_text(encoding=\\\"utf-8\\\")\"},{\"line\":47,\"text\":\"rollback = (TASK / \\\"assets/edge-rollback.sh\\\").read_text(encoding=\\\"utf-8\\\")\"}],\"symbols\":{}}],\"roots_with_files\":10,\"symbols\":{\"ADA\":22,\"DOT\":16,\"LINK\":154,\"POL\":18,\"TRX\":4},\"total_files_scanned\":4141},\"live_probe_results\":[{\"duration_seconds\":null,\"hostname\":\"pve01\",\"rc\":0,\"ssh_target\":null,\"stderr\":null,\"target\":\"local\"},{\"duration_seconds\":0.407,\"hostname\":null,\"rc\":1,\"ssh_target\":\"pve02\",\"stderr\":\"Traceback (most recent call last): File \\\"\\\", line 916, in File \\\"\\\", line 729, in main File \\\"\\\", line 354, in remote_worker File \\\"\\\", line 227, in scan_tree File \\\"\\\", line 128, in run File \\\"/usr/lib/python3.13/subprocess.py\\\", line 554, in run with Popen(*popenargs, **kwargs) as process: ~~~~~^^^^^^^^^^^^^^^^^^^^^^ File \\\"/usr/lib/python3.13/subprocess.py\\\", line 1039, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pass_fds, cwd, env, ^^^^^^^^^^^^^^^^^^^ ...<5 lines>... gid, gids, uid, umask, ^^^^^^^^^^^^^^^^^^^^^^ start_new_session, process_group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File \\\"/usr/lib/python3.13/subprocess.py\\\", line 1972, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'git'\",\"target\":null}],\"mutation_outcome\":\"NO_MUTATION\",\"output_compaction\":{\"level\":0,\"limit_bytes\":65536,\"original_json_bytes\":64527},\"production_site_changed\":false,\"rc\":0,\"required_assets\":[\"AVAX\",\"LINK\"],\"rollback_restored\":null,\"rollback_started\":false,\"schema\":2,\"status\":\"OK\"}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 3f907a3..62b8328 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,22 +1,22 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=GRAM1-SITE-AVAX-LINK-V1-EXACT-DISCOVERY-20260731T134500Z -STATUS=FAIL -RC=1 +COMMAND_ID=GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z +STATUS=OK +RC=0 HOST=pve01 MODE=verify -COMPONENT=gram1-site-avax-link-exact-discovery +COMPONENT=gram1-site-avax-link-compact-discovery REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=f2225d53711a2b240fc7f02854764f1fefce4560755072b5112ffccdac9906f1 +COMMAND_SHA256=f18f5902084315ea5fa968b3ee453aa38d3d3e8a69cb517f8ae875dd2538c4b1 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=1 +COMMAND_RC=0 CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null @@ -24,11 +24,11 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=c179f384d3455e63160f6f9b59c027e3dd8b4dadfb3d8a2d6cbcbdb287c3e2f1 -SANITIZED_OUTPUT_SHA256=c179f384d3455e63160f6f9b59c027e3dd8b4dadfb3d8a2d6cbcbdb287c3e2f1 +RAW_EVIDENCE_SHA256=533ca4b7aef4c7c7d32e8ce2c7818e87acc6a15d9d2a0c988ddd608792647bbf +SANITIZED_OUTPUT_SHA256=4ed7f1df1cf5e4266c5b8639a314408722fb04f41b3c43b6f928a044c7cfc1ef OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"GRAM1-SITE-AVAX-LINK-V1-EXACT-DISCOVERY-20260731T134500Z","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} -{"changes_made":false,"command_id":"GRAM1-SITE-AVAX-LINK-V1-EXACT-DISCOVERY-20260731T134500Z","error":"bounded output exceeded: 222468 > 98304","error_type":"RuntimeError","gitea_changed":false,"mutation_outcome":"NO_MUTATION","production_site_changed":false,"rc":1,"rollback_restored":null,"rollback_started":false,"schema":1,"status":"FAIL"} +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"baseline":{"branch":"site-gram1-ru-baseline-20260731","commit":"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49","host_source_map":[{"baseline_host_dir":"hosts/local","domain_match_count":1000,"hostname":"pve01","roots":["/root/homelab-configs-worktree","/root/homelab-configs-worktree/docs","/root/homelab-configs-worktree/docs/operations","/srv/homelab-desired-state","/srv/homelab-desired-state/health","/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","/srv/homelab-desired-state/sbin","/srv/homelab-ops-worktrees/cr-2026-0015","/root/homelab-ops-cr-2026-0004","/root/homelab-ops-cr-2026-0012"],"ssh_target":null,"target":"local"},{"baseline_host_dir":"hosts/pve02","domain_match_count":16,"hostname":"pve02","roots":["/root/evidence/forum-prod-diag-20260629T032514Z","/root/evidence/forum-prod-os-baseline-20260629T034119Z","/root/evidence/forum-prod-offline-fix2-20260629T033832Z","/root/evidence/forum-prod-recover-20260629T025511Z","/root/evidence/forum-prod-recreate-20260629T030810Z","/srv/homelab-desired-state/routerguard-tuya"],"ssh_target":"pve02","target":"pve02"},{"baseline_host_dir":"hosts/pve03","domain_match_count":6,"hostname":"pve03","roots":[],"ssh_target":"pve03","target":"pve03"}],"snapshot_path":"sites/gram1.ru/baseline/20260731T071400Z"},"baseline_evidence":{"audit_count":3,"avax_present":false,"link_present":true,"providers":{},"ranked_change_files":[{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md","audit_label":"baseline:local/source","bytes":528351,"kinds":["api","coin_registry"],"path":"01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md","providers":[],"score":31,"sha256":"977b61a620ea32d2ccfa4b5ebad611713c0b4aa7991f9af0332b2febf4007fd1","snippets":[{"line":9,"text":"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0."},{"line":18,"text":"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH"},{"line":227,"text":"/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.textContent=e,t&&i.setAttribu"},{"line":253,"text":"/app/frontend/assets/index-tlrv6MVo.js:908:`,position:{start:{line:l+u,column:1},end:{line:l+u,column:1}}})}return l+=i,t}if(Object.prototype.hasOwnProperty.call(n,`children`)){var f=l;return n.children=e(n.children),t.push(n),n.position={s"}],"symbols":{"ADA":11,"DOT":4,"LINK":24}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md","audit_label":"baseline:local/source","bytes":504281,"kinds":["coin_registry"],"path":"01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md","providers":[],"score":24,"sha256":"1ac8fe15ebd06db8ef3a9c6127fe5efe7ecbb76d395abbe551c249b249492d21","snippets":[{"line":239,"text":"..md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.text"},{"line":378,"text":"126: labels: '{__address__=\"[PRIVATE_IP]:8000\", __meta_docker_container_id=\"\", __meta_docker_container_label_com_docker_compose_config_hash=\"\", __meta_docker_container_label_com_docker_compose_container_number=\"1\","},{"line":458,"text":"/app/node_modules/knex/lib/knex-builder/internal/config-resolver.js:33: `knex: Unknown configuration option 'client' value ${clientName}. Note that it is case-sensitive, check documentation for supported values.`"},{"line":469,"text":"/app/node_modules/jsonwebtoken/README.md:37:encoded private key for RSA and ECDSA. In case of a private key with passphrase an object `{ key, passphrase }` can be used (based on [crypto documentation](https://nodejs.org/api/crypto.html#cryp"}],"symbols":{"ADA":11,"LINK":14}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","audit_label":"baseline:local/source","bytes":1724,"kinds":["coin_registry"],"path":"04_homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","providers":[],"score":13,"sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","audit_label":"baseline:local/source","bytes":1640,"kinds":["coin_registry"],"path":"04_homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","providers":[],"score":13,"sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/04_homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","audit_label":"baseline:local/source","bytes":1497,"kinds":["coin_registry"],"path":"04_homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","providers":[],"score":13,"sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-browser-smoke.txt","audit_label":"baseline:local/source","bytes":1724,"kinds":["coin_registry"],"path":"05_health/crypto-portfolio-remove-grt-browser-smoke.txt","providers":[],"score":13,"sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-production-apply.txt","audit_label":"baseline:local/source","bytes":1640,"kinds":["coin_registry"],"path":"05_health/crypto-portfolio-remove-grt-production-apply.txt","providers":[],"score":13,"sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/05_health/crypto-portfolio-remove-grt-runtime-dry-run.txt","audit_label":"baseline:local/source","bytes":1497,"kinds":["coin_registry"],"path":"05_health/crypto-portfolio-remove-grt-runtime-dry-run.txt","providers":[],"score":13,"sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO"}],"symbols":{"POL":2}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/app-level-backup-decisions.md","audit_label":"baseline:local/source","bytes":5089,"kinds":["coin_registry"],"path":"01_homelab-configs-worktree/docs/app-level-backup-decisions.md","providers":[],"score":12,"sha256":"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd","snippets":[{"line":31,"text":"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |"},{"line":75,"text":"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets."}],"symbols":{}},{"absolute_path":"/tmp/gram1-avax-link-discovery-71io3scf/repo/sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/reports/container-update-wave-20260619.md","audit_label":"baseline:local/source","bytes":6626,"kinds":["coin_registry"],"path":"01_homelab-configs-worktree/reports/container-update-wave-20260619.md","providers":[],"score":12,"sha256":"c50e024cb0d2e17fece62d048d6739b4b4e425095ce4b852d17a39bb0713b74c","snippets":[{"line":56,"text":"| Wave 3 | immich_server | OK | NO | pg_dump, health/HTTP/assets/users/Docker/Kuma/daily OK |"},{"line":62,"text":"| Wave 3 | immich_postgres | OK | NO | pg_dump, pg_isready, assets/users, Immich HTTP OK |"}],"symbols":{}}],"roots_with_files":3,"symbols":{"ADA":22,"DOT":10,"LINK":73,"POL":18,"TRX":4},"total_files_scanned":3725},"changes_made":false,"command_id":"GRAM1-SITE-AVAX-LINK-V2-COMPACT-DISCOVERY-20260731T104500Z","decision":"READY_TO_BUILD_TRANSACTIONAL_AVAX_LINK_CHANGE","gitea_changed":false,"live_audit_summaries":[{"avax_present":false,"files_scanned":1181,"git":{"branch":"main","dirty":false,"head":"cfab5168f800d63eba1bc0f669427ff8fcd48006","origin":"https://git.gram1.ru/homelab-admin/homelab-configs.git","top_level":"/root/homelab-configs-worktree"},"host":"pve01","label":"live:/root/homelab-configs-worktree","link_present":true,"providers":{},"root":"/root/homelab-configs-worktree","root_exists":true,"ssh_target":null,"symbols":{"ADA":22,"DOT":4,"LINK":55,"TRX":4},"top_matches":[{"absolute_path":"/root/homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md","audit_label":"live:/root/homelab-configs-worktree","bytes":528364,"kinds":["api","coin_registry"],"path":"reports/npmplus-api-certificate-endpoint-preflight-20260621.md","providers":[],"score":31,"sha256":"74cafb6f6a21b39aa9ab56df8b5f9e1f4c420b5ca36d178e8631cdbe98943b4a","snippets":[{"line":9,"text":"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0."},{"line":18,"text":"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH"}],"symbols":{"ADA":11,"DOT":4,"LINK":24}},{"absolute_path":"/root/homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md","audit_label":"live:/root/homelab-configs-worktree","bytes":504333,"kinds":["coin_registry"],"path":"reports/mkdocs-refresh-discovery-20260621.md","providers":[],"score":24,"sha256":"d0cfc6d4e78171cadab7432e3cd5269ff03cc3a5632519cc03ec5acc5499d333","snippets":[{"line":239,"text":"./reports/npmplus-api-certificate-endpoint-preflight-20260621.md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);"},{"line":378,"text":"126: labels: '{__address__=\"[PRIVATE_IP]:8000\", __meta_docker_container_id=\"\", __meta_docker_container_label_com_docker_compose_config_hash=\"\", __meta_docker_container_label_com_docker_compose_container_number=\"1\","}],"symbols":{"ADA":11,"LINK":14}},{"absolute_path":"/root/homelab-configs-worktree/docs/app-level-backup-decisions.md","audit_label":"live:/root/homelab-configs-worktree","bytes":5089,"kinds":["coin_registry"],"path":"docs/app-level-backup-decisions.md","providers":[],"score":12,"sha256":"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd","snippets":[{"line":31,"text":"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |"},{"line":75,"text":"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets."}],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/reports/container-update-wave-20260619.md","audit_label":"live:/root/homelab-configs-worktree","bytes":6626,"kinds":["coin_registry"],"path":"reports/container-update-wave-20260619.md","providers":[],"score":12,"sha256":"c50e024cb0d2e17fece62d048d6739b4b4e425095ce4b852d17a39bb0713b74c","snippets":[{"line":56,"text":"| Wave 3 | immich_server | OK | NO | pg_dump, health/HTTP/assets/users/Docker/Kuma/daily OK |"},{"line":62,"text":"| Wave 3 | immich_postgres | OK | NO | pg_dump, pg_isready, assets/users, Immich HTTP OK |"}],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/runbooks/app-level-backup-decisions.md","audit_label":"live:/root/homelab-configs-worktree","bytes":5089,"kinds":["coin_registry"],"path":"runbooks/app-level-backup-decisions.md","providers":[],"score":12,"sha256":"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd","snippets":[{"line":31,"text":"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |"},{"line":75,"text":"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets."}],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/reports/base-os-package-cve-analysis-20260619.md","audit_label":"live:/root/homelab-configs-worktree","bytes":44330,"kinds":[],"path":"reports/base-os-package-cve-analysis-20260619.md","providers":[],"score":10,"sha256":"9c554193dab1798af18df9a3de2e263ead881257040cc553b3551250174e7573","snippets":[{"line":47,"text":"| `libcrypto3` | 26 | 2 | 24 |"},{"line":127,"text":"| `libcrypto3` | `3.5.7-r0` | 13 |"}],"symbols":{}}]},{"avax_present":false,"files_scanned":723,"git":{"branch":"main","dirty":false,"head":"cfab5168f800d63eba1bc0f669427ff8fcd48006","origin":"https://git.gram1.ru/homelab-admin/homelab-configs.git","top_level":"/root/homelab-configs-worktree"},"host":"pve01","label":"live:/root/homelab-configs-worktree/docs","link_present":true,"providers":{},"root":"/root/homelab-configs-worktree/docs","root_exists":true,"ssh_target":null,"symbols":{"LINK":9},"top_matches":[{"absolute_path":"/root/homelab-configs-worktree/docs/app-level-backup-decisions.md","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":5089,"kinds":["coin_registry"],"path":"app-level-backup-decisions.md","providers":[],"score":12,"sha256":"dfef1bb11361739b2aef776c07788ef0151263b6553bf3adc45e2efea6a985fd","snippets":[{"line":31,"text":"| Mealie | P2 | Protect later | Application DB/data and uploaded assets | Temporary restore with recipes visible | Personal data, but lower operational criticality |"},{"line":75,"text":"The required proof is not just media copy presence. The minimum acceptable proof is a same-window PostgreSQL dump plus media/library backup with a restore dry-run that proves the app can see the restored assets."}],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":3056,"kinds":["api","frontend"],"path":"operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md","providers":[],"score":8,"sha256":"01e028863ae1393613019df014131064b7feb1a8a98fb39f73d70967801a0062","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.json","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":9460,"kinds":["api","frontend"],"path":"operations/p1-exposure-watch-route-review-package-20260625T213727Z.json","providers":[],"score":8,"sha256":"f8456d53676fee3304850b00408c0b814e174142dfa365459141e1969c355929","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.md","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":6022,"kinds":["api","frontend"],"path":"operations/p1-exposure-watch-route-review-package-20260625T213727Z.md","providers":[],"score":8,"sha256":"366cd6d7cc670cf4b5ff41e0c29a6a36382512b5d4dcd9f8171df20481f0861c","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-router-sanitized-review-plan-20260625T201130Z.md","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":2419,"kinds":["api","frontend"],"path":"operations/p1-router-sanitized-review-plan-20260625T201130Z.md","providers":[],"score":8,"sha256":"a9d0f4afaf9cbdc3d42bd261d6e7937c9bde95c9699b5212d0fbd7ca83ffbecd","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.json","audit_label":"live:/root/homelab-configs-worktree/docs","bytes":9445,"kinds":["database","frontend"],"path":"operations/p1-homepage-service-catalog-model-20260625T155520Z.json","providers":[],"score":7,"sha256":"d711ec23a8b77eac5d29c4a90bda7244a389cd9776f2c616d139a45555a327f7","snippets":[],"symbols":{}}]},{"avax_present":false,"files_scanned":660,"git":{"branch":"main","dirty":false,"head":"cfab5168f800d63eba1bc0f669427ff8fcd48006","origin":"https://git.gram1.ru/homelab-admin/homelab-configs.git","top_level":"/root/homelab-configs-worktree"},"host":"pve01","label":"live:/root/homelab-configs-worktree/docs/operations","link_present":true,"providers":{},"root":"/root/homelab-configs-worktree/docs/operations","root_exists":true,"ssh_target":null,"symbols":{"LINK":7},"top_matches":[{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-final-close-20260625T213956Z.md","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":3056,"kinds":["api","frontend"],"path":"p1-exposure-watch-route-review-final-close-20260625T213956Z.md","providers":[],"score":8,"sha256":"01e028863ae1393613019df014131064b7feb1a8a98fb39f73d70967801a0062","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.json","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":9460,"kinds":["api","frontend"],"path":"p1-exposure-watch-route-review-package-20260625T213727Z.json","providers":[],"score":8,"sha256":"f8456d53676fee3304850b00408c0b814e174142dfa365459141e1969c355929","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-exposure-watch-route-review-package-20260625T213727Z.md","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":6022,"kinds":["api","frontend"],"path":"p1-exposure-watch-route-review-package-20260625T213727Z.md","providers":[],"score":8,"sha256":"366cd6d7cc670cf4b5ff41e0c29a6a36382512b5d4dcd9f8171df20481f0861c","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-router-sanitized-review-plan-20260625T201130Z.md","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":2419,"kinds":["api","frontend"],"path":"p1-router-sanitized-review-plan-20260625T201130Z.md","providers":[],"score":8,"sha256":"a9d0f4afaf9cbdc3d42bd261d6e7937c9bde95c9699b5212d0fbd7ca83ffbecd","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.json","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":9445,"kinds":["database","frontend"],"path":"p1-homepage-service-catalog-model-20260625T155520Z.json","providers":[],"score":7,"sha256":"d711ec23a8b77eac5d29c4a90bda7244a389cd9776f2c616d139a45555a327f7","snippets":[],"symbols":{}},{"absolute_path":"/root/homelab-configs-worktree/docs/operations/p1-homepage-service-catalog-model-20260625T155520Z.md","audit_label":"live:/root/homelab-configs-worktree/docs/operations","bytes":2753,"kinds":["database","frontend"],"path":"p1-homepage-service-catalog-model-20260625T155520Z.md","providers":[],"score":7,"sha256":"e39d1091562fe09ab14630905571e054d6477379ad46f4b48cae888bc89478ae","snippets":[],"symbols":{}}]},{"avax_present":false,"files_scanned":682,"git":{"branch":"master","dirty":false,"head":"173b61c40ec2584ac14da018311b15729b86c611","origin":"https://git.gram1.ru/homelab-admin/homelab-desired-state.git","top_level":"/srv/homelab-desired-state"},"host":"pve01","label":"live:/srv/homelab-desired-state","link_present":true,"providers":{},"root":"/srv/homelab-desired-state","root_exists":true,"ssh_target":null,"symbols":{"DOT":3,"LINK":1,"POL":9},"top_matches":[{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","audit_label":"live:/srv/homelab-desired-state","bytes":1724,"kinds":["coin_registry"],"path":"health/crypto-portfolio-remove-grt-browser-smoke.txt","providers":[],"score":13,"sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","audit_label":"live:/srv/homelab-desired-state","bytes":1640,"kinds":["coin_registry"],"path":"health/crypto-portfolio-remove-grt-production-apply.txt","providers":[],"score":13,"sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","audit_label":"live:/srv/homelab-desired-state","bytes":1497,"kinds":["coin_registry"],"path":"health/crypto-portfolio-remove-grt-runtime-dry-run.txt","providers":[],"score":13,"sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/app-states/latest-crypto-portfolio.json","audit_label":"live:/srv/homelab-desired-state","bytes":1138,"kinds":["test"],"path":"app-states/latest-crypto-portfolio.json","providers":[],"score":12,"sha256":"a1265d4a6312fd1b709f33799ccfa02f89fd2a476ee32dd1bd16f2a165ed2805","snippets":[{"line":2,"text":"\"app\": \"crypto-portfolio\","},{"line":6,"text":"\"core-apps:/opt/stacks/crypto-portfolio\""}],"symbols":{}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-chart-health.txt","audit_label":"live:/srv/homelab-desired-state","bytes":139,"kinds":["coin_registry"],"path":"health/crypto-portfolio-chart-health.txt","providers":[],"score":10,"sha256":"69f05461ce0e44cf2595a2357d367e5a2d905f930e6fcf53f9979d03ed847018","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-31T04:50:57Z TYPE=crypto-portfolio-chart-health BAD=0 LIBRARY_OK=true DISK_CACHE_PRESENT=true SYMBOLS=2 STALE_COUNT=2"}],"symbols":{}},{"absolute_path":"/srv/homelab-desired-state/health/xenforo-branding-rollout.txt","audit_label":"live:/srv/homelab-desired-state","bytes":202,"kinds":["coin_registry"],"path":"health/xenforo-branding-rollout.txt","providers":[],"score":10,"sha256":"f8ef93393c5d51c604e2adb907f331d1b070ce0cad08811d79bbe155de7bb7fe","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-16T09:14:29Z TYPE=xenforo-branding TASK=xenforo-branding-rollout-v3 FORUM_COUNT=5 BRAND_FILES=35 DATABASE_CHANGED=NO TEMPLATE_CHANGED=NO STYLE_CHANGED=NO PUBLIC_ASSETS_VERIFIED=YES"}],"symbols":{}}]},{"avax_present":false,"files_scanned":488,"git":{"branch":"master","dirty":false,"head":"173b61c40ec2584ac14da018311b15729b86c611","origin":"https://git.gram1.ru/homelab-admin/homelab-desired-state.git","top_level":"/srv/homelab-desired-state"},"host":"pve01","label":"live:/srv/homelab-desired-state/health","link_present":true,"providers":{},"root":"/srv/homelab-desired-state/health","root_exists":true,"ssh_target":null,"symbols":{"DOT":3,"LINK":1,"POL":9},"top_matches":[{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":1724,"kinds":["coin_registry"],"path":"crypto-portfolio-remove-grt-browser-smoke.txt","providers":[],"score":13,"sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO E"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":1640,"kinds":["coin_registry"],"path":"crypto-portfolio-remove-grt-production-apply.txt","providers":[],"score":13,"sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_R"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":1497,"kinds":["coin_registry"],"path":"crypto-portfolio-remove-grt-runtime-dry-run.txt","providers":[],"score":13,"sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTIO"}],"symbols":{"POL":2}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-chart-health.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":139,"kinds":["coin_registry"],"path":"crypto-portfolio-chart-health.txt","providers":[],"score":10,"sha256":"69f05461ce0e44cf2595a2357d367e5a2d905f930e6fcf53f9979d03ed847018","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-31T04:50:57Z TYPE=crypto-portfolio-chart-health BAD=0 LIBRARY_OK=true DISK_CACHE_PRESENT=true SYMBOLS=2 STALE_COUNT=2"}],"symbols":{}},{"absolute_path":"/srv/homelab-desired-state/health/xenforo-branding-rollout.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":202,"kinds":["coin_registry"],"path":"xenforo-branding-rollout.txt","providers":[],"score":10,"sha256":"f8ef93393c5d51c604e2adb907f331d1b070ce0cad08811d79bbe155de7bb7fe","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-16T09:14:29Z TYPE=xenforo-branding TASK=xenforo-branding-rollout-v3 FORUM_COUNT=5 BRAND_FILES=35 DATABASE_CHANGED=NO TEMPLATE_CHANGED=NO STYLE_CHANGED=NO PUBLIC_ASSETS_VERIFIED=YES"}],"symbols":{}},{"absolute_path":"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-final-seal.txt","audit_label":"live:/srv/homelab-desired-state/health","bytes":1407,"kinds":["frontend"],"path":"crypto-portfolio-ui-center-alert-currency-final-seal.txt","providers":[],"score":9,"sha256":"27b8fcc222008229d43140d44d290ed811365508bb9a193ae65fdf3958e4d8c8","snippets":[{"line":1,"text":"STATUS=OK TS=2026-07-13T08:37:54Z TYPE=crypto-portfolio-ui-center-alert-currency-final-seal BAD=0 DANGLING_IMAGE_REFERENCE_GATE=OK DESIRED_STATE_SYNC_ARTIFACT_GATE=OK APP=crypto-portfolio PRODUCTION_CHANGED=NO_FINAL_SEAL_ONLY APP_SHA256= None:"}],"symbols":{"LINK":6}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":38408,"kinds":["coin_registry"],"path":"errors/regression-cases.json","providers":[],"score":21,"sha256":"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e","snippets":[{"line":37,"text":"\"required_control\": \"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\","},{"line":54,"text":"\"incident\": \"install -m attempted chmod semantics unsupported by pmxcfs.\","}],"symbols":{"LINK":11}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":7694,"kinds":["coin_registry"],"path":"tasks/pve03-r8152-rx-ring-canary-v1/task.json","providers":[],"score":21,"sha256":"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429","snippets":[{"line":138,"text":"\"REG-062-RX-RING-AUTO-ROLLBACK-ON-LINK-OR-QUORUM-FAILURE\","},{"line":139,"text":"\"REG-063-RX-RING-CANARY-SURVIVES-SSH-LINK-LOSS\","}],"symbols":{"LINK":4}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""}],"symbols":{}}]},{"avax_present":false,"files_scanned":70,"git":{"branch":"cr-2026-0004-backup-tail-closure","dirty":true,"head":"bf80410f592f8eb9eaa80695f609870fe3fb85fd","origin":"https://git.gram1.ru/homelab-admin/homelab-ops.git","top_level":"/root/homelab-ops-cr-2026-0004"},"host":"pve01","label":"live:/root/homelab-ops-cr-2026-0004","link_present":true,"providers":{},"root":"/root/homelab-ops-cr-2026-0004","root_exists":true,"ssh_target":null,"symbols":{"DOT":6,"LINK":30},"top_matches":[{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/apply.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":6806,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/phases/apply.sh","providers":[],"score":18,"sha256":"1c713b76c5bb4282d0dfe2c5d18143bfff8a2817089d1b960c4eac333a922fd0","snippets":[{"line":11,"text":"pve02(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\"; }"},{"line":12,"text":"pve03(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\"; }"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-full-handoff-recovery-v1/phases/apply.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":2355,"kinds":["coin_registry"],"path":"tasks/homelab-full-handoff-recovery-v1/phases/apply.sh","providers":[],"score":18,"sha256":"83d9fe06de17f1c3e91525905db74b426a7ab81452e84f0a30f5c8b8f70cebe7","snippets":[{"line":11,"text":"cat \"$PKG/assets/HOMELAB_FULL_HANDOFF_CURRENT_2026-07-10.md\" > /etc/pve/HOMELAB_FULL_HANDOFF_CURRENT.md"},{"line":12,"text":"cmp -s \"$PKG/assets/HOMELAB_FULL_HANDOFF_CURRENT_2026-07-10.md\" /etc/pve/HOMELAB_FULL_HANDOFF_CURRENT.md"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/task.json","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":8432,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/task.json","providers":[],"score":16,"sha256":"7747f19466e5bcd8fafebffa10c83a16ad43f172f66aad0135d91f073d064b32","snippets":[{"line":185,"text":"\"assets/homelab-vm160-remote-backup\","},{"line":186,"text":"\"assets/pve02-worker.sh\","}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/dry-run.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":3348,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/phases/dry-run.sh","providers":[],"score":12,"sha256":"ac4c4149c7539e6ff72599c660dbea9ecb694e22f6c202b35b27ab1c25472f06","snippets":[{"line":11,"text":"pve02(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\"; }"},{"line":12,"text":"pve03(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\"; }"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/preflight.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":4245,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/phases/preflight.sh","providers":[],"score":12,"sha256":"c92d6fe583502b188482c2a07264aff7d4bc946ff5f66b60846f3679e02c0ea3","snippets":[{"line":11,"text":"pve02(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\"; }"},{"line":12,"text":"pve03(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\"; }"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0004/tasks/homelab-backup-tail-closure-v1/phases/prepare.sh","audit_label":"live:/root/homelab-ops-cr-2026-0004","bytes":2617,"kinds":["coin_registry"],"path":"tasks/homelab-backup-tail-closure-v1/phases/prepare.sh","providers":[],"score":12,"sha256":"37871a80d9cbd5554d31557d409af19c2b634fe19b8a967e47de481a189922ff","snippets":[{"line":11,"text":"pve02(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve02-worker.sh\"; }"},{"line":12,"text":"pve03(){ ssh \"${SSH_BASE[@]}\" root@[PRIVATE_IP] bash -s -- \"$@\" < \"$HOMELAB_TASK_DIR/assets/pve03-worker.sh\"; }"}],"symbols":{}}]},{"avax_present":false,"files_scanned":87,"git":{"branch":"cr-2026-0012-skladchik-cookie-refresh-runbook","dirty":false,"head":"f5b22d867ea467987008408e3fb1fb0e17fa7b2e","origin":"https://git.gram1.ru/homelab-admin/homelab-ops.git","top_level":"/root/homelab-ops-cr-2026-0012"},"host":"pve01","label":"live:/root/homelab-ops-cr-2026-0012","link_present":true,"providers":{},"root":"/root/homelab-ops-cr-2026-0012","root_exists":true,"ssh_target":null,"symbols":{"LINK":3},"top_matches":[{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":3549,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","providers":[],"score":20,"sha256":"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9","snippets":[{"line":30,"text":"edge_prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":32,"text":"edge_dry = (TASK / \"assets/edge-dry-run.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0009_skladchik_concurrency_guard.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":8942,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0009_skladchik_concurrency_guard.py","providers":[],"score":20,"sha256":"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513","snippets":[{"line":16,"text":"class SkladchikConcurrencyGuardTests(unittest.TestCase):"},{"line":21,"text":"source = (TASK / \"assets/edge-preflight.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/errors/regression-cases.json","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":26500,"kinds":["coin_registry"],"path":"errors/regression-cases.json","providers":[],"score":18,"sha256":"5dab56a2e73e4a3582d4792b91a0c803d485e68b40791bc456315748b15490a0","snippets":[{"line":37,"text":"\"required_control\": \"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\","},{"line":54,"text":"\"incident\": \"install -m attempted chmod semantics unsupported by pmxcfs.\","}],"symbols":{}}]}],"live_evidence":{"audit_count":10,"avax_present":false,"link_present":true,"providers":{},"ranked_change_files":[{"absolute_path":"/root/homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md","audit_label":"live:/root/homelab-configs-worktree","bytes":528364,"kinds":["api","coin_registry"],"path":"reports/npmplus-api-certificate-endpoint-preflight-20260621.md","providers":[],"score":31,"sha256":"74cafb6f6a21b39aa9ab56df8b5f9e1f4c420b5ca36d178e8631cdbe98943b4a","snippets":[{"line":9,"text":"Inspected local NPMplus API status and app code references to identify a supported certificate object creation path before remediating public routes with certificate_id=0."},{"line":18,"text":"PURPOSE=FIND_SUPPORTED_CERT_OBJECT_CREATION_PATH"},{"line":227,"text":"/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);return}let i=n.createElement(`style`);i.textContent=e,t&&i.setAttribu"},{"line":253,"text":"/app/frontend/assets/index-tlrv6MVo.js:908:`,position:{start:{line:l+u,column:1},end:{line:l+u,column:1}}})}return l+=i,t}if(Object.prototype.hasOwnProperty.call(n,`children`)){var f=l;return n.children=e(n.children),t.push(n),n.position={s"}],"symbols":{"ADA":11,"DOT":4,"LINK":24}},{"absolute_path":"/root/homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md","audit_label":"live:/root/homelab-configs-worktree","bytes":504333,"kinds":["coin_registry"],"path":"reports/mkdocs-refresh-discovery-20260621.md","providers":[],"score":24,"sha256":"d0cfc6d4e78171cadab7432e3cd5269ff03cc3a5632519cc03ec5acc5499d333","snippets":[{"line":239,"text":"./reports/npmplus-api-certificate-endpoint-preflight-20260621.md:227:/app/frontend/assets/index-tlrv6MVo.js:878:`,no=new Map,ro=(e,t)=>{Ba(()=>{if(!e||typeof document>`u`)return;let n=document,r=no.get(n);if(r){t&&r.setAttribute(`nonce`,t);"},{"line":378,"text":"126: labels: '{__address__=\"[PRIVATE_IP]:8000\", __meta_docker_container_id=\"\", __meta_docker_container_label_com_docker_compose_config_hash=\"\", __meta_docker_container_label_com_docker_compose_container_number=\"1\","},{"line":458,"text":"/app/node_modules/knex/lib/knex-builder/internal/config-resolver.js:33: `knex: Unknown configuration option 'client' value ${clientName}. Note that it is case-sensitive, check documentation for supported values.`"},{"line":469,"text":"/app/node_modules/jsonwebtoken/README.md:37:encoded private key for RSA and ECDSA. In case of a private key with passphrase an object `{ key, passphrase }` can be used (based on [crypto documentation](https://nodejs.org/api/crypto.html#cryp"}],"symbols":{"ADA":11,"LINK":14}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":13506,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py","providers":[],"score":23,"sha256":"91b7a0a01b0eaa1db6a726eb8b009726e75bad5e11959be9494d82c5b5bf00df","snippets":[{"line":10,"text":"REMOTE = TASK / \"assets\" / \"pve03-r8152-rx-ring-canary.sh\""},{"line":23,"text":"def test_01_shell_syntax_and_declared_remote_asset(self) -> None:"},{"line":26,"text":"self.assertEqual(self.contract[\"remote_scripts\"], [\"assets/pve03-r8152-rx-ring-canary.sh\"])"},{"line":36,"text":"self.assertTrue(source[\"tx_not_available_supported\"])"}],"symbols":{"LINK":6}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":38408,"kinds":["coin_registry"],"path":"errors/regression-cases.json","providers":[],"score":21,"sha256":"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e","snippets":[{"line":37,"text":"\"required_control\": \"Set the bare repository symbolic HEAD to refs/heads/main and clone main explicitly.\","},{"line":54,"text":"\"incident\": \"install -m attempted chmod semantics unsupported by pmxcfs.\","},{"line":78,"text":"\"incident\": \"A task named for /dev/null retained unrelated backup-tail reads, writes, mutations and assets.\","},{"line":163,"text":"\"required_control\": \"A remotely executed mutation script must be included in the task package, syntax checked, hash pinned, deployed from that asset and covered by rollback.\","}],"symbols":{"LINK":11}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":7694,"kinds":["coin_registry"],"path":"tasks/pve03-r8152-rx-ring-canary-v1/task.json","providers":[],"score":21,"sha256":"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429","snippets":[{"line":138,"text":"\"REG-062-RX-RING-AUTO-ROLLBACK-ON-LINK-OR-QUORUM-FAILURE\","},{"line":139,"text":"\"REG-063-RX-RING-CANARY-SURVIVES-SSH-LINK-LOSS\","},{"line":165,"text":"\"tx_ring_evidence_policy\": \"opaque-string-preserve-exactly; n/a is supported and no TX mutation is allowed\","},{"line":167,"text":"\"tx_not_available_supported\": true"}],"symbols":{"LINK":4}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":51,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":59,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"},{"line":48,"text":"TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\","},{"line":49,"text":"TASK / \"assets/pve01/skladchik-reports-monitor-cookie-update\","}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""},{"line":46,"text":"prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":47,"text":"rollback = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":3549,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","providers":[],"score":20,"sha256":"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9","snippets":[{"line":30,"text":"edge_prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":32,"text":"edge_dry = (TASK / \"assets/edge-dry-run.sh\").read_text(encoding=\"utf-8\")"},{"line":42,"text":"edge = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"},{"line":64,"text":"TASK / \"assets/edge-prepare.sh\","}],"symbols":{}},{"absolute_path":"/root/homelab-ops-cr-2026-0012/tests/test_cr_2026_0009_skladchik_concurrency_guard.py","audit_label":"live:/root/homelab-ops-cr-2026-0012","bytes":8942,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0009_skladchik_concurrency_guard.py","providers":[],"score":20,"sha256":"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513","snippets":[{"line":16,"text":"class SkladchikConcurrencyGuardTests(unittest.TestCase):"},{"line":21,"text":"source = (TASK / \"assets/edge-preflight.sh\").read_text(encoding=\"utf-8\")"},{"line":29,"text":"source = (TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\").read_text(encoding=\"utf-8\")"},{"line":42,"text":"source = (TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":51,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":59,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"},{"line":48,"text":"TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\","},{"line":49,"text":"TASK / \"assets/pve01/skladchik-reports-monitor-cookie-update\","}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""},{"line":46,"text":"prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":47,"text":"rollback = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":3549,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0008_skladchik_snapshot_integrity.py","providers":[],"score":20,"sha256":"e868d8397e1a79f8cc7b37a91c4a0da84d041da04ba6ea9d8e10853de3464fc9","snippets":[{"line":30,"text":"edge_prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":32,"text":"edge_dry = (TASK / \"assets/edge-dry-run.sh\").read_text(encoding=\"utf-8\")"},{"line":42,"text":"edge = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"},{"line":64,"text":"TASK / \"assets/edge-prepare.sh\","}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0009_skladchik_concurrency_guard.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0015","bytes":8942,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0009_skladchik_concurrency_guard.py","providers":[],"score":20,"sha256":"0fe7182cb281e8ad5487f1c5f73f0230971a5027ae44c5ee0f0c6a5d10f8e513","snippets":[{"line":16,"text":"class SkladchikConcurrencyGuardTests(unittest.TestCase):"},{"line":21,"text":"source = (TASK / \"assets/edge-preflight.sh\").read_text(encoding=\"utf-8\")"},{"line":29,"text":"source = (TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\").read_text(encoding=\"utf-8\")"},{"line":42,"text":"source = (TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\").read_text(encoding=\"utf-8\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0006_vm160_task.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","bytes":6046,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0006_vm160_task.py","providers":[],"score":20,"sha256":"4bb8fce2c5f007cf9768381bd4f1eafc8f208da36170e684047e6bad2c670bc2","snippets":[{"line":31,"text":"files = sorted((TASK / \"phases\").glob(\"*.sh\")) + [TASK / \"assets/vm160-cloud-quorum-worker.sh\", TASK / \"assets/pve02-vm160-preflight-probe.sh\", TASK / \"assets/homelab-vm160-remote-backup\"]"},{"line":36,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":51,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"},{"line":59,"text":"w = self.text(\"assets/vm160-cloud-quorum-worker.sh\")"}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0007_skladchik_reauth.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","bytes":4660,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_reauth.py","providers":[],"score":20,"sha256":"9ba7ca8494a22e83bba5479a3a647eb96abaef45ada1b08fa7432f03a64b1765","snippets":[{"line":33,"text":"relative.update(f\"assets/pve01/{name}\" for name in PVE_NAMES)"},{"line":46,"text":"paths += sorted((TASK / \"assets\").glob(\"*.sh\"))"},{"line":48,"text":"TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\","},{"line":49,"text":"TASK / \"assets/pve01/skladchik-reports-monitor-cookie-update\","}],"symbols":{}},{"absolute_path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_cr_2026_0007_skladchik_semantic_repair.py","audit_label":"live:/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","bytes":6711,"kinds":["coin_registry","test"],"path":"tests/test_cr_2026_0007_skladchik_semantic_repair.py","providers":[],"score":20,"sha256":"cfddf97b92b1ce351e733c159aadfccd21193fb0d67b5312fb93aed05e45fd6f","snippets":[{"line":12,"text":"PVE = TASK / \"assets/pve01\""},{"line":13,"text":"EDGE = TASK / \"assets/edge/skladchik-reports-monitor-cookie-update-edge\""},{"line":46,"text":"prepare = (TASK / \"assets/edge-prepare.sh\").read_text(encoding=\"utf-8\")"},{"line":47,"text":"rollback = (TASK / \"assets/edge-rollback.sh\").read_text(encoding=\"utf-8\")"}],"symbols":{}}],"roots_with_files":10,"symbols":{"ADA":22,"DOT":16,"LINK":154,"POL":18,"TRX":4},"total_files_scanned":4141},"live_probe_results":[{"duration_seconds":null,"hostname":"pve01","rc":0,"ssh_target":null,"stderr":null,"target":"local"},{"duration_seconds":0.407,"hostname":null,"rc":1,"ssh_target":"pve02","stderr":"Traceback (most recent call last): File \"\", line 916, in File \"\", line 729, in main File \"\", line 354, in remote_worker File \"\", line 227, in scan_tree File \"\", line 128, in run File \"/usr/lib/python3.13/subprocess.py\", line 554, in run with Popen(*popenargs, **kwargs) as process: ~~~~~^^^^^^^^^^^^^^^^^^^^^^ File \"/usr/lib/python3.13/subprocess.py\", line 1039, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pass_fds, cwd, env, ^^^^^^^^^^^^^^^^^^^ ...<5 lines>... gid, gids, uid, umask, ^^^^^^^^^^^^^^^^^^^^^^ start_new_session, process_group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File \"/usr/lib/python3.13/subprocess.py\", line 1972, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'git'","target":null}],"mutation_outcome":"NO_MUTATION","output_compaction":{"level":0,"limit_bytes":65536,"original_json_bytes":64527},"production_site_changed":false,"rc":0,"required_assets":["AVAX","LINK"],"rollback_restored":null,"rollback_started":false,"schema":2,"status":"OK"} OUTPUT_END CHAT_OUTPUT_END