CHAT_OUTPUT_BEGIN
COMMAND_ID=NEWFI-260921-NEWFDOM-DR221-TARGETED-SOURCE-RECOVERY401R1
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=newfi-dr221-targeted-source-recovery
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=80f90a8aa52c17c2b3fcce96b808593ce8c9e9c60cd6170aea6a907a0727751b
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=2cad6495c7d3263cbdca6d967a94b345e54ecd639b1a267645b4469dbc96f9d6
SANITIZED_OUTPUT_SHA256=2cad6495c7d3263cbdca6d967a94b345e54ecd639b1a267645b4469dbc96f9d6
OUTPUT_BEGIN
ERROR_REGISTER_CHECK=OK
REFERENCE_CHECK=OK
AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED
AUTHORITY_HASHES={"/etc/pve/31_HOMELAB_REFERENCE.md":{"bytes":201129,"sha256":"5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66"},"/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md":{"bytes":302058,"sha256":"3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0"}}
WORKTREE_HEAD=9c4814db67759dc09a5469d254c41a7b73f4d89a
WORKTREE_BRANCH=implementation/newfi-closed-mvp-20260906
WORKTREE_CLEAN=true
WORKTREE_HEAD_MATCH_399=true
EXACT_399={"json_sha256":"bfe2b596226b22144f515eed22afcdda9ff16a87e85c9e6329860f7914646782","txt_sha256":"7ead1ea2779b0285aea060a90496afe6e75c7c7606718bec3a95d36c9053f3a3","valid":true}
EXACT_400={"json_sha256":"09cc4f9d642c29b2b8f05ae68c0cc2b6d64c3525aa48ccd9d47d3cb7a5f13772","txt_sha256":"ab7e08cf1e9dd7c5e9b2193cf364f2ac8b04301f18eaf775cdb9e4d5e732c764","valid":true}
IMMUTABLE_PLAN_PREDECESSOR_399_PASS=true
AUTHORITY_UNCHANGED_FROM_399=true
PLAN_CARRY_FORWARD_FROM_EXACT_399=true
IMMUTABLE_PLAN_SEARCH_FILES=12000
IMMUTABLE_PLAN_DIRECT_MATCHES=[]
IMMUTABLE_PLAN_DIRECT_CHECK=NOT_FOUND
FULLRESTORE_EVIDENCE_COUNT=0
FULLRESTORE_EVIDENCE=[]
CURRENT_RESTORE_DOCS=[{"lines":[{"line":5,"text":"Task 7 accepts the immutable VM211 generation:"},{"line":7,"text":"- Generation: `vm211-pve03-20260906T083057Z`"},{"line":11,"text":"- Canonical sealed state: `/var/lib/homelab-backup/cloud-quorum/vm211/vm211-pve03-20260906T083057Z.json`"},{"line":12,"text":"- Bounded Cloud-A evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T083057Z.json`"},{"line":13,"text":"- Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T083057Z-newfi-full.json`"},{"line":15,"text":"The backup used the current homelab VM cloud-quorum worker/transport contract with a root-only bounded worker copy whose only allowlist extension was VM211 as `pve03/qemu`. The shared worker was not modified."},{"line":23,"text":"- independent Cloud A and Cloud B verification"},{"line":30,"text":"Cloud A was subsequently read back for archive SHA, decompression and Proxmox configuration validation."},{"line":34,"text":"The same sealed generation was reconstructed from Cloud A and restored with native Proxmox `qmrestore` into temporary VMID `9211`."},{"line":39,"text":"- VM9211 was restored stopped."},{"line":44,"text":"- VM9211 was stopped and destroyed after validation."},{"line":45,"text":"- No VM9211 LVM residue remained."},{"line":66,"text":"`NEWFI76` reconstructed the correct bytes and archive SHA but used the temporary basename `archive.vma.zst`. Proxmox `qmrestore` determines archive metadata from the filename and rejected it before restore. Committed-state checks proved no VM9211 residue."},{"line":68,"text":"`NEWFI78` then completed a real isolated restore, but its acceptance verifier used a Cyrillic substring test for the language title. XenForo's authoritative restored record was `language_id=2`, `title=Russian (RU)`, `language_code=ru-RU`; therefore that result was a verifier false negative. Cleanup again left no VM9211 residue."},{"line":70,"text":"`NEWFI80` uses the authoritative language ID/code contract and records the accepted full restore evidence."},{"line":78,"text":"The verifier checks strict SEALED state, bounded Cloud-A recovery evidence, accepted full-restore evidence, VM9211/LV absence and performs a fresh remote seal verification."}],"path":"docs/operations/backup-restore.md","sha256":"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f"},{"lines":[{"line":1,"text":"# Newfi private staging — fresh backup and full restore gate"},{"line":7,"text":"Fresh generation: `vm211-pve03-20260906T213759Z`"},{"line":9,"text":"Sealed state: `/var/lib/homelab-backup/cloud-quorum/vm211/vm211-pve03-20260906T213759Z.json`"},{"line":11,"text":"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`"},{"line":22,"text":"- FINAL181 created the fresh VM211 backup and sealed it with Cloud A + Cloud B quorum 2;"},{"line":24,"text":"- FINAL183 reconstructed that exact sealed archive from Cloud A and verified its SHA256 and size;"},{"line":25,"text":"- temporary VM9211 was restored with unique MAC assignment and all restored NICs link-down before boot;"},{"line":31,"text":"- VM9211, its config, restore LVs and reconstruction work were removed after proof;"},{"line":32,"text":"- source VM211 remained system-running with zero failed units before and after the restore drill;"},{"line":33,"text":"- all ten current implementation verifiers passed again on source VM211 after cleanup;"}],"path":"docs/checkpoints/private-staging-backup-restore.md","sha256":"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5e37"},{"lines":[{"line":7,"text":"GEN=vm211-pve03-20260906T083057Z"},{"line":10,"text":"STATE=/var/lib/homelab-backup/cloud-quorum/vm211/$GEN.json"},{"line":11,"text":"BOUNDED=/var/lib/homelab-backup/vm-restore-validation/vm211/$GEN.json"},{"line":12,"text":"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json"},{"line":109,"text":"    and full.get(\"test_vmid\")==9211"},{"line":115,"text":"    and full.get(\"full_restore_proven\") is True"},{"line":138,"text":"    [\"/usr/sbin/qm\",\"status\",\"9211\"],"},{"line":159,"text":"    \"vm-9211-\" in x"},{"line":169,"text":"        \"vm211\","},{"line":187,"text":"print(\"FULL_RESTORE_PROVEN=true\")"}],"path":"scripts/verify-foundation-restore.sh","sha256":"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186"}]
LOCAL_PROVENANCE_FILES_SCANNED=2433
LOCAL_SCHEMA_HITS=[{"bytes":3166,"lines":[{"line":13,"text":"- Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T083057Z-newfi-full.json`"},{"line":34,"text":"The same sealed generation was reconstructed from Cloud A and restored with native Proxmox `qmrestore` into temporary VMID `9211`."},{"line":66,"text":"`NEWFI76` reconstructed the correct bytes and archive SHA but used the temporary basename `archive.vma.zst`. Proxmox `qmrestore` determines archive metadata from the filename and rejected it before restore. Committed-state checks proved no VM9211 residue."}],"path":"/root/newfi-portal/.worktrees/foundation-newfi-foundation-20260904/docs/operations/backup-restore.md","sha256":"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f"},{"bytes":5019,"lines":[{"line":12,"text":"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json"},{"line":83,"text":"    state.get(\"schema\")==\"homelab-cloud-quorum-payload-v1\""},{"line":97,"text":"    and bounded.get(\"schema\")==\"homelab-vm-restore-validation-v1\""},{"line":105,"text":"    and full.get(\"schema\")==\"newfi-foundation-full-restore-v1\""},{"line":108,"text":"    and full.get(\"source_vmid\")==211"},{"line":109,"text":"    and full.get(\"test_vmid\")==9211"},{"line":115,"text":"    and full.get(\"full_restore_proven\") is True"},{"line":187,"text":"print(\"FULL_RESTORE_PROVEN=true\")"}],"path":"/root/newfi-portal/.worktrees/foundation-newfi-foundation-20260904/scripts/verify-foundation-restore.sh","sha256":"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186"},{"bytes":3166,"lines":[{"line":13,"text":"- Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T083057Z-newfi-full.json`"},{"line":34,"text":"The same sealed generation was reconstructed from Cloud A and restored with native Proxmox `qmrestore` into temporary VMID `9211`."},{"line":66,"text":"`NEWFI76` reconstructed the correct bytes and archive SHA but used the temporary basename `archive.vma.zst`. Proxmox `qmrestore` determines archive metadata from the filename and rejected it before restore. Committed-state checks proved no VM9211 residue."}],"path":"/root/newfi-portal/.worktrees/implementation-newfi-closed-mvp-20260906/docs/operations/backup-restore.md","sha256":"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f"},{"bytes":2138,"lines":[{"line":11,"text":"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`"}],"path":"/root/newfi-portal/.worktrees/implementation-newfi-closed-mvp-20260906/docs/checkpoints/private-staging-backup-restore.md","sha256":"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5e37"},{"bytes":5019,"lines":[{"line":12,"text":"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json"},{"line":83,"text":"    state.get(\"schema\")==\"homelab-cloud-quorum-payload-v1\""},{"line":97,"text":"    and bounded.get(\"schema\")==\"homelab-vm-restore-validation-v1\""},{"line":105,"text":"    and full.get(\"schema\")==\"newfi-foundation-full-restore-v1\""},{"line":108,"text":"    and full.get(\"source_vmid\")==211"},{"line":109,"text":"    and full.get(\"test_vmid\")==9211"},{"line":115,"text":"    and full.get(\"full_restore_proven\") is True"},{"line":187,"text":"print(\"FULL_RESTORE_PROVEN=true\")"}],"path":"/root/newfi-portal/.worktrees/implementation-newfi-closed-mvp-20260906/scripts/verify-foundation-restore.sh","sha256":"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186"},{"bytes":4575,"lines":[{"line":23,"text":"    if obj.get(\"schema\") != \"homelab-cloud-quorum-payload-v1\": return False"},{"line":51,"text":"      e.get(\"schema\")==\"homelab-vm-restore-validation-v1\" and e.get(\"logical_id\")==logical and"},{"line":58,"text":"      e.get(\"full_restore_proven\") is False and e.get(\"result\")==\"OK\""},{"line":78,"text":"      \"schema\":\"homelab-boot-drill-state-export-v1\","},{"line":92,"text":"    print(json.dumps(out,separators=(\",\",\":\"),sort_keys=True))"}],"path":"/usr/local/sbin/homelab-rotating-boot-drill-state-export","sha256":"59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc"},{"bytes":4575,"lines":[{"line":23,"text":"    if obj.get(\"schema\") != \"homelab-cloud-quorum-payload-v1\": return False"},{"line":51,"text":"      e.get(\"schema\")==\"homelab-vm-restore-validation-v1\" and e.get(\"logical_id\")==logical and"},{"line":58,"text":"      e.get(\"full_restore_proven\") is False and e.get(\"result\")==\"OK\""},{"line":78,"text":"      \"schema\":\"homelab-boot-drill-state-export-v1\","},{"line":92,"text":"    print(json.dumps(out,separators=(\",\",\":\"),sort_keys=True))"}],"path":"/usr/local/libexec/homelab-rotating-boot-drill-state-export","sha256":"59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc"},{"bytes":17702,"lines":[{"line":21,"text":"active_backup_restore(){ local rc; if pgrep -af '(^|/)(vzdump|qmrestore|pctrestore|vma|zstd|rclone)([[:space:]]|$)'; then return 0; else rc=$?; [[ \"$rc\" == 1 ]] && return 0; die \"PGREP_FAILED_$rc\" 69; fi; }"},{"line":85,"text":"  jq -e --arg l \"vm${vmid}\" --arg g \"$gen\" --arg s \"$state\" --arg sha \"$sha\" '.schema==\"homelab-vm-restore-validation-v1\" and .logical_id==$l and .generation==$g and .transport_state==\"SEALED\" and .transport_state_file==$s and .restore_source==\"Cloud A\" and .parts_manifest_verified==true and .payload_sha256==$sha and .payload_sha256_verified==true and .payload_decompression_verified==true and .proxmox_config_extract_verified==true and .archive_recovery_readback_verified==true and .bounded_staging==true and .full_local_payload_written==false and .full_restore_proven==false and .result==\"OK\"' \"$f\" >/dev/null"},{"line":118,"text":"  jq -e '.schema==\"homelab-cloud-quorum-payload-v1\" and .status==\"SEALED\" and .cloud_quorum==2 and .cloud_a_verified==true and .cloud_b_verified==true and .part_hashes_verified==true and .seal_written==true and .cloud_a_seal_verified==true and .cloud_b_seal_verified==true and .local_payload_present==false and .local_cleanup==\"OK\"' \"$state\" >/dev/null || die \"RESTORE_REQUIRES_STRICT_SEALED_$vmid\" 65"},{"line":148,"text":"  jq -n --arg logical \"$logical\" --arg generation \"$gen\" --argjson vmid \"$vmid\" --arg vm_type \"$VM_TYPE\" --arg state \"$state\" --arg sha \"$expected_sha\" --arg config_sha \"$config_sha\" --arg level \"$level\" --argjson member_count \"$member_count\" --arg at \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\" '{schema:\"homelab-vm-restore-validation-v1\",logical_id:$logical,generation:$generation,vmid:$vmid,vm_type:$vm_type,transport_state:\"SEALED\",transport_state_file:$state,restore_source:\"Cloud A\",parts_manifest_verified:true,payload_sha256:$sha,payload_sha256_verified:true,payload_decompression_verified:true,proxmox_config_extract_verified:true,proxmox_config_sha256:$config_sha,lxc_member_count:$member_count,archiv"}],"path":"/usr/local/libexec/homelab-vm-cloud-quorum-node-worker","sha256":"91bdd116be865560a38105dffbd1a66d687232035e2359e4a5be4d225e9c61d1"},{"bytes":5271,"lines":[{"line":49,"text":"  if ! jq -e '.schema==\"homelab-cloud-quorum-payload-v1\" and .status==\"SEALED\" and .cloud_quorum==2 and .cloud_a_verified==true and .cloud_b_verified==true and .part_hashes_verified==true and .seal_written==true and .cloud_a_seal_verified==true and .cloud_b_seal_verified==true and .local_payload_present==false and .local_cleanup==\"OK\"' \"$latest\" >/dev/null; then printf 'FRESHNESS_STATUS=OK\\nVMID=%s\\nDECISION=BACKUP_UNVERIFIED\\nREASON=LATEST_STATE_NOT_STRICT_SEALED\\nSTATE_FILE=%s\\n' \"$vmid\" \"$latest\"; return 0; fi"},{"line":52,"text":"  if ! jq -e --arg l \"vm${vmid}\" --arg g \"$generation\" --arg s \"$latest\" --arg sha \"$sha\" '.schema==\"homelab-vm-restore-validation-v1\" and .logical_id==$l and .generation==$g and .transport_state==\"SEALED\" and .transport_state_file==$s and .restore_source==\"Cloud A\" and .parts_manifest_verified==true and .payload_sha256==$sha and .payload_sha256_verified==true and .payload_decompression_verified==true and .proxmox_config_extract_verified==true and .archive_recovery_readback_verified==true and .bounded_staging==true and .full_local_payload_written==false and .full_restore_proven==false and .result==\"OK\"' \"$restore\" >/dev/null; then printf 'FRESHNESS_STATUS=OK\\nVMID=%s\\nDECISION=BACKUP_UNVERIF"}],"path":"/usr/local/libexec/homelab-vm-cloud-quorum-freshness-probe","sha256":"bd6257397c6ea910df2ea0dd57252b33bccd0bbd965175840486dfe5e079bf96"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260903T034236Z.json","sha256":"f81ed0fff5c3bf1b18ac85876acf095089db6e23fea67c25e7b4591c6f6426e6"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260825T024055Z.json","sha256":"93d75776422648f26f4427026f862e8d9d534762a8225c6ee96267af8861e8d6"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260812T175702Z.json","sha256":"c131805a885df07e2ab620ecac440ee09dedd7573ec209804962d99e4e6a9b78"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260814T120018Z.json","sha256":"e5cbacacf6d045c4089e4593ec25b0bd0ac646fbc6b880218835227b75d7103e"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260830T215206Z.json","sha256":"19f80b27af8cecd051468de88ad3eaf978f531edf7ee3310cb4f5e3e98743cfe"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260910T093532Z.json","sha256":"01629f57f58a84858a2addd3b39c3f2702f11dcc3c235ff0b811eb68f7763c99"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260829T055230Z.json","sha256":"54c55120a65a679d79191560cfa4ce36d06024fd8aa0d255b5fcb7603fa47e3d"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260823T074138Z.json","sha256":"4432a1ec79c6c225312f6a848324f8fcbe811fd6b5447843630d8c3cc897594a"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260915T003017Z.json","sha256":"23edabc2ff232cc4a63c1925b7ca7af47a28957cd4ce2712c049c0a1eb9e1151"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260826T104801Z.json","sha256":"3ac11c6db6ecbf018517a3797f32a100289f5104e43500243d2a6bfae9096e13"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260831T234523Z.json","sha256":"42e2514cf1a7b289e58795ae05823e1d90bff25acfc9fd1f014ac0974724c63b"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260904T064613Z.json","sha256":"f7d3d86b8fc4dc7ead6a8b8c2259625bb65c02d046a89042e84c21934d6732d5"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260905T223254Z.json","sha256":"d7f2dd19464e53087398fcfe6cbf4c335cbbcba25e00546a239a9f14bfab82b3"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260826T234419Z.json","sha256":"0d3f575de4bc6cadf9ff949bf3344a5a6578c982fcdc7265ca0f2c1a7177b9eb"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260905T093438Z.json","sha256":"4de0349f56d7f8643a2e9e4147a0fae67843412f763d2cfdf645678c2dabbb25"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260913T203019Z.json","sha256":"dcc89a747399b09bee86ba9d5bcdea62545e267f02d9a2fe78b13c045109ea94"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260830T075421Z.json","sha256":"46080ef31b42050cff03ec9be2f6254e52e8d21ee637c7d5f3876890c78ae253"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260810T065016Z.json","sha256":"bbc5b01f6a5fb6abb7ecaa4f7e4306e8eea7c1bc228bcf91f7bbc7fb7e0df45f"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260912T023301Z.json","sha256":"9a27a199d065fca0cb5d2b720889b32bd73ab5d26cf68e32041ceacb71c077b7"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260912T173439Z.json","sha256":"9dd611fdc9399fe1b9ecd7672b475e919b85f9cc9c656b4e8f827f6136cdddf2"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260906T113503Z.json","sha256":"2649baadc3eaab8f912ef768ff9b6e9f5741ce4286bd501364012c8a8e3eb7ca"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260901T133543Z.json","sha256":"e8450eeec2735f8cb285bbff4a4e03bccd27940747e0d4d6aa403cea055158a8"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260902T145801Z.json","sha256":"d411236d44ff6a0f1bc4712a8431c7c95fe87a7b899d2e95ab7bff6ccaa14723"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260907T144115Z.json","sha256":"ee4dc8949ff9257752075c281aa8fd297912aa283da1ad870381ad780f5d83bd"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260911T003332Z.json","sha256":"3950b3ae2f02c96aebe200593e3cdef5a1444c59ee65daba251a7651b1ccf79c"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260911T133338Z.json","sha256":"52b9a34d69ca682bcac313a2b3d0014a0d45f5acf748f0219ff493e5fdec6e56"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260822T104254Z.json","sha256":"73534cabc8b3ad2ca25059392be661b5db3f35a378d66cbd4afc87fabcae3d0b"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260827T134805Z.json","sha256":"5c87865cd1a6993b549b63f9bfff41537c64c05db0ccbe950d73c34df51b3c0a"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260825T214241Z.json","sha256":"9795390bf1729da1034a20998a30cba7caa84d8a8e4f220c8c237acf938b6617"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260913T063016Z.json","sha256":"cb19800a87307b1b1d48514e6c0b33bee7b93a9fa5b9c1e10c70aa6e6fe47ef7"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260818T025100Z.json","sha256":"890c9fb27b0e6163e3520bd0f232f6071b3a3a20d24497ed5c4ae292aacd8a1d"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260815T110003Z.json","sha256":"2bafe6dc44cedc06b6b895fb2f2c5bdc35f35bf9d71477986408e6d7a9e554a2"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260908T173740Z.json","sha256":"85adc4da662f2be42dd79e544b0f2b4b09c4c3fc9fd6d43c03035a1b89b2b14c"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260908T033223Z.json","sha256":"c8e62c5468a96766004777d34d5a921db8e2f5e812e5ef4452d11f9cd1cce5bb"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260821T140013Z.json","sha256":"af74000f5895105a2984805bede5c7104476eeae1ead6e586d6d9873beed1753"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260902T021026Z.json","sha256":"69a7f78ebc86548352696fcd83ef365d953fbbf0e321b2ff54c7426480509cc1"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260909T194007Z.json","sha256":"122ff1f698eb4b664fdf1303df7580acd26360b2cc38a05434535cc6048d2a23"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260824T054150Z.json","sha256":"9b30524a2b1c88d02f6154588db3f9a3aa7e7b0bfcf5beb4844229aa2bff389b"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260811T195257Z.json","sha256":"1b5445c3781b13fda8d0deff755b11816c2cd54bb33ec82b918714c10e8de3f0"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260813T150314Z.json","sha256":"1ce1ee3dbf660ec09edb7dffbc833e8616bfd53655152e26cfa11fb94a9cd43a"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260903T174843Z.json","sha256":"6963a016af5c8fb1accd46988448af09eb1b0b1e532f74b9dae0dcd93b2bbfc1"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260914T103009Z.json","sha256":"851c4ca7ddd5d89d9c3fd3ea68d6297e59aaa50c132bd751e13541d9baaf3658"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260818T235518Z.json","sha256":"f6dd4c714d1e92a5fbe5b28c14cb6be24d1844ba3dee10c0397ce3fa2308405d"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260915T133259Z.json","sha256":"7f3d0a9d6c5ddb813f013c090b2186ef7bda905185211b8d0307df1a3ff214eb"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260916T023018Z.json","sha256":"28dcd4ad5cfcd760573eccc6019e448965424af4b092393f4d1fd1fb9c1989d8"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260907T013234Z.json","sha256":"7a76a7724cec777bbf5f302c4c73dad5cf788d3b18d8be5ec4d208901e9db16b"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260828T155555Z.json","sha256":"01218ef9b1f78f3ed1b85e8d076783a893424945ec6f32968fa51803790718b9"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260909T063725Z.json","sha256":"4edd32734e89e9933be64146718ffcd958377fe4a1f98678211d38eae417b881"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260817T055309Z.json","sha256":"091abc987e3849e15c0fc15c0da6a0c89247d0f71633f6caf78057fe6b55e8e2"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260828T024020Z.json","sha256":"7c9551c0414a49045e060d729a7dfd3ba429b278dcb808fa18c11e25232423f2"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260819T215743Z.json","sha256":"bb5e20a5df131464f433aae9e3cec0518aa7f3406b1579f6ed199d5fbe67d031"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260829T185633Z.json","sha256":"410190ddfd00ef14f147e6776a7b0e90be1907c2cb7745e0664042d36a0b9db6"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260831T110112Z.json","sha256":"28ee5b38662aee78f267156c9a998b7ceda4c28ffaf709fc0f453d4a662fe2eb"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260904T193324Z.json","sha256":"ed7ad8328e23bd9c18033fe8b244c2598f90f3538e5481e1faf9a88421f30c22"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260816T075403Z.json","sha256":"da860be9fad528f88e30e58100b9fbc51307de2fdf1d03d130cf79e9a13ca08b"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260829T173717Z.json","sha256":"810047d250a3b85f544f1f08aeecc89da22df1461587e719ee38b54264809301"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260901T103753Z.json","sha256":"6b053a00b1d9ebef3be04063bb609fc4a14cc3c64e5d2bdd53f2700962cf1afc"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260827T203624Z.json","sha256":"48399c3c5cdb074bd33b648afe0cca45bdc50be0764e94e422432739786c12d4"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260812T181406Z.json","sha256":"319c961a483a8b3fd746fc980d1c54f64acd0a956e80e90bb8e7df39d8efc1e7"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260817T003018Z.json","sha256":"a1b5786d4f4983e298fad6bc7e0e62b1f7cba71c758ecc3321c1ed0b35a1d31c"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260830T203628Z.json","sha256":"6e22767c5335eed0ad35f3e478666681aab3aa108aa4626893fd1ef09ef8592e"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260902T134020Z.json","sha256":"859fd36372728e6a4daecfe228ad6452cc5551851a51796b4b00587c4a6768ff"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260816T035805Z.json","sha256":"bd952868dc0b024d68ed93010534686065b80861140a17212bc5cceb9f4669c9"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260828T143617Z.json","sha256":"512a0363c465f5f46297fc289f4611c285909e8bda6145293887004852c6c77a"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260819T143015Z.json","sha256":"f972a575f38522a03e2afc9d30bc8877152ec5774e6918ba83f16242ca17faea"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260815T111713Z.json","sha256":"f673cf505bbfb37750067290ffea64ede10643ec4a65b6e83dff94be16980995"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260830T063610Z.json","sha256":"ba1a5cf555b65d81ae4dc60a79d9524bb56980e6f7977304a03d29f1c6f2f6fe"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260810T070246Z.json","sha256":"08e297d26021fb18b02854a679fc64f1e2d885064adb26faef61f77ce2dcf6cd"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260824T183626Z.json","sha256":"cbd7ad301a31edce811643cd0e2c0329bea968177183afee9aedea84c6721f60"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260903T023609Z.json","sha256":"b361bb5f108a0174fec0845402cd7d5d01457266df7eac7a3d163c63bd8d4545"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260821T053611Z.json","sha256":"8f2cd19ed285514de90ee23e98c118f5f17ef6a7ea49c33b2ae2e0406d24b516"}]
GITEA_HISTORY_CANDIDATES_SCANNED=260
GITEA_FULLRESTORE_HISTORY_HITS=[{"lines":[{"line":2,"text":"COMMAND_ID=NEWFI-260921-NEWFDOM-DR221-FULLRESTORE-PRODUCER-DISCOVERY400R1"},{"line":3,"text":"STATUS=OK"},{"line":44,"text":"CURRENT_SCHEMA_MATCHES=[{\"bytes\":4306,\"hits\":[{\"line\":25,\"text\":\"- `verify-foundation-restore.sh` — `cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186` — fresh PASS\"},{\"line\":59,\"text\":\"Fresh `verify-foundation-restore.sh` PASS is part of this acceptance.\"}],\"path\":\"docs/checkpoints/foundation-v1.md\",\"sha256\":\"75ce90e0e021989a6216888eb9f3f7ffe976ae1c136eb317c8d5e46ea64176f0\"},{\"bytes\":2138,\"hits\":[{\"line\":11,\"text\":\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\"}],\"path\":\"docs/checkpoints/private-staging-backup-restore.md\",\"sha256\":\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5"},{"line":46,"text":"PRODUCER_CANDIDATES=[{\"path\":\"scripts/verify-foundation-restore.sh\",\"sha256\":\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\",\"structural\":[{\"line\":12,\"text\":\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\"},{\"line\":83,\"text\":\"    state.get(\\\"schema\\\")==\\\"homelab-cloud-quorum-payload-v1\\\"\"},{\"line\":97,\"text\":\"    and bounded.get(\\\"schema\\\")==\\\"homelab-vm-restore-validation-v1\\\"\"},{\"line\":105,\"text\":\"    and full.get(\\\"schema\\\")==\\\"newfi-foundation-full-restore-v1\\\"\"},{\"line\":108,\"text\":\"    and full.get(\\\"source_vmid\\\")==211\"},{\"line\":109,\"text\":\"    and full.get(\\\"test_vmid\\\")==9211\"},{\"line\":115,\"text\":\"    and full.get(\\\"full_restore_prov"},{"line":48,"text":"VERIFIER_CANDIDATES=[{\"bytes\":5019,\"hits\":[{\"line\":12,\"text\":\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\"},{\"line\":105,\"text\":\"    and full.get(\\\"schema\\\")==\\\"newfi-foundation-full-restore-v1\\\"\"},{\"line\":115,\"text\":\"    and full.get(\\\"full_restore_proven\\\") is True\"}],\"path\":\"scripts/verify-foundation-restore.sh\",\"sha256\":\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\"}]"},{"line":52,"text":"HISTORICAL_SCHEMA_FILES=[{\"blob_sha256\":\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5e37\",\"commit\":\"9c1405588883f2e5ecd0c285d2b1ac561b045ee8\",\"path\":\"docs/checkpoints/private-staging-backup-restore.md\",\"structural\":[{\"line\":11,\"text\":\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\"}],\"subject\":\"docs: seal Newfi private staging backup restore gate\"},{\"blob_sha256\":\"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f\",\"commit\":\"beb054ee374142a9b65c28b0ac985156cfac5da8\",\"path\":\"docs/operations/backup-restore.md\",\"structural\":[{\"line\":13,\"text\":\"- Full isolated restore evidence: `/va"}],"path":"runtime/history/NEWFI-260921-NEWFDOM-DR221-FULLRESTORE-PRODUCER-DISCOVERY400R1.txt","sha256":"ab7e08cf1e9dd7c5e9b2193cf364f2ac8b04301f18eaf775cdb9e4d5e732c764"},{"lines":[{"line":2,"text":"COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76"},{"line":3,"text":"STATUS=OK"},{"line":30,"text":"NEWFI76_BEGIN"},{"line":31,"text":"COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76"},{"line":36,"text":"NEWFI76_GIT={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"exact\":true,\"head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"remote_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\"}"},{"line":37,"text":"NEWFI76_GIT_BLOB={\"bytes\":363,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"}"},{"line":38,"text":"NEWFI76_GIT_BLOB={\"bytes\":5213,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"Service/PortalData.php\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"}"},{"line":39,"text":"NEWFI76_GIT_BLOB={\"bytes\":11021,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"_data/templates.xml\",\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"state\":\"OK\"}"},{"line":40,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":41,"text":"NEWFI76_GIT_BLOB={\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":42,"text":"NEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}"},{"line":43,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":44,"text":"NEWFI76_GIT_BLOB={\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":45,"text":"NEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}"},{"line":46,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":47,"text":"NEWFI76_GIT_BLOB={\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":48,"text":"NEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}"},{"line":49,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":50,"text":"NEWFI76_GIT_BLOB={\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":51,"text":"NEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}"},{"line":52,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":53,"text":"NEWFI76_GIT_BLOB={\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":54,"text":"NEWFI76_GIT_BLOB={\"bytes\":1362,\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rel\":\"_data/templates.xml\",\"sha256\":\"f9cb47d48418a9eae3e5fc8f9dd2830e0499f62f1b82d574362186e7f78a7eb2\",\"state\":\"OK\"}"},{"line":55,"text":"NEWFI76_CLUSTER={\"selected\":{\"210\":{\"name\":\"newfi-prod\",\"node\":\"pve01\",\"status\":\"running\",\"type\":\"qemu\",\"vmid\":210},\"211\":{\"name\":\"newfi-staging\",\"node\":\"pve03\",\"status\":\"running\",\"type\":\"qemu\",\"vmid\":211}},\"state\":\"OK\"}"},{"line":56,"text":"NEWFI76_PRODUCTION_QGA={\"state\":\"COMPLETE\"}"},{"line":57,"text":"NEWFI76_PRODUCTION_ROOT={\"active_candidate\":false,\"cmd_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"config_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"git_matches\":[],\"matches_current\":false,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"Service/PortalData.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"_data/templates.xml\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}},\"rebuild_help\":{\"state\":\"NO_CMD\"},\"root\":\"/var/www/forums/newfi\",\"templates_xml_parse\":\"NOT_AVAILABLE\",\"xf_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}}"},{"line":58,"text":"NEWFI76_PRODUCTION_ROOT={\"active_candidate\":true,\"cmd_php\":{\"bytes\":336,\"mode\":\"0644\",\"sha256\":\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\",\"state\":\"OK\"},\"config_php\":{\"bytes\":310,\"mode\":\"0640\",\"state\":\"OK\"},\"git_matches\":[{\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\"}],\"matches_current\":true,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"bytes\":363,\"mode\":\"0644\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"},\"Service/PortalData.php\":{\"bytes\":5213,\"mode\":\"0644\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"},\"_data/templates.xml\":{\"bytes\":11021,\"mode\":\"0644\",\"s"},{"line":59,"text":"NEWFI76_PRODUCTION_ACTIVE_COUNT=1"},{"line":60,"text":"NEWFI76_STAGING_QGA={\"state\":\"COMPLETE\"}"},{"line":61,"text":"NEWFI76_STAGING_ROOT={\"active_candidate\":false,\"cmd_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"config_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"git_matches\":[],\"matches_current\":false,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"Service/PortalData.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"_data/templates.xml\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}},\"rebuild_help\":{\"state\":\"NO_CMD\"},\"root\":\"/var/www/forums/newfi\",\"templates_xml_parse\":\"NOT_AVAILABLE\",\"xf_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}}"},{"line":62,"text":"NEWFI76_STAGING_ROOT={\"active_candidate\":true,\"cmd_php\":{\"bytes\":336,\"mode\":\"0644\",\"sha256\":\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\",\"state\":\"OK\"},\"config_php\":{\"bytes\":310,\"mode\":\"0640\",\"state\":\"OK\"},\"git_matches\":[{\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\"}],\"matches_current\":true,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"bytes\":363,\"mode\":\"0644\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"},\"Service/PortalData.php\":{\"bytes\":5213,\"mode\":\"0644\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"},\"_data/templates.xml\":{\"bytes\":11021,\"mode\":\"0644\",\"sha2"},{"line":63,"text":"NEWFI76_STAGING_ACTIVE_COUNT=1"},{"line":64,"text":"NEWFI76_GAPS=[]"},{"line":65,"text":"NEWFI76_MUTATION_SCOPE=NONE_READ_ONLY"},{"line":66,"text":"NEWFI76_DECISION=PORTAL_ROOT_IDENTITY_PROVEN"},{"line":67,"text":"NEWFI76_COLLECTION_COMPLETE=true"},{"line":68,"text":"NEWFI76_END"}],"path":"runtime/history/NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76.txt","sha256":"d69446b6a16aeec4daa07c4be4e8ccaa334dda78bee3581eac831c4718553eb2"}]
NON_VERIFIER_PRODUCER_HITS=[{"bytes":4575,"lines":[{"line":23,"text":"    if obj.get(\"schema\") != \"homelab-cloud-quorum-payload-v1\": return False"},{"line":51,"text":"      e.get(\"schema\")==\"homelab-vm-restore-validation-v1\" and e.get(\"logical_id\")==logical and"},{"line":58,"text":"      e.get(\"full_restore_proven\") is False and e.get(\"result\")==\"OK\""},{"line":78,"text":"      \"schema\":\"homelab-boot-drill-state-export-v1\","},{"line":92,"text":"    print(json.dumps(out,separators=(\",\",\":\"),sort_keys=True))"}],"path":"/usr/local/sbin/homelab-rotating-boot-drill-state-export","sha256":"59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc"},{"bytes":4575,"lines":[{"line":23,"text":"    if obj.get(\"schema\") != \"homelab-cloud-quorum-payload-v1\": return False"},{"line":51,"text":"      e.get(\"schema\")==\"homelab-vm-restore-validation-v1\" and e.get(\"logical_id\")==logical and"},{"line":58,"text":"      e.get(\"full_restore_proven\") is False and e.get(\"result\")==\"OK\""},{"line":78,"text":"      \"schema\":\"homelab-boot-drill-state-export-v1\","},{"line":92,"text":"    print(json.dumps(out,separators=(\",\",\":\"),sort_keys=True))"}],"path":"/usr/local/libexec/homelab-rotating-boot-drill-state-export","sha256":"59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc"},{"bytes":17702,"lines":[{"line":21,"text":"active_backup_restore(){ local rc; if pgrep -af '(^|/)(vzdump|qmrestore|pctrestore|vma|zstd|rclone)([[:space:]]|$)'; then return 0; else rc=$?; [[ \"$rc\" == 1 ]] && return 0; die \"PGREP_FAILED_$rc\" 69; fi; }"},{"line":85,"text":"  jq -e --arg l \"vm${vmid}\" --arg g \"$gen\" --arg s \"$state\" --arg sha \"$sha\" '.schema==\"homelab-vm-restore-validation-v1\" and .logical_id==$l and .generation==$g and .transport_state==\"SEALED\" and .transport_state_file==$s and .restore_source==\"Cloud A\" and .parts_manifest_verified==true and .payload_sha256==$sha and .payload_sha256_verified==true and .payload_decompression_verified==true and .proxmox_config_extract_verified==true and .archive_recovery_readback_verified==true and .bounded_staging==true and .full_local_payload_written==false and .full_restore_proven==false and .result==\"OK\"' \"$f\" >/dev/null"},{"line":118,"text":"  jq -e '.schema==\"homelab-cloud-quorum-payload-v1\" and .status==\"SEALED\" and .cloud_quorum==2 and .cloud_a_verified==true and .cloud_b_verified==true and .part_hashes_verified==true and .seal_written==true and .cloud_a_seal_verified==true and .cloud_b_seal_verified==true and .local_payload_present==false and .local_cleanup==\"OK\"' \"$state\" >/dev/null || die \"RESTORE_REQUIRES_STRICT_SEALED_$vmid\" 65"},{"line":148,"text":"  jq -n --arg logical \"$logical\" --arg generation \"$gen\" --argjson vmid \"$vmid\" --arg vm_type \"$VM_TYPE\" --arg state \"$state\" --arg sha \"$expected_sha\" --arg config_sha \"$config_sha\" --arg level \"$level\" --argjson member_count \"$member_count\" --arg at \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\" '{schema:\"homelab-vm-restore-validation-v1\",logical_id:$logical,generation:$generation,vmid:$vmid,vm_type:$vm_type,transport_state:\"SEALED\",transport_state_file:$state,restore_source:\"Cloud A\",parts_manifest_verified:true,payload_sha256:$sha,payload_sha256_verified:true,payload_decompression_verified:true,proxmox_config_extract_verified:true,proxmox_config_sha256:$config_sha,lxc_member_count:$member_count,archiv"}],"path":"/usr/local/libexec/homelab-vm-cloud-quorum-node-worker","sha256":"91bdd116be865560a38105dffbd1a66d687232035e2359e4a5be4d225e9c61d1"},{"bytes":5271,"lines":[{"line":49,"text":"  if ! jq -e '.schema==\"homelab-cloud-quorum-payload-v1\" and .status==\"SEALED\" and .cloud_quorum==2 and .cloud_a_verified==true and .cloud_b_verified==true and .part_hashes_verified==true and .seal_written==true and .cloud_a_seal_verified==true and .cloud_b_seal_verified==true and .local_payload_present==false and .local_cleanup==\"OK\"' \"$latest\" >/dev/null; then printf 'FRESHNESS_STATUS=OK\\nVMID=%s\\nDECISION=BACKUP_UNVERIFIED\\nREASON=LATEST_STATE_NOT_STRICT_SEALED\\nSTATE_FILE=%s\\n' \"$vmid\" \"$latest\"; return 0; fi"},{"line":52,"text":"  if ! jq -e --arg l \"vm${vmid}\" --arg g \"$generation\" --arg s \"$latest\" --arg sha \"$sha\" '.schema==\"homelab-vm-restore-validation-v1\" and .logical_id==$l and .generation==$g and .transport_state==\"SEALED\" and .transport_state_file==$s and .restore_source==\"Cloud A\" and .parts_manifest_verified==true and .payload_sha256==$sha and .payload_sha256_verified==true and .payload_decompression_verified==true and .proxmox_config_extract_verified==true and .archive_recovery_readback_verified==true and .bounded_staging==true and .full_local_payload_written==false and .full_restore_proven==false and .result==\"OK\"' \"$restore\" >/dev/null; then printf 'FRESHNESS_STATUS=OK\\nVMID=%s\\nDECISION=BACKUP_UNVERIF"}],"path":"/usr/local/libexec/homelab-vm-cloud-quorum-freshness-probe","sha256":"bd6257397c6ea910df2ea0dd57252b33bccd0bbd965175840486dfe5e079bf96"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260903T034236Z.json","sha256":"f81ed0fff5c3bf1b18ac85876acf095089db6e23fea67c25e7b4591c6f6426e6"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260825T024055Z.json","sha256":"93d75776422648f26f4427026f862e8d9d534762a8225c6ee96267af8861e8d6"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260812T175702Z.json","sha256":"c131805a885df07e2ab620ecac440ee09dedd7573ec209804962d99e4e6a9b78"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260814T120018Z.json","sha256":"e5cbacacf6d045c4089e4593ec25b0bd0ac646fbc6b880218835227b75d7103e"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260830T215206Z.json","sha256":"19f80b27af8cecd051468de88ad3eaf978f531edf7ee3310cb4f5e3e98743cfe"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260910T093532Z.json","sha256":"01629f57f58a84858a2addd3b39c3f2702f11dcc3c235ff0b811eb68f7763c99"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260829T055230Z.json","sha256":"54c55120a65a679d79191560cfa4ce36d06024fd8aa0d255b5fcb7603fa47e3d"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260823T074138Z.json","sha256":"4432a1ec79c6c225312f6a848324f8fcbe811fd6b5447843630d8c3cc897594a"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260915T003017Z.json","sha256":"23edabc2ff232cc4a63c1925b7ca7af47a28957cd4ce2712c049c0a1eb9e1151"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260826T104801Z.json","sha256":"3ac11c6db6ecbf018517a3797f32a100289f5104e43500243d2a6bfae9096e13"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260831T234523Z.json","sha256":"42e2514cf1a7b289e58795ae05823e1d90bff25acfc9fd1f014ac0974724c63b"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260904T064613Z.json","sha256":"f7d3d86b8fc4dc7ead6a8b8c2259625bb65c02d046a89042e84c21934d6732d5"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260905T223254Z.json","sha256":"d7f2dd19464e53087398fcfe6cbf4c335cbbcba25e00546a239a9f14bfab82b3"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260826T234419Z.json","sha256":"0d3f575de4bc6cadf9ff949bf3344a5a6578c982fcdc7265ca0f2c1a7177b9eb"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260905T093438Z.json","sha256":"4de0349f56d7f8643a2e9e4147a0fae67843412f763d2cfdf645678c2dabbb25"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260913T203019Z.json","sha256":"dcc89a747399b09bee86ba9d5bcdea62545e267f02d9a2fe78b13c045109ea94"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260830T075421Z.json","sha256":"46080ef31b42050cff03ec9be2f6254e52e8d21ee637c7d5f3876890c78ae253"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260810T065016Z.json","sha256":"bbc5b01f6a5fb6abb7ecaa4f7e4306e8eea7c1bc228bcf91f7bbc7fb7e0df45f"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260912T023301Z.json","sha256":"9a27a199d065fca0cb5d2b720889b32bd73ab5d26cf68e32041ceacb71c077b7"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260912T173439Z.json","sha256":"9dd611fdc9399fe1b9ecd7672b475e919b85f9cc9c656b4e8f827f6136cdddf2"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260906T113503Z.json","sha256":"2649baadc3eaab8f912ef768ff9b6e9f5741ce4286bd501364012c8a8e3eb7ca"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260901T133543Z.json","sha256":"e8450eeec2735f8cb285bbff4a4e03bccd27940747e0d4d6aa403cea055158a8"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260902T145801Z.json","sha256":"d411236d44ff6a0f1bc4712a8431c7c95fe87a7b899d2e95ab7bff6ccaa14723"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260907T144115Z.json","sha256":"ee4dc8949ff9257752075c281aa8fd297912aa283da1ad870381ad780f5d83bd"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260911T003332Z.json","sha256":"3950b3ae2f02c96aebe200593e3cdef5a1444c59ee65daba251a7651b1ccf79c"},{"bytes":1021,"lines":[{"line":2,"text":"  \"schema\": \"homelab-vm-restore-validation-v1\","},{"line":21,"text":"  \"full_restore_proven\": false,"}],"path":"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260911T133338Z.json","sha256":"52b9a34d69ca682bcac313a2b3d0014a0d45f5acf748f0219ff493e5fdec6e56"}]
SUCCESSFUL_HISTORY_PROVENANCE=[{"lines":[{"line":2,"text":"COMMAND_ID=NEWFI-260921-NEWFDOM-DR221-FULLRESTORE-PRODUCER-DISCOVERY400R1"},{"line":3,"text":"STATUS=OK"},{"line":44,"text":"CURRENT_SCHEMA_MATCHES=[{\"bytes\":4306,\"hits\":[{\"line\":25,\"text\":\"- `verify-foundation-restore.sh` — `cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186` — fresh PASS\"},{\"line\":59,\"text\":\"Fresh `verify-foundation-restore.sh` PASS is part of this acceptance.\"}],\"path\":\"docs/checkpoints/foundation-v1.md\",\"sha256\":\"75ce90e0e021989a6216888eb9f3f7ffe976ae1c136eb317c8d5e46ea64176f0\"},{\"bytes\":2138,\"hits\":[{\"line\":11,\"text\":\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\"}],\"path\":\"docs/checkpoints/private-staging-backup-restore.md\",\"sha256\":\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5"},{"line":46,"text":"PRODUCER_CANDIDATES=[{\"path\":\"scripts/verify-foundation-restore.sh\",\"sha256\":\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\",\"structural\":[{\"line\":12,\"text\":\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\"},{\"line\":83,\"text\":\"    state.get(\\\"schema\\\")==\\\"homelab-cloud-quorum-payload-v1\\\"\"},{\"line\":97,\"text\":\"    and bounded.get(\\\"schema\\\")==\\\"homelab-vm-restore-validation-v1\\\"\"},{\"line\":105,\"text\":\"    and full.get(\\\"schema\\\")==\\\"newfi-foundation-full-restore-v1\\\"\"},{\"line\":108,\"text\":\"    and full.get(\\\"source_vmid\\\")==211\"},{\"line\":109,\"text\":\"    and full.get(\\\"test_vmid\\\")==9211\"},{\"line\":115,\"text\":\"    and full.get(\\\"full_restore_prov"},{"line":48,"text":"VERIFIER_CANDIDATES=[{\"bytes\":5019,\"hits\":[{\"line\":12,\"text\":\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\"},{\"line\":105,\"text\":\"    and full.get(\\\"schema\\\")==\\\"newfi-foundation-full-restore-v1\\\"\"},{\"line\":115,\"text\":\"    and full.get(\\\"full_restore_proven\\\") is True\"}],\"path\":\"scripts/verify-foundation-restore.sh\",\"sha256\":\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\"}]"},{"line":52,"text":"HISTORICAL_SCHEMA_FILES=[{\"blob_sha256\":\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5e37\",\"commit\":\"9c1405588883f2e5ecd0c285d2b1ac561b045ee8\",\"path\":\"docs/checkpoints/private-staging-backup-restore.md\",\"structural\":[{\"line\":11,\"text\":\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\"}],\"subject\":\"docs: seal Newfi private staging backup restore gate\"},{\"blob_sha256\":\"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f\",\"commit\":\"beb054ee374142a9b65c28b0ac985156cfac5da8\",\"path\":\"docs/operations/backup-restore.md\",\"structural\":[{\"line\":13,\"text\":\"- Full isolated restore evidence: `/va"}],"path":"runtime/history/NEWFI-260921-NEWFDOM-DR221-FULLRESTORE-PRODUCER-DISCOVERY400R1.txt","sha256":"ab7e08cf1e9dd7c5e9b2193cf364f2ac8b04301f18eaf775cdb9e4d5e732c764"},{"lines":[{"line":2,"text":"COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76"},{"line":3,"text":"STATUS=OK"},{"line":30,"text":"NEWFI76_BEGIN"},{"line":31,"text":"COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76"},{"line":36,"text":"NEWFI76_GIT={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"exact\":true,\"head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"remote_head\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\"}"},{"line":37,"text":"NEWFI76_GIT_BLOB={\"bytes\":363,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"}"},{"line":38,"text":"NEWFI76_GIT_BLOB={\"bytes\":5213,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"Service/PortalData.php\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"}"},{"line":39,"text":"NEWFI76_GIT_BLOB={\"bytes\":11021,\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\",\"rel\":\"_data/templates.xml\",\"sha256\":\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\",\"state\":\"OK\"}"},{"line":40,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":41,"text":"NEWFI76_GIT_BLOB={\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":42,"text":"NEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"label\":\"STYLE199B\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}"},{"line":43,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":44,"text":"NEWFI76_GIT_BLOB={\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":45,"text":"NEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"4ade504e649ce35d05322a6b69d758a1ef1803b5\",\"label\":\"BRAND198\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}"},{"line":46,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":47,"text":"NEWFI76_GIT_BLOB={\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":48,"text":"NEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\",\"label\":\"PROD195\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}"},{"line":49,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":50,"text":"NEWFI76_GIT_BLOB={\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":51,"text":"NEWFI76_GIT_BLOB={\"bytes\":1461,\"commit\":\"ca07bfc20953585887f7cc2f1d443cf8313912c8\",\"label\":\"PortalNav\",\"rel\":\"_data/templates.xml\",\"sha256\":\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\",\"state\":\"OK\"}"},{"line":52,"text":"NEWFI76_GIT_BLOB={\"bytes\":247,\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rel\":\"Pub/Controller/Portal.php\",\"sha256\":\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\",\"state\":\"OK\"}"},{"line":53,"text":"NEWFI76_GIT_BLOB={\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rc\":128,\"rel\":\"Service/PortalData.php\",\"state\":\"ABSENT\"}"},{"line":54,"text":"NEWFI76_GIT_BLOB={\"bytes\":1362,\"commit\":\"82dd2066df377ba9d904f68f90898e009413eec9\",\"label\":\"PortalInitial\",\"rel\":\"_data/templates.xml\",\"sha256\":\"f9cb47d48418a9eae3e5fc8f9dd2830e0499f62f1b82d574362186e7f78a7eb2\",\"state\":\"OK\"}"},{"line":55,"text":"NEWFI76_CLUSTER={\"selected\":{\"210\":{\"name\":\"newfi-prod\",\"node\":\"pve01\",\"status\":\"running\",\"type\":\"qemu\",\"vmid\":210},\"211\":{\"name\":\"newfi-staging\",\"node\":\"pve03\",\"status\":\"running\",\"type\":\"qemu\",\"vmid\":211}},\"state\":\"OK\"}"},{"line":56,"text":"NEWFI76_PRODUCTION_QGA={\"state\":\"COMPLETE\"}"},{"line":57,"text":"NEWFI76_PRODUCTION_ROOT={\"active_candidate\":false,\"cmd_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"config_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"git_matches\":[],\"matches_current\":false,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"Service/PortalData.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"_data/templates.xml\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}},\"rebuild_help\":{\"state\":\"NO_CMD\"},\"root\":\"/var/www/forums/newfi\",\"templates_xml_parse\":\"NOT_AVAILABLE\",\"xf_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}}"},{"line":58,"text":"NEWFI76_PRODUCTION_ROOT={\"active_candidate\":true,\"cmd_php\":{\"bytes\":336,\"mode\":\"0644\",\"sha256\":\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\",\"state\":\"OK\"},\"config_php\":{\"bytes\":310,\"mode\":\"0640\",\"state\":\"OK\"},\"git_matches\":[{\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\"}],\"matches_current\":true,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"bytes\":363,\"mode\":\"0644\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"},\"Service/PortalData.php\":{\"bytes\":5213,\"mode\":\"0644\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"},\"_data/templates.xml\":{\"bytes\":11021,\"mode\":\"0644\",\"s"},{"line":59,"text":"NEWFI76_PRODUCTION_ACTIVE_COUNT=1"},{"line":60,"text":"NEWFI76_STAGING_QGA={\"state\":\"COMPLETE\"}"},{"line":61,"text":"NEWFI76_STAGING_ROOT={\"active_candidate\":false,\"cmd_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"config_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"git_matches\":[],\"matches_current\":false,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"Service/PortalData.php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"},\"_data/templates.xml\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}},\"rebuild_help\":{\"state\":\"NO_CMD\"},\"root\":\"/var/www/forums/newfi\",\"templates_xml_parse\":\"NOT_AVAILABLE\",\"xf_php\":{\"error\":\"FileNotFoundError\",\"state\":\"MISSING\"}}"},{"line":62,"text":"NEWFI76_STAGING_ROOT={\"active_candidate\":true,\"cmd_php\":{\"bytes\":336,\"mode\":\"0644\",\"sha256\":\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\",\"state\":\"OK\"},\"config_php\":{\"bytes\":310,\"mode\":\"0640\",\"state\":\"OK\"},\"git_matches\":[{\"commit\":\"a1efc08a15ba91971c2297d886b25ca2097e6935\",\"label\":\"Portal200\"}],\"matches_current\":true,\"portal_files\":{\"Pub/Controller/Portal.php\":{\"bytes\":363,\"mode\":\"0644\",\"sha256\":\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\",\"state\":\"OK\"},\"Service/PortalData.php\":{\"bytes\":5213,\"mode\":\"0644\",\"sha256\":\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\",\"state\":\"OK\"},\"_data/templates.xml\":{\"bytes\":11021,\"mode\":\"0644\",\"sha2"},{"line":63,"text":"NEWFI76_STAGING_ACTIVE_COUNT=1"},{"line":64,"text":"NEWFI76_GAPS=[]"},{"line":65,"text":"NEWFI76_MUTATION_SCOPE=NONE_READ_ONLY"},{"line":66,"text":"NEWFI76_DECISION=PORTAL_ROOT_IDENTITY_PROVEN"},{"line":67,"text":"NEWFI76_COLLECTION_COMPLETE=true"},{"line":68,"text":"NEWFI76_END"}],"path":"runtime/history/NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76.txt","sha256":"d69446b6a16aeec4daa07c4be4e8ccaa334dda78bee3581eac831c4718553eb2"}]
FULLRESTORE_EVIDENCE_PROVEN=false
IMMUTABLE_PLAN_RECOVERY_RESOLVED=true
FULLRESTORE_PRODUCER_RECOVERY_RESOLVED=true
DECISION=PASS_TARGETED_READONLY_SOURCE_RECOVERY
NEXT_GATE=RUN_DR221_FINAL_CURRENT_PRODUCTION_BACKUP_RESTORE_ACCEPTANCE
ACTIVE_MAJOR_STAGE=DR221
MAJOR_STAGES_REMAINING=1
HELPERS_EXECUTED=0
CLOUD_READS=GITEA_PUBLIC_ONLY
CLOUD_WRITES=0
VM_MUTATIONS=0
PRODUCTION_MUTATION=false
HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"NEWFI-260921-NEWFDOM-DR221-TARGETED-SOURCE-RECOVERY401R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1}

OUTPUT_END
CHAT_OUTPUT_END
