Merge pull request #89 from living-ip/codex/working-leo-access-truth-20260712
Some checks are pending
CI / lint-and-test (push) Waiting to run

Codify current Working Leo proof and GCP access gate
This commit is contained in:
twentyOne2x 2026-07-12 23:02:50 +02:00 committed by GitHub
commit 62bfd429f2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 456 additions and 29 deletions

View file

@ -11,18 +11,26 @@ 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 row, role, extension, performance, and private-connectivity parity, then run the
real GCP Leo read/reasoning path without Telegram sends or DB mutation. real GCP Leo read/reasoning path without Telegram sends or DB mutation.
## Passwordless Operator Path ## Operator Paths
Use the retained SSH alias: The direct alias is passwordless but firewall-source-dependent:
```bash ```bash
ssh teleo-gcp-staging ssh teleo-gcp-staging
``` ```
The alias uses `/Users/user/.ssh/google_compute_engine` for It uses `/Users/user/.ssh/google_compute_engine` for
`billy_livingip_xyz@34.65.143.148`, disables password and keyboard-interactive `billy_livingip_xyz@34.65.143.148`, disables password and keyboard-interactive
authentication, and does not store a Google password. Local `gcloud` browser authentication, and does not store a Google password. It works only while the
reauthentication is not required for routine VM operator access. Mac's public egress matches `teleo-prod-allow-ssh-current-ip`. On 2026-07-12 the
Mac returned to `99.35.221.133` while the rule still allowed
`176.108.138.1/32`, so TCP/22 timed out before authentication.
The intended durable 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: Verified target:
@ -32,7 +40,7 @@ Verified target:
- private endpoint `10.61.0.3:5432`, public IP disabled, TLS required; - private endpoint `10.61.0.3:5432`, public IP disabled, TLS required;
- service `leoclean-gcp-prod-parallel.service`. - service `leoclean-gcp-prod-parallel.service`.
Never print the Cloud SQL password. On the VM, use the attached service account 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 and Secret Manager through reviewed wrappers or a short-lived environment
variable, then unset it. variable, then unset it.
@ -64,14 +72,20 @@ Do not describe a passing Hermes memory sync as canonical KB parity.
- Generated candidate databases and temporary client/operation directories were - Generated candidate databases and temporary client/operation directories were
removed. `teleo_canonical_pre_20260712t1905z` is retained disabled, with zero removed. `teleo_canonical_pre_20260712t1905z` is retained disabled, with zero
connections, as the verified pre-swap rollback point. connections, as the verified pre-swap rollback point.
- The model-response replay must pass both the strict benchmark and exact count - A real no-send model replay returned six replies and nominally scored `6/6`,
consistency. A nominal score is not accepted if a reply prints table counts but it is rejected as Cory-standard proof because `DC-03` and `DC-05`
that differ from the status receipt. printed zero canonical counts. The real database has
`1837/4145/4916/4670/26`.
- The harness now enables clone-bound, default-read-only `teleo-kb status`, runs
under the Hermes virtualenv, and rejects any printed count that differs from
the canonical status receipt. The hardened rerun and clone cleanup wait on
the exact operator-access gate below.
Primary retained proof: Primary retained proof:
- `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json` - `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json`
- `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json` - `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json`
- `docs/reports/leo-working-state-20260709/gcp-operator-access-blocker-current.json`
- root task output `outputs/gcp-staging-canonical-parity-20260712T1905Z/` - root task output `outputs/gcp-staging-canonical-parity-20260712T1905Z/`
- root task output `outputs/gcp-cory-model-replay-20260712T1940Z/` - root task output `outputs/gcp-cory-model-replay-20260712T1940Z/`
@ -121,3 +135,21 @@ children, upload/run directories, and any temporary client are absent.
The strongest accepted claim requires exact DB parity plus real no-send model 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 replies with truthful counts and cleanup. It still does not prove Telegram
delivery, GCP canonical mutation, ongoing replication, or production cutover. delivery, GCP canonical mutation, ongoing replication, or production cutover.
## Exact Current Gate
All autonomous alternatives have been exhausted: privileged local `gcloud`
requires Google password reauthentication; direct SSH misses the firewall
`/32`; the dedicated WIF provider is not bootstrapped; the existing
`living-ip-github` provider can authenticate only an artifact service account
that lacks Compute/IAM/Secret Manager/Cloud SQL permissions; no Mullvad or
Tailscale route exposes the allowed office ISP address.
CTA: in Chrome, open the existing tab titled `Google Cloud Platform` for
`billy@livingip.xyz`, enter the current Google password, click `Next`, then tell
Codex exactly `GCP reauthenticated`. Do not send the password.
After that, rotate only the SSH `/32`, bootstrap and live-test the IAP operator,
run the hardened replay, delete `teleo_clone_cory_20260712t1940z`, remove its
run directory, and verify the disabled rollback database still has zero
connections.

View file

