Skip to content

plan(seed): unified-runtime — Nitro v3 validation + epic decomposition (#824, drafts-only)#850

Closed
rickylabs wants to merge 19 commits into
mainfrom
plan/unified-runtime
Closed

plan(seed): unified-runtime — Nitro v3 validation + epic decomposition (#824, drafts-only)#850
rickylabs wants to merge 19 commits into
mainfrom
plan/unified-runtime

Conversation

@rickylabs

Copy link
Copy Markdown
Owner

Seed run — unified-runtime board (#824) · Stage A

Charter read-back: this planning-only seed run (.llm/harness/workflow/seed-run.md stages A–I) produces the unified-runtime epic's board per issue #824 (Part of #823):

  1. Nitro v3 validation corpus (cited): deno preset maturity; adapter surface (database/cache/KV/tasks/WebSocket/lifecycle) vs shipped @netscript adapters; whether the "excludes sagas" constraint (epic: NetScript enterprise deployment framework (cloud-agnostic + bare-metal, CLI + Aspire) #327 D1, 2026-07-03 — STALE) still holds; oRPC + Fresh 2 integration; cloud deploy presets.
  2. Composition contract with multi-process mode ("macro services" = resource splitting across deploy targets; PR RFC: NetScript Single Deployment — process-managed apps, single & multi runtime (#820) #822 RFC §3/§D as the frame).
  3. Epic decomposition: sub-issue drafts + milestone train; supersession map for feat(sdk): in-process link-mode adapter for single-process service mounting #451/feat(desktop): tursodb single-writer relocation + in-process composition root #453/feat(desktop): true single-process mode (option c) #454/feat(desktop): offline-first via Turso Sync in the single-process host #455 (re-home) and [Deploy-S13] WATCH: RFC-14 unified-mode + Nitro deno_server (tier-3 serverless) #349 (close-as-superseded proposal).
  4. PLAN-EVAL PASS → owner ratification in-turn → one-shot stage-H filing.

Drafts-only until stage H — zero board mutation before owner ratification. This PR is the run's commit trail and never merges itself.

Refs #824, #823. (No closing keywords.)

🤖 Generated with Claude Code

https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd

… + boundaries (#824)

Refs #824 #823

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd
@rickylabs rickylabs added this to the 0.0.1-beta.11 milestone Jul 17, 2026
@rickylabs rickylabs added wave:v1 type:chore Tooling, config, or housekeeping status:plan Harness plan phase priority:p1 High area:deploy Deployment: CLI/Aspire deploy, targets, bare-metal epic:unified-runtime Unified single-runtime deployment epic (Nitro v3 single deploy output) labels Jul 17, 2026

Copy link
Copy Markdown
Owner Author

Stage B — cited discovery corpus complete

Pushed the six-topic research corpus at 6c8f8246c8f8ba8b9f72f2ff8882c42d5bd56ebb:

  • 75d73826nitro-v3.md: Nitro v3 remains public beta; deno_server is Node-built and launched with Deno unstable/permissions; database and tasks are experimental; storage defaults to memory; provider presets have materially different lifecycle/task/storage/WebSocket behavior.
  • 579f0e75adapter-mapping.md: capability-by-capability mapping against shipped database/KV/queue/service/workers/sagas/triggers/streams surfaces. Nitro is a useful host/binding layer, not a lossless replacement for the NetScript ports.
  • a9d7b665sagas-constraint.md: epic: NetScript enterprise deployment framework (cloud-agnostic + bare-metal, CLI + Aspire) #327 D1's categorical “excludes sagas” is stale. Nitro tasks can host/dispatch execution, but do not supply durable state, compensation, outbox, idempotency, queue delivery, or recovery; sagas fit only when those NetScript capabilities remain supplied.
  • c79f1a2eorpc-fresh.md: a thin Fetch bridge is viable. Nitro/H3 owns the listener and lifecycle, mounts the oRPC/ServiceApp Fetch handler and Fresh app.handler(), and must specify route/context/error/asset/stream/version conformance.
  • f4c7185cmarket.md: Nuxt/Nitro, Next standalone, RR7, SvelteKit, Redwood, and Wasp converge on one app model compiled into target-specific artifacts. The NetScript bar is stronger: one capability-checked graph that either realizes in one process or emits/rejects a declared multi-unit topology.
  • 6c8f8246drift-ledger.md: 12 supervisor candidates against PR RFC: NetScript Single Deployment — process-managed apps, single & multi runtime (#820) #822 §3/§D and the issue corpus.

Load-bearing reconciliation: make one logical composition root the universal invariant and one physical process a preset capability. Keep durable NetScript ports above Nitro primitives; “in-process” must not imply volatile storage.

Evidence gate:

  • exactly 6 research files;
  • 45 local path+line citations validated against current files;
  • 72 evidence-bearing table rows carry a URL, deno doc surface, or repository citation;
  • live-doc extracts preserved under .llm/tmp/docs/;
  • deno fmt --check and git diff --check pass;
  • topic-sized commits only; no framework code or board mutation.

Stage B remains planning-only/drafts-only. No merge, release publish, milestone closure, issue filing, label, or milestone mutation was performed.

rickylabs and others added 3 commits July 18, 2026 00:52
…capability-matrix, D3 board-mechanics), drafts-only

Supervisor-reviewed: DRAFT H1s verified, no board mutation, cross-pack DAG coherent
(UR-1..UR-12 skeleton; supersession map with drift citations; zero filing-time closes).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd
…, DAG + train)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd
@rickylabs

Copy link
Copy Markdown
Owner Author

Stage E — Plan locked (drafts-only)

Stages B–E complete on this branch:

Next: Stage-F adversarial review (distinct model, unoriented) → Stage-G PLAN-EVAL (open-model) → Stage-H owner ratification IN-TURN (the decision brief is design/D3-board-mechanics/decision-brief.md + plan.md §fork sweep). Zero board mutation until then.

rickylabs and others added 3 commits July 18, 2026 01:17
…NOR) + supervisor triage: ALL ACCEPTED, plan returns to Stage E

Headline catches: Deno Deploy Classic sunset invalidates C2; supersession folds would
falsely close #451/#453/#454/#455; Nitro host path bypassed shipped service lifecycle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd

Copy link
Copy Markdown
Owner Author

[PHASE: RESEARCH]

Stage-F findings 1 and 15 are remediated at 0ae5a7ce2e0b4221a8d1f0fb9158b9a33a7ae415.

Slices

  1. 103c888c — restored the five dated Stage-B extracts under the committed run directory:

    • .llm/runs/plan-unified-runtime--seed/evidence/
    • updated all five corpus provenance references away from gitignored .llm/tmp/docs/
    • added and verified SHA256SUMS
  2. 0ae5a7ce — re-researched C2 against the surviving Deno Deploy:

    • added research/deno-deploy-new.md
    • added the committed official-doc extract evidence/deno-deploy-new-live-2026-07-18.md
    • corrected nitro-v3.md so the Classic-only deno_deploy instructions no longer count as a v1 cell

C2 verdict

C2 is not a validated v1 cell and leaves the v1 matrix. Nitro's current provider page targets Deno Deploy Classic (dash.deno.com, deployctl), which shuts down 2026-07-20. The new platform uses console.deno.com / deno deploy, has a new integrated-build and dynamic-entrypoint model, and explicitly does not support Deno queues.

The new platform does support assigned Deno KV, managed Prisma Postgres, and linked external databases. Those are candidate bindings, not conformance proof. Queue parity requires a selected external message service or database-backed NetScript queue adapter.

C2 is replaced by a research card, “Prove Nitro v3 on new Deno Deploy,” requiring a real deployment, supported monorepo/artifact path, warmup and runtime conformance, explicit KV/SQL binding, external queue delivery/retry/DLQ/drain proof, cron/task behavior, and rollback/health evidence. The owner fork is now three-cell v1 versus re-admitting C2 only after that proof.

Validation

  • six committed evidence snapshots: SHA-256 verification PASS
  • seven research files: deno fmt --check PASS
  • C2 citation audit: 9 local path/line references and 27 evidence-bearing table rows, 0 errors
  • git diff --check PASS
  • explicit push ref verified at 0ae5a7ce2e0b4221a8d1f0fb9158b9a33a7ae415

Planning-only: no framework code or board mutation. Merge/release/milestone/owner-ratification stop-lines remain in force.

rickylabs and others added 3 commits July 18, 2026 01:36
…UR-12 slots, all-KEEP supersession, 3-cell v1, resumable filing, F-1…F-17 fork sweep

All 17 adversarial findings executed per triage; supervisor-reviewed (stop-lines
materialized ×16 briefs, zero stray closing keywords, canonical slot files complete).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd
…pervisor fixes for all residuals

P1 C2 purged from D2 briefs; P5 D1 brief consumes UR-0 (no bespoke registry); P8+NEW-1
filer publishes only ## Body with single marker; P12 F-12 branch-B delta materialized;
NEW-2 UR-6/DD-RESEARCH cycle broken (UR-6-EXT successor); NEW-3 three-cell title.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd
…ssion); run parked at Stage-H owner boundary

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd
@rickylabs

Copy link
Copy Markdown
Owner Author

Stage G — PLAN-EVAL PASS · run PARKED at the Stage-H owner boundary

Full trail on this branch: corpus (7 topics + committed evidence w/ SHA256SUMS) → synthesis → 3 design packs → Stage-E lock → adversarial cycle (17 findings, all accepted, reworked, re-verified: 13 RESOLVED + 4 partials & 3 new defects fixed by the supervisor) → PLAN-EVAL PASS (open-model Qwen, separate session).

Awaiting owner ratification IN-TURN of the decision brief: design/D3-board-mechanics/decision-brief.md (F-1…F-17 forks + SC-1…SC-6 supersession confirmations, defaults stated; identical sweep in plan.md). Zero board mutation until then — filing then runs once from the resumable manifest (label-parity PR is a gated prerequisite).

@rickylabs

Copy link
Copy Markdown
Owner Author

Stage-B supplemental research — Nitro vs own layer

Commit: 43e18ef6

Recommendation: HYBRID — own the semantics; rent the volatile provider translation. NetScript should own the Fetch-shaped composition root, lifecycle/durability contracts, capability manifest, and deploy-target/output-emitter port. Nitro v3 should be optional and replaceable behind that port for high-churn tier-3 serverless outputs such as Cloudflare, Vercel, and Lambda; it should not be the universal host or expose its storage/tasks/database contracts as NetScript public APIs.

Key findings:

  • Nitros unique value is its Rolldown/Vite backend build and maintained provider artifact/event adapters, not queue, saga, trigger, database, or durable-state semantics.
  • Existing NetScript deploy ports, registry, Aspire delegation, and Cloud Run path make OWN comparatively cheap for process, Docker/Compose, Kubernetes/Azure, and Docker-image providers.
  • An owned Cloudflare/Vercel/Lambda emitter must reproduce each providers entry shim, bundle/package rules, config/routes/bindings, schedules/queues, and event translation. The report labels its engineer-week ranges explicitly as planning estimates inferred from those cited contracts.
  • Most locked UR cards survive because the composition contract is Nitro-independent. UR-2 and UR-6 need replacement/generalization; UR-3/4/5/11/12 need wording or boundary adjustments.
  • Nitro beta churn, compatibility-date advancement, and the Deno-via-Node build path are contained at the optional emitter boundary and gated per target.

Corpus:

  • .llm/runs/plan-unified-runtime--seed/research/nitro-vs-own.md
  • .llm/runs/plan-unified-runtime--seed/evidence/nitro-vs-own-live-2026-07-18.md
  • evidence checksum added to evidence/SHA256SUMS and verified

This is research only: no board mutation and no plan.md edit.

@rickylabs

Copy link
Copy Markdown
Owner Author

Stage-B supplemental research rev2 — provider-native hybrid

Commit: 37cc9634

Revised recommendation: provider-native HYBRID. The owner condition changes the target split:

  • Cloudflare flips to OWN: wrap official Wrangler + Cloudflare Vite plugin + Miniflare, then add leaf adapters for KV, Queues, Durable Objects and Cache. This is both thinner and more provider-native than routing the full suite through Nitro.
  • AWS flips to OWN: wrap AWS Lambda Web Adapter for HTTP/runtime translation and compose AWS event/resource adapters at the leaves. The community Deno-through-Node wrapper proves feasibility but its unstable flags, broad permissions and disabled telemetry make it research-only.
  • Vercel remains provisional Nitro: vercel-deno is more Deno-native and cuts the estimated adapter cost to 1–3 weeks, but its community maintenance footprint and separate build-time Deno path need conformance proof before it replaces Nitro.
  • Docker-derived providers remain Aspire/image + thin adapters: Cloud Run, Koyeb, Sevalla, Coolify, Dokploy, Fly.io, Render and DigitalOcean do not need Nitro.
  • Nitro is now long-tail only: an optional emitter when it is demonstrably thinner than the best provider-native wrapper and hides no required native capability.

The rev1 greenfield estimates were too high. With wrap-dont-reinvent, Cloudflare HTTP/deploy moves from 4–7 to 2–4 engineer-weeks, AWS Lambda HTTP from 5–9 to 2–4, and Vercel to 1–3 experimental. Each provider leaf backing remains separately estimated and capability-gated.

Architecture proposal: extract the shipped CLI deploy domain into a callable @netscript/deploy Archetype-2/7 core. Leaf packages retain KV/queue/database/saga/trigger/stream semantics and provider backings; deploy owns deployment cells, capability manifests, artifact emitters, resource-binding resolution, provisioning, activation routing and target registration; CLI becomes a thin dynamic router.

Locked-board delta proposed for supervisor re-lock:

  • UR-0/1/3/4/7/8/9/10 survive in intent.
  • UR-2 replaces Nitro ownership with a NetScript host lifecycle plus target adapters.
  • UR-5 generalizes preset capabilities to deployment-cell/provider capabilities.
  • UR-6 keeps three v1 cells but makes Cloudflare the owned official-toolchain reference cell and records emitter provenance.
  • UR-11 decides the @netscript/deploy extraction and dependency direction.
  • UR-12 accepts provider-native replaceability rather than Nitro adoption.
  • DD-RESEARCH remains unchanged.

Corpus:

  • .llm/runs/plan-unified-runtime--seed/research/nitro-vs-own-rev2.md
  • .llm/runs/plan-unified-runtime--seed/evidence/nitro-vs-own-rev2-live-2026-07-18.md
  • checksum added to and verified through evidence/SHA256SUMS

Research only: no board mutation and no plan.md edit.

…cepted) + supervisor synthesis — owner fork N1 (feasibility-cards path recommended)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Li9hR82jgy6Y6468Svbswd
@rickylabs

Copy link
Copy Markdown
Owner Author

Build-vs-own: three-round trail complete — new owner fork N1

rev1 (HYBRID) → owner conditional steer → rev2 (provider-native HYBRID: CF/AWS flip to owned wrappers) → Sol·max adversarial: 3 BLOCKER / 3 MAJOR / 1 MINOR, all accepted (adversarial-nitro-vs-own.md).

What survived all rounds: the owner's per-target decision rule (native wrapper wins iff same conformance + full native surface + cheaper to maintain; Nitro never in the composition contract), ports-stay-authoritative, and the thin-adapter Docker long tail. What fell: the v1 CF/AWS flip's evidence (AWS = HTTP sidecar ≠ provider family; CF tooling = provider-owned Node callable from Deno; estimates unsubstantiated; @netscript/deploy needs a real architecture card; rev2's UR delta is not filable — F6).

Fork N1 (nitro-vs-own-synthesis.md): A (recommended) — file the locked board + three new feasibility cards (CF-PROBE, AWS-PROBE split, DEPLOY-ARCH) + the owner rule encoded in UR-6/UR-12 acceptance; the flip lands later as an evidenced amendment. B — full provider-native canonical re-branch now (+ another adversarial/PLAN-EVAL cycle, delays filing, files unproven architecture).

Stage-H brief now = F-1…F-17 + SC-1…SC-6 + N1. Awaiting owner in-turn.

@rickylabs

Copy link
Copy Markdown
Owner Author

Closed unmerged: superseded by the owner-ratified deploy-plugin redirect (see #824). The research, canonical designs, and adversarial trail on plan/unified-runtime are preserved as the evidence base for the new seed run on plan/deploy-plugin.

@rickylabs rickylabs removed this from the 0.0.1-beta.11 milestone Jul 18, 2026
@rickylabs rickylabs closed this Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:deploy Deployment: CLI/Aspire deploy, targets, bare-metal epic:unified-runtime Unified single-runtime deployment epic (Nitro v3 single deploy output) priority:p1 High status:plan Harness plan phase type:chore Tooling, config, or housekeeping wave:v1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant