Skip to content

Make authored dev rebuilds transactional#766

Open
ctgowrie wants to merge 2 commits into
feat/dev-parent-worker-transportfrom
feat/dev-transactional-rebuilds
Open

Make authored dev rebuilds transactional#766
ctgowrie wants to merge 2 commits into
feat/dev-parent-worker-transportfrom
feat/dev-transactional-rebuilds

Conversation

@ctgowrie

Copy link
Copy Markdown
Collaborator

Why

Dev rebuilds currently mutate the live Nitro host as files change. A failed compile, bundle, route update, or worker startup can therefore leave the server on a partial generation, and structural reloads can reset active requests.

What changed

  • Build every development host in an invocation-owned workspace and keep it invisible until its worker is ready.
  • Classify semantic changes as unchanged, runtime-only, or structural. Runtime-only changes publish a new immutable generation without replacing the worker; structural changes atomically publish the generation and swap workers behind the parent admission gate.
  • Preserve Nitro-selected channel route identity, include instrumentation and environment-bound host inputs in classification, and roll back pointer, environment, candidate, fingerprint, and watcher state on failure.
  • Keep parent control routes and active streams alive during candidate preparation and promotion.
  • Retain the fix(eve): keep Nitro dev inputs outside runtime snapshots #722 regression: pruning the startup generation cannot break a later structural rebuild.

This is Stage 4 of the staged dev isolation work. Stage 5 moves local Workflow ownership to the parent, resolves latest once per child turn, and prunes generations only after every request, worker, and non-terminal Workflow reference is gone.

Validation

  • pnpm lint
  • pnpm typecheck
  • pnpm guard:invariants
  • full eve unit suite: 4,690 passed, 1 skipped
  • full eve integration suite: 443 passed
  • full eve scenario suite: 315 passed, 15 skipped

@vercel

vercel Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
eve-docs Ready Ready Preview, Comment, Open in v0 Jul 14, 2026 2:06pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
eve-docs-1644 Skipped Skipped Open in v0 Jul 14, 2026 2:06pm
eve-docs-4759 Skipped Skipped Open in v0 Jul 14, 2026 2:06pm

Comment thread packages/eve/src/internal/nitro/host/dev-authored-rebuild-coordinator.ts Outdated
@ctgowrie ctgowrie force-pushed the feat/dev-transactional-rebuilds branch from 7a9481a to 23fe13e Compare July 14, 2026 12:26
@ctgowrie ctgowrie force-pushed the feat/dev-parent-worker-transport branch from feaf376 to 135761c Compare July 14, 2026 12:26
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 12:26 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 12:26 Inactive
@ctgowrie ctgowrie force-pushed the feat/dev-transactional-rebuilds branch from 23fe13e to ad8f262 Compare July 14, 2026 12:31
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 12:32 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 12:32 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 12:39 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 12:40 Inactive
@ctgowrie ctgowrie force-pushed the feat/dev-parent-worker-transport branch from 0974216 to b80e5e1 Compare July 14, 2026 13:23
@ctgowrie ctgowrie force-pushed the feat/dev-transactional-rebuilds branch from 58c8b2a to 4bca06c Compare July 14, 2026 13:23
@ctgowrie ctgowrie force-pushed the feat/dev-transactional-rebuilds branch from 4bca06c to f1e29bc Compare July 14, 2026 13:34
@ctgowrie ctgowrie force-pushed the feat/dev-parent-worker-transport branch from b80e5e1 to 4e2aafa Compare July 14, 2026 13:34
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 13:34 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 13:34 Inactive
ctgowrie added 2 commits July 14, 2026 10:03
Staging keyed off the watcher's changed paths dropped an environment
edit permanently when its rebuild failed for an unrelated reason: the
failed attempt rolled the environment back and consumed the changed
paths, so the retry committed without ever reapplying the edit. Stage
from the files on disk on every rebuild instead; an unchanged
environment stages as a no-op.

Signed-off-by: Casey Gowrie <[email protected]>
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.

1 participant