@ -24,8 +24,10 @@ Orient the worker before action. Build a current, proof-linked understanding of
- Leo is the operator-facing agent expected to answer in Telegram, remember operator context, reason from canonical KB state, stage concrete KB changes, and support approved changes becoming canonical DB rows with proof. - Leo is the operator-facing agent expected to answer in Telegram, remember operator context, reason from canonical KB state, stage concrete KB changes, and support approved changes becoming canonical DB rows with proof.
- The immediate July 9 issue is not generic bot liveness. It is Cory/m3taversal's expectation that approved KB changes move beyond proposal state when appropriate. - The immediate July 9 issue is not generic bot liveness. It is Cory/m3taversal's expectation that approved KB changes move beyond proposal state when appropriate.
- The VPS is the currently proven Telegram-visible Leo surface. - The VPS is the currently proven Telegram-visible Leo surface.
- GCP is a separate lane. Passwordless VM access, the live gateway, private - GCP is a separate lane. The live gateway, private Cloud SQL canonical rows,
Cloud SQL canonical rows, and exact VPS-to-GCP database parity are now proven. and exact VPS-to-GCP database parity are proven. Direct passwordless SSH was
proven but is not currently on-demand because its firewall `/32` no longer
matches this Mac's egress, and the dedicated OIDC/IAP path is not bootstrapped.
Telegram delivery, GCP canonical mutation, ongoing replication, and cutover Telegram delivery, GCP canonical mutation, ongoing replication, and cutover
remain separate proof rows. remain separate proof rows.
@ -46,14 +48,16 @@ Orient the worker before action. Build a current, proof-linked understanding of
From the repo root, read: From the repo root, read:
1. `docs/reports/leo-working-state-20260709/current-truth-index.md` 1. `docs/reports/leo-working-state-20260709/working-leo-current-proof-20260712.md`
2. `docs/reports/leo-working-state-20260709/operator-surface-map.md` 2. `docs/reports/leo-working-state-20260709/current-truth-index.md`
3. `docs/reports/leo-working-state-20260709/working-leo-definition-20260709.md` 3. `docs/reports/leo-working-state-20260709/operator-surface-map.md`
4. `docs/reports/leo-working-state-20260709/cory-expected-working-leo-outcomes-20260709.md` 4. `docs/reports/leo-working-state-20260709/working-leo-definition-20260709.md`
5. `docs/reports/leo-working-state-20260709/approve-claim-clone-canary-current.md` 5. `docs/reports/leo-working-state-20260709/cory-expected-working-leo-outcomes-20260709.md`
6. `docs/reports/leo-working-state-20260709/gcp-cloud-sql-t3-live-readonly-current.md` 6. `docs/reports/leo-working-state-20260709/approve-claim-clone-canary-current.md`
7. `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json` 7. `docs/reports/leo-working-state-20260709/gcp-cloud-sql-t3-live-readonly-current.md`
8. `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json` 8. `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json`
9. `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json`
10. `docs/reports/leo-working-state-20260709/gcp-operator-access-blocker-current.json`
## Required Status Split ## Required Status Split
@ -75,9 +79,11 @@ Do not collapse GCP demo readiness into Telegram completion. Do not collapse pro
- Do not production-apply DB packets unless explicitly authorized. - Do not production-apply DB packets unless explicitly authorized.
- Do not expose secret contents. - Do not expose secret contents.
- Do not treat an old summary as current if a fresh readback is cheap. - Do not treat an old summary as current if a fresh readback is cheap.
- Use `ssh teleo-gcp-staging` for passwordless GCP VM access. Do not call GCP - Try `ssh teleo-gcp-staging` for passwordless GCP VM access, but verify the
blocked on local `gcloud` reauthentication while this route works. Do not current public egress matches the firewall `/32`. If it does not, follow the
print the Cloud SQL password or create IAM/users inside a read-only lane. exact gate in `gcp-operator-access-blocker-current.json`; do not pretend the
merged OIDC/IAP workflow is bootstrapped. Do not print the Cloud SQL or Google
password or create IAM/users inside a read-only lane.
- A benchmark score is not sufficient when an answer contradicts the DB receipt. - A benchmark score is not sufficient when an answer contradicts the DB receipt.
Compare every printed count to `teleo-kb status` or the canonical manifest. Compare every printed count to `teleo-kb status` or the canonical manifest.

View file

@ -118,7 +118,8 @@ is green at its required tier:
ingestion is not proven. ingestion is not proven.
- GCP canonical DB parity and six DB-read routes: proven. Real model replay must - GCP canonical DB parity and six DB-read routes: proven. Real model replay must
also pass exact count consistency; a nominal scorer pass with invented counts also pass exact count consistency; a nominal scorer pass with invented counts
is a failure. is a failure. The current nominal `6/6` run is therefore rejected, and the
hardened rerun/clone cleanup waits on Google password reauthentication.
Do not answer `yes` merely because all repo tests pass. The final user-facing Do not answer `yes` merely because all repo tests pass. The final user-facing
proof is a visible Telegram conversation plus truthful canonical row readback. proof is a visible Telegram conversation plus truthful canonical row readback.
@ -173,6 +174,8 @@ grounded in the new rows after an isolated handler restart.
## Proof Files ## Proof Files
Start with `docs/reports/leo-working-state-20260709/working-leo-current-proof-20260712.md`
and its JSON companion for the current whole-system verdict and completion rule.
Use `docs/reports/leo-working-state-20260709/current-truth-index.md` for current artifact paths. Use `docs/reports/leo-working-state-20260709/current-truth-index.md` for current artifact paths.
Use `docs/reports/leo-working-state-20260709/leo-source-composition-clone-checkpoint-current.md` Use `docs/reports/leo-working-state-20260709/leo-source-composition-clone-checkpoint-current.md`
and its JSON companion for the current source-composition claim ceiling. and its JSON companion for the current source-composition claim ceiling.

