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
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:
commit
62bfd429f2
10 changed files with 456 additions and 29 deletions
|
|
@ -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
|
||||
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
|
||||
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
|
||||
authentication, and does not store a Google password. Local `gcloud` browser
|
||||
reauthentication is not required for routine VM operator access.
|
||||
authentication, and does not store a Google password. It works only while the
|
||||
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:
|
||||
|
||||
|
|
@ -32,7 +40,7 @@ Verified target:
|
|||
- private endpoint `10.61.0.3:5432`, public IP disabled, TLS required;
|
||||
- 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
|
||||
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
|
||||
removed. `teleo_canonical_pre_20260712t1905z` is retained disabled, with zero
|
||||
connections, as the verified pre-swap rollback point.
|
||||
- The model-response replay must pass both the strict benchmark and exact count
|
||||
consistency. A nominal score is not accepted if a reply prints table counts
|
||||
that differ from the status receipt.
|
||||
- A real no-send model replay returned six replies and nominally scored `6/6`,
|
||||
but it is rejected as Cory-standard proof because `DC-03` and `DC-05`
|
||||
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:
|
||||
|
||||
- `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-operator-access-blocker-current.json`
|
||||
- root task output `outputs/gcp-staging-canonical-parity-20260712T1905Z/`
|
||||
- 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
|
||||
replies with truthful counts and cleanup. It still does not prove Telegram
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
- 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.
|
||||
- GCP is a separate lane. Passwordless VM access, the live gateway, private
|
||||
Cloud SQL canonical rows, and exact VPS-to-GCP database parity are now proven.
|
||||
- GCP is a separate lane. The live gateway, private Cloud SQL canonical rows,
|
||||
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
|
||||
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:
|
||||
|
||||
1. `docs/reports/leo-working-state-20260709/current-truth-index.md`
|
||||
2. `docs/reports/leo-working-state-20260709/operator-surface-map.md`
|
||||
3. `docs/reports/leo-working-state-20260709/working-leo-definition-20260709.md`
|
||||
4. `docs/reports/leo-working-state-20260709/cory-expected-working-leo-outcomes-20260709.md`
|
||||
5. `docs/reports/leo-working-state-20260709/approve-claim-clone-canary-current.md`
|
||||
6. `docs/reports/leo-working-state-20260709/gcp-cloud-sql-t3-live-readonly-current.md`
|
||||
7. `docs/reports/leo-working-state-20260709/gcp-canonical-parity-live-20260712.json`
|
||||
8. `docs/reports/leo-working-state-20260709/gcp-cory-model-replay-current.json`
|
||||
1. `docs/reports/leo-working-state-20260709/working-leo-current-proof-20260712.md`
|
||||
2. `docs/reports/leo-working-state-20260709/current-truth-index.md`
|
||||
3. `docs/reports/leo-working-state-20260709/operator-surface-map.md`
|
||||
4. `docs/reports/leo-working-state-20260709/working-leo-definition-20260709.md`
|
||||
5. `docs/reports/leo-working-state-20260709/cory-expected-working-leo-outcomes-20260709.md`
|
||||
6. `docs/reports/leo-working-state-20260709/approve-claim-clone-canary-current.md`
|
||||
7. `docs/reports/leo-working-state-20260709/gcp-cloud-sql-t3-live-readonly-current.md`
|
||||
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
|
||||
|
||||
|
|
@ -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 expose secret contents.
|
||||
- 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
|
||||
blocked on local `gcloud` reauthentication while this route works. Do not
|
||||
print the Cloud SQL password or create IAM/users inside a read-only lane.
|
||||
- Try `ssh teleo-gcp-staging` for passwordless GCP VM access, but verify the
|
||||
current public egress matches the firewall `/32`. If it does not, follow the
|
||||
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.
|
||||
Compare every printed count to `teleo-kb status` or the canonical manifest.
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,8 @@ is green at its required tier:
|
|||
ingestion is not proven.
|
||||
- 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
|
||||
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
|
||||
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
|
||||
|
||||
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/leo-source-composition-clone-checkpoint-current.md`
|
||||
and its JSON companion for the current source-composition claim ceiling.
|
||||
|
|
|
|||
|
|
@ -28,6 +28,12 @@ sections below override this newer status.
|
|||
zero canonical counts. The harness now enables the required `status` read and
|
||||
rejects any printed count that differs from the canonical status receipt. A
|
||||
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
|
||||
removed; disabled rollback database `teleo_canonical_pre_20260712t1905z` has
|
||||
zero connections. The current hardened-replay clone must be deleted after the
|
||||
|
|
@ -35,10 +41,13 @@ sections below override this newer status.
|
|||
|
||||
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/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/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
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
]
|
||||
}
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"pack": "leo-teleo-skill-pack",
|
||||
"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",
|
||||
"contains_secrets": false,
|
||||
"production_mutation_authorized": false,
|
||||
"repo_skill_root": ".agents/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": [
|
||||
{
|
||||
"name": "teleo-leo-onboarding",
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
},
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
|
|
@ -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-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/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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
- 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.
|
||||
- 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
|
||||
|
||||
- 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`
|
||||
- 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`
|
||||
- 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 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`
|
||||
|
||||
## Discovery
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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.
|
||||
|
|
@ -62,7 +62,7 @@ def test_db_change_skill_tracks_guarded_v2_runtime_proof() -> None:
|
|||
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")
|
||||
squashed = " ".join(text.split())
|
||||
|
||||
|
|
@ -79,10 +79,15 @@ def test_gcp_skill_uses_current_passwordless_parity_truth() -> None:
|
|||
"leoclean-cloudsql-memory-sync.service",
|
||||
"gcp-canonical-parity-live-20260712.json",
|
||||
"gcp-cory-model-replay-current.json",
|
||||
"gcp-operator-access-blocker-current.json",
|
||||
"invalid_target",
|
||||
"rejected",
|
||||
):
|
||||
assert required in text
|
||||
|
||||
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 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-canonical-parity-live-20260712.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 "37/37" in cory
|
||||
assert "Approved is not the same as applied" in cory
|
||||
assert "Next Cory-style follow-up:" in cory
|
||||
assert "working-leo-current-proof-20260712.md" in cory
|
||||
|
|
|
|||
Loading…
Reference in a new issue