Skip to content

test(dev): pin the public dev-server contract with bun and chaos coverage#792

Merged
ctgowrie merged 4 commits into
mainfrom
feat/dev2-contract
Jul 15, 2026
Merged

test(dev): pin the public dev-server contract with bun and chaos coverage#792
ctgowrie merged 4 commits into
mainfrom
feat/dev2-contract

Conversation

@ctgowrie

@ctgowrie ctgowrie commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Third PR of the stock-Nitro dev-server stack, on top of #790#787 (followed by #798).

What

Pins the rebuilt server to its public contract and failure behavior:

  • Contract suite: kept-alive connections across structural worker replacement, dev schedule dispatch through the active generation, npm-installed hoisted dependency layouts, rebuild transactionality, and generation isolation.
  • Chaos suite: authored edit storms under a continuous health probe, broken candidates, concurrent forced rebuilds, worker crashes during rebuilds and streams, aborted streams, bounded shutdown, and forged-header handling.
  • Bun suite: a bun-installed app served by the Node runtime and a fast explanatory error when the CLI itself is run under bun. CI installs bun; the cases skip when it is absent locally.
  • Exchange-release coverage for aborted uploads and cancelled retired-worker streams.

The schedule scenario validates the generation-pinned dispatch fix owned by #787; this PR no longer carries duplicate implementation or a duplicate changeset.

Validation

The contract, chaos, bun, drain, unit, and integration suites pass locally. CI provides the official end-to-end coverage.

🤖 Generated with Claude Code

@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 15, 2026 12:31am
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
eve-docs-1644 Skipped Skipped Open in v0 Jul 15, 2026 12:31am
eve-docs-4759 Skipped Skipped Open in v0 Jul 15, 2026 12:31am

@socket-security

socket-security Bot commented Jul 14, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedgithub/​oven-sh/​setup-bun@​0c5077e51419868618aeaa5fe8019c62421857d699100100100100

View full report

@ctgowrie ctgowrie force-pushed the feat/dev2-contract branch from d781b63 to f091617 Compare July 14, 2026 18:25
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 18:25 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 18:25 Inactive
@ctgowrie ctgowrie force-pushed the feat/dev2-contract branch from f091617 to 71b93f4 Compare July 14, 2026 18:47
@ctgowrie ctgowrie force-pushed the feat/dev2-contract branch from 71b93f4 to f9f42c1 Compare July 14, 2026 18:49
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 18:49 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 18:49 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 18:56 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 18:56 Inactive
@ctgowrie ctgowrie force-pushed the feat/dev2-contract branch from 143f610 to 1ad638b Compare July 14, 2026 19:15
@vercel vercel Bot temporarily deployed to Preview – eve-docs-1644 July 14, 2026 19:15 Inactive
@vercel vercel Bot temporarily deployed to Preview – eve-docs-4759 July 14, 2026 19:15 Inactive
@ctgowrie ctgowrie force-pushed the feat/dev2-contract branch from 1ad638b to ccb7830 Compare July 14, 2026 19:19
rm,
writeFile,
} from "node:fs/promises";
import { execFile } from "node:child_process";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m

ctgowrie and others added 4 commits July 14, 2026 20:29
…rage

Port the contract, chaos, and bun suites onto the harness: an authored
edit storm with a continuous health probe, worker crashes during rebuilds
and open streams, bounded shutdown deadlines, forged-header client
addressing, kept-alive connections across structural replacement, npm and
bun installed layouts, and a fail-fast assertion for bun-run dev servers.

Co-Authored-By: Claude Fable 5 <[email protected]>
Signed-off-by: Casey Gowrie <[email protected]>
- The forged-header test forges the real trusted metadata headers and the
  new untrusted-transport test drives 401s through the public listener for
  both the World RPC route and a forged queue delivery.
- The edit storm's broken-source phase is deterministic: a forced rebuild
  of broken source must leave the published revision unchanged under the
  zero-failure probe, instead of relying on a timing window.
- The promotion test polls the parent-owned runtime-artifacts route
  continuously through candidate preparation and promotion.
- hasKnownDevServerFailure additionally matches unhandled rejections and
  failed worker restarts; health probes carry a per-request timeout; the
  crash response asserts its status; the bun suite fails in CI when bun
  is missing instead of silently skipping.

Co-Authored-By: Claude Fable 5 <[email protected]>
Signed-off-by: Casey Gowrie <[email protected]>
…ired streams

Ports the two failure-mode regressions the previous stack's transport
suite covered that this stack did not: a client aborting a streaming
request body releases the exchange so the retired worker drains, and a
client cancelling a stream served by an already-retired worker releases
its last exchange and disposes it.

Co-Authored-By: Claude Fable 5 <[email protected]>
Signed-off-by: Casey Gowrie <[email protected]>
@github-actions

