* make Leo skill onboarding clean-context reproducible * harden Leo clean-context skill acceptance
8.2 KiB
| name | description |
|---|---|
| teleo-gcp-parity-ops | Use for passwordless Teleo GCP VM access, private Cloud SQL canonical parity, GCP Leo runtime readback, m3taversal no-send replay, rollback, and cleanup without collapsing VPS proof into GCP proof. |
Teleo GCP Parity Ops
Working Target
Restore a copy of the VPS canonical Leo database to GCP, prove exact schema, row, role, extension, performance, and private-connectivity parity, then run the real GCP Leo read/reasoning path without Telegram sends or DB mutation.
Operator Paths
The direct alias is passwordless and was live-verified on 2026-07-14:
ssh teleo-gcp-staging
It uses /Users/user/.ssh/google_compute_engine for the configured operator,
disables password and keyboard-interactive authentication, and does not store a
Google password. sudo -n also works. The route remains
firewall-source-dependent, so verify ssh -o BatchMode=yes teleo-gcp-staging true before a
long run instead of assuming retained access is current.
The intended secondary path is .github/workflows/gcp-iap-operator.yml, using
short-lived GitHub OIDC, IAP, OS Login, and fixed reviewed operations. It is
merged but not bootstrapped: workflow run 29208215340 failed at auth with
invalid_target because provider teleo-iap-operator is absent, disabled, or
deleted. Do not call this path working until a live status run passes.
Verified target:
- project
teleo-501523; - VM
teleo-prod-1ineurope-west6-a; - Cloud SQL
teleo-pgvector-standby, PostgreSQL 16.14; - private endpoint
10.61.0.3:5432, public IP disabled, TLS required; - service
leoclean-gcp-prod-parallel.service.
Never print the Cloud SQL or Google password. On the VM, use the attached service account and Secret Manager through reviewed wrappers or a short-lived environment variable, then unset it.
Two Different Databases
- Canonical collective knowledge is Cloud SQL database
teleo_canonical, withpublic.*andkb_stage.*tables. - Hermes conversation continuity is
state.dbplus session JSONL files. Theleoclean-cloudsql-memory-sync.servicesnapshot path copies this runtime memory; it does not populate or prove canonical claims, sources, evidence, edges, or proposals.
Do not describe a passing Hermes memory sync as canonical KB parity.
Current Verified State - 2026-07-14
- The newest captured VPS database has
39tables and52,167rows, including claims1837, sources4145, claim evidence4670, claim edges4916, and proposals29. - A disposable private-TLS GCP clone restored that snapshot with exact
39/39-table and52,167/52,167-row parity. Rowsets, schema objects, roles, extensions, constraints, and performance checks had zero mismatches. - A real no-send GCP Hermes turn received an ID-free claim challenge, performed
search,show,evidence, andedges, retrieved the expected claim and both source rows, and passed18/18runtime checks plus6/6reasoning outcomes. It did not send Telegram or write the DB. statusand zero-hit search work on a canonical-only clone without the optionalteleo_restoreaudit schema. All read commands emit deterministic retrieval receipts.- The generated clone was deleted. The retained rollback database remains
connection-disabled with zero sessions. The GCP gateway remained PID
148735,NRestarts=0, active/running throughout that bounded experiment. - PR
#144merged the reviewed helper/skill. After deployment, the service survived a controlled restart and is active/running at PID304036, start time2026-07-14 10:40:17 UTC. Live post-restartstatusandsearchreturned Cloud SQL retrieval receipts with unchanged canonical counts. - A live regression showed the old wrapper could time out its stronger status probe and fall through to a different local tool. Supported GCP KB commands now route directly to Cloud SQL and fail closed on errors; two behavioral tests enforce that invariant.
- Persistent GCP
teleo_canonicalremains the older staging copy measured at52,164rows and26proposals. It has not been promoted or cut over.
Open Least-Privilege Candidate
PR #148, Scope GCP Leo runtime to least-privilege Cloud SQL access, is open as
of the 2026-07-15 skill-pack reconciliation. It proposes scoped runtime roles,
secret access, fail-closed Cloud SQL behavior, deployment rollback, and positive
plus negative permission checks. Those branch files and proposed live outcomes
are candidate evidence only. Before using them, run:
gh pr view 148 --json state,mergedAt,mergeCommit,headRefName,url
Until the PR is merged and its runtime receipt passes, use only paths present on
canonical main, keep persistent GCP classified as staging, do not promote it,
and do not infer least-privilege cutover from a branch or dry run.
Primary retained proof:
docs/reports/leo-working-state-20260709/gcp-db-first-working-leo-20260714.mddocs/reports/leo-working-state-20260709/gcp-db-first-restore-current.jsondocs/reports/leo-working-state-20260709/gcp-db-first-parity-current.jsondocs/reports/leo-working-state-20260709/gcp-db-first-blind-claim-current.jsondocs/reports/leo-working-state-20260709/gcp-db-first-cleanup-current.jsondocs/reports/leo-working-state-20260709/gcp-db-first-live-deploy-restart-current.json
Required Parity Rows
Track these independently:
- control-plane project, VM, Cloud SQL, private-IP, and TLS identity;
- canonical database schema, counts, row hashes, constraints, indexes, functions, extensions, roles, and performance;
- GCP service PID/restarts plus live profile and tool hashes;
DC-01throughDC-06DB-read readiness;- real no-send model replies, strict score, and exact count consistency;
- no-mutation fingerprints, child/profile cleanup, clone deletion, and rollback disposition.
Canonical Restore And Replay
Use:
ops/capture_vps_canonical_postgres_snapshot.pyfor a single source dump and manifest;ops/restore_gcp_generated_postgres_snapshot.py restore --executefor a receipt-bound private-TLS restore into a boundedteleo_clone_*database;ops/restore_gcp_generated_postgres_snapshot.py cleanup --executefor exact clone cleanup with live-service and rollback readback;ops/postgres_parity_manifest.sqlfor row/catalog/role/performance readback;ops/verify_postgres_parity_manifest.py --scope gcp_stagingfor exact parity;scripts/run_gcp_generated_db_direct_claim_suite.pyfor the adapter-free, read-only, no-send six-response replay against a generatedteleo_clone_*.scripts/run_gcp_generated_db_blind_claim_canary.pyfor the bounded ID-free claim challenge, source receipt, reasoning, no-write, and cleanup proof.
The replay must use the Hermes virtualenv, not system Python:
/home/teleo/.hermes/hermes-agent/venv/bin/python \
scripts/run_gcp_generated_db_direct_claim_suite.py ...
The replay is not complete until the generated clone, temporary profile, children, upload/run directories, and any temporary client are absent.
Safety And Claim Ceiling
- Do not send Telegram messages from the GCP parity lane.
- Do not apply, approve, or stage KB changes during read/reasoning replay.
- Do not restart the live GCP gateway for tool-file synchronization unless a separate restart window is explicitly requested.
- Do not call control-plane inventory, memory sync, route readiness, or a nominal scorer pass full m3taversal parity.
The strongest accepted claim requires exact DB parity plus real no-send model replies with truthful counts and cleanup. It still does not prove Telegram delivery, GCP canonical mutation, ongoing replication, or production cutover.
Current Access And Next Action
Direct SSH and passwordless sudo are currently working. Local gcloud still
requires account reauthentication for control-plane metadata, so the current
private-IP/TLS proof comes from a live database connection while the public-IP-
disabled control-plane receipt remains dated 2026-07-12.
The next production decision is not another restore drill. It is whether to
promote a newly verified snapshot into persistent GCP teleo_canonical and
repoint the production read adapter. Until that decision is explicit, keep GCP
classified as staging and do not expose Cloud SQL publicly.