Files
mopac-pmo/STATE-SNAPSHOT-20260828-1720.md
T

4.7 KiB

STATE-SNAPSHOT-20260828-1720 (pre-compact #3)

Read order: BOARD.md -> this -> HUD.md -> log tail. Sessions: PMO pinned 78cf63b8a72f4282 (screen RCEO-PMO), Work pinned e1079fafb8c37d60 (RCEO-Work).

Mental model (current architecture)

  • 8 stacks (5 onstage, 3 offstage), ONE shared z.ai key -> fronted by LiteLLM proxy (DESIGN v2.2): virtual keys per stack, hard concurrency/budget caps, usage API = quota truth. Semaphore/ledger demoted to local fast-gates.
  • C2 = files in _crossfeed + drip loop: conductor (headless, D1 pending) consumes REPORTs, shapes TASKs from released Redmine scope, dispatches via dispatch-turn.sh; nothing ever stuffs Charles's TUI. Events: T0 pull (5-min supervisor tick) -> T1 webhook receiver (~100 lines) when latency matters; DB deferred (SQLite-only trigger list in DESIGN v2.1).
  • Governance: mechanical release gate (GOVERNANCE.md amended today) — pre-approved = checks pass + stays in tooling/; founder gate retained for systemd/relaunchers/perms/credentials/policy. TASK dispatch keeps founder gate (draft -> present -> go -> dispatch). PMO dispatches, Work executes.
  • Redmine = SoR for work; Discourse = docs; Gitea = code. TSG verticals stood down (STANDDOWN flag); reactivate after pilot.

Completed today (verify before re-doing anything)

  1. Scroll fixed (screenrc ti@:te@); tmux optional later.
  2. Inbox renamed founder->receo; PROTOCOL.md L17 wired.
  3. /tmp artifacts archived: coo/artifacts-archive + agent-stack/artifacts-archive (20260828-163636), manifests w/ owners. .crush excluded (COO session data).
  4. KNEL-AIMiddleware -> _crossfeed/tooling/knel-aimiddleware (512M, git+remote intact, symlink from ~/projects). REPORT archived.
  5. DESIGN-24x7-execution.md v2/v2.1/v2.2 committed (conductor, quota, classes, event tiers, LiteLLM, hermes=harness-not-gateway).
  6. GOVERNANCE.md mechanical gate amended + committed (92d3887).
  7. root-fix-tooling-perms.sh run: tooling group-writable setgid; credentials/ locked 2700 (I locked as owner; script hardened + committed).
  8. Role correction: PMO=dispatcher, Work=executor, founder gate on TASKs.

In flight

  • work-turn-litellm (TASK-20260828-1716): container up on 192.168.3.78:4001; SNAG: current LiteLLM rejects SQLite for virtual-keys/spend (needs Postgres); Work investigating versions. If BLOCKED: approve dedicated litellm-db postgres container (standard minimal deploy, not overbuild). Awaiting REPORT in inbox-pmo; verify keys-not-logged, then archive TASK.
  • Known flakiness: 2 headless turns died "Message content shorter than read bytes" (z.ai stream truncation). Redispatch works; LiteLLM adds retry layer.

Open queue (owner in caps)

  • HIM: D1 conductor split (recommend yes) / D2 pilot scope (Redmine project + P-level) / D4 event tier (recommend T0) — batched, awaiting one reply.
  • HIM: sudo root-migrate-coordinate.sh (idle window, no work-turns) -> _crossfeed/state/rceo + symlink.
  • HIM: rename _crossfeed/founder/ STATUS dir? (GOVERNANCE L25, tsg-quota-install L56 refs; ties to never-"founder" preference).
  • PMO: on LiteLLM REPORT -> verify, wire RCEO providers.json backup/restore, record virtual key NAMES, test usage endpoint; log one真实 quota datapoint.
  • PMO: review founder-wire-tooling.sh (Charles wants past-weeks tooling WIRED IN — this is that item); present what it wires; his go -> dispatch to Work.
  • HIM/PMO: account-split status = shared assets moved (tooling, archives, inbox); account-level separation NOT started; decide scope (new RCEO account? or just shared-asset split, which is done).
  • PARKED (explicit): MIGRATION-projects two-phase (his go), chipreverse->CTO, vertical reactivation (rm STANDDOWN + relaunch v2), scroll polish/tmux, kill RCEO-ScrollTest screen.

Quota truth for Charles (7% context worry)

  • Context % = CONTEXT WINDOW, not quota spend; compact resets it, routine.
  • Ledger all-time spend ~$0.015 — quota is NOT the constraint today.
  • LiteLLM: enforces caps WE set (keys/budgets/concurrency) + measures TRUE per-call tokens (usage API). It does NOT read z.ai's server-side quota number; if z.ai exposes account usage/headers we poll it separately (downgraded spike, DESIGN v2 §2 fallback).

Plan to 2200

  • 1720-1800: snapshot (this file); batch D1/D2/D4 + founder-rename decision to Charles; LiteLLM REPORT -> verify/close (or approve postgres fallback).
  • 1800-1930: founder-wire-tooling.sh review -> dispatch; run root-migrate-coordinate.sh in idle window; update PROTOCOL refs.
  • 1930-2100: on decisions: draft conductor-turn.sh + redmine-pull scope TASKs; Work grinds; PMO verifies.
  • 2100-2200: all REPORTs consumed, TASKs archived, log close-out entry, HUD green or explicitly parked-with-owner; housekeeping (ScrollTest kill).