Copy link
Copy Markdown
Contributor

Bundle + Package Summary: apps/fixtures/weather-agent

Key takeaways

  • No notable deltas vs main (5473f76).

Delta vs main (5473f76)

Area Metric Baseline Current Delta
Package Packed tarball 3.70 MB 3.70 MB +504 B ⚠️
Package Unpacked publish size 13.41 MB 13.41 MB +2.3 kB ⚠️
Package Installed footprint 52.67 MB 52.68 MB +2.3 kB ⚠️
Package Published files 2609 2609 0
Package Installed files 5849 5849 0
Runtime Unique function payloads 2 2 0
Runtime Total function bytes 9.37 MB 9.37 MB -64 B ✅
Runtime Public routes 9 9 0
Changed function payloads vs main (5473f76) (2)
Function Status Baseline Current Delta Route changes
functions/__server.func changed 3.49 MB 3.49 MB -32 B ✅ none
functions/.well-known/workflow/v1/flow.func changed 5.88 MB 5.88 MB -32 B ✅ none

eve init install

Metric Baseline Current Delta
Installed footprint 90.94 MB 90.94 MB +2.3 kB ⚠️
Installed packages 122 122 0
dependencies 4 4 0
devDependencies 2 2 0
Dependency package bytes 27.62 MB 27.62 MB +2.3 kB ⚠️
devDependency package bytes 5.04 MB 5.04 MB 0 B ➖
Build Metadata
  • Preset: vercel
  • Nitro: [email protected]
  • Output directory: apps/fixtures/weather-agent/.vercel/output
  • Build metadata timestamp: 2026-07-15T00:32:19.004Z
  • Route aliases: 9 public, 1 internal (10 total aliases)
  • Vercel routes in config: 10
  • Severity legend: 🔴 dominant/large, 🟠 notable, 🟡 watch, ⚪ small
Package Drill-Down

Package Details

  • Package: [email protected]
  • Package directory: packages/eve
  • Tarball: 3.70 MB (eve-0.24.2.tgz)
  • Unpacked payload: 13.41 MB across 2609 published files
  • Installed footprint: 52.68 MB across 5849 installed files
  • Installed root package: 12.14 MB
  • Installed dependencies: 40.54 MB
  • Runtime dependencies: 1
  • Peer dependencies: 5 (4 optional)

Installed footprint is measured from an isolated temporary npm install of the packed tarball.

Heavy installed dependencies

  • @rolldown/binding-linux-x64-gnu: 19.13 MB (36.3%)
  • eve: 12.14 MB (23.0%)
  • ai: 6.39 MB (12.1%)
  • zod: 5.04 MB (9.6%)
  • nitro: 2.41 MB (4.6%)
