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
Some checks are pending
CI / lint-and-test (push) Waiting to run
Retain current post-V3 database rebuild proof
This commit is contained in:
commit
83141bc97d
5 changed files with 254 additions and 29 deletions
|
|
@ -25,10 +25,10 @@ Run:
|
||||||
--output /tmp/teleo-canonical-rebuild-receipt.json
|
--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
|
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,
|
39 manifest tables and all 52,167 rows, with no schema, data, constraint, role,
|
||||||
or performance mismatch. Total runtime was 12.35 seconds, including 2.97
|
or performance mismatch. Total runtime was 10.56 seconds, including 2.71
|
||||||
seconds for `pg_restore`. Key rows included:
|
seconds for `pg_restore`. Key rows included:
|
||||||
|
|
||||||
- 1,837 claims;
|
- 1,837 claims;
|
||||||
|
|
@ -36,10 +36,11 @@ seconds for `pg_restore`. Key rows included:
|
||||||
- 4,670 claim-evidence links;
|
- 4,670 claim-evidence links;
|
||||||
- 4,916 claim edges;
|
- 4,916 claim edges;
|
||||||
- 17 reasoning tools;
|
- 17 reasoning tools;
|
||||||
- 27 proposals.
|
- 29 proposals.
|
||||||
|
|
||||||
This snapshot predates the completed V3 source canary. The live VPS now has 29
|
This snapshot includes the completed V3 source canary. It is ready as the
|
||||||
proposals, so a new snapshot is required before claiming current GCP parity.
|
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
|
This is the fastest disaster-recovery path. It does not require Leo to
|
||||||
re-extract or relearn the corpus.
|
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
|
- Visible Telegram proof for the current broad suite is still pending and must
|
||||||
use authenticated Google Chrome only.
|
use authenticated Google Chrome only.
|
||||||
- Prior GCP parity remains valid at its historical proof point (`39` tables,
|
- 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,
|
`52,164` rows), but current parity is pending. A post-V3 `52,167`-row,
|
||||||
`27`-proposal VPS dump restored locally with zero mismatches; it predates the
|
`29`-proposal VPS dump restored locally with zero mismatches and complete
|
||||||
live `29`-proposal V3 state and has not yet been restored to GCP.
|
cleanup; it has not yet been restored to GCP.
|
||||||
- Exact snapshot recovery works. Full source-to-blank-database recompilation is
|
- Exact snapshot recovery works. Full source-to-blank-database recompilation is
|
||||||
partial; see `../../kb-rebuild-and-recompile.md`.
|
partial; see `../../kb-rebuild-and-recompile.md`.
|
||||||
|
|
||||||
|
|
@ -37,6 +37,8 @@ Newest artifacts:
|
||||||
- `telegram-handler-m3taversal-oos-suite-score-current.md`
|
- `telegram-handler-m3taversal-oos-suite-score-current.md`
|
||||||
- `telegram-handler-v3-proposal-readback-post-restart-current.json`
|
- `telegram-handler-v3-proposal-readback-post-restart-current.json`
|
||||||
- `leo-v3-document-source-lifecycle-current.md`
|
- `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
|
## 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
|
**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
|
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
|
adapter-free no-send model replay. A newer post-V3 VPS dump with `52,167` rows
|
||||||
and `27` proposals restored and verified locally, but it has not yet been
|
and `29` proposals now restores and verifies locally with zero mismatches, but
|
||||||
restored to GCP. The live VPS now has `29` proposals after the V3 document
|
it has not yet been restored to GCP. The prepared input is current; the cloud
|
||||||
canary, so the latest VPS state is ahead of the last GCP proof.
|
replay is still pending.
|
||||||
|
|
||||||
**Database rebuild answer: exact recovery works; semantic recompilation is
|
**Database rebuild answer: exact recovery works; semantic recompilation is
|
||||||
partial.** A verified snapshot can recreate the current Postgres database in
|
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
|
## 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
|
```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:
|
Its SHA-256 is:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
3fc686ccc423651e86d1f0ad052fa89877215b634a07267a7e26a28e1c2bebe8
|
8a49bd487175711d3abc295cd09ed2ca5d5f9dd83e8838f06eeae4bb66a3fc23
|
||||||
```
|
```
|
||||||
|
|
||||||
It contains `39` tables and `52,165` rows with `27` proposals. A disposable
|
It contains `39` tables and `52,167` rows with `29` proposals. A disposable
|
||||||
local restore passed with zero parity mismatches and complete cleanup. Because
|
local restore passed with zero parity mismatches and complete cleanup. This is
|
||||||
the V3 lifecycle later moved the VPS to `29` proposals, this dump is useful but
|
the current source state captured after the V3 lifecycle.
|
||||||
is not the newest possible source state.
|
|
||||||
|
|
||||||
The next GCP sequence is:
|
The next GCP sequence is:
|
||||||
|
|
||||||
1. complete Google Cloud CLI reauthentication through the existing Google
|
1. complete Google Cloud CLI reauthentication through the existing Google
|
||||||
Chrome sign-in tab;
|
Chrome sign-in tab;
|
||||||
2. bootstrap the least-privilege IAP/operator identities from the merged repo;
|
2. bootstrap the least-privilege IAP/operator identities from the merged repo;
|
||||||
3. capture a new post-V3 VPS snapshot;
|
3. restore the captured post-V3 snapshot into a disposable GCP staging database;
|
||||||
4. restore it into a disposable GCP staging database;
|
4. verify schema, constraints, row counts, hashes, roles, private connectivity,
|
||||||
5. verify schema, constraints, row counts, hashes, roles, private connectivity,
|
|
||||||
and bounded performance;
|
and bounded performance;
|
||||||
6. deploy the current Leo compute/runtime against that copy;
|
5. deploy the current Leo compute/runtime against that copy;
|
||||||
7. replay the same 15-question broad suite plus the exact V3 proposal question;
|
6. 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.
|
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
|
Until this sequence runs, current GCP parity must be reported as pending rather
|
||||||
than inferred from the earlier green proof.
|
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
|
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
|
`39` tables and `52,167` rows, checked structural and row hashes, roles and
|
||||||
performance, and removed the container. Total runtime was `12.35` seconds,
|
performance, and removed the container. Total runtime was `10.56` seconds,
|
||||||
including `2.97` seconds for `pg_restore`.
|
including `2.71` seconds for `pg_restore`.
|
||||||
|
|
||||||
This recreates the database exactly. It does not re-extract knowledge from the
|
This recreates the database exactly. It does not re-extract knowledge from the
|
||||||
source corpus.
|
source corpus.
|
||||||
|
|
@ -365,6 +363,8 @@ training its chat style.
|
||||||
- `leo-v3-document-source-lifecycle-current.json`
|
- `leo-v3-document-source-lifecycle-current.json`
|
||||||
- `leo-v3-document-source-lifecycle-current.md`
|
- `leo-v3-document-source-lifecycle-current.md`
|
||||||
- `gcp-refresh-local-rebuild-current.json`
|
- `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`
|
- `../../kb-rebuild-and-recompile.md`
|
||||||
|
|
||||||
## Final Claim Ceiling
|
## Final Claim Ceiling
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue