Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 19 additions & 9 deletions docs/LAUNCH.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@
> This file is THE list. If it's not here, it's not a launch blocker — stop carrying it in your head.
> _Last synced: 2026-07-20._
>
> **REMAINING BLOCKERS AT A GLANCE (2026-07-20 EOD):** P0-#3 relay automation · P0-#6
> churn-survival PROOF (+ the warm re-join ≤3min receipt, folded into the same ring session) ·
> P1-#3 WSL2 turnkey · P1-#4 adversary hardening → then the rehearsal day. DONE: P0-#1 residue
> **3/4 in one day (manifest resolution shard #125 + c0mpute #42 · standby `sidecar -seed` wiring
> c0mpute #42 · node-side challenge probe shard #126/#127 + c0mpute #43)**, P0-#2, P0-#4, P0-#5
> EAGLE watchdog, P1-#1 (map live), P1-#2 (Leg 8 + epoch + pay-model).
> **REMAINING BLOCKERS AT A GLANCE (2026-07-20 night):** P0-#6 churn-survival PROOF (+ the warm
> re-join ≤3min receipt, folded into the same ring session) · P1-#3 WSL2 turnkey · P1-#4 adversary
> hardening → then the rehearsal day. DONE TODAY: P0-#1 residue **3/4** (manifest resolution shard
> #125 + c0mpute #42 · standby `sidecar -seed` c0mpute #42 · challenge probe shard #126/#127 +
> c0mpute #43) **and P0-#3 relay automation** (relays LIVE as systemd services + reservations
> verified; daemon auto-discovery c0mpute #44). Earlier: P0-#2, P0-#4, P0-#5 EAGLE watchdog,
> P1-#1 (map live), P1-#2 (Leg 8 + epoch + pay-model).

---

Expand Down Expand Up @@ -66,9 +67,18 @@ You have a working decentralized inference network. What's left is turning "I ca
subprocess gate). Plus the whole SSH + `/root`-flat-layout premise (that half = the daemon, P0-#1).
A stranger's box (home dir, non-root, weird paths, WSL2) must Just Work with none of today's hand-patches.

3. **Relay / NAT infrastructure, automated.** NAT'd home nodes reach the network via a public relay +
DCUtR hole-punch — *proven today* — but someone must RUN public relays and the daemon must auto-discover
+ reserve on them. Today I ran the relay by hand on one box.
3. ~~**Relay / NAT infrastructure, automated.**~~ ✅ **DONE 2026-07-20 (c0mpute #44 + live infra).**
NAT'd home nodes reach the network via a public relay + DCUtR hole-punch (proven 07-14; relay =
rendezvous only, the data path upgrades to direct). Now automated on both halves: **operator** —
`shard-relay.service` (sidecar `-relay -quic`, persistent key ⇒ stable PeerId, Restart=always)
runs on two existing paid public boxes, reservations verified end-to-end from a test sidecar;
**network** — the daemon resolves `/relays.json` off the orchestrator origin at enroll (cached,
offline-tolerant), VALIDATES every entry (a malformed `-relays` entry is sidecar-fatal — one bad
list push must never kill the fleet; operator env outranks), and arms `-relays` on every sidecar
boot so a NAT'd node announces its circuit addrs from first boot. The repo ships `relays.json`
EMPTY (no public IPs in git); the launch deploy fills it (addrs in the ops notes). _Deferred,
not launch-blocking: AutoNAT-gated reservation (today every node with a list reserves — harmless
at launch scale, circuit addrs rank below direct in dial order)._

4. ~~**OpenAI-API correctness** (audit M2)~~ ✅ **DONE** (verified 2026-07-15; was remediated in the
audit fix, PR #96 — LAUNCH.md was stale). `phase0/m25_gateway.py`: strict `max_tokens`/`max_completion_tokens`
Expand Down
20 changes: 14 additions & 6 deletions docs/M25_ENGINE.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,20 @@ they shipped). All offline/GPU-less; balance untouched (~$25).
upstream answer) + shadow-mode cosine-threshold validation at max block depth on a real
cross-vendor pair BEFORE enforcement.

**⇒ THE ONE NEXT ACTION: P0-#3 relay automation** (daemon auto-discovers + reserves on public
relays; the FSN/AMS relay boxes exist — see [[doublezero-pilot-assessment]] for iids). Then the
**P0-#6 ring session: churn-survival proof + the warm re-join ≤3min receipt** (one ring, two
receipts — kill a stage mid-serve → re-form → next request serves; restart a warm daemon → time to
READY; ~$3-5, dead-man switch discipline). Then P1-#4 hardening → P1-#3 WSL2 → rehearsal.
Queued small c0mpute follow-up: daemon restarts a stall-killed coordinator with `M25_EAGLE=0`.
**P0-#3 relay automation: ALSO DONE same night (c0mpute #44 + live infra).** `shard-relay.service`
LIVE on the two existing paid public boxes (sidecar `-relay -quic`, stable PeerIds, DZ pilot
untouched; reservations verified end-to-end from a test sidecar — addrs in the ops notes/memory
[[launch-relays-live]]). Daemon resolves `/relays.json` off the orchestrator origin at enroll,
VALIDATES entries (a malformed `-relays` entry is sidecar-fatal — one bad push must never kill the
fleet; env outranks), arms `-relays` every sidecar boot. Repo ships `relays.json` EMPTY (no public
IPs in git); launch deploy fills it. relay-resolve-test 12/12 + sim proof (unreachable relay =
log, never fatal). Deferred: AutoNAT-gated reservation (harmless at launch scale).

**⇒ THE ONE NEXT ACTION: the P0-#6 ring session — churn-survival proof + the warm re-join ≤3min
receipt** (one ring, two receipts — kill a stage mid-serve → re-form → next request serves;
restart a warm daemon → time to READY; ~$3-5, dead-man switch discipline). Then P1-#4 hardening →
P1-#3 WSL2 → rehearsal. Queued small c0mpute follow-up: daemon restarts a stall-killed coordinator
with `M25_EAGLE=0`.

### ⇒ 2026-07-20 (LATEST-4) — P0-#5 RING-VALIDATED + KNOBS FORWARDED (PR #122); WEDGE FINDING BANKED
**Controlled-ring validation done** (3×5090 Poland/Germany/Poland, ~$3.5, receipt
Expand Down
Loading