Skip to content

docs(plan): stream-realtime production campaign — RG0–RG6 gate blueprint#157

Merged
dzhelezov merged 1 commit into
mainfrom
docs/realtime-campaign-plan
Jul 11, 2026
Merged

docs(plan): stream-realtime production campaign — RG0–RG6 gate blueprint#157
dzhelezov merged 1 commit into
mainfrom
docs/realtime-campaign-plan

Conversation

@dzhelezov

Copy link
Copy Markdown
Collaborator

Lands the CTO campaign blueprint (.agents/plans/stream-realtime-production.md) for lifting PORTAL_REALTIME=stream from experimental to production-ready, held to the same evidence discipline that certified the Portal backfill (byte-diff matrix, chaos, A/B soak) — adapted to the realtime leg.

What the plan establishes

  • Correctness gap register (RT-G1–RT-G15) with per-gap severity + test cites. It validates and corrects the reorg/finalize logic: RT-G3 (409 oscillation), RT-G4 (wrong-fork finalize), RT-G5 (B1 defer watchdog), RT-G6 (redelivery deadlock), RT-G9 (omnichain floor) are shown already mutation-tested (cited) — no manufactured work.
  • The real must-fix cluster → RT-1 (one additive PR, zero reorg/finalize semantics change): RT-G11 unbounded realtime body-read (portal-client.ts: "Absent ⇒ no stall guard (realtime path)"), RT-G12 finalize-poll gated on block delivery, RT-G10 silent-tip stall, RT-G8 undici teardown (closes stream wire: watchdog/teardown unwind depends on the aborted read settling — harden against the open undici abort-hang race (nodejs/undici#4089) #48).
  • One suspected correctness bug → RT-2 (verify-first): RT-G13 — the isolated-path cutover clamp passes no finality floor (unlike the multichain site), so a stale-LOW replica could regress the boundary and double-index finalized rows on single-chain apps. Flagged honestly as must-verify (RG0) before the fix.
  • RT-3: RING_CAP 2048 → 8192 + an eviction-fatal proof (the F5 availability edge).
  • Evidence gates RG0–RG6 with concrete acceptance numbers: fatal-injection + silent-gap fuzzer (RG2); realtime chaos ≥200 kills / 6 timing classes / 100% clean resumes / byte-identical digests (RG3); ≥72h multichain soak incl. a fast chain + omnichain drills (RG4); the in-flight 7-day A/B soak untouched until it completes, then a ≥72h re-soak on the patched build because pre-fix evidence doesn't certify post-fix code (RG5); dossier + single atomic README label flip (RG6).
  • INV-22 / INV-23 candidates (realtime liveness fail-loud; finality-boundary monotonicity) and a candid VALIDATION §5.8 rewrite land with the code.

Review basis

CTO-authored; the orchestrator independently verified the load-bearing empirical claims before landing — RT-G11's portal-client.ts docstring cite and the RT-G3 409-oscillation test cite (portal-realtime.test.ts) both confirmed, the "already-covered" corrections spot-checked against the test files. Doc-only, public-safe (no infra internals). Execution is GO; this doc is the single source of truth the RT-1/RT-2/RT-3 code PRs will cite (each committee-gated + mutation-verified in the normal way).

🤖 Generated with Claude Code

…RG6 gates

The CTO blueprint to lift PORTAL_REALTIME=stream from experimental to
production-ready, on par with the proven Portal-backfill evidence discipline.

Contents: correctness gap register (RT-G1–RT-G15) with per-gap severity and
test cites — validating/correcting the reorg/finalize logic (RT-G3/G4/G5/G6/G9
already mutation-tested; cited) and isolating the real gaps: a liveness cluster
(RT-G8 #48 teardown, RT-G10 silent-tip stall, RT-G11 unbounded realtime read,
RT-G12 delivery-gated finalize poll → RT-1) and one suspected correctness bug
(RT-G13 isolated-cutover finality floor → RT-2, verify-first). Evidence gates
RG0–RG6 with concrete acceptance numbers (≥200 chaos kills / 100% clean
resumes / byte-identical digests; ≥72h multichain soak; 7-day A/B + patched-build
re-soak), sequencing that leaves the in-flight soak untouched pre-2026-07-13,
INV-22/INV-23 candidates, and the single atomic README label flip at RG6.

Full autonomy granted (execution is GO; the label flip's gate transferred to the
evidence dossier). This doc is the campaign's single source of truth.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dzhelezov dzhelezov merged commit 8d42cba into main Jul 11, 2026
14 checks passed
@dzhelezov dzhelezov deleted the docs/realtime-campaign-plan branch July 11, 2026 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

stream wire: watchdog/teardown unwind depends on the aborted read settling — harden against the open undici abort-hang race (nodejs/undici#4089)

1 participant