← back to Ticket System
Verify retained backup objects and restore five scoped renders
1809c161af09756b1db81875f42c5888812a1cd0 · 2026-09-08 06:39:28 -0700 · Steve Abrams
Files touched
A data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-five-render-proof.jsonA data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-pins.jsonA data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-result.jsonA data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.pyA data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-five-render-proof.jsonA data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-independent-cli-proof.jsonA data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-original-capture-proof.jsonA data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-real-integrity-proof.jsonA verification/cycle-20260908T1322Z-m4gNE5-integrity.json
Diff
commit 1809c161af09756b1db81875f42c5888812a1cd0
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue Sep 8 06:39:28 2026 -0700
Verify retained backup objects and restore five scoped renders
---
.../ops-five-render-proof.json | 339 +++++++++++++
.../ops-object-pins.json | 10 +
.../ops-object-result.json | 146 ++++++
.../ops-object-verifier-v1.py | 411 +++++++++++++++
.../parent-five-render-proof.json | 46 ++
.../parent-independent-cli-proof.json | 550 +++++++++++++++++++++
.../parent-original-capture-proof.json | 11 +
.../parent-real-integrity-proof.json | 42 ++
.../cycle-20260908T1322Z-m4gNE5-integrity.json | 24 +
9 files changed, 1579 insertions(+)
diff --git a/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-five-render-proof.json b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-five-render-proof.json
new file mode 100644
index 00000000..6d805afa
--- /dev/null
+++ b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-five-render-proof.json
@@ -0,0 +1,339 @@
+{
+ "started_epoch": 1788874519.4649549,
+ "data_deadline_epoch": 1788875002.896985,
+ "restores": [
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-02-25.mp4",
+ "captured_ref": "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "git_oid": "efbba50e8faff2c98d5cd58654619ffcc85b7e92",
+ "persisted_git_oid": "efbba50e8faff2c98d5cd58654619ffcc85b7e92",
+ "bytes": 54076657,
+ "restored_sha256": "02c63daaf51ec448e1e81038515573b90b493020ca63e64b815b13c3348c7807",
+ "current_local_sha256": "02c63daaf51ec448e1e81038515573b90b493020ca63e64b815b13c3348c7807",
+ "current_local_stable": true,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-02-25.mp4",
+ "verdict": "PASS"
+ },
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-29-23.mp4",
+ "captured_ref": "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "git_oid": "b43f1788d2681871ff6ac918be7b5857a2e5cdd5",
+ "persisted_git_oid": "b43f1788d2681871ff6ac918be7b5857a2e5cdd5",
+ "bytes": 57230151,
+ "restored_sha256": "78958f5c3bd6eb81c4859f51171636c2e39b60311922793dba8126a224e95ee2",
+ "current_local_sha256": "78958f5c3bd6eb81c4859f51171636c2e39b60311922793dba8126a224e95ee2",
+ "current_local_stable": true,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-29-23.mp4",
+ "verdict": "PASS"
+ },
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-22-08.mp4",
+ "captured_ref": "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "git_oid": "4744083a7a07447f55cde597cdbb14b530e82371",
+ "persisted_git_oid": "4744083a7a07447f55cde597cdbb14b530e82371",
+ "bytes": 57075907,
+ "restored_sha256": "86af0a15c7feeaadacb6cfa72cfdf24c1b42ebb7112a0dc8f95056c7c1190712",
+ "current_local_sha256": "86af0a15c7feeaadacb6cfa72cfdf24c1b42ebb7112a0dc8f95056c7c1190712",
+ "current_local_stable": true,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-22-08.mp4",
+ "verdict": "PASS"
+ },
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-16-11.mp4",
+ "captured_ref": "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "git_oid": "f868b83b92bc085314fd49cd1f791c7ea3b114bf",
+ "persisted_git_oid": "f868b83b92bc085314fd49cd1f791c7ea3b114bf",
+ "bytes": 31563007,
+ "restored_sha256": "3757002784c48ce9055d75a90420ee59e0853c054b5009cc3105467876bbaf40",
+ "current_local_sha256": "3757002784c48ce9055d75a90420ee59e0853c054b5009cc3105467876bbaf40",
+ "current_local_stable": true,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-16-11.mp4",
+ "verdict": "PASS"
+ },
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-49-53.mp4",
+ "captured_ref": "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "git_oid": "dbf6ed038c5be1d119c9f8956cbe83dd72bb1e42",
+ "persisted_git_oid": "dbf6ed038c5be1d119c9f8956cbe83dd72bb1e42",
+ "bytes": 28635596,
+ "restored_sha256": "8d86bfc65054c3368209d2875133ed5f7511a231b46973fa5326bcad5d845d08",
+ "current_local_sha256": "8d86bfc65054c3368209d2875133ed5f7511a231b46973fa5326bcad5d845d08",
+ "current_local_stable": true,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-49-53.mp4",
+ "verdict": "PASS"
+ }
+ ],
+ "source_scope": "historical captured snapshot; current local bytes compared only for these five paths",
+ "all_restored_files_retained": true,
+ "commands": [
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "ls-tree",
+ "-rz",
+ "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "--",
+ "rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-02-25.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "cat-file",
+ "-s",
+ "efbba50e8faff2c98d5cd58654619ffcc85b7e92"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "cat-file",
+ "blob",
+ "efbba50e8faff2c98d5cd58654619ffcc85b7e92"
+ ],
+ "exit": 0,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-02-25.mp4",
+ "stderr": "/private/tmp/ops-TK10928-integrity.SDj0y8/restore-rentv-slideshow_2026-07-29_07-02-25.stderr"
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "hash-object",
+ "--",
+ "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-02-25.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "ls-tree",
+ "-rz",
+ "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "--",
+ "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-29-23.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "cat-file",
+ "-s",
+ "b43f1788d2681871ff6ac918be7b5857a2e5cdd5"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "cat-file",
+ "blob",
+ "b43f1788d2681871ff6ac918be7b5857a2e5cdd5"
+ ],
+ "exit": 0,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-29-23.mp4",
+ "stderr": "/private/tmp/ops-TK10928-integrity.SDj0y8/restore-rentv-slideshow_2026-07-29_08-29-23.stderr"
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "hash-object",
+ "--",
+ "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-29-23.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "ls-tree",
+ "-rz",
+ "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "--",
+ "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-22-08.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "cat-file",
+ "-s",
+ "4744083a7a07447f55cde597cdbb14b530e82371"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "cat-file",
+ "blob",
+ "4744083a7a07447f55cde597cdbb14b530e82371"
+ ],
+ "exit": 0,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-22-08.mp4",
+ "stderr": "/private/tmp/ops-TK10928-integrity.SDj0y8/restore-rentv-slideshow_2026-07-29_08-22-08.stderr"
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "hash-object",
+ "--",
+ "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-22-08.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "ls-tree",
+ "-rz",
+ "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "--",
+ "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-16-11.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "cat-file",
+ "-s",
+ "f868b83b92bc085314fd49cd1f791c7ea3b114bf"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "cat-file",
+ "blob",
+ "f868b83b92bc085314fd49cd1f791c7ea3b114bf"
+ ],
+ "exit": 0,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-16-11.mp4",
+ "stderr": "/private/tmp/ops-TK10928-integrity.SDj0y8/restore-rentv-slideshow_2026-07-29_08-16-11.stderr"
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "hash-object",
+ "--",
+ "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-16-11.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "ls-tree",
+ "-rz",
+ "ad275a5b3bbabd66d23893af977e96553f969eaa",
+ "--",
+ "rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-49-53.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "cat-file",
+ "-s",
+ "dbf6ed038c5be1d119c9f8956cbe83dd72bb1e42"
+ ],
+ "exit": 0,
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "cat-file",
+ "blob",
+ "dbf6ed038c5be1d119c9f8956cbe83dd72bb1e42"
+ ],
+ "exit": 0,
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-49-53.mp4",
+ "stderr": "/private/tmp/ops-TK10928-integrity.SDj0y8/restore-rentv-slideshow_2026-07-29_07-49-53.stderr"
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "gc.auto=0",
+ "hash-object",
+ "--",
+ "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-49-53.mp4"
+ ],
+ "exit": 0,
+ "stderr": ""
+ }
+ ],
+ "object_validation_run_id": "ce98da6a-4528-4255-9c07-30543c8a1ea9",
+ "verdict": "PASS",
+ "finished_epoch": 1788874524.452112,
+ "combined_data_phase_seconds": 121.5551278591156
+}
diff --git a/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-pins.json b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-pins.json
new file mode 100644
index 00000000..8dbbdc1a
--- /dev/null
+++ b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-pins.json
@@ -0,0 +1,10 @@
+{
+ "version": "ops-object-verifier-v1",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "source": "/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "inventory_sha256": "3d165016ebb5e06b18b97124d5d06a5e0b528a34c08f895a62544cfff72add12",
+ "manifest_sha256": "02f539816fccb989c307bece019b48c3dadf8bbead1c4f977395af3053c78746",
+ "object_count": 14061,
+ "logical_bytes": 60348642328,
+ "require_immutable": true
+}
diff --git a/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-result.json b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-result.json
new file mode 100644
index 00000000..c01b2adf
--- /dev/null
+++ b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-result.json
@@ -0,0 +1,146 @@
+{
+ "version": "ops-object-verifier-v1",
+ "run_id": "ce98da6a-4528-4255-9c07-30543c8a1ea9",
+ "started_epoch": 1788874403.0304341,
+ "data_budget_seconds": 420.0,
+ "max_workers": 2,
+ "python_blob_chunk_bytes": 1048576,
+ "structured_cap_bytes": 2097152,
+ "source": "/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "full_fsck_semantics": false,
+ "binding": "eafd07a985dd2872aaf5ee57ec6936e536278ca5258a8cbee512a0a0277ab849",
+ "pins": {
+ "version": "ops-object-verifier-v1",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "source": "/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "inventory_sha256": "3d165016ebb5e06b18b97124d5d06a5e0b528a34c08f895a62544cfff72add12",
+ "manifest_sha256": "02f539816fccb989c307bece019b48c3dadf8bbead1c4f977395af3053c78746",
+ "object_count": 14061,
+ "logical_bytes": 60348642328,
+ "require_immutable": true
+ },
+ "source_manifest": {
+ "files": 4059,
+ "bytes": 3167634917,
+ "sha256_verified": 4059,
+ "immutable_entries": 4328
+ },
+ "inventory_exact": true,
+ "roots": {
+ "HEAD": "c539b5a08a4f84a551d8825a0fc73fa588bcbce8",
+ "refs": [
+ "ad275a5b3bbabd66d23893af977e96553f969eaa refs/auto-snapshot/latest",
+ "c539b5a08a4f84a551d8825a0fc73fa588bcbce8 refs/heads/master"
+ ],
+ "all_in_inventory": true
+ },
+ "resume_credited": 0,
+ "retained_uncredited_tails": [],
+ "completed": 14061,
+ "remaining": 0,
+ "completed_bytes": 60348642328,
+ "remaining_bytes": 0,
+ "completed_by_type": {
+ "blob": 4574,
+ "tree": 6991,
+ "commit": 2496,
+ "tag": 0
+ },
+ "internal_edges_checked": 246888,
+ "gitlinks_external": 1597346,
+ "structured_objects_remaining": 0,
+ "roots_hash_verified": true,
+ "errors": [],
+ "verdict": "PASS",
+ "completion_claim_allowed": true,
+ "receipts": {
+ "/private/tmp/ops-TK10928-integrity.SDj0y8/real/receipts/segment-ce98da6a-4528-4255-9c07-30543c8a1ea9-0.jsonl": "29aaa75416c36ae0e05f6ba234fe76906eaaff2b13cb04e27fd65eb4ea0e472a",
+ "/private/tmp/ops-TK10928-integrity.SDj0y8/real/receipts/segment-ce98da6a-4528-4255-9c07-30543c8a1ea9-1.jsonl": "45cbfe365bb32a9e08b4619f4a21902bc919dbaa1313173dfac4f2ecbf0d81f0"
+ },
+ "elapsed_seconds": 103.15799141605385,
+ "finished_epoch": 1788874506.187737,
+ "commands": [
+ {
+ "argv": [
+ "git",
+ "--no-pager",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "core.commitGraph=false",
+ "-c",
+ "gc.auto=0",
+ "cat-file",
+ "--batch-all-objects",
+ "--batch-check=%(objectname) %(objecttype) %(objectsize) %(objectsize:disk)"
+ ],
+ "exit": 0,
+ "stdout_sha256": "3d165016ebb5e06b18b97124d5d06a5e0b528a34c08f895a62544cfff72add12",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--no-pager",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "core.commitGraph=false",
+ "-c",
+ "gc.auto=0",
+ "for-each-ref",
+ "--format=%(objectname) %(refname)"
+ ],
+ "exit": 0,
+ "stdout_sha256": "e623d1641dbb09982483120ca453369499267dfc1c5266bb6f6b69e56fed9c80",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--no-pager",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "core.commitGraph=false",
+ "-c",
+ "gc.auto=0",
+ "rev-parse",
+ "--verify",
+ "HEAD"
+ ],
+ "exit": 0,
+ "stdout_sha256": "2bcbe92f4ea45a1f42f7e7284f82ebb3ba95875a499f24c0c2faa26e6328a299",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--no-pager",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "core.commitGraph=false",
+ "-c",
+ "gc.auto=0",
+ "cat-file",
+ "--batch"
+ ],
+ "pid": 37521,
+ "stderr_path": "/private/tmp/ops-TK10928-integrity.SDj0y8/real/cat-file-ce98da6a-4528-4255-9c07-30543c8a1ea9-0.stderr",
+ "exit": 0
+ },
+ {
+ "argv": [
+ "git",
+ "--no-pager",
+ "--git-dir=/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "-c",
+ "core.commitGraph=false",
+ "-c",
+ "gc.auto=0",
+ "cat-file",
+ "--batch"
+ ],
+ "pid": 37522,
+ "stderr_path": "/private/tmp/ops-TK10928-integrity.SDj0y8/real/cat-file-ce98da6a-4528-4255-9c07-30543c8a1ea9-1.stderr",
+ "exit": 0
+ }
+ ]
+}
diff --git a/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py
new file mode 100644
index 00000000..669ad78a
--- /dev/null
+++ b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py
@@ -0,0 +1,411 @@
+#!/usr/bin/env python3
+"""Scratch-only SHA-1 Git object validator; receipts are resumable, not git fsck.
+
+No source writes. Exactly two cat-file subprocesses maximum. Stream blobs in
+1 MiB chunks; structured objects have a 2 MiB cap. Every successful object has
+an fsynced hash-chained receipt. Torn final lines are retained and uncredited.
+"""
+import argparse
+import concurrent.futures
+import hashlib
+import json
+import os
+from pathlib import Path
+import queue
+import re
+import select
+import stat
+import subprocess
+import threading
+import time
+import uuid
+
+VERSION = 'ops-object-verifier-v1'
+GUARD = Path('/Users/macstudio3/Projects/ticket-system/config/dtd-cost-mode')
+HEX = re.compile(r'^[0-9a-f]{40}$')
+CHUNK = 1024 * 1024
+STRUCT_LIMIT = 2 * CHUNK
+
+
+def canon(x):
+ return json.dumps(x, sort_keys=True, separators=(',', ':')).encode()
+
+
+def sha(path):
+ h = hashlib.sha256()
+ with Path(path).open('rb') as f:
+ for b in iter(lambda: f.read(CHUNK), b''):
+ h.update(b)
+ return h.hexdigest()
+
+
+def write_json(path, data):
+ with Path(path).open('x') as f:
+ json.dump(data, f, indent=2)
+ f.write('\n')
+ f.flush()
+ os.fsync(f.fileno())
+
+
+def env():
+ e = {k: v for k, v in os.environ.items() if not k.startswith('GIT_')}
+ e.update(GIT_CONFIG_NOSYSTEM='1', GIT_CONFIG_GLOBAL='/dev/null',
+ GIT_OPTIONAL_LOCKS='0', GIT_NO_REPLACE_OBJECTS='1')
+ return e
+
+
+def gitcmd(repo, args):
+ return ['git', '--no-pager', '--git-dir=' + str(repo),
+ '-c', 'core.commitGraph=false', '-c', 'gc.auto=0', *args]
+
+
+def command(repo, args, deadline, commands):
+ c = gitcmd(repo, args)
+ p = subprocess.run(c, env=env(), capture_output=True,
+ timeout=max(.01, deadline-time.monotonic()))
+ commands.append({'argv': c, 'exit': p.returncode,
+ 'stdout_sha256': hashlib.sha256(p.stdout).hexdigest(),
+ 'stderr': p.stderr.decode(errors='replace')[:1000]})
+ if p.returncode:
+ raise ValueError('git command failed: ' + repr(commands[-1]))
+ return p.stdout
+
+
+def inventory(path):
+ out = {}
+ for line in Path(path).read_text().splitlines():
+ oid, kind, size, stored = line.split()
+ if not HEX.fullmatch(oid) or oid in out or kind not in ('commit', 'tree', 'blob', 'tag'):
+ raise ValueError('malformed/duplicate inventory row: ' + line)
+ out[oid] = (kind, int(size), int(stored))
+ if not out:
+ raise ValueError('empty inventory')
+ return out
+
+
+def inspect_source(repo, manifest_path, require_immutable, deadline):
+ expected = json.loads(Path(manifest_path).read_text())
+ actual = {}
+ immutable = 0
+ for p in [repo, *repo.rglob('*')]:
+ if time.monotonic() >= deadline:
+ raise TimeoutError('deadline during manifest verification')
+ s = p.lstat()
+ if stat.S_ISLNK(s.st_mode):
+ raise ValueError('source symlink forbidden: ' + str(p))
+ if s.st_flags & stat.UF_IMMUTABLE:
+ immutable += 1
+ elif require_immutable:
+ raise ValueError('source immutable flag missing: ' + str(p))
+ if p.is_file():
+ rel = str(p.relative_to(repo))
+ if rel not in expected:
+ raise ValueError('unexpected source file: ' + rel)
+ x = expected[rel]
+ if s.st_size != x['bytes'] or sha(p) != x['sha256']:
+ raise ValueError('source manifest mismatch: ' + rel)
+ actual[rel] = {'bytes': s.st_size, 'sha256': x['sha256']}
+ if set(actual) != set(expected):
+ raise ValueError('missing source files: ' + repr(sorted(set(expected)-set(actual))))
+ for rel in ('objects/info/alternates', 'objects/info/http-alternates', 'shallow', 'info/grafts'):
+ if (repo/rel).exists():
+ raise ValueError('external/replaced/shallow object source forbidden: ' + rel)
+ if (repo/'refs/replace').exists():
+ raise ValueError('replacement refs forbidden')
+ return {'files': len(actual), 'bytes': sum(x['bytes'] for x in actual.values()),
+ 'sha256_verified': len(actual), 'immutable_entries': immutable}
+
+
+def edges(kind, data, inv):
+ links = []
+ external = []
+ if kind == 'tree':
+ at = 0
+ while at < len(data):
+ sp = data.find(b' ', at)
+ nul = data.find(b'\0', sp+1)
+ if sp < at or nul < sp or nul+21 > len(data):
+ raise ValueError('malformed tree')
+ mode = data[at:sp]
+ name = data[sp+1:nul]
+ oid = data[nul+1:nul+21].hex()
+ if not name or b'/' in name or name in (b'.', b'..'):
+ raise ValueError('invalid tree name')
+ if mode == b'160000':
+ external.append(oid)
+ elif mode in (b'40000', b'040000'):
+ links.append((oid, 'tree'))
+ elif mode in (b'100644', b'100755', b'120000'):
+ links.append((oid, 'blob'))
+ else:
+ raise ValueError('unsupported tree mode ' + repr(mode))
+ at = nul+21
+ elif kind in ('commit', 'tag'):
+ header = data.split(b'\n\n', 1)[0].splitlines()
+ if kind == 'commit':
+ trees = [x[5:].decode() for x in header if x.startswith(b'tree ')]
+ if len(trees) != 1:
+ raise ValueError('commit must have one tree')
+ links.append((trees[0], 'tree'))
+ links.extend((x[7:].decode(), 'commit') for x in header if x.startswith(b'parent '))
+ else:
+ objects = [x[7:].decode() for x in header if x.startswith(b'object ')]
+ types = [x[5:].decode() for x in header if x.startswith(b'type ')]
+ if len(objects) != 1 or len(types) != 1:
+ raise ValueError('tag must have one object and type')
+ links.append((objects[0], types[0]))
+ for oid, expected in links:
+ if not HEX.fullmatch(oid) or oid not in inv:
+ raise ValueError('missing linked object: ' + oid)
+ if inv[oid][0] != expected:
+ raise ValueError('linked object type mismatch: ' + oid)
+ return {'internal_edges': len(links), 'edges_sha256': hashlib.sha256(canon(links)).hexdigest(),
+ 'external_gitlinks': len(external),
+ 'external_gitlinks_sha256': hashlib.sha256(canon(external)).hexdigest()}
+
+
+class Batch:
+ def __init__(self, repo, deadline, stderr_path, commands):
+ self.deadline = deadline
+ self.buffer = bytearray()
+ self.err = Path(stderr_path).open('xb')
+ self.argv = gitcmd(repo, ['cat-file', '--batch'])
+ self.p = subprocess.Popen(self.argv, env=env(), stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE, stderr=self.err, bufsize=0)
+ self.entry = {'argv': self.argv, 'pid': self.p.pid, 'stderr_path': str(stderr_path)}
+ commands.append(self.entry)
+
+ def fill(self):
+ remaining = self.deadline-time.monotonic()
+ if remaining <= 0:
+ raise TimeoutError('data deadline')
+ if not select.select([self.p.stdout], [], [], remaining)[0]:
+ raise TimeoutError('cat-file deadline')
+ b = os.read(self.p.stdout.fileno(), CHUNK)
+ if not b:
+ raise ValueError('cat-file unexpectedly ended')
+ self.buffer.extend(b)
+
+ def take(self, n):
+ while not self.buffer:
+ self.fill()
+ n = min(n, len(self.buffer))
+ b = bytes(self.buffer[:n])
+ del self.buffer[:n]
+ return b
+
+ def line(self):
+ while b'\n' not in self.buffer:
+ if len(self.buffer) > 512:
+ raise ValueError('oversized cat-file header')
+ self.fill()
+ i = self.buffer.index(10)+1
+ b = bytes(self.buffer[:i])
+ del self.buffer[:i]
+ return b
+
+ def validate(self, oid, inv):
+ self.p.stdin.write((oid+'\n').encode())
+ head = self.line().decode().strip().split()
+ if len(head) != 3:
+ raise ValueError('invalid/missing object header: ' + repr(head))
+ got, kind, n = head
+ n = int(n)
+ if (got, kind, n) != (oid, inv[oid][0], inv[oid][1]):
+ raise ValueError('object type/size identity mismatch: ' + oid)
+ if kind != 'blob' and n > STRUCT_LIMIT:
+ raise ValueError('structured object exceeds memory boundary')
+ h = hashlib.sha1((kind+' '+str(n)+'\0').encode())
+ structured = bytearray()
+ left = n
+ while left:
+ b = self.take(min(CHUNK, left))
+ h.update(b)
+ if kind != 'blob':
+ structured.extend(b)
+ left -= len(b)
+ if self.take(1) != b'\n':
+ raise ValueError('cat-file framing mismatch')
+ digest = h.hexdigest()
+ if digest != oid:
+ raise ValueError('Git SHA-1 mismatch: expected '+oid+' got '+digest)
+ linked = edges(kind, structured, inv)
+ return {'oid': oid, 'type': kind, 'bytes': n, 'git_hash': digest,
+ 'hash_algorithm': 'sha1', 'connectivity': 'PASS', **linked}
+
+ def close(self):
+ # Only this verifier's child is affected. EOF normally exits cat-file;
+ # deadline interruption closes the pipe and terminates this child only.
+ self.p.stdin.close()
+ self.p.stdout.close()
+ try:
+ self.p.wait(timeout=.2)
+ except subprocess.TimeoutExpired:
+ self.p.terminate()
+ self.p.wait(timeout=2)
+ self.entry['exit'] = self.p.returncode
+ self.err.close()
+
+
+def read_receipts(receipts, binding, inv):
+ done = {}
+ torn = []
+ for path in sorted(Path(receipts).glob('segment-*.jsonl')):
+ prev = binding
+ seq = 0
+ with path.open('rb') as f:
+ for raw in f:
+ if not raw.endswith(b'\n'):
+ torn.append({'path': str(path), 'uncredited_tail_bytes': len(raw)})
+ break
+ row = json.loads(raw)
+ digest = row.pop('receipt_sha256')
+ if hashlib.sha256(canon(row)).hexdigest() != digest:
+ raise ValueError('receipt tamper: ' + str(path))
+ if row['binding'] != binding or row['prev'] != prev or row['seq'] != seq:
+ raise ValueError('receipt binding/chain mismatch')
+ oid = row['oid']
+ if oid in done or oid not in inv:
+ raise ValueError('duplicate or foreign receipt')
+ if (row['type'], row['bytes']) != inv[oid][:2] or row['git_hash'] != oid:
+ raise ValueError('receipt object identity mismatch')
+ if row['connectivity'] != 'PASS':
+ raise ValueError('failed receipt cannot be credited')
+ done[oid] = row
+ prev = digest
+ seq += 1
+ return done, torn
+
+
+def run(repo, inventory_path, manifest_path, output, seconds=600, limit=None,
+ require_immutable=False, audit=False):
+ started = time.monotonic()
+ deadline = started + min(seconds, 600)
+ runid = str(uuid.uuid4())
+ output = Path(output)
+ output.mkdir(exist_ok=True, parents=True)
+ receipts = output/'receipts'
+ receipts.mkdir(exist_ok=True)
+ commands = []
+ report = {'version': VERSION, 'run_id': runid, 'started_epoch': time.time(),
+ 'data_budget_seconds': min(seconds, 600), 'max_workers': 2,
+ 'python_blob_chunk_bytes': CHUNK, 'structured_cap_bytes': STRUCT_LIMIT,
+ 'source': str(repo), 'full_fsck_semantics': False}
+ try:
+ if GUARD.read_bytes() != b'ZERO_COST_REQUIRED\n':
+ raise ValueError('canonical zero-cost guard changed')
+ inv = inventory(inventory_path)
+ pins = {'version': VERSION, 'verifier_sha256': sha(__file__),
+ 'source': str(Path(repo).resolve()),
+ 'inventory_sha256': sha(inventory_path), 'manifest_sha256': sha(manifest_path),
+ 'object_count': len(inv), 'logical_bytes': sum(x[1] for x in inv.values()),
+ 'require_immutable': require_immutable}
+ binding = hashlib.sha256(canon(pins)).hexdigest()
+ pinpath = output/'pins.json'
+ if pinpath.exists():
+ if json.loads(pinpath.read_text()) != pins:
+ raise ValueError('resume input/verifier pins changed')
+ else:
+ write_json(pinpath, pins)
+ report['binding'] = binding
+ report['pins'] = pins
+ report['source_manifest'] = inspect_source(Path(repo), manifest_path, require_immutable, deadline)
+ raw = command(repo, ['cat-file', '--batch-all-objects', '--batch-check=%(objectname) %(objecttype) %(objectsize) %(objectsize:disk)'], deadline, commands)
+ actual = sorted(raw.decode().splitlines())
+ expected = sorted(Path(inventory_path).read_text().splitlines())
+ if actual != expected:
+ raise ValueError('pinned inventory is not complete/exact for source')
+ report['inventory_exact'] = True
+ refs = command(repo, ['for-each-ref', '--format=%(objectname) %(refname)'], deadline, commands).decode().splitlines()
+ head = command(repo, ['rev-parse', '--verify', 'HEAD'], deadline, commands).decode().strip()
+ for root in [head, *[x.split()[0] for x in refs]]:
+ if root not in inv:
+ raise ValueError('missing ref/HEAD root: '+root)
+ report['roots'] = {'HEAD': head, 'refs': refs, 'all_in_inventory': True}
+ done, torn = read_receipts(receipts, binding, inv)
+ report['resume_credited'] = len(done)
+ report['retained_uncredited_tails'] = torn
+ pending = sorted(set(inv)-set(done), key=lambda oid: (inv[oid][0]=='blob', inv[oid][1], oid))
+ if limit is not None:
+ pending = pending[:limit]
+ q = queue.Queue()
+ for oid in pending:
+ q.put(oid)
+ stop = threading.Event()
+ errors = []
+ lock = threading.Lock()
+
+ def worker(idx):
+ batch = None
+ path = receipts/('segment-'+runid+'-'+str(idx)+'.jsonl')
+ prev = binding
+ seq = 0
+ try:
+ batch = Batch(repo, deadline, output/('cat-file-'+runid+'-'+str(idx)+'.stderr'), commands)
+ with path.open('xb', buffering=0) as out:
+ while not stop.is_set() and time.monotonic() < deadline:
+ try:
+ oid = q.get_nowait()
+ except queue.Empty:
+ break
+ row = batch.validate(oid, inv)
+ row.update(binding=binding, prev=prev, seq=seq, completed_epoch=time.time())
+ digest = hashlib.sha256(canon(row)).hexdigest()
+ row['receipt_sha256'] = digest
+ out.write(canon(row)+b'\n')
+ os.fsync(out.fileno())
+ with lock:
+ done[oid] = row
+ prev = digest
+ seq += 1
+ except Exception as ex:
+ with lock:
+ errors.append({'worker': idx, 'error': str(ex), 'class': type(ex).__name__})
+ stop.set()
+ finally:
+ if batch:
+ batch.close()
+
+ if not audit and pending:
+ with concurrent.futures.ThreadPoolExecutor(max_workers=2) as pool:
+ futures = [pool.submit(worker, i) for i in range(2)]
+ for f in futures:
+ f.result()
+ done, torn = read_receipts(receipts, binding, inv)
+ complete = len(done) == len(inv)
+ report.update(completed=len(done), remaining=len(inv)-len(done),
+ completed_bytes=sum(inv[o][1] for o in done),
+ remaining_bytes=sum(v[1] for o,v in inv.items() if o not in done),
+ completed_by_type={t: sum(inv[o][0]==t for o in done) for t in ('blob','tree','commit','tag')},
+ internal_edges_checked=sum(r['internal_edges'] for r in done.values()),
+ gitlinks_external=sum(r['external_gitlinks'] for r in done.values()),
+ structured_objects_remaining=sum(v[0]!='blob' for o,v in inv.items() if o not in done),
+ roots_hash_verified=all(x in done for x in [head,*[r.split()[0] for r in refs]]),
+ retained_uncredited_tails=torn, errors=errors)
+ report['verdict'] = 'PASS' if complete and not errors else ('FAIL' if any(e['class']!='TimeoutError' for e in errors) else 'PARTIAL')
+ report['completion_claim_allowed'] = complete and not errors
+ report['receipts'] = {str(p): sha(p) for p in receipts.glob('segment-*.jsonl')}
+ write_json(output/('remaining-'+runid+'.json'), [o for o in inv if o not in done])
+ except Exception as ex:
+ report.update(verdict='FAIL', completion_claim_allowed=False, error=str(ex), error_class=type(ex).__name__)
+ report['elapsed_seconds'] = time.monotonic()-started
+ report['finished_epoch'] = time.time()
+ report['commands'] = commands
+ write_json(output/('report-'+runid+'.json'), report)
+ print(json.dumps({k:v for k,v in report.items() if k not in ('commands','receipts')}), flush=True)
+ return report
+
+
+if __name__ == '__main__':
+ a = argparse.ArgumentParser()
+ a.add_argument('--repo', required=True, type=Path)
+ a.add_argument('--inventory', required=True, type=Path)
+ a.add_argument('--manifest', required=True, type=Path)
+ a.add_argument('--output', required=True, type=Path)
+ a.add_argument('--seconds', type=float, default=600)
+ a.add_argument('--limit', type=int)
+ a.add_argument('--require-immutable', action='store_true')
+ a.add_argument('--audit', action='store_true')
+ x = a.parse_args()
+ r = run(x.repo,x.inventory,x.manifest,x.output,x.seconds,x.limit,x.require_immutable,x.audit)
+ raise SystemExit(0 if r['verdict']=='PASS' else 2 if r['verdict']=='PARTIAL' else 1)
diff --git a/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-five-render-proof.json b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-five-render-proof.json
new file mode 100644
index 00000000..b4a45d56
--- /dev/null
+++ b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-five-render-proof.json
@@ -0,0 +1,46 @@
+{
+ "checks": [
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-02-25.mp4",
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-02-25.mp4",
+ "bytes": 54076657,
+ "sha256": "02c63daaf51ec448e1e81038515573b90b493020ca63e64b815b13c3348c7807",
+ "git_oid": "efbba50e8faff2c98d5cd58654619ffcc85b7e92",
+ "verdict": "PASS"
+ },
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-29-23.mp4",
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-29-23.mp4",
+ "bytes": 57230151,
+ "sha256": "78958f5c3bd6eb81c4859f51171636c2e39b60311922793dba8126a224e95ee2",
+ "git_oid": "b43f1788d2681871ff6ac918be7b5857a2e5cdd5",
+ "verdict": "PASS"
+ },
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-22-08.mp4",
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-22-08.mp4",
+ "bytes": 57075907,
+ "sha256": "86af0a15c7feeaadacb6cfa72cfdf24c1b42ebb7112a0dc8f95056c7c1190712",
+ "git_oid": "4744083a7a07447f55cde597cdbb14b530e82371",
+ "verdict": "PASS"
+ },
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-16-11.mp4",
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_08-16-11.mp4",
+ "bytes": 31563007,
+ "sha256": "3757002784c48ce9055d75a90420ee59e0853c054b5009cc3105467876bbaf40",
+ "git_oid": "f868b83b92bc085314fd49cd1f791c7ea3b114bf",
+ "verdict": "PASS"
+ },
+ {
+ "path": "rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-49-53.mp4",
+ "destination": "/private/tmp/ops-TK10928-integrity.SDj0y8/five-render-restore/rentv-slideshow/renders/rentv-slideshow_2026-07-29_07-49-53.mp4",
+ "bytes": 28635596,
+ "sha256": "8d86bfc65054c3368209d2875133ed5f7511a231b46973fa5326bcad5d845d08",
+ "git_oid": "dbf6ed038c5be1d119c9f8956cbe83dd72bb1e42",
+ "verdict": "PASS"
+ }
+ ],
+ "verdict": "PASS",
+ "scope": "Independent current source and persisted restored hashes;5exactrenderfiles only"
+}
diff --git a/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-independent-cli-proof.json b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-independent-cli-proof.json
new file mode 100644
index 00000000..2f9e6001
--- /dev/null
+++ b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-independent-cli-proof.json
@@ -0,0 +1,550 @@
+{
+ "verifier": "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "scratch": "/private/tmp/yf-parent-object-proof.IfaKBO",
+ "checks": [
+ {
+ "name": "actual CLI incomplete coverage refuses success",
+ "pass": true,
+ "returncode": 2,
+ "summary": {
+ "version": "ops-object-verifier-v1",
+ "run_id": "db2c575c-a50e-4566-abc9-fc243affff0e",
+ "started_epoch": 1788874517.636676,
+ "data_budget_seconds": 20.0,
+ "max_workers": 2,
+ "python_blob_chunk_bytes": 1048576,
+ "structured_cap_bytes": 2097152,
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "full_fsck_semantics": false,
+ "binding": "1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1",
+ "pins": {
+ "version": "ops-object-verifier-v1",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "inventory_sha256": "c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049",
+ "manifest_sha256": "51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e",
+ "object_count": 4,
+ "logical_bytes": 333,
+ "require_immutable": false
+ },
+ "source_manifest": {
+ "files": 23,
+ "bytes": 27571,
+ "sha256_verified": 23,
+ "immutable_entries": 0
+ },
+ "inventory_exact": true,
+ "roots": {
+ "HEAD": "573dcef079b46b3f05d3b2c6025a16293db06bbb",
+ "refs": [
+ "573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master"
+ ],
+ "all_in_inventory": true
+ },
+ "resume_credited": 0,
+ "retained_uncredited_tails": [],
+ "completed": 1,
+ "remaining": 3,
+ "completed_bytes": 70,
+ "remaining_bytes": 263,
+ "completed_by_type": {
+ "blob": 0,
+ "tree": 1,
+ "commit": 0,
+ "tag": 0
+ },
+ "internal_edges_checked": 2,
+ "gitlinks_external": 0,
+ "structured_objects_remaining": 1,
+ "roots_hash_verified": false,
+ "errors": [],
+ "verdict": "PARTIAL",
+ "completion_claim_allowed": false,
+ "elapsed_seconds": 0.23938954202458262,
+ "finished_epoch": 1788874517.8753011
+ }
+ },
+ {
+ "name": "actual CLI audit does not manufacture coverage",
+ "pass": true,
+ "returncode": 2,
+ "summary": {
+ "version": "ops-object-verifier-v1",
+ "run_id": "8058808c-2bd9-42cc-b25f-38dc551fb4ab",
+ "started_epoch": 1788874518.063709,
+ "data_budget_seconds": 20.0,
+ "max_workers": 2,
+ "python_blob_chunk_bytes": 1048576,
+ "structured_cap_bytes": 2097152,
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "full_fsck_semantics": false,
+ "binding": "1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1",
+ "pins": {
+ "version": "ops-object-verifier-v1",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "inventory_sha256": "c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049",
+ "manifest_sha256": "51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e",
+ "object_count": 4,
+ "logical_bytes": 333,
+ "require_immutable": false
+ },
+ "source_manifest": {
+ "files": 23,
+ "bytes": 27571,
+ "sha256_verified": 23,
+ "immutable_entries": 0
+ },
+ "inventory_exact": true,
+ "roots": {
+ "HEAD": "573dcef079b46b3f05d3b2c6025a16293db06bbb",
+ "refs": [
+ "573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master"
+ ],
+ "all_in_inventory": true
+ },
+ "resume_credited": 1,
+ "retained_uncredited_tails": [],
+ "completed": 1,
+ "remaining": 3,
+ "completed_bytes": 70,
+ "remaining_bytes": 263,
+ "completed_by_type": {
+ "blob": 0,
+ "tree": 1,
+ "commit": 0,
+ "tag": 0
+ },
+ "internal_edges_checked": 2,
+ "gitlinks_external": 0,
+ "structured_objects_remaining": 1,
+ "roots_hash_verified": false,
+ "errors": [],
+ "verdict": "PARTIAL",
+ "completion_claim_allowed": false,
+ "elapsed_seconds": 0.06955704209394753,
+ "finished_epoch": 1788874518.133068
+ }
+ },
+ {
+ "name": "actual CLI resume completes four fixed objects",
+ "pass": true,
+ "returncode": 0,
+ "summary": {
+ "version": "ops-object-verifier-v1",
+ "run_id": "4426f5fa-eb36-4017-82b9-8baad4e29c89",
+ "started_epoch": 1788874518.3442008,
+ "data_budget_seconds": 20.0,
+ "max_workers": 2,
+ "python_blob_chunk_bytes": 1048576,
+ "structured_cap_bytes": 2097152,
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "full_fsck_semantics": false,
+ "binding": "1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1",
+ "pins": {
+ "version": "ops-object-verifier-v1",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "inventory_sha256": "c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049",
+ "manifest_sha256": "51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e",
+ "object_count": 4,
+ "logical_bytes": 333,
+ "require_immutable": false
+ },
+ "source_manifest": {
+ "files": 23,
+ "bytes": 27571,
+ "sha256_verified": 23,
+ "immutable_entries": 0
+ },
+ "inventory_exact": true,
+ "roots": {
+ "HEAD": "573dcef079b46b3f05d3b2c6025a16293db06bbb",
+ "refs": [
+ "573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master"
+ ],
+ "all_in_inventory": true
+ },
+ "resume_credited": 1,
+ "retained_uncredited_tails": [],
+ "completed": 4,
+ "remaining": 0,
+ "completed_bytes": 333,
+ "remaining_bytes": 0,
+ "completed_by_type": {
+ "blob": 2,
+ "tree": 1,
+ "commit": 1,
+ "tag": 0
+ },
+ "internal_edges_checked": 3,
+ "gitlinks_external": 0,
+ "structured_objects_remaining": 0,
+ "roots_hash_verified": true,
+ "errors": [],
+ "verdict": "PASS",
+ "completion_claim_allowed": true,
+ "elapsed_seconds": 0.1456033329013735,
+ "finished_epoch": 1788874518.489538
+ }
+ },
+ {
+ "name": "actual CLI completed audit idempotent",
+ "pass": true,
+ "returncode": 0,
+ "summary": {
+ "version": "ops-object-verifier-v1",
+ "run_id": "49d2e6c0-89f6-47fa-8d3d-9aebac46e0f5",
+ "started_epoch": 1788874518.657175,
+ "data_budget_seconds": 20.0,
+ "max_workers": 2,
+ "python_blob_chunk_bytes": 1048576,
+ "structured_cap_bytes": 2097152,
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "full_fsck_semantics": false,
+ "binding": "1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1",
+ "pins": {
+ "version": "ops-object-verifier-v1",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "inventory_sha256": "c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049",
+ "manifest_sha256": "51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e",
+ "object_count": 4,
+ "logical_bytes": 333,
+ "require_immutable": false
+ },
+ "source_manifest": {
+ "files": 23,
+ "bytes": 27571,
+ "sha256_verified": 23,
+ "immutable_entries": 0
+ },
+ "inventory_exact": true,
+ "roots": {
+ "HEAD": "573dcef079b46b3f05d3b2c6025a16293db06bbb",
+ "refs": [
+ "573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master"
+ ],
+ "all_in_inventory": true
+ },
+ "resume_credited": 4,
+ "retained_uncredited_tails": [],
+ "completed": 4,
+ "remaining": 0,
+ "completed_bytes": 333,
+ "remaining_bytes": 0,
+ "completed_by_type": {
+ "blob": 2,
+ "tree": 1,
+ "commit": 1,
+ "tag": 0
+ },
+ "internal_edges_checked": 3,
+ "gitlinks_external": 0,
+ "structured_objects_remaining": 0,
+ "roots_hash_verified": true,
+ "errors": [],
+ "verdict": "PASS",
+ "completion_claim_allowed": true,
+ "elapsed_seconds": 0.05943212495185435,
+ "finished_epoch": 1788874518.716444
+ }
+ },
+ {
+ "name": "actual CLI receipt tamper rejected",
+ "pass": true,
+ "returncode": 1,
+ "summary": {
+ "version": "ops-object-verifier-v1",
+ "run_id": "723c60c1-437f-4255-bcb5-f38ff8f39aa3",
+ "started_epoch": 1788874518.8966908,
+ "data_budget_seconds": 20.0,
+ "max_workers": 2,
+ "python_blob_chunk_bytes": 1048576,
+ "structured_cap_bytes": 2097152,
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "full_fsck_semantics": false,
+ "binding": "1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1",
+ "pins": {
+ "version": "ops-object-verifier-v1",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "inventory_sha256": "c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049",
+ "manifest_sha256": "51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e",
+ "object_count": 4,
+ "logical_bytes": 333,
+ "require_immutable": false
+ },
+ "source_manifest": {
+ "files": 23,
+ "bytes": 27571,
+ "sha256_verified": 23,
+ "immutable_entries": 0
+ },
+ "inventory_exact": true,
+ "roots": {
+ "HEAD": "573dcef079b46b3f05d3b2c6025a16293db06bbb",
+ "refs": [
+ "573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master"
+ ],
+ "all_in_inventory": true
+ },
+ "verdict": "FAIL",
+ "completion_claim_allowed": false,
+ "error": "receipt tamper: /private/tmp/yf-parent-object-proof.IfaKBO/tampered/receipts/segment-4426f5fa-eb36-4017-82b9-8baad4e29c89-0.jsonl",
+ "error_class": "ValueError",
+ "elapsed_seconds": 0.06590166711248457,
+ "finished_epoch": 1788874518.9624588
+ }
+ },
+ {
+ "name": "actual CLI incomplete pinned inventory rejected",
+ "pass": true,
+ "returncode": 1,
+ "summary": {
+ "version": "ops-object-verifier-v1",
+ "run_id": "89f9b5b9-2783-4463-8728-c1eaa4490449",
+ "started_epoch": 1788874519.1384,
+ "data_budget_seconds": 20.0,
+ "max_workers": 2,
+ "python_blob_chunk_bytes": 1048576,
+ "structured_cap_bytes": 2097152,
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "full_fsck_semantics": false,
+ "binding": "a686b73f5ccacc40c84af3f0dd654d2da64038ec49e82398922bab2b9de9f1bd",
+ "pins": {
+ "version": "ops-object-verifier-v1",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "source": "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "inventory_sha256": "8d11eef32119be555a0f4f9c7152c594ba2dd71631a78964e5120e9f4cf852a4",
+ "manifest_sha256": "51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e",
+ "object_count": 3,
+ "logical_bytes": 116,
+ "require_immutable": false
+ },
+ "source_manifest": {
+ "files": 23,
+ "bytes": 27571,
+ "sha256_verified": 23,
+ "immutable_entries": 0
+ },
+ "verdict": "FAIL",
+ "completion_claim_allowed": false,
+ "error": "pinned inventory is not complete/exact for source",
+ "error_class": "ValueError",
+ "elapsed_seconds": 0.032494583865627646,
+ "finished_epoch": 1788874519.170264
+ }
+ }
+ ],
+ "commands": [
+ {
+ "argv": [
+ "git",
+ "init",
+ "--bare",
+ "--initial-branch=master",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git"
+ ],
+ "returncode": 0,
+ "stdout": "Initialized empty Git repository in /private/tmp/yf-parent-object-proof.IfaKBO/fixture.git/\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "hash-object",
+ "-w",
+ "--stdin"
+ ],
+ "returncode": 0,
+ "stdout": "96a3a99588bc31d5728102ecb55862704bae51f7\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "hash-object",
+ "-w",
+ "--stdin"
+ ],
+ "returncode": 0,
+ "stdout": "ebba7b9270022165b8f348a5cde5593347d06d71\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "mktree"
+ ],
+ "returncode": 0,
+ "stdout": "fd244b533ec97ccba20352ddedcca80147bb1c49\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "commit-tree",
+ "fd244b533ec97ccba20352ddedcca80147bb1c49",
+ "-m",
+ "retained fixture"
+ ],
+ "returncode": 0,
+ "stdout": "573dcef079b46b3f05d3b2c6025a16293db06bbb\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "update-ref",
+ "refs/heads/master",
+ "573dcef079b46b3f05d3b2c6025a16293db06bbb"
+ ],
+ "returncode": 0,
+ "stdout": "",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "git",
+ "--git-dir=/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "cat-file",
+ "--batch-all-objects",
+ "--batch-check=%(objectname) %(objecttype) %(objectsize) %(objectsize:disk)"
+ ],
+ "returncode": 0,
+ "stdout": "573dcef079b46b3f05d3b2c6025a16293db06bbb commit 217 143\n96a3a99588bc31d5728102ecb55862704bae51f7 blob 23 36\nebba7b9270022165b8f348a5cde5593347d06d71 blob 23 36\nfd244b533ec97ccba20352ddedcca80147bb1c49 tree 70 80\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "python3",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py",
+ "--repo",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "--inventory",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/inventory.txt",
+ "--manifest",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/manifest.json",
+ "--seconds",
+ "20",
+ "--output",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/receipts-state",
+ "--limit",
+ "1"
+ ],
+ "returncode": 2,
+ "stdout": "{\"version\": \"ops-object-verifier-v1\", \"run_id\": \"db2c575c-a50e-4566-abc9-fc243affff0e\", \"started_epoch\": 1788874517.636676, \"data_budget_seconds\": 20.0, \"max_workers\": 2, \"python_blob_chunk_bytes\": 1048576, \"structured_cap_bytes\": 2097152, \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"full_fsck_semantics\": false, \"binding\": \"1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1\", \"pins\": {\"version\": \"ops-object-verifier-v1\", \"verifier_sha256\": \"d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c\", \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"inventory_sha256\": \"c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049\", \"manifest_sha256\": \"51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e\", \"object_count\": 4, \"logical_bytes\": 333, \"require_immutable\": false}, \"source_manifest\": {\"files\": 23, \"bytes\": 27571, \"sha256_verified\": 23, \"immutable_entries\": 0}, \"inventory_exact\": true, \"roots\": {\"HEAD\": \"573dcef079b46b3f05d3b2c6025a16293db06bbb\", \"refs\": [\"573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master\"], \"all_in_inventory\": true}, \"resume_credited\": 0, \"retained_uncredited_tails\": [], \"completed\": 1, \"remaining\": 3, \"completed_bytes\": 70, \"remaining_bytes\": 263, \"completed_by_type\": {\"blob\": 0, \"tree\": 1, \"commit\": 0, \"tag\": 0}, \"internal_edges_checked\": 2, \"gitlinks_external\": 0, \"structured_objects_remaining\": 1, \"roots_hash_verified\": false, \"errors\": [], \"verdict\": \"PARTIAL\", \"completion_claim_allowed\": false, \"elapsed_seconds\": 0.23938954202458262, \"finished_epoch\": 1788874517.8753011}\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "python3",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py",
+ "--repo",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "--inventory",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/inventory.txt",
+ "--manifest",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/manifest.json",
+ "--seconds",
+ "20",
+ "--output",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/receipts-state",
+ "--audit"
+ ],
+ "returncode": 2,
+ "stdout": "{\"version\": \"ops-object-verifier-v1\", \"run_id\": \"8058808c-2bd9-42cc-b25f-38dc551fb4ab\", \"started_epoch\": 1788874518.063709, \"data_budget_seconds\": 20.0, \"max_workers\": 2, \"python_blob_chunk_bytes\": 1048576, \"structured_cap_bytes\": 2097152, \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"full_fsck_semantics\": false, \"binding\": \"1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1\", \"pins\": {\"version\": \"ops-object-verifier-v1\", \"verifier_sha256\": \"d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c\", \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"inventory_sha256\": \"c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049\", \"manifest_sha256\": \"51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e\", \"object_count\": 4, \"logical_bytes\": 333, \"require_immutable\": false}, \"source_manifest\": {\"files\": 23, \"bytes\": 27571, \"sha256_verified\": 23, \"immutable_entries\": 0}, \"inventory_exact\": true, \"roots\": {\"HEAD\": \"573dcef079b46b3f05d3b2c6025a16293db06bbb\", \"refs\": [\"573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master\"], \"all_in_inventory\": true}, \"resume_credited\": 1, \"retained_uncredited_tails\": [], \"completed\": 1, \"remaining\": 3, \"completed_bytes\": 70, \"remaining_bytes\": 263, \"completed_by_type\": {\"blob\": 0, \"tree\": 1, \"commit\": 0, \"tag\": 0}, \"internal_edges_checked\": 2, \"gitlinks_external\": 0, \"structured_objects_remaining\": 1, \"roots_hash_verified\": false, \"errors\": [], \"verdict\": \"PARTIAL\", \"completion_claim_allowed\": false, \"elapsed_seconds\": 0.06955704209394753, \"finished_epoch\": 1788874518.133068}\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "python3",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py",
+ "--repo",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "--inventory",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/inventory.txt",
+ "--manifest",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/manifest.json",
+ "--seconds",
+ "20",
+ "--output",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/receipts-state"
+ ],
+ "returncode": 0,
+ "stdout": "{\"version\": \"ops-object-verifier-v1\", \"run_id\": \"4426f5fa-eb36-4017-82b9-8baad4e29c89\", \"started_epoch\": 1788874518.3442008, \"data_budget_seconds\": 20.0, \"max_workers\": 2, \"python_blob_chunk_bytes\": 1048576, \"structured_cap_bytes\": 2097152, \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"full_fsck_semantics\": false, \"binding\": \"1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1\", \"pins\": {\"version\": \"ops-object-verifier-v1\", \"verifier_sha256\": \"d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c\", \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"inventory_sha256\": \"c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049\", \"manifest_sha256\": \"51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e\", \"object_count\": 4, \"logical_bytes\": 333, \"require_immutable\": false}, \"source_manifest\": {\"files\": 23, \"bytes\": 27571, \"sha256_verified\": 23, \"immutable_entries\": 0}, \"inventory_exact\": true, \"roots\": {\"HEAD\": \"573dcef079b46b3f05d3b2c6025a16293db06bbb\", \"refs\": [\"573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master\"], \"all_in_inventory\": true}, \"resume_credited\": 1, \"retained_uncredited_tails\": [], \"completed\": 4, \"remaining\": 0, \"completed_bytes\": 333, \"remaining_bytes\": 0, \"completed_by_type\": {\"blob\": 2, \"tree\": 1, \"commit\": 1, \"tag\": 0}, \"internal_edges_checked\": 3, \"gitlinks_external\": 0, \"structured_objects_remaining\": 0, \"roots_hash_verified\": true, \"errors\": [], \"verdict\": \"PASS\", \"completion_claim_allowed\": true, \"elapsed_seconds\": 0.1456033329013735, \"finished_epoch\": 1788874518.489538}\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "python3",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py",
+ "--repo",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "--inventory",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/inventory.txt",
+ "--manifest",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/manifest.json",
+ "--seconds",
+ "20",
+ "--output",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/receipts-state",
+ "--audit"
+ ],
+ "returncode": 0,
+ "stdout": "{\"version\": \"ops-object-verifier-v1\", \"run_id\": \"49d2e6c0-89f6-47fa-8d3d-9aebac46e0f5\", \"started_epoch\": 1788874518.657175, \"data_budget_seconds\": 20.0, \"max_workers\": 2, \"python_blob_chunk_bytes\": 1048576, \"structured_cap_bytes\": 2097152, \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"full_fsck_semantics\": false, \"binding\": \"1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1\", \"pins\": {\"version\": \"ops-object-verifier-v1\", \"verifier_sha256\": \"d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c\", \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"inventory_sha256\": \"c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049\", \"manifest_sha256\": \"51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e\", \"object_count\": 4, \"logical_bytes\": 333, \"require_immutable\": false}, \"source_manifest\": {\"files\": 23, \"bytes\": 27571, \"sha256_verified\": 23, \"immutable_entries\": 0}, \"inventory_exact\": true, \"roots\": {\"HEAD\": \"573dcef079b46b3f05d3b2c6025a16293db06bbb\", \"refs\": [\"573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master\"], \"all_in_inventory\": true}, \"resume_credited\": 4, \"retained_uncredited_tails\": [], \"completed\": 4, \"remaining\": 0, \"completed_bytes\": 333, \"remaining_bytes\": 0, \"completed_by_type\": {\"blob\": 2, \"tree\": 1, \"commit\": 1, \"tag\": 0}, \"internal_edges_checked\": 3, \"gitlinks_external\": 0, \"structured_objects_remaining\": 0, \"roots_hash_verified\": true, \"errors\": [], \"verdict\": \"PASS\", \"completion_claim_allowed\": true, \"elapsed_seconds\": 0.05943212495185435, \"finished_epoch\": 1788874518.716444}\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "python3",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py",
+ "--repo",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "--inventory",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/inventory.txt",
+ "--manifest",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/manifest.json",
+ "--seconds",
+ "20",
+ "--output",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/tampered",
+ "--audit"
+ ],
+ "returncode": 1,
+ "stdout": "{\"version\": \"ops-object-verifier-v1\", \"run_id\": \"723c60c1-437f-4255-bcb5-f38ff8f39aa3\", \"started_epoch\": 1788874518.8966908, \"data_budget_seconds\": 20.0, \"max_workers\": 2, \"python_blob_chunk_bytes\": 1048576, \"structured_cap_bytes\": 2097152, \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"full_fsck_semantics\": false, \"binding\": \"1134cdd9c9700adf0ccf97e0a4c15e5966bfcc950f9f4c95ddcec75e84ebd8a1\", \"pins\": {\"version\": \"ops-object-verifier-v1\", \"verifier_sha256\": \"d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c\", \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"inventory_sha256\": \"c65f49f2347122910bd20b87dee1f85b64f03a1fa4ab06fc522ff63625b83049\", \"manifest_sha256\": \"51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e\", \"object_count\": 4, \"logical_bytes\": 333, \"require_immutable\": false}, \"source_manifest\": {\"files\": 23, \"bytes\": 27571, \"sha256_verified\": 23, \"immutable_entries\": 0}, \"inventory_exact\": true, \"roots\": {\"HEAD\": \"573dcef079b46b3f05d3b2c6025a16293db06bbb\", \"refs\": [\"573dcef079b46b3f05d3b2c6025a16293db06bbb refs/heads/master\"], \"all_in_inventory\": true}, \"verdict\": \"FAIL\", \"completion_claim_allowed\": false, \"error\": \"receipt tamper: /private/tmp/yf-parent-object-proof.IfaKBO/tampered/receipts/segment-4426f5fa-eb36-4017-82b9-8baad4e29c89-0.jsonl\", \"error_class\": \"ValueError\", \"elapsed_seconds\": 0.06590166711248457, \"finished_epoch\": 1788874518.9624588}\n",
+ "stderr": ""
+ },
+ {
+ "argv": [
+ "python3",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py",
+ "--repo",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git",
+ "--inventory",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/missing-inventory.txt",
+ "--manifest",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/manifest.json",
+ "--seconds",
+ "20",
+ "--output",
+ "/private/tmp/yf-parent-object-proof.IfaKBO/missing-state",
+ "--audit"
+ ],
+ "returncode": 1,
+ "stdout": "{\"version\": \"ops-object-verifier-v1\", \"run_id\": \"89f9b5b9-2783-4463-8728-c1eaa4490449\", \"started_epoch\": 1788874519.1384, \"data_budget_seconds\": 20.0, \"max_workers\": 2, \"python_blob_chunk_bytes\": 1048576, \"structured_cap_bytes\": 2097152, \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"full_fsck_semantics\": false, \"binding\": \"a686b73f5ccacc40c84af3f0dd654d2da64038ec49e82398922bab2b9de9f1bd\", \"pins\": {\"version\": \"ops-object-verifier-v1\", \"verifier_sha256\": \"d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c\", \"source\": \"/private/tmp/yf-parent-object-proof.IfaKBO/fixture.git\", \"inventory_sha256\": \"8d11eef32119be555a0f4f9c7152c594ba2dd71631a78964e5120e9f4cf852a4\", \"manifest_sha256\": \"51722c371fb59c6fb8dd319b2107f35b5673f71c49526b43e36bc04adf96111e\", \"object_count\": 3, \"logical_bytes\": 116, \"require_immutable\": false}, \"source_manifest\": {\"files\": 23, \"bytes\": 27571, \"sha256_verified\": 23, \"immutable_entries\": 0}, \"verdict\": \"FAIL\", \"completion_claim_allowed\": false, \"error\": \"pinned inventory is not complete/exact for source\", \"error_class\": \"ValueError\", \"elapsed_seconds\": 0.032494583865627646, \"finished_epoch\": 1788874519.170264}\n",
+ "stderr": ""
+ }
+ ],
+ "passes": 6,
+ "source_mutations": "none; self-created bare fixture only",
+ "cleanup": "all retained",
+ "scope": "independent actual process entry boundary, not full real60GB verification"
+}
diff --git a/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-original-capture-proof.json b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-original-capture-proof.json
new file mode 100644
index 00000000..8db74f7f
--- /dev/null
+++ b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-original-capture-proof.json
@@ -0,0 +1,11 @@
+{
+ "verdict": "PASS",
+ "files_verified": 4059,
+ "bytes_verified": 3167634917,
+ "failures": [],
+ "elapsed_seconds": 9.949747540988028,
+ "retained_capture": "/private/tmp/ops-TK10928-rehearsal.ndMwgA/original.git",
+ "manifest": "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1221Z.HzXvuQ/ops-source-git-manifest.json",
+ "manifest_sha256": "02f539816fccb989c307bece019b48c3dadf8bbead1c4f977395af3053c78746",
+ "scope": "Independent complete compressed file-byte identity and immutable/no-source-hardlink check. Does not prove logical Git object integrity, restore or live current state."
+}
diff --git a/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-real-integrity-proof.json b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-real-integrity-proof.json
new file mode 100644
index 00000000..444cea5f
--- /dev/null
+++ b/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-real-integrity-proof.json
@@ -0,0 +1,42 @@
+{
+ "verdict": "PASS",
+ "manifest_precheck": "parent-original-capture-proof.json4059PASS",
+ "verifier_sha256": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "exact_receipt_count": 14061,
+ "bytes": 60348642328,
+ "source_inventory_exact": true,
+ "receipt_chains": "PASS",
+ "direct_content_samples": [
+ {
+ "oid": "ada9d21265593b91fb6331d40f4aae8acd1053dc",
+ "kind": "blob",
+ "bytes": 723501447,
+ "rehash": "PASS"
+ },
+ {
+ "oid": "fcf92aad6c5f92fc9def3aa8ae525b7698978247",
+ "kind": "tree",
+ "bytes": 57319,
+ "rehash": "PASS"
+ },
+ {
+ "oid": "169db8c773a4b56a039916c4f19eba40e218e981",
+ "kind": "commit",
+ "bytes": 1418,
+ "rehash": "PASS"
+ }
+ ],
+ "render_proof_keys": [
+ "started_epoch",
+ "data_deadline_epoch",
+ "restores",
+ "source_scope",
+ "all_restored_files_retained",
+ "commands",
+ "object_validation_run_id",
+ "verdict",
+ "finished_epoch",
+ "combined_data_phase_seconds"
+ ],
+ "scope": "All receipt identity/coverage/chains independently checked, plus fresh Git content sample each object type.5file content verification follows exact artifact schema. Does not prove full fsck or full recovery."
+}
diff --git a/verification/cycle-20260908T1322Z-m4gNE5-integrity.json b/verification/cycle-20260908T1322Z-m4gNE5-integrity.json
new file mode 100644
index 00000000..15e9849a
--- /dev/null
+++ b/verification/cycle-20260908T1322Z-m4gNE5-integrity.json
@@ -0,0 +1,24 @@
+{
+ "ticket": "TK-10928-cron-issue-com-steve-dw-backup-canary",
+ "cycle": "cycle-20260908T1322Z.m4gNE5",
+ "bounded_increment": "Resumable immutable-copy integrity verifier and five render restores",
+ "verdict": "PASS local boundary; operational source UNRESOLVED",
+ "objects": 14061,
+ "logical_bytes": 60348642328,
+ "renders": 5,
+ "artifacts": {
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-verifier-v1.py": "d43e9998d12059b4b1adb12bdb63efcd54f7f939645e1c9ecb873467eaa35c6c",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-result.json": "54a4c2266c3c99bf07d27492f69146bda2442f7e8a0e0f1efe4c97c790920c9c",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-object-pins.json": "9cccc1d1ab29147480661ab461e11be5016459f47215810ef336d2dd415c047d",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-five-render-proof.json": "7ad4c3f66bf5e7ba929ed1f4d0363073fdf4bbf44e84253f9c74ee093f12ea2c",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-independent-cli-proof.json": "5bbea31533f3964443763bc6ba501c12828b8560839bb58f013f2c5c7e70ae1b",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-original-capture-proof.json": "4e7c2e789945651aa53f4dc93ea6f0641bed319cc361cff7a61f1feb0bfbf6d9",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-real-integrity-proof.json": "a2a7c8acdec88b0d941d8b75ca9abbe48dcad9c995f4bb2db8878e14e47f8e61",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/parent-five-render-proof.json": "00f2298629effb51448e2080f936d9defe5ca85abb30ad15bd4ad78c9816623e"
+ },
+ "retained_receipt_hashes": {
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-receipts/segment-ce98da6a-4528-4255-9c07-30543c8a1ea9-0.jsonl": "29aaa75416c36ae0e05f6ba234fe76906eaaff2b13cb04e27fd65eb4ea0e472a",
+ "/Users/macstudio3/Projects/ticket-system/data/codex-yoloforever/cycle-20260908T1322Z.m4gNE5/ops-receipts/segment-ce98da6a-4528-4255-9c07-30543c8a1ea9-1.jsonl": "45cbfe365bb32a9e08b4619f4a21902bc919dbaa1313173dfac4f2ecbf0d81f0"
+ },
+ "trust": "This local commit anchors artifact and receipt hashes; external raw scratch is retained. Receipt chains alone do not authenticate attacker-controlled edits. No fullfsck/fullrestore/packing/size/live/scheduler claim."
+}
← 5642d941 Record automatic canary ticket reopen after cycle snapshot
·
back to Ticket System
·
Rehearse backup reconstruction while preserving cached index 8c953a2e →