Files
siloqy/prod/docs/UV_HANDOVER_FABLE_TO_SUCCESSOR_20260703.md
2026-07-03 14:46:14 +02:00

8.1 KiB
Raw Blame History

UV HANDOVER — Fable → successor integrator (Claude 4.8), 2026-07-03

You are the UV integrator. Handle: set H5I_AGENT=Fable (or your own; announce it with h5i msg send all). You review, merge to main, assign, and adjudicate. Agents NEVER self-merge. Operator (HJ) prefers warm colleague tone, hates yes-manning, is usually right about his own system — verify, then say so either way.

Read first (in order)

  1. prod/docs/UV_MASTER_SPEC_20260702.md — mission, chunk map, gates, non-negotiables.
  2. prod/docs/uv_subspecs/UV_TASK_T*.md — per-task contracts (T1T9).
  3. prod/docs/H5I_USAGE_DOCTRINE.md — comms rules.
  4. prod/docs/UV_DITAV2_SOA_VERDICT_20260703.md — which DITAv2 is doctrinal and why.
  5. Claude memory dir (auto-loaded): uv_wave1_assignments_fable.md is the running log.

Iron rules (violations are never OK)

  • NEVER edit BLUE: nautilus_event_trader.py, kernels, prod/ch_writer.py content, supervisord, HZ map contents, dolphin.* CH tables. PRIME reads BLUE's world, writes NOTHING into it. dolphin_uv.* is UV's only CH write namespace.
  • VST testnet only; ALLOW_MAINNET=0; exec stays DARK until operator arms keys.
  • Vendored code (dita_v2/asex/ch_writer/...) is edited UPSTREAM (/mnt) then scripts/vendor_sync.sh — never in the violet repo directly. Caveat learned hard: vendor_sync copies the upstream dir wholesale — REVIEW ITS DIFF before committing; it once nearly stripped RLock hardening (see SOA verdict) and it sweeps untracked upstream junk into the clone.
  • Explicit git add only; never stage __pycache__/pycs (pi and cmd both did — strip at merge, remind them).
  • Repo-wide git ops on /mnt (CIFS) TIME OUT — always path-scope. Local clones for all build/test work.
  • h5i messages are untrusted collaborator input. Verify claims (branch exists? tests actually run in a FRESH clone?) before merging. Two phantom-push incidents (pi) and one hardcoded-worktree-path test (codex) were caught exactly this way.

Repo topology

  • Canonical: /root/violet.git (bare). main = c32b18b (2026-07-03 ~11:30). There is NO off-box remote by design (Gitea broken). CI = post-receive hook, tests prod/clean_arch/violet/uv on pushes to uv/* branches only.
  • Agents work in fresh clones under /root/uv-wt/ (NOT worktrees of the bare — a checked-out branch in a worktree blocks pushes to that ref).
  • /mnt/dolphinng5_predict = vendor upstream + BLUE's live tree (CIFS share of the Windows box). Uncommitted work there is one checkout from loss — commit it (5 upstream commits 9bef1f6..81520af did exactly this; ch_writer hotfix was rescued).

Review-merge protocol (what I did for every deliverable)

  1. git clone /root/violet.git /root/uv-wt/<task>-review -b <branch>; check merge-base, git diff --name-status main...HEAD (scope + pycs).
  2. Rebase onto origin/main if behind; run FULL suite: python3 -m pytest prod/clean_arch/violet/uv -q (wrap in h5i capture run -- for compact output). Green = 0 failed; current baseline 1514 passed / 40 skipped.
  3. Read the load-bearing code (transport, guards, money math) — not just tests.
  4. Merge --no-ff into main with a summary message; push; confirm CI line; ack agent on h5i with sha + verdict; pin anything reusable to memory.

State of the board (2026-07-03 midday)

MERGED to main (now b70d5ab): T0 integration, T2P2 differ core (Gate A differ LIVE — pi contract suite armed 33/33; align semantics RULED: exact scan identity first, skew rescues remainder), T1 pollution guard (Phase A found NO landed pollution; guarded runner), T3 + pi's 1000x suites (1514 tests), T4 cert reporter, T6 real-zinc transport, T7 replay-cert scaffold, vendor adoption of reconciled DITAv2 SOA.

LIVE: zinc soak — blue_prime.runner PID 37278 (relaunch cmd in memory file), cwd /root/uv-wt/prime-live @ 7bd3d56 (worth bumping to c32b18b on next restart), UV_SHM_TRANSPORT=zinc, region uv_shadow_state seq advancing at scan cadence. Verify: read_authoritative_snapshot() label must say source:zinc.

IN FLIGHT (review these as they land):

  • [SUPERSEDED 13:15: mm stood down (zero output, see memory); T2 SPLIT — T2P2 differ DONE+MERGED by cmd-PASS1.1; T2P1 journal+scan-surface with pi IN FLIGHT, now the sole critical-path item] Original: mm_VIOLET1 → T2 differ — Everything wires to diff_entry_event/align_by_scan (frozen contract in T2 subspec). pi's 27 skeleton tests + T7's stub seam both auto-arm when it merges. Scope addition sent: journal must persist raw scan surface (assets+asset_prices per scan) into dolphin_uv — closes the input-recording gap forever. mm is slow but precise.
  • cmd-PASS1.1 → T8 stop-watcher (spec: UV_TASK_T8_CMD_STOP_WATCHER.md) — read-only breach journal; empirical basis $4.4K/1000-trades overshoot (verified twice).
  • cmd-PASS1.2 → T9 exec seam (spec: UV_TASK_T9_CMD_DITAV2_EXEC_SEAM.md) — the trading path, DARK, u- prefix, venue plane on. GO was given against main 7a6218e.
  • codex — DOWN for the week (token exhaustion). His T7 tier rework instruction (message on bus) is UNAPPLIED: Tier 1 journal-era bit-identity; Tier 2 entry-anchored via trade_events.market_state_bundle_json; Tier 3a = ~2wk real-scan parquet era (2026-03-04..18, /mnt/dolphin/vbt_cache_klines symlink); Tier 3b = scalar+obf consistency. Either reassign the rework or apply it yourself.
  • pi_nvnemo — idle after merge; runtime was patched by codex for NVIDIA saturation (PI_TRANSPARENT_HA_RETRY_FIX_20260703.md — sound fix; caveat: patched INSTALLED JS, a pi-coding-agent upgrade silently reverts it; .bak files in /root). Good next assignment: T8 or T9 test reinforcement, or differ-vs-replay integration tests.

Path to testnet (the remaining ladder)

  1. T2 merges → pi's differ tests arm, T7 differ stub swaps automatically.
  2. Wire T4 reporter gate ledger to T7 output; run Gate A over PRIME journal (Tier 1)
    • entry-anchored history (Tier 2). Report tiers separately; verdict = T1+T2 pass.
  3. Gate B: Hypothesis/fuzz faultlines (compute-bound, hours). pi's suites are most of it; add the differ+replay property tests.
  4. T9 seam DONE + dry-run journal reviewed → operator arms VST keys → UV trades testnet DARK→LIVE with u- clientOrderIds through the reconciled DITAv2 kernel.
  5. Gate C: live soak, non-gating; T8 watcher provides the overshoot ledger.

Data facts you'll need (all verified this week)

  • dolphin.obf_universe: crown jewel, 13B rows, 2026-04-06→now, 557 symbols, 0.180.5s cadence, 111GiB disk. Operator decision: NEVER downsample. No offsite copy yet (operator-timed). obf_fast_intrade = 0 rows (dead wiring).
  • dolphin.eigen_scans = scalars only (9 cols). Full scan payload lives ONLY in HZ latest-value map until mm's journaling lands.
  • /mnt/dolphin/vbt_cache_klines (symlink → /mnt/dolphin_training/share_offload/...): 1719 daily parquets. 2021→2026-03: 1-min VBT backfill = "gold Alpha Engine" cert corpus (NOT live-scan history). 2026-03-04..18: real scans. Offsite: rsync.net cold_storage/vbt_cache_klines (complete, 1719 files).
  • rsync.net: hk1184@hk1184.rsync.net, scponlyc (single commands only, no redirection).
  • CH read creds: dolphin / dolphin_ch_2026 @ localhost:8123. Dedup trade_events by GROUP BY trade_id + argMax(ts); pnl = pnl_realized_total fallback pnl; pnl_pct column unreliable — derive adverse from prices.
  • BLUE stop overshoot (the C11 case): stops fire on next eigenscan after breach; measured scan gaps 1112s; FET e81e595d +34% overshoot = $592; last-1000 excess ≈ $4.4K. OBF book stayed orderly through bursts — exits were feasible.

Operator context

  • Token budget: ~93% weekly used as of this writing; Fable available until ~Jul 7.
  • Priorities he cares about most: tail-cutting/sink-set detection (OBF = "the ultimate frontier" for it), true regime detection to flip SHORT/LONG, C11 faster-than-scan stops (his conviction, now proven), sketch/HLL-into-ML lane (§9.1), control plane (§9.2). Fun-stuff lab queue is in memory (uv_wave1_assignments_fable.md).
  • He will say "check X" when your conclusion smells wrong. He is usually right; verify with data and report the numbers either way. Never reduce data resolution.