Merge pull request #135 from living-ip/codex/leo-post-v3-rebuild-proof-20260714
Some checks are pending
CI / lint-and-test (push) Waiting to run

Retain current post-V3 database rebuild proof
This commit is contained in:
twentyOne2x 2026-07-14 02:51:10 +02:00 committed by GitHub
commit 83141bc97d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 254 additions and 29 deletions

View file

@ -25,10 +25,10 @@ Run:
--output /tmp/teleo-canonical-rebuild-receipt.json
```
The newest retained 2026-07-13 canary restored a fresh, network-isolated
The newest retained 2026-07-14 post-V3 canary restored a fresh, network-isolated
Postgres and then removed it. The restored target matched the source across all
39 manifest tables and all 52,165 rows, with no schema, data, constraint, role,
or performance mismatch. Total runtime was 12.35 seconds, including 2.97
39 manifest tables and all 52,167 rows, with no schema, data, constraint, role,
or performance mismatch. Total runtime was 10.56 seconds, including 2.71
seconds for `pg_restore`. Key rows included:
- 1,837 claims;
@ -36,10 +36,11 @@ seconds for `pg_restore`. Key rows included:
- 4,670 claim-evidence links;
- 4,916 claim edges;
- 17 reasoning tools;
- 27 proposals.
- 29 proposals.
This snapshot predates the completed V3 source canary. The live VPS now has 29
proposals, so a new snapshot is required before claiming current GCP parity.
This snapshot includes the completed V3 source canary. It is ready as the
current restore input, but it has not yet been restored to GCP; current GCP
parity therefore remains unproven.
This is the fastest disaster-recovery path. It does not require Leo to
re-extract or relearn the corpus.

View file

@ -25,9 +25,9 @@ supersedes the July 13 verdict below.
- Visible Telegram proof for the current broad suite is still pending and must
use authenticated Google Chrome only.
- Prior GCP parity remains valid at its historical proof point (`39` tables,
`52,164` rows), but current parity is pending. A newer `52,165`-row,
`27`-proposal VPS dump restored locally with zero mismatches; it predates the
live `29`-proposal V3 state and has not yet been restored to GCP.
`52,164` rows), but current parity is pending. A post-V3 `52,167`-row,
`29`-proposal VPS dump restored locally with zero mismatches and complete
cleanup; it has not yet been restored to GCP.
- Exact snapshot recovery works. Full source-to-blank-database recompilation is
partial; see `../../kb-rebuild-and-recompile.md`.
@ -37,6 +37,8 @@ Newest artifacts:
- `telegram-handler-m3taversal-oos-suite-score-current.md`
- `telegram-handler-v3-proposal-readback-post-restart-current.json`
- `leo-v3-document-source-lifecycle-current.md`
- `gcp-refresh-post-v3-snapshot-current.json`
- `gcp-refresh-post-v3-local-rebuild-current.json`
## Live Addendum - 2026-07-13

View file

@ -0,0 +1,179 @@
{
"application_roles_bootstrapped": [
"kb_apply"
],
"artifact": "local_canonical_postgres_rebuild_canary",
"canonical_schema_table_count": 39,
"cleanup": {
"absence_inspection_attempts": 1,
"attempted": true,
"container": "teleo-canonical-rebuild-20260714004651-44b724c610e5",
"container_absent": true,
"force_remove_attempted": true,
"force_remove_exit_code": 0,
"status": "pass"
},
"container": {
"id_prefix": "3e9fafc7e00b",
"image": "postgres:16-alpine",
"isolation": {
"image": "postgres:16-alpine",
"label": "teleo-canonical-rebuild-20260714004651-44b724c610e5",
"network_mode": "none",
"postgres_data_tmpfs": "rw,nosuid,nodev,noexec,size=1024m",
"running": true
},
"name": "teleo-canonical-rebuild-20260714004651-44b724c610e5",
"named_database_psql_attempts": 5,
"named_database_psql_ready": true,
"network_mode_required": "none",
"postgres_data_tmpfs_required": "rw,nosuid,nodev,noexec,size=1024m",
"preexisting_absence_proven": true,
"started": true
},
"database": "teleo",
"dump": {
"bytes": 13468277,
"custom_format_signature_valid": true,
"path": "/private/tmp/working-leo-gcp-refresh-post-v3-20260714/teleo-canonical.dump",
"sha256": "8a49bd487175711d3abc295cd09ed2ca5d5f9dd83e8838f06eeae4bb66a3fc23"
},
"error": null,
"generated_at_utc": "2026-07-14T00:46:51.713676+00:00",
"key_counts": {
"kb_stage.kb_proposals": 29,
"public.claim_edges": 4916,
"public.claim_evidence": 4670,
"public.claims": 1837,
"public.reasoning_tools": 17,
"public.sources": 4145
},
"parity": {
"details": {
"application_role_mismatches": {},
"performance": [
{
"query": "claim_edges_by_claim_id",
"source_ms": 0.044,
"source_ratio": 0.0104,
"target_ms": 0.052
},
{
"query": "claim_evidence_by_claim_id",
"source_ms": 0.068,
"source_ratio": 0.011600000000000001,
"target_ms": 0.058
},
{
"query": "count_claims",
"source_ms": 0.241,
"source_ratio": 0.0852,
"target_ms": 0.426
},
{
"query": "pending_proposals_latest",
"source_ms": 0.016,
"source_ratio": 0.0008,
"target_ms": 0.004
}
],
"performance_problems": [],
"required_extension_mismatches": {},
"source_connection": {
"database_collation": "en_US.utf8",
"database_ctype": "en_US.utf8",
"server_address": null,
"server_port": null,
"ssl": false,
"ssl_version": null
},
"source_database": "teleo",
"source_table_count": 39,
"source_total_rows": 52167,
"structural_hashes": {
"columns": {
"source": "50b502967aa85b88bd204c7b9035de60bf21a6a6973817e8b8121d0cd9faab81",
"target": "50b502967aa85b88bd204c7b9035de60bf21a6a6973817e8b8121d0cd9faab81"
},
"constraints": {
"source": "8b26d26fda56f09325e0603aae48051da08dfc6c35322fa88880acdabb8ad859",
"target": "8b26d26fda56f09325e0603aae48051da08dfc6c35322fa88880acdabb8ad859"
},
"functions": {
"source": "4bddee626b3ab62af236493001d2a09f2d56c084beb7e6c69cd082ce4aba155b",
"target": "4bddee626b3ab62af236493001d2a09f2d56c084beb7e6c69cd082ce4aba155b"
},
"indexes": {
"source": "5c4f7567e9ad0f25da0ab15f650a1005397ae9c727af1ab41e2675c46a5ebce5",
"target": "5c4f7567e9ad0f25da0ab15f650a1005397ae9c727af1ab41e2675c46a5ebce5"
},
"policies": {
"source": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
"target": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945"
},
"schemas": {
"source": "2fdf551b403db2d79813c8fd2869dadfeba261fac2aaa718b355cd7414640979",
"target": "2fdf551b403db2d79813c8fd2869dadfeba261fac2aaa718b355cd7414640979"
},
"sequences": {
"source": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
"target": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945"
},
"triggers": {
"source": "4d5f3394480c8410035dac5457e144c7db80fa0820ff49beb93aa819a7282c64",
"target": "4d5f3394480c8410035dac5457e144c7db80fa0820ff49beb93aa819a7282c64"
},
"types": {
"source": "365e82ac205319d25d14c8b16026978f0e6023ae0c58767f700d7f2ea659b70b",
"target": "365e82ac205319d25d14c8b16026978f0e6023ae0c58767f700d7f2ea659b70b"
},
"views": {
"source": "5c33fa260f25dccffc214f795c66e3dbae89d91d0dbf8a98122ace1dcda46799",
"target": "5c33fa260f25dccffc214f795c66e3dbae89d91d0dbf8a98122ace1dcda46799"
}
},
"table_mismatches": [],
"target_connection": {
"database_collation": "en_US.utf8",
"database_ctype": "en_US.utf8",
"server_address": null,
"server_port": null,
"ssl": false,
"ssl_version": null
},
"target_database": "teleo",
"target_extra_application_roles": [],
"target_table_count": 39,
"target_total_rows": 52167
},
"problems": [],
"requested": true,
"source_manifest": {
"bytes": 164734,
"path": "/private/tmp/working-leo-gcp-refresh-post-v3-20260714/source-manifest.jsonl",
"sha256": "c0f53a3f8bc845ffc78255c1ab45771bfbe136c7302a47e161afb24258a72478"
},
"status": "pass",
"target_manifest": {
"bytes": 164734,
"line_count": 56,
"sha256": "7495ce4e9b82685fe4d044ecb205b3e1d8594e6ed711fd77f57006598b6380a9"
},
"verifier": "ops.verify_postgres_parity_manifest.compare_manifests"
},
"safety": {
"network_access_available_to_container": false,
"persistent_postgres_storage_used": false,
"production_database_touched": false
},
"status": "pass",
"timings_seconds": {
"cleanup": 0.513471,
"container_start_and_named_database_ready": 2.157436,
"dump_validation_and_hash": 0.011392,
"key_count_readback": 1.616971,
"manifest_capture_and_parity_compare": 3.017485,
"pg_restore": 2.710905,
"total": 10.559365
}
}

View file

@ -0,0 +1,43 @@
{
"artifact": "vps_canonical_postgres_exported_snapshot",
"dump": {
"bytes": 13468277,
"path": "/private/tmp/working-leo-gcp-refresh-post-v3-20260714/teleo-canonical.dump",
"sha256": "8a49bd487175711d3abc295cd09ed2ca5d5f9dd83e8838f06eeae4bb66a3fc23",
"toc": {
"constraints": 113,
"entries": 294,
"indexes": 75,
"table_data": 39
}
},
"generated_at_utc": "2026-07-14T00:46:33.235597+00:00",
"manifest": {
"application_roles": [
{
"bypass_rls": false,
"can_login": true,
"create_db": false,
"create_role": false,
"inherit": true,
"name": "kb_apply",
"replication": false,
"superuser": false
}
],
"path": "/private/tmp/working-leo-gcp-refresh-post-v3-20260714/source-manifest.jsonl",
"table_count": 39,
"total_rows": 52167
},
"production_db_mutated": false,
"service_unchanged": true,
"snapshot_exported": true,
"source": {
"container": "teleo-pg",
"database": "teleo",
"service": "leoclean-gateway.service",
"ssh_target": "root@77.42.65.182"
},
"status": "pass",
"telegram_send_attempted": false
}

View file

@ -20,10 +20,10 @@ and survive a gateway restart. The current broad no-post suite passes `15/15`.
**GCP answer: prior parity is proven, current parity is not.** A July 12 GCP
copy matched the VPS across `39` tables and `52,164` rows and passed an
adapter-free no-send model replay. A newer July 13 VPS dump with `52,165` rows
and `27` proposals restored and verified locally, but it has not yet been
restored to GCP. The live VPS now has `29` proposals after the V3 document
canary, so the latest VPS state is ahead of the last GCP proof.
adapter-free no-send model replay. A newer post-V3 VPS dump with `52,167` rows
and `29` proposals now restores and verifies locally with zero mismatches, but
it has not yet been restored to GCP. The prepared input is current; the cloud
replay is still pending.
**Database rebuild answer: exact recovery works; semantic recompilation is
partial.** A verified snapshot can recreate the current Postgres database in
@ -227,35 +227,33 @@ the July 13-14 source compiler, V3 proposal, named-proposal readback, or the sam
## GCP: Current Forward Path
A fresh July 13 source dump is retained at:
A fresh post-V3 July 14 source dump is retained at:
```text
/private/tmp/working-leo-gcp-refresh-20260713/teleo-canonical.dump
/private/tmp/working-leo-gcp-refresh-post-v3-20260714/teleo-canonical.dump
```
Its SHA-256 is:
```text
3fc686ccc423651e86d1f0ad052fa89877215b634a07267a7e26a28e1c2bebe8
8a49bd487175711d3abc295cd09ed2ca5d5f9dd83e8838f06eeae4bb66a3fc23
```
It contains `39` tables and `52,165` rows with `27` proposals. A disposable
local restore passed with zero parity mismatches and complete cleanup. Because
the V3 lifecycle later moved the VPS to `29` proposals, this dump is useful but
is not the newest possible source state.
It contains `39` tables and `52,167` rows with `29` proposals. A disposable
local restore passed with zero parity mismatches and complete cleanup. This is
the current source state captured after the V3 lifecycle.
The next GCP sequence is:
1. complete Google Cloud CLI reauthentication through the existing Google
Chrome sign-in tab;
2. bootstrap the least-privilege IAP/operator identities from the merged repo;
3. capture a new post-V3 VPS snapshot;
4. restore it into a disposable GCP staging database;
5. verify schema, constraints, row counts, hashes, roles, private connectivity,
3. restore the captured post-V3 snapshot into a disposable GCP staging database;
4. verify schema, constraints, row counts, hashes, roles, private connectivity,
and bounded performance;
6. deploy the current Leo compute/runtime against that copy;
7. replay the same 15-question broad suite plus the exact V3 proposal question;
8. prove no send, no canonical write, cleanup, and no orphan resources.
5. deploy the current Leo compute/runtime against that copy;
6. replay the same 15-question broad suite plus the exact V3 proposal question;
7. prove no send, no canonical write, cleanup, and no orphan resources.
Until this sequence runs, current GCP parity must be reported as pending rather
than inferred from the earlier green proof.
@ -276,9 +274,9 @@ This is the reliable disaster-recovery path today:
```
The July 13 canary restored a network-isolated Postgres instance, verified all
`39` tables and `52,165` rows, checked structural and row hashes, roles and
performance, and removed the container. Total runtime was `12.35` seconds,
including `2.97` seconds for `pg_restore`.
`39` tables and `52,167` rows, checked structural and row hashes, roles and
performance, and removed the container. Total runtime was `10.56` seconds,
including `2.71` seconds for `pg_restore`.
This recreates the database exactly. It does not re-extract knowledge from the
source corpus.
@ -365,6 +363,8 @@ training its chat style.
- `leo-v3-document-source-lifecycle-current.json`
- `leo-v3-document-source-lifecycle-current.md`
- `gcp-refresh-local-rebuild-current.json`
- `gcp-refresh-post-v3-snapshot-current.json`
- `gcp-refresh-post-v3-local-rebuild-current.json`
- `../../kb-rebuild-and-recompile.md`
## Final Claim Ceiling