Publish payload breakdown
Published file size
🟠 dist/src/compiled/experimental-ai-sdk-code-mo... [####....................] 1.51 MB 11.2%
🟡 dist/src/compiled/@vercel/sandbox/index.js       [#.......................] 622.2 kB 4.6%
🟡 dist/src/compiled/_chunks/workflow/undici-fb5... [#.......................] 502.4 kB 3.7%
🟡 dist/src/compiled/@chat-adapter/slack/index.js   [#.......................] 433.8 kB 3.2%
🟡 dist/src/compiled/_chunks/workflow/dist-Blxny... [#.......................] 277.7 kB 2.1%
🔴 Other published files                            [########################] 10.07 MB 75.1%
Installed footprint breakdown
Installed package size
🔴 @rolldown/binding-linux-x64-gnu [########################] 19.13 MB 36.3%
🔴 eve                             [###############.........] 12.14 MB 23.0%
🔴 ai                              [########................] 6.39 MB 12.1%
🔴 zod                             [######..................] 5.04 MB 9.6%
🟠 nitro                           [###.....................] 2.41 MB 4.6%
🟡 @ai-sdk/provider-utils          [#.......................] 847.4 kB 1.6%
🔴 Other installed packages        [########................] 6.73 MB 12.8%
Runtime dependencies (1)
Package Range Notes
nitro 3.0.260610-beta
Peer dependencies (5)
Package Range Notes
@opentelemetry/api ^1.0.0 optional peer
ai catalog:
braintrust ^3.0.0 optional peer
just-bash ^3.0.0 optional peer
microsandbox ^0.5.0 optional peer
eve init install drill-down

eve init install details

  • Command: eve init my-agent
  • Package manager: npm
  • Installed footprint: 90.94 MB across 7667 installed files
  • Installed packages: 122 total (116 transitive-only)
  • dependencies: 4 direct packages totaling 27.62 MB
  • devDependencies: 2 direct packages totaling 5.04 MB
  • Other transitive package files: 58.28 MB

Installed footprint is measured from an isolated temporary eve init my-agent using the current packed eve tarball.

Heavy installed dependencies

  • @typescript/typescript-linux-x64: 27.95 MB (30.7%)
  • @rolldown/binding-linux-x64-gnu: 19.13 MB (21.0%)
  • eve: 12.14 MB (13.3%)
  • zod: 9.00 MB (9.9%)
  • ai: 6.39 MB (7.0%)
Installed footprint breakdown
Installed package size
🔴 @typescript/typescript-linux-x64 [########################] 27.95 MB 30.7%
🔴 @rolldown/binding-linux-x64-gnu  [################........] 19.13 MB 21.0%
🔴 eve                              [##########..............] 12.14 MB 13.3%
🔴 zod                              [########................] 9.00 MB 9.9%
🔴 ai                               [#####...................] 6.39 MB 7.0%
🟠 @types/node                      [##......................] 2.54 MB 2.8%
🔴 Other installed packages         [############............] 13.80 MB 15.2%
dependencies (4)
Package Range Installed size Share
@vercel/connect 0.2.2 98.6 kB 0.1%
ai ^7.0.26 6.39 MB 7.0%
eve file:eve-0.24.2.tgz 12.14 MB 13.3%
zod 4.4.3 9.00 MB 9.9%
devDependencies (2)
Package Range Installed size Share
@types/node 24.x 2.54 MB 2.8%
typescript 7.0.2 2.50 MB 2.7%
Function Drill-Down

Payload Size Graph

Unique function payload size and share of total
🔴 functions/.well-known/workflow/v1/flow.func     [########################] 5.88 MB 62.7%
🟠 functions/__server.func                         [##############..........] 3.49 MB 37.3%

Top Function Payloads

🟠 functions/.well-known/workflow/v1/flow.func • 1 public route • 5.88 MB
Metric Value
Public routes /.well-known/workflow/v1/flow
Runtime nodejs24.x
Handler index.mjs
Payload 5.88 MB
Function files 5.88 MB across 36 files
Traced dependencies 0 B
Signal 🟠 Bundled file __eve_nitro_handler__.mjs is 2.18 MB (37.1%)

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 __eve_nitro_handler__.mjs       [########################] 2.18 MB 37.1%
🟡 _chunks/world-vercel.mjs        [#########...............] 826.4 kB 14.1%
🟡 _chunks/sandbox.mjs             [########................] 754.9 kB 12.8%
🟡 _libs/@ai-sdk/gateway+[...].mjs [#####...................] 430.4 kB 7.3%
🟡 _chunks/dist-Blxnyb7-.mjs       [####....................] 349.1 kB 5.9%
🟠 Other bundled files             [###############.........] 1.33 MB 22.7%

🧾 Vercel Config

{
  "handler": "index.mjs",
  "launcherType": "Nodejs",
  "shouldAddHelpers": false,
  "supportsResponseStreaming": true,
  "runtime": "nodejs24.x",
  "environment": {
    "NODE_OPTIONS": "--experimental-require-module"
  },
  "maxDuration": "max",
  "experimentalTriggers": [
    {
      "type": "queue/v2beta",
      "topic": "__eve776561746865722d6167656e74_wkf_workflow_*",
      "consumer": "default",
      "retryAfterSeconds": 5,
      "initialDelaySeconds": 0
    }
  ]
}

🟠 functions/__server.func • 8 public routes, 1 internal alias • 3.49 MB
Metric Value
Public routes /
/eve/v1/callback/[token]
/eve/v1/connections/[name]/callback/[token]
/eve/v1/health
/eve/v1/info
/eve/v1/session
/eve/v1/session/[sessionId]
/eve/v1/session/[sessionId]/stream
Internal aliases /__server
Runtime nodejs24.x
Handler index.mjs
Payload 3.49 MB
Function files 3.49 MB across 27 files
Traced dependencies 0 B
Signal 🟠 Bundled file _chunks/runtime-artifacts.mjs is 942.2 kB (27.0%)

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 _chunks/runtime-artifacts.mjs [########################] 942.2 kB 27.0%
🟠 _chunks/world-vercel.mjs      [#####################...] 826.4 kB 23.7%
🟠 _chunks/sandbox.mjs           [###################.....] 754.9 kB 21.6%
🟡 _chunks/dist-Blxnyb7-.mjs     [#########...............] 348.1 kB 10.0%
⚪ index.mjs                     [###.....................] 116.1 kB 3.3%
🟡 Other bundled files           [#############...........] 506.1 kB 14.5%

🧾 Vercel Config

{
  "handler": "index.mjs",
  "launcherType": "Nodejs",
  "shouldAddHelpers": false,
  "supportsResponseStreaming": true,
  "runtime": "nodejs24.x"
}

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.

3 participants