Skip to content

feat(dev): materialize immutable generations#759

Open
ctgowrie wants to merge 2 commits into
fix/production-build-isolationfrom
feat/dev-generation-artifacts
Open

feat(dev): materialize immutable generations#759
ctgowrie wants to merge 2 commits into
fix/production-build-isolationfrom
feat/dev-generation-artifacts

Conversation

@ctgowrie

@ctgowrie ctgowrie commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Why

Development snapshots still depended on authored files and dependency links in the live workspace. Removing a tool, changing a package, or advancing away from the startup snapshot could leave retained runtime behavior or later Nitro rebuilds pointing at files that no longer existed.

What

  • Adds explicit stage, activate, and discard boundaries for development generations.
  • Bundles ordinary authored dependencies and materializes configured external closures from bundler-resolved ESM entries, including pnpm transitive links, package exports, assets, native files, and package links whose targets live outside the workspace.
  • Produces a path-independent behavior fingerprint covering authored modules, instrumentation, workspace resources, and materialized dependencies.
  • Parses actual directive prologues so comments and ordinary strings containing workflow text remain valid.
  • Keeps Nitro host inputs outside generation storage and retains activated generations until later lease-aware pruning exists.
  • Preserves the packaged-server regression by force-pruning the startup generation before a structural reload and streamed turn.

Stage boundary

This is Stage 2 stacked on #739. It does not introduce parent-owned workers, request transport, transactional watcher promotion, channel routing changes, Workflow generation selection, or reference-driven pruning.

Validation

  • Full unit tier: 446 eve files, 4,684 passed, 1 skipped; 7 catalog tests passed.
  • Full integration tier: 61 files, 438 passed.
  • Full scenario tier: 52 files, 299 passed, 15 skipped.
  • Workspace typecheck, lint, formatting, build, and invariant guard passed.

@vercel

vercel Bot commented Jul 13, 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 1:36pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
eve-docs-1644 Skipped Skipped Open in v0 Jul 14, 2026 1:36pm
eve-docs-4759 Skipped Skipped Open in v0 Jul 14, 2026 1:36pm

@ctgowrie ctgowrie force-pushed the feat/dev-generation-artifacts branch from 7b4c794 to a202392 Compare July 13, 2026 23:16
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 13, 2026 23:16 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 13, 2026 23:16 Inactive
@ctgowrie ctgowrie force-pushed the feat/dev-generation-artifacts branch from a202392 to 1c9ad44 Compare July 13, 2026 23:19
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 13, 2026 23:19 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 13, 2026 23:19 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 12:25 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 12:25 Inactive
@ctgowrie ctgowrie force-pushed the feat/dev-generation-artifacts branch from 1a5e322 to c0c3030 Compare July 14, 2026 13:23
ctgowrie added 2 commits July 14, 2026 09:34
Signed-off-by: Casey Gowrie <ctgowrie@gmail.com>
Third-party dependencies inlined into a generation bundle can import
`@workflow/*` (e.g. `@ai-sdk/provider-utils` -> `@workflow/serde`). eve
vendors those packages, so leaving the import external emits a bare
specifier no materialized generation can resolve. Externalize workflow
runtime imports only for authored importers and inline them inside
bundled node_modules code.

Also exclude the channel identity plugin from generation bundles so an
immutable artifact structurally cannot read the process-global channel
cache, and split the package boundary plugins into their own module.

Signed-off-by: Casey Gowrie <ctgowrie@gmail.com>
@ctgowrie ctgowrie force-pushed the feat/dev-generation-artifacts branch from c0c3030 to 4d02fe3 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
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