teleo-infrastructure/docs/reports/leo-working-state-20260709/working-leo-current-state-20260709.md
twentyOne2x 2759397a12
Some checks are pending
CI / lint-and-test (push) Waiting to run
Retain Helmer 7 Powers packet proof
- Record clone-proven Helmer 7 Powers packet evidence for team handoff.
- Update Working Leo state and execution plan with the current non-production claim ceiling.
- Add live rollback and clone rollback logs so reviewers can inspect the row-level proof.

`docs/reports/leo-working-state-20260709/current-truth-index.md`
`docs/reports/leo-working-state-20260709/helmer-7powers-clone-commit-delete-rollback-current.log`
`docs/reports/leo-working-state-20260709/helmer-7powers-live-preflight-rollback-current.log`
`docs/reports/leo-working-state-20260709/helmer-7powers-production-apply-packet-current.md`
`docs/reports/leo-working-state-20260709/leo-db-state-14-helmer-packet.svg`
`docs/reports/leo-working-state-20260709/working-leo-current-state-20260709.md`
`docs/reports/leo-working-state-20260709/working-leo-execution-plan-current.md`
2026-07-09 23:01:06 +02:00

115 lines
11 KiB
Markdown

# Working Leo Current State - 2026-07-09
Generated UTC: `2026-07-09T20:32:38Z`
## Current Working Definition
A working Leo, for Cory/m3taversal's current expectation, is a Telegram-facing agent that remembers the current conversation, grounds KB answers in canonical Teleo Postgres rows, distinguishes proposed / approved / applied / not applied, and moves a specific Cory-approved KB change through a narrow review/apply path into canonical rows with before/after proof. Broad autonomous DB write authority is a feature change, not required for restoration.
## What Is Now Proven On VPS
- VPS gateway service is stable: `leoclean-gateway.service` is active/running, `MainPID=3252143`, `NRestarts=0`, `WorkingDirectory=/home/teleo`, `User=teleo`.
- Telegram Bot/API readiness is proven for group `Leo` (`-5146042086`), and the live adapter accepts the Cory-working canary without posting.
- Live Telegram-visible group canary passed through authenticated Chrome/Telegram Web:
- turn 1 posted at 21:31 Europe/Zurich and Leo replied `LIVE_TG_TURN1_ACK`
- turn 2 posted at 21:32 Europe/Zurich and Leo remembered marker `WL-LIVE-TG-CORY-20260709`
- turn 2 reply preserved the correction `approved is not the same as applied`
- turn 2 reply reported proposal `00957f6c-9883-4015-95a4-6b09367efb0e` as `applied`
- turn 2 reply reported edge `c167933e-d513-4f43-9335-d5d8aeb259f2` exists in `public.claim_edges` and the canonical row exists
- Telegram-shaped handler canary passed in the same user/cwd context as the live service:
- authorized source: `agent:main:telegram:group:-5146042086:9070919`
- turn 1 ack passed
- turn 2 remembered marker and correction
- turn 3 confirmed proposal `00957f6c-9883-4015-95a4-6b09367efb0e` is `applied` and edge `c167933e-d513-4f43-9335-d5d8aeb259f2` exists in `public.claim_edges`
- no Telegram post, no live profile synthetic sessions, temp profile removed
- Strict apply canary is proven: one strict `add_edge` proposal became a canonical `public.claim_edges` row, and read-only plan verification now passes with after-readback checks.
- Guarded approval helper is installed on VPS at `/opt/teleo-eval/workspaces/deploy-infra/scripts/approve_proposal.py`, checksum `c650b8b24b7a89a9e23859c04d850db441483d407fc81580e250ccad65a61d83`, imports successfully, and rejects re-approval of the already-applied canary.
- Chrome/Telegram Web is authenticated and read/write-proven for bot testing in the `Leo` group through Computer Use.
- Live Telegram-to-DB staging is now proven:
- turn 3 posted at 22:06 Europe/Zurich and Leo replied `LIVE_TG_TURN3_STAGED`
- Leo created proposal `8dfedb3f-3aa4-4200-970f-4c0016f6869f` in `kb_stage.kb_proposals`
- DB readback shows `status=pending_review`, `proposal_type=add_edge`, `proposed_by_handle=leo-telegram-live`, `source_ref=telegram:leo:-5146042086:WL-LIVE-TG-CORY-20260709-T3`
- canonical public tables stayed clean after the T3 timestamp: `public.claims=0`, `public.sources=0`, `public.claim_edges=0`, `public.claim_evidence=0` new rows after `2026-07-09 20:06:30 UTC`
- turn 4 posted at 22:08 Europe/Zurich and Leo replied `LIVE_TG_TURN4_READBACK`, remembered T3, and read back the staged proposal/status/source_ref without staging or applying anything else
## What Is Still Not Proven
- Old Cory-approved proposals are still not directly applyable:
- `14fa5ecc-ac7a-41c1-807d-a2e85b936617`
- `ac036c9d-20a0-4ffe-881f-57d6b7bacf22`
- `a64df080-8502-42e2-98f4-9bbdecb8da73`
- `14fa5ecc` normalization is blocked by missing canonical claim/source IDs. The proposal contains approved textual successor candidates, but the exact successor rows A/B/C/D do not already exist as canonical rows.
- Current narrow apply worker supports `add_edge`, `attach_evidence`, and `revise_strategy`; it does not create new `public.claims` or `public.sources` rows. Applying `14fa5ecc` as Cory likely expects requires either creating/identifying canonical rows first or explicitly widening the guarded apply contract.
- Live approved rich proposal contract preview is now available:
- `14fa5ecc`: 4 claim rows, 5 source rows, 17 edge fragments, 9 evidence fragments; not direct-apply-ready
- `ac036c9d`: 3 claim rows, 3 source rows, 6 edge fragments, 5 evidence fragments; not direct-apply-ready
- Rollback-only rich proposal creation plan is now schema-rehearsed against VPS Postgres and left zero generated rows behind:
- `14fa5ecc`: plans 4 claims, 9 sources, 11 claim_evidence rows, 3 supported claim_edges; blocks 14 fragments
- `ac036c9d`: plans 3 claims, 6 sources, 6 claim_evidence rows, 1 supported claim_edge; blocks 5 fragments
- the rehearsal exposed and fixed live constraint mismatches for `claims.type` and `sources.source_type`
- production application remains false until unsupported edge types/context mappings and design decisions are reviewed
- Disposable staging DB commit proof is now complete for the supported subset:
- created `teleo_rich_rehearsal_20260709` from live `teleo` via dump/restore
- committed both rich proposal transactions in the disposable DB
- staging readback showed 7 claims, 15 sources, 17 claim_evidence rows, and 4 claim_edges
- production generated-row counts stayed zero before and after
- staging DB and temp SQL/dump files were removed; final DB existence count was 0
- Mapped rich proposal rehearsal is now complete for a larger supported subset:
- explicit overlay mapped `supersedes_component_of -> supersedes`, `draws_from -> derives_from`, `revises_or_refines -> supersedes`, and one existing capital-allocation target to claim `c0000000-0000-0000-0000-00000000000c`
- live rollback rehearsal passed on VPS Postgres and left zero generated rows
- disposable DB `teleo_mapped_rehearsal_20260709` committed 7 claims, 15 sources, 17 evidence rows, and 11 claim_edges
- production generated-row counts stayed zero before and after
- clone and temp dump were removed; final DB existence count was 0
- Production apply packet for the mapped supported subset is now generated and clone-proven:
- packet files live under `outputs/rich-proposal-creation-plan-20260709/production-apply-packet-mapped-20260709/`
- live preflight confirms both source proposals are approved, required existing claims are present, and production generated rows are `0/0/0/0`
- live rollback rehearsal inserts the target rows in-transaction and rolls back cleanly; production remains `0/0/0/0`
- disposable clone commit using the packet's authorized commit SQL produced `7` claims, `15` sources, `17` evidence rows, and `11` claim edges
- clone post-commit readback showed DB-side `superseded_by` pointers are set by generated `supersedes` edges for `7da4851c...` and `d0000000...`
- packet delete rollback now clears those exact `superseded_by` pointers, deletes generated rows, and returns clone generated-row counts to `0/0/0/0`
- production generated rows remain `0/0/0/0`; disposable packet clone and temp dump were removed
- Helmer 7 Powers approved proposal `a64df080-8502-42e2-98f4-9bbdecb8da73` is now packet-ready and clone-proven:
- generated row contract is `1` reasoning tool, `5` claims, `13` sources, `7` claim_edges, and `17` claim_evidence rows
- canonical reasoning-tool description is sanitized so Teleo-specific self-positioning/application examples are deferred rather than canonically approved through the framework proposal
- live production preflight confirms the proposal is approved, required existing target claims are present, and generated rows are `0/0/0/0/0`
- live production rollback rehearsal inserted the planned rows inside a transaction and rolled back cleanly
- disposable clone `teleo_helmer_rehearsal_20260709` committed the packet and read back `1/5/13/7/17`
- clone delete rollback returned generated rows to `0/0/0/0/0`
- production generated rows remain `0/0/0/0/0`; disposable clone was dropped with final clone count `0`
- GCP parity was rechecked and remains blocked on account authentication:
- `billy@livingip.xyz` is selected for project `teleo-501523` but token refresh fails non-interactively
- `billyattnmarket@gmail.com` and `valentin.meylan68@gmail.com` can refresh tokens but do not have access to `teleo-501523`
- `contact@attn.markets` also fails token refresh
- active gcloud account was restored to `billy@livingip.xyz`
## Current Evidence
- Handler canary: `outputs/telegram-gateway-handler-canary-20260709/telegram-gateway-handler-canary-current.md`
- Live Telegram canary: `outputs/telegram-live-canary-20260709/telegram-live-canary-current.md`
- Live Telegram DB write canary: `outputs/telegram-live-canary-20260709/telegram-live-db-write-canary-20260709.md`
- Gateway adapter canary: `outputs/telegram-gateway-canary-20260709/telegram-gateway-canary-current.md`
- KB apply plan: `outputs/kb-apply-canary-20260709/kb-apply-canary-plan-current.md`
- KB apply execute: `outputs/kb-apply-canary-20260709/kb-apply-canary-execute-current.md`
- Approval normalization: `outputs/approved-proposal-normalization-20260709/approved-proposal-normalization-current.md`
- Claim/source contract preview: `outputs/claim-source-contract-preview-20260709/claim-source-contract-preview-current.md`
- Rich proposal creation plan: `outputs/rich-proposal-creation-plan-20260709/rich-proposal-creation-plan-current.md`
- Mapped rich proposal creation plan: `outputs/rich-proposal-creation-plan-20260709/rich-proposal-creation-plan-mapped-current.md`
- Production apply packet for mapped subset: `outputs/rich-proposal-creation-plan-20260709/production-apply-packet-mapped-20260709/production-apply-packet-current.md`
- Helmer 7 Powers apply packet: `outputs/rich-proposal-creation-plan-20260709/helmer-7powers-20260709/production-apply-packet/production-apply-packet-current.md`
- Execution plan: `outputs/working-leo-execution-plan-20260709/working-leo-execution-plan-current.md`
- Cory expected outcomes: `outputs/cory-expected-working-leo-outcomes-20260709.md`
- Current live proof image: `outputs/leo-db-state-07-live-proof.svg`
- Rich proposal plan image: `outputs/leo-db-state-08-rich-plan.svg`
- Staging commit proof image: `outputs/leo-db-state-09-staging-commit.svg`
- Live Telegram staging proof image: `outputs/leo-db-state-10-telegram-staged-write.svg`
- Mapped staging proof image: `outputs/leo-db-state-11-mapped-staging.svg`
- Production packet proof image: `outputs/leo-db-state-12-production-packet.svg`
- Helmer packet proof image: `outputs/leo-db-state-14-helmer-packet.svg`
- GCP parity blocker: `outputs/gcp-db-parity-current-blocker-20260709.json`
## Next Actions
1. Keep the live Telegram canary as the top-level regression proof for Cory-working memory + KB audit.
2. Do not auto-apply old freeform approvals.
3. Resolve the remaining non-claim target decisions: telos/shared-root, Rio strategy context, governance gates, and concept-map storage.
4. Keep VPS Leo runtime behavior unchanged while the DB apply path is stabilized.