retain current post-V3 database rebuild proof
This commit is contained in:
parent
64142ee3fc
commit
d09be1777e
5 changed files with 254 additions and 29 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue