8.1 KiB
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)
prod/docs/UV_MASTER_SPEC_20260702.md— mission, chunk map, gates, non-negotiables.prod/docs/uv_subspecs/UV_TASK_T*.md— per-task contracts (T1–T9).prod/docs/H5I_USAGE_DOCTRINE.md— comms rules.prod/docs/UV_DITAV2_SOA_VERDICT_20260703.md— which DITAv2 is doctrinal and why.- Claude memory dir (auto-loaded):
uv_wave1_assignments_fable.mdis the running log.
Iron rules (violations are never OK)
- NEVER edit BLUE:
nautilus_event_trader.py, kernels,prod/ch_writer.pycontent, 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 addonly; 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, testsprod/clean_arch/violet/uvon pushes touv/*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)
git clone /root/violet.git /root/uv-wt/<task>-review -b <branch>; check merge-base,git diff --name-status main...HEAD(scope + pycs).- Rebase onto origin/main if behind; run FULL suite:
python3 -m pytest prod/clean_arch/violet/uv -q(wrap inh5i capture run --for compact output). Green = 0 failed; current baseline 1514 passed / 40 skipped. - Read the load-bearing code (transport, guards, money math) — not just tests.
- 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)
- T2 merges → pi's differ tests arm, T7 differ stub swaps automatically.
- 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.
- Gate B: Hypothesis/fuzz faultlines (compute-bound, hours). pi's suites are most of it; add the differ+replay property tests.
- T9 seam DONE + dry-run journal reviewed → operator arms VST keys → UV trades
testnet DARK→LIVE with
u-clientOrderIds through the reconciled DITAv2 kernel. - 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.18–0.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 11–12s; 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.