View file

@ -28,6 +28,12 @@ sections below override this newer status.
zero canonical counts. The harness now enables the required `status` read and zero canonical counts. The harness now enables the required `status` read and
rejects any printed count that differs from the canonical status receipt. A rejects any printed count that differs from the canonical status receipt. A
hardened rerun is required before this row is green. hardened rerun is required before this row is green.
- GCP on-demand access: not yet durable. Direct passwordless SSH was proven, but
this Mac's current egress `99.35.221.133` does not match the allowed
`176.108.138.1/32`. The merged IAP workflow is not bootstrapped; run
`29208215340` failed with `invalid_target` for the missing/disabled WIF
provider. The exact Google password CTA is retained in
`gcp-operator-access-blocker-current.json`.
- GCP rollback/cleanup: generated parity candidates and temporary tooling were - GCP rollback/cleanup: generated parity candidates and temporary tooling were
removed; disabled rollback database `teleo_canonical_pre_20260712t1905z` has removed; disabled rollback database `teleo_canonical_pre_20260712t1905z` has
zero connections. The current hardened-replay clone must be deleted after the zero connections. The current hardened-replay clone must be deleted after the
@ -35,10 +41,13 @@ sections below override this newer status.
Newest artifacts: Newest artifacts:
- `docs/reports/leo-working-state-20260709/working-leo-current-proof-20260712.md`
- `docs/reports/leo-working-state-20260709/working-leo-current-proof-20260712.json`
- `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json` - `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json`
- `docs/reports/leo-working-state-20260709/teleo_clone_cory_20260712t1940z-canonical-parity-receipt.json` - `docs/reports/leo-working-state-20260709/teleo_clone_cory_20260712t1940z-canonical-parity-receipt.json`
- `docs/reports/leo-working-state-20260709/telegram-visible-direct-claim-dc01-partial-current.json` - `docs/reports/leo-working-state-20260709/telegram-visible-direct-claim-dc01-partial-current.json`
- `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json` (created only after the hardened rerun) - `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json` (created only after the hardened rerun)
- `docs/reports/leo-working-state-20260709/gcp-operator-access-blocker-current.json`
## Definition And Outcomes ## Definition And Outcomes

View file

@ -0,0 +1,53 @@
{
"schema": "teleo.gcpCoryReplayAccessBlocker.v1",
"generated_at_utc": "2026-07-12T20:50:00Z",
"status": "waiting_on_google_password_reauthentication",
"current_canary": {
"operator_path": "Run DC-01 through DC-06 through the real adapter-free GCP GatewayRunner against teleo_clone_cory_20260712t1940z, require strict 6/6 plus exact count consistency, then delete the clone and run-owned files.",
"expected_result": "Six truthful replies, every printed canonical count equal to 1837/4145/4916/4670/26, unchanged clone fingerprint, unchanged GCP service/profile, no Telegram send, no DB write, and zero generated clone/run resources remaining.",
"required_tier": "GCP generated-clone live model proof"
},
"permission_profile": {
"approval_policy": "never",
"filesystem": "unrestricted",
"network": "enabled"
},
"config_readback": {
"privileged_account": "billy@livingip.xyz",
"local_gcloud": "refresh requires interactive Google password verification",
"current_local_egress": "99.35.221.133",
"configured_ssh_firewall_source": "176.108.138.1/32",
"gcp_vm_external_ip": "34.65.143.148",
"direct_ssh": "TCP/22 timeout before authentication",
"chrome": "existing tab titled Google Cloud Platform is at the Google password challenge for authuser=5",
"github_iap_workflow_run": "29208215340",
"github_iap_auth": "invalid_target: teleo-iap-operator Workload Identity provider absent, disabled, or deleted",
"existing_living_ip_github_provider": "authenticates sa-artifact-builder, but that account lacks Compute, IAM, Secret Manager, and Cloud SQL permissions"
},
"attempted_no_approval_routes": [
"direct SSH through the retained teleo-gcp-staging alias",
"cached billy@livingip.xyz gcloud refresh",
"two other valid cached Google identities; neither has Teleo project access",
"merged GitHub OIDC/IAP fixed-operation workflow on main",
"existing living-ip-github WIF provider with sa-artifact-builder",
"authenticated Chrome tab discovery without reading credentials",
"Mullvad status/config readback; configured relay does not restore the allowed office ISP address",
"Tailscale peer/exit-node inventory; no peer offers the allowed office ISP route"
],
"exact_gate": "Google requires the current password for billy@livingip.xyz before Codex can rotate teleo-prod-allow-ssh-current-ip or bootstrap the missing IAP Workload Identity provider and dedicated operator service accounts.",
"why_autonomous_repair_stops": "Passwords and reauthentication credentials are human-only. No current noninteractive principal has the required Compute/IAM permissions, and no existing network route originates from the allowed 176.108.138.1/32 address.",
"clear_CTA": "Unlock the Mac. In Chrome, open the existing tab titled Google Cloud Platform for billy@livingip.xyz, enter the current Google password, click Next, then reply exactly: GCP reauthenticated. Do not send the password to Codex.",
"next_non_user_action": "Rotate only teleo-prod-allow-ssh-current-ip to 99.35.221.133/32, verify passwordless SSH and service/DB invariants, bootstrap and live-test the dedicated GitHub OIDC/IAP operator, run the hardened six-response replay, retain the result, drop teleo_clone_cory_20260712t1940z, remove all run files, and verify the disabled rollback database remains zero-connection.",
"cleanup_pending": {
"generated_database": "teleo_clone_cory_20260712t1940z",
"remote_run_directory": "/home/teleo/gcp-cory-model-replay-20260712t1940z",
"last_proven_clone_fingerprint": "48ea5332c4f303dea02d503447f1ac8e1d8aa00e60d198a566d628b37dbdac1c",
"must_not_claim_complete_until_absent": true
},
"proof_paths": [
"/Users/user/Documents/Codex/2026-07-09/019f34eb-d297-72d0-b7e2-b222d5515ab9-load/outputs/gcp-staging-canonical-parity-20260712T1905Z/final-receipt.json",
"/Users/user/Documents/Codex/2026-07-09/019f34eb-d297-72d0-b7e2-b222d5515ab9-load/outputs/gcp-cory-model-replay-20260712T1940Z/direct-claim-result-final.json",
"/Users/user/Documents/Codex/2026-07-09/019f34eb-d297-72d0-b7e2-b222d5515ab9-load/outputs/gcp-iap-operator-failed-20260712T204135Z/gcp-iap-operator-29208215340/result.json",
"/Users/user/Documents/Codex/2026-07-09/019f34eb-d297-72d0-b7e2-b222d5515ab9-load/outputs/gcp-cory-replay-access-blocker-current.json"
]
}

