@@ -4,10 +4,25 @@ _Ground-truth map, read top-to-bottom 2026-06-15 from local clone at HEAD `ab038
44Single source for "how everything ties together." Keep current._
55
66_ Session 2026-06-15 PM: GH numbering note — internal-notes "C#NN" ≠ GitHub issue NN.
7- Go by GitHub numbers. Closed this round: #74 (gossipsub head-tracking verified),
8- #65 (pdp_data_sets failure-count drift). Opened: #78 (revert-only ChainNotify
9- ERROR noise), #79 (re-arm prove_at_epoch on drift-recovered datasets). Fork HEAD
10- moved a97f1c48 → 04532a3f (proofClearsLocalFailure + tests)._
7+ Go by GitHub numbers. Closed this round: #74 (gossipsub verified), #65 (failure-count
8+ drift), #67 (wake-at-write Notify), #69 (two-port + autocert TLS). Opened: #78
9+ (revert-only ChainNotify noise), #79 (re-arm prove_at_epoch). Re-scoped: #24 (P1→P2,
10+ paralysis risk already mitigated by adopted backpressure caps, gated on #2 ). Fork HEAD
11+ a97f1c48 → 0e523f0c. curio-core HEAD → 99c28cb._
12+
13+ ## HTTP serving (two-port model, #69 — NEW 2026-06-15)
14+
15+ Default deploy needs ** no nginx** . ` cmd/curio-core/main.go ` builds two route sets:
16+ - ** Public** (` --public-listen ` ): ` /pdp/* ` + ` /piece/* ` . TLS via baked-in
17+ ` golang.org/x/crypto/acme/autocert ` when ` --public-tls-domain ` set; ACME HTTP-01 +
18+ HTTP→HTTPS on ` --acme-http-listen ` (:80). Refuses :443 without a domain.
19+ - ** Admin** (` --admin-listen ` , defaults to legacy ` --listen ` ): dashboard + ` /setup ` +
20+ ` /admin/* ` . Loopback-only.
21+ - ` internal/httpserve ` owns listener Build/Run/shutdown. ` internal/acmecache ` =
22+ ` autocert.Cache ` over the ` autocert_cache ` SQLite table (migration 0014).
23+ - ** Back-compat:** empty ` --public-listen ` → single listener via ` combinedRouter `
24+ prefix-dispatch (NOT chi.Mount — that double-prefixes full-path muxes to /pdp/pdp/).
25+ cc-smoke runs this single-port mode unchanged.
1126
1227## One-line
1328
0 commit comments