View file

@ -1,13 +1,13 @@
{ {
"pack": "leo-teleo-skill-pack", "pack": "leo-teleo-skill-pack",
"created_date": "2026-07-09", "created_date": "2026-07-09",
"last_updated_utc": "2026-07-10T16:09:07Z", "last_updated_utc": "2026-07-12T20:50:00Z",
"status": "repo_native_validated", "status": "repo_native_validated",
"contains_secrets": false, "contains_secrets": false,
"production_mutation_authorized": false, "production_mutation_authorized": false,
"repo_skill_root": ".agents/skills", "repo_skill_root": ".agents/skills",
"optional_local_install_target": "/Users/user/.codex/skills", "optional_local_install_target": "/Users/user/.codex/skills",
"claim_ceiling": "Repo-native onboarding and operations skills. Generic and Helmer guarded-apply canaries pass 37/37 in disposable PostgreSQL. PR #72 source auto-synchronized to the VPS checkout without a gateway restart or profile-source delta; the permission migration was not applied, the apply worker remained disabled/inactive, and Helmer remained unapplied. GCP project, VM, Cloud SQL inventory, and bounded serial unit activity are live-proven; current gateway PID/SHA/model/auth, DB rows, Cory answers, and cutover remain unproven.", "claim_ceiling": "Repo-native onboarding and operations skills. Generic and Helmer guarded-apply canaries pass 37/37 in disposable PostgreSQL. PR #72 source auto-synchronized to the VPS checkout without a gateway restart or profile-source delta; the permission migration was not applied, the apply worker remained disabled/inactive, and Helmer remained unapplied. Current source-composition/apply lifecycle proof is stronger and remains isolated. GCP gateway and exact canonical DB parity are proven across 39 tables and 52,164 rows. A nominal 6/6 GCP model replay was rejected for false printed counts; hardened replay and cleanup wait on Google password reauthentication because direct SSH no longer matches its firewall /32 and the dedicated OIDC/IAP provider is not bootstrapped.",
"skills": [ "skills": [
{ {
"name": "teleo-leo-onboarding", "name": "teleo-leo-onboarding",
@ -26,7 +26,7 @@
}, },
{ {
"name": "teleo-gcp-parity-ops", "name": "teleo-gcp-parity-ops",
"role": "Passwordless GCP VM access, private Cloud SQL parity, Cory replay, rollback, and cleanup", "role": "GCP operator access, private Cloud SQL parity, Cory replay, rollback, and cleanup",
"path": ".agents/skills/teleo-gcp-parity-ops/SKILL.md" "path": ".agents/skills/teleo-gcp-parity-ops/SKILL.md"
}, },
{ {
@ -58,7 +58,12 @@
"docs/reports/leo-working-state-20260709/gcp-cloud-sql-t3-live-readonly-current.md", "docs/reports/leo-working-state-20260709/gcp-cloud-sql-t3-live-readonly-current.md",
"docs/reports/leo-working-state-20260709/gcp-cloudsql-studio-parity-gate-current.md", "docs/reports/leo-working-state-20260709/gcp-cloudsql-studio-parity-gate-current.md",
"docs/reports/leo-working-state-20260709/pr72-vps-auto-deploy-runtime-nonchange-current.md", "docs/reports/leo-working-state-20260709/pr72-vps-auto-deploy-runtime-nonchange-current.md",
"docs/reports/leo-working-state-20260709/gcp-leo-runtime-observability-current.md" "docs/reports/leo-working-state-20260709/gcp-leo-runtime-observability-current.md",
"docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json",
"docs/reports/leo-working-state-20260709/gcp-operator-access-blocker-current.json",
"docs/reports/leo-working-state-20260709/telegram-visible-direct-claim-dc01-partial-current.json",
"docs/reports/leo-working-state-20260709/working-leo-current-proof-20260712.md",
"docs/reports/leo-working-state-20260709/working-leo-current-proof-20260712.json"
], ],
"validation": "tests/test_repo_skill_pack.py" "validation": "tests/test_repo_skill_pack.py"
} }

View file

@ -21,16 +21,18 @@ This is the repo-native skill set under `.agents/skills/`. It is evidence-linked
- A strict canonical `add_edge` apply canary is live-proven. - A strict canonical `add_edge` apply canary is live-proven.
- Deterministic source composition, full-data clone composition/reasoning, and guarded approved-bundle application are isolated-proven with exact source/evidence/claim links, row deltas, rollback, and cleanup. Production rich packets remain unapplied. - Deterministic source composition, full-data clone composition/reasoning, and guarded approved-bundle application are isolated-proven with exact source/evidence/claim links, row deltas, rollback, and cleanup. Production rich packets remain unapplied.
- The live VPS runtime behavior should not be changed while the DB apply path is stabilized. - The live VPS runtime behavior should not be changed while the DB apply path is stabilized.
- GCP passwordless SSH, gateway liveness, private Cloud SQL identity, and exact VPS-to-GCP canonical parity are live-proven. The database matches across `39` tables and `52,164` rows. Telegram delivery, GCP canonical mutation, ongoing replication, and cutover remain separate proof rows. - GCP gateway liveness, private Cloud SQL identity, and exact VPS-to-GCP canonical parity are live-proven. The database matches across `39` tables and `52,164` rows. Direct passwordless SSH was proven but is currently unavailable because its firewall `/32` no longer matches the Mac's egress; the dedicated OIDC/IAP route is merged but not bootstrapped. Telegram delivery, GCP canonical mutation, ongoing replication, and cutover remain separate proof rows.
## Key References ## Key References
- Current whole-system proof: `docs/reports/leo-working-state-20260709/working-leo-current-proof-20260712.md` and `.json`
- Current truth index: `docs/reports/leo-working-state-20260709/current-truth-index.md` - Current truth index: `docs/reports/leo-working-state-20260709/current-truth-index.md`
- Operator surface map: `docs/reports/leo-working-state-20260709/operator-surface-map.md` - Operator surface map: `docs/reports/leo-working-state-20260709/operator-surface-map.md`
- Fable onboarding prompt: `docs/reports/leo-working-state-20260709/fable-leo-teleo-onboarding.md` - Fable onboarding prompt: `docs/reports/leo-working-state-20260709/fable-leo-teleo-onboarding.md`
- PR #72 VPS auto-deploy/runtime readback: `docs/reports/leo-working-state-20260709/pr72-vps-auto-deploy-runtime-nonchange-current.md` - PR #72 VPS auto-deploy/runtime readback: `docs/reports/leo-working-state-20260709/pr72-vps-auto-deploy-runtime-nonchange-current.md`
- GCP canonical parity: `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json` - GCP canonical parity: `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json`
- GCP Cory replay: `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json` - GCP Cory replay: `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json`
- GCP operator access gate: `docs/reports/leo-working-state-20260709/gcp-operator-access-blocker-current.json`
- Skill manifest: `skill-pack-manifest.json` - Skill manifest: `skill-pack-manifest.json`
## Discovery ## Discovery

View file

@ -0,0 +1,49 @@
{
"artifact": "working_leo_current_proof",
"generated_at_utc": "2026-07-12T20:50:00Z",
"whole_system_verdict": "not_fully_yet",
"dimensions": {
"vps_runtime_restart_survival": "pass",
"vps_canonical_query": "pass",
"vps_no_send_dc01_dc06": "pass_6_of_6",
"telegram_open_ended_memory": "pass",
"telegram_visible_dc01_dc06": "partial_dc01_ingress_only",
"deterministic_source_composition": "pass_13_of_13",
"full_data_source_composition": "pass_34_of_34_isolated",
"guarded_approved_bundle_apply": "pass_isolated",
"broad_production_packet_apply": "not_authorized_not_executed",
"gcp_canonical_parity": "pass_39_tables_52164_rows",
"gcp_six_db_read_routes": "pass",
"gcp_model_replay": "nominal_6_of_6_rejected_false_counts",
"gcp_hardened_replay": "waiting_on_google_reauthentication",
"gcp_clone_cleanup": "pending"
},
"vps_counts": {
"claims": 1837,
"sources": 4145,
"claim_evidence": 4670,
"claim_edges": 4916,
"kb_proposals": 26
},
"proposal_status_counts": {
"applied": 2,
"approved": 3,
"pending_review": 14,
"canceled": 7
},
"gcp_parity": {
"tables": 39,
"rows": 52164,
"mismatches": 0,
"private_tls": true,
"gateway_pid": 148735,
"gateway_restarts": 0
},
"current_gate": {
"exact_gate": "current Google password reauthentication for billy@livingip.xyz",
"clear_cta": "Unlock the Mac, enter the current Google password in the existing Google Cloud Platform Chrome tab, click Next, and reply GCP reauthenticated. Do not send the password.",
"pending_clone": "teleo_clone_cory_20260712t1940z"
},
"production_db_apply_executed_by_this_work": false,
"vps_runtime_feature_change_by_this_work": false
}

View file

@ -0,0 +1,261 @@
# Working Leo Current Proof - 2026-07-12
## Verdict
Leo is **not fully at Cory's expected standard yet**.
The VPS runtime, restart survival, canonical query path, proposal-state truth,
no-send direct answers, source-composition clone, and guarded apply lifecycle are
proven. Exact VPS-to-GCP canonical DB parity is also proven.
The two incomplete end-user rows are:
1. Telegram-visible `DC-01` through `DC-06`: `DC-01` was visibly sent and its
live server reply passed, but the reply is not yet captured in Telegram and
`DC-02` through `DC-06` are unsent.
2. Hardened GCP model replay plus cleanup: a nominal `6/6` run was rejected for
false printed counts; the fixed rerun waits on Google password reauthentication
because both current operator routes are unavailable.
## What Cory Means By Working
A working Leo must do more than answer chat messages:
| Dimension | Required outcome | Current proof |
| --- | --- | --- |
| Conversation memory | Remember the current operator conversation and caveats | VPS Telegram/open-ended and restart-bound memory proven |
| KB query | Discover relevant claims, evidence, sources, edges, and proposals without supplied IDs | VPS and GCP DB-read routes proven |
| State truth | Separate proposed, pending review, approved, applied, and canonical | VPS no-send `6/6`; Telegram direct suite partial |
| Critical reasoning | Challenge weak assumptions, expose conflicts/uncertainty, and propose one useful next action | Handler-proven; harder open questions retained |
| Staging | Turn a grounded operator request into a concrete reviewable proposal | Live Telegram staging proven |
| Composition | Ingest source bytes/excerpts, extract atomic claims, bind evidence/source rows, detect conflicts, and stage a lossless proposal | Deterministic fixture and full-data clone proven; arbitrary production source breadth not proven |
| Canonical apply | Move an approved strict payload into exact `public.*` rows through separated review/apply authority | Isolated lifecycle proven; broad production packets not applied |
| Graph reasoning | Reopen after restart and reason over newly applied claims/evidence/source IDs/edges | Full-data source-composition clone proven |
| Identity | Treat DB rows as canonical and `SOUL.md` as rendered runtime state | Answer behavior proven; active scheduled renderer still not proven |
| Stability | Survive intentional gateway restart with unchanged DB and a successful handler smoke | VPS proven |
| GCP parity | Restore exact canonical DB, use private TLS, replay Leo, and clean up | DB parity proven; hardened model rerun and clone cleanup pending |
| Operator proof | Produce exact rows, counts, hashes, timestamps, service state, rollback, and cleanup receipts | Proven for current isolated and parity lanes |
## Architecture Truth
### Canonical KB
- VPS: Docker container `teleo-pg`, database `teleo`.
- GCP: private Cloud SQL instance `teleo-pgvector-standby`, database
`teleo_canonical`, endpoint `10.61.0.3:5432`, TLS required.
- Canonical knowledge: `public.claims`, `public.sources`,
`public.claim_evidence`, `public.claim_edges`, identity/strategy/context rows.
- Review/staging: `kb_stage.kb_proposals` and related `kb_stage.*` rows.
`approved` means reviewed intent. It does not mean canonical rows changed.
`applied` requires guarded writes, an `applied_at` ledger value, and canonical
postflight proof.
### Runtime Memory And Workspace
- Hermes `state.db` and session JSONL files provide conversation continuity.
- `SOUL.md` and profile skills influence runtime behavior.
- Git/Forgejo contains code, skills, packets, and some legacy file-KB
provenance.
- None of these is a substitute for canonical Postgres rows.
GCP `leoclean-cloudsql-memory-sync.service` copies Hermes runtime memory. It does
not construct the canonical claims/evidence/source graph.
## Exact Current VPS State
- Service: `leoclean-gateway.service` active/running.
- PID: `2403328`.
- `NRestarts=0`.
- Start: `2026-07-12 09:14:10 UTC`.
- Claims: `1837`.
- Sources: `4145`.
- Claim evidence: `4670`.
- Claim edges: `4916`.
- Proposals: `26`.
- Proposal states: applied `2`, approved `3`, pending review `14`, canceled `7`.
Applied proposal IDs include `f004bbb2...` and `00957f6c...`. Approved but
unapplied IDs are `14fa5ecc...`, `ac036c9d...`, and `a64df080...`.
Helmer 7 Powers is approved and packet/clone-proven, but is not canonical on
production because `a64df080...` has no applied timestamp and its intended
canonical footprint has not been production-postflighted.
## Exact Current GCP State
- VM: `teleo-prod-1`, project `teleo-501523`, zone `europe-west6-a`.
- Service: `leoclean-gcp-prod-parallel.service` active/running.
- PID: `148735`, `NRestarts=0`, start `2026-07-09 07:00:04 UTC`.
- `teleo_canonical` matches the captured VPS database across `39/39` tables and
`52,164/52,164` rows.
- High-signal counts match VPS exactly: `1837/4145/4670/4916/26`.
- Rowsets, schemas, columns, constraints, indexes, functions, types, triggers,
views, policies, required roles, extensions, and performance checks have zero
mismatches.
- All six Cory-specific DB-read routes pass.
- The pre-swap database is retained disabled as
`teleo_canonical_pre_20260712t1905z`, with zero connections.
Generated parity candidates and temporary client/operation directories were
removed. The later hardened-replay clone
`teleo_clone_cory_20260712t1940z` and its run directory remain pending cleanup.
## Critical-Reasoning And Answer Changes
The Leo bridge skills were changed to require:
1. a direct `yes`, `no`, or `partly` answer before implementation detail;
2. fresh DB lookup rather than stale memory;
3. full proposal UUID, observed status, and `applied_at`, or exact total counts;
4. explicit `approved is not applied` semantics;
5. decision-matrix schema readback before claiming matrix approval;
6. document/file/proposal-source/canonical-source separation;
7. staging-demo versus canonical-apply-demo separation;
8. DB-row plus renderer proof before calling a `SOUL.md` change canonical;
9. exactly one `Next Cory-style follow-up:` action that changes the proof;
10. refusal to invent canonical state when a read does not expose it.
The GCP harness was then hardened after a nominal false pass:
- clone-bound `teleo-kb status` is now permitted and server-enforced read-only;
- the runner re-execs under the Hermes virtualenv when dispatched by system
Python;
- every printed structured count line is compared to the canonical status
receipt;
- a reply with plausible but false counts fails even if the text-pattern scorer
says `6/6`.
These are harness and operator-skill changes. PR #86 synchronized the earlier
composition/apply harness to the VPS without restarting Leo. No production rich
packet was applied and no broad chat-to-canonical write authority was added.
## Source Composition And Apply Proof
### Deterministic Composition Canary
The retained fixture creates and links:
- source `e7e6d7c3-d29d-5da8-949f-c00c42cffc18`;
- claim `9dea5835-849e-5e02-8318-67c473d57b4a`;
- evidence `12c51bba-1b1b-517d-b75f-e13119bb7745`;
- proposal `7f577908-7a9c-59ad-96a3-71c38533e9a5` in `pending_review`.
All `13` checks pass. The container uses network `none`, no volume, exact source
substring checks, and zero leftover resources.
### Approved Bundle Lifecycle
The isolated lifecycle creates exact deltas of:
- claims `+2`;
- sources `+2`;
- evidence `+2`;
- edges `+1`;
- reasoning tools `+1`;
- proposals `0`.
It verifies applied ledger state, row projections, source hash binding,
separated review/apply authority, rollback, and cleanup.
### Full-Data Composition Checkpoint
The VPS `GatewayRunner` checkpoint passes `34/34`: new hash-bound document/post,
conflicting atomic claims, exact evidence/source linkage, strict staging,
separated approval/apply, new-process recall, ID-free discovery, graph reasoning,
unchanged production fingerprints/service/profile, and complete cleanup.
This is strong isolated proof, not arbitrary production document ingestion or
production rich-packet application.
## Telegram Direct-Claim State
`DC-01` was visibly sent to group `Leo` (`-5146042086`). The live gateway used
`teleo-kb status` and `list-proposals`, produced a correct reply, and strict
scored `1/1` with all six required signals. The user prompt is visibly proven;
the reply itself is currently server-session proof, not Telegram-visible reply
proof, because the Mac locked before capture.
`DC-02` through `DC-06` were not sent. No extra Telegram message was sent and
no production DB apply ran.
## GCP Replay Failure Analysis
The first accepted-lifecycle replay used the real Hermes model and returned six
replies with all adapter/no-send/fingerprint/service/profile/cleanup checks
green. The old scorer reported `6/6`.
It is not accepted because:
- `DC-03` and `DC-05` printed claims/sources/edges/evidence as zero;
- the clone actually has `1837/4145/4916/4670`;
- the temporary binding prohibited `status` even though the source skill
required `status` for totals;
- text-pattern scoring checked format, not equality to the DB receipt.
PR #87 repaired the command contradiction and added count equality. PR #88 made
the runner self-reexec into Hermes Python for the fixed IAP dispatcher path.
Both PRs merged with green CI.
## Current Access Gate And CTA
Direct SSH was proven but is `/32`-bound. Current Mac egress is
`99.35.221.133`; the firewall still allows `176.108.138.1/32`. The dedicated
GitHub OIDC/IAP workflow is merged but provider `teleo-iap-operator` is absent,
disabled, or deleted. The existing artifact-builder WIF identity lacks the
required Compute/IAM/Secret Manager/Cloud SQL permissions. Other cached Google
accounts have no Teleo project access. No Mullvad or Tailscale route exposes the
allowed office ISP source.
Exact CTA:
1. Unlock the Mac.
2. In Chrome, open the existing tab titled `Google Cloud Platform` for
`billy@livingip.xyz`.
3. Enter the current Google password and click `Next`.
4. Tell Codex exactly: `GCP reauthenticated`.
5. Do not send the password to Codex.
Then Codex will rotate only the SSH `/32`, bootstrap and live-test the durable
IAP operator, run the hardened replay, delete the pending clone/run directory,
and verify service/DB/rollback invariants.
## Hard Cory Benchmark Questions
Ask these without IDs or schema hints:
1. `I approved Helmer weeks ago. Why isn't it real yet?`
2. `What can I show a partner in five minutes?`
3. `This PDF should update Leo. What happens now?`
4. `What changed in your identity since last week?`
5. `Make this claim canonical: <claim text>.`
6. `Are pending proposals stuck because sources are wrong?`
7. `What does our strategy depend on, and what evidence could overturn it?`
8. `What's the next KB change I should approve?`
A strong answer discovers rows itself, reasons across claims/evidence/sources,
preserves uncertainty, gives the current state, and ends with one useful
proof-changing action.
## Evidence
- `gcp-canonical-parity-live-20260712.json`
- `gcp-operator-access-blocker-current.json`
- `telegram-visible-direct-claim-dc01-partial-current.json`
- `leo-source-composition-clone-checkpoint-current.json`
- `approve-claim-clone-canary-current.json`
- root output `outputs/gcp-staging-canonical-parity-20260712T1905Z/`
- root output `outputs/gcp-cory-model-replay-20260712T1940Z/`
- root output `outputs/gcp-cory-replay-access-blocker-current.json`
## Completion Rule
Do not change the whole-system verdict to `yes` until:
1. Telegram-visible `DC-01` through `DC-06` are captured and strict-pass with
unchanged VPS DB/service state;
2. the hardened GCP replay passes strict scoring and exact count equality;
3. the generated GCP clone/run resources are absent;
4. the durable IAP operator passes a live status/replay/cleanup lifecycle;
5. every production mutation claim has row-level postflight or is explicitly
labeled not production-applied.

View file

@ -62,7 +62,7 @@ def test_db_change_skill_tracks_guarded_v2_runtime_proof() -> None:
assert "three approved-but-unapplied legacy packets" in squashed assert "three approved-but-unapplied legacy packets" in squashed
def test_gcp_skill_uses_current_passwordless_parity_truth() -> None: def test_gcp_skill_uses_current_operator_access_and_parity_truth() -> None:
text = _skill("teleo-gcp-parity-ops") text = _skill("teleo-gcp-parity-ops")
squashed = " ".join(text.split()) squashed = " ".join(text.split())
@ -79,10 +79,15 @@ def test_gcp_skill_uses_current_passwordless_parity_truth() -> None:
"leoclean-cloudsql-memory-sync.service", "leoclean-cloudsql-memory-sync.service",
"gcp-canonical-parity-live-20260712.json", "gcp-canonical-parity-live-20260712.json",
"gcp-cory-model-replay-current.json", "gcp-cory-model-replay-current.json",
"gcp-operator-access-blocker-current.json",
"invalid_target",
"rejected",
): ):
assert required in text assert required in text
assert "does not store a Google password" in squashed assert "does not store a Google password" in squashed
assert "firewall-source-dependent" in text
assert "Do not call this path working until a live `status` run passes" in text
assert "Do not describe a passing Hermes memory sync as canonical KB parity" in text assert "Do not describe a passing Hermes memory sync as canonical KB parity" in text
assert "Do not call control-plane inventory" in text assert "Do not call control-plane inventory" in text
@ -102,7 +107,9 @@ def test_vps_onboarding_and_cory_skills_point_to_current_proof() -> None:
assert "gcp-cloud-sql-t3-live-readonly-current.md" in onboarding assert "gcp-cloud-sql-t3-live-readonly-current.md" in onboarding
assert "gcp-canonical-parity-live-20260712.json" in onboarding assert "gcp-canonical-parity-live-20260712.json" in onboarding
assert "gcp-cory-model-replay-current.json" in onboarding assert "gcp-cory-model-replay-current.json" in onboarding
assert "working-leo-current-proof-20260712.md" in onboarding
assert "ssh teleo-gcp-staging" in onboarding assert "ssh teleo-gcp-staging" in onboarding
assert "37/37" in cory assert "37/37" in cory
assert "Approved is not the same as applied" in cory assert "Approved is not the same as applied" in cory
assert "Next Cory-style follow-up:" in cory assert "Next Cory-style follow-up:" in cory
assert "working-leo-current-proof-20260712.md" in cory