Skip to content

refactor(eve): run the Vercel CLI through one subprocess lifecycle - #1456

Merged
chadhietala merged 1 commit into
mainfrom
simplify-commit-review-run-vercel
Jul 31, 2026
Merged

refactor(eve): run the Vercel CLI through one subprocess lifecycle#1456
chadhietala merged 1 commit into
mainfrom
simplify-commit-review-run-vercel

Conversation

@chadhietala

@chadhietala chadhietala commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Found

  • feat(eve): add guided Photon setup #1297 added runVercelCaptureStdout as a copy of the two runners already in setup/primitives/run-vercel.ts, leaving three near-verbatim copies of the same lifecycle: cwd resolution, line-buffered output, abort arming, settle-once, timeoutMs + kill escalation, stdin secret writes, error/close handlers.
  • They had already drifted: only runVercel flushed buffered output before its diagnostic, and captureVercel treated a signal-killed exit as a success carrying truncated stdout — so Ctrl-C surfaced as an unparseable payload instead of a cancellation.

Did
One internal runVercelProcess; the three exports are thin specs over it differing only in stdio, whether output is retained, and result shape. Public signatures unchanged. −220/+167.

Validated
All 16 existing run-vercel tests pass unmodified, plus one added for the harmonized signal-kill case. test:unit 538/539 files and test:integration 82/83 — both failures reproduce on clean main. tsc --noEmit, lint, fmt, guard:invariants clean.

`runVercel`, `runVercelCaptureStdout`, and `captureVercel` each carried
their own copy of the same spawn-and-settle machinery: cwd resolution,
output buffering, abort arming, settle-once bookkeeping, the `timeoutMs`
deadline, stdin secret writes, and the error/close handlers. Keeping
three copies in step is what let their edge cases drift apart.

They now share `runVercelProcess` and differ only in stdio layout,
whether output is retained, whether diagnostics fall back to
`process.stderr`, and how the outcome is shaped for the caller.

Two divergences are harmonized as part of the consolidation:

- Buffered output is flushed before a failure diagnostic in every
  runner, so a partial trailing line can no longer be printed after the
  failure it preceded.
- An unsettled signal-driven exit is a failure everywhere. Previously
  `captureVercel` resolved such a run as a success carrying truncated
  stdout, which surfaced to callers as an unparseable payload rather
  than a cancellation.

Signed-off-by: Chad Hietala <chadhietala@gmail.com>
@vercel

vercel Bot commented Jul 31, 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 Jul 31, 2026 1:39pm
eve-docs-4759 Ready Ready Preview, v0 Jul 31, 2026 1:39pm

@github-actions

Copy link
Copy Markdown
Contributor

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

Key takeaways

  • No notable deltas vs main (22bfa02).

Delta vs main (22bfa02)

Area Metric Baseline Current Delta
Package Packed tarball 7.46 MB 7.46 MB -1.6 kB ✅
Package Unpacked publish size 27.84 MB 27.83 MB -2.1 kB ✅
Package Installed footprint 84.81 MB 84.81 MB -2.1 kB ✅
Package Published files 2893 2893 0
Package Installed files 6686 6686 0
Runtime Unique function payloads 2 2 0
Runtime Total function bytes 16.90 MB 16.90 MB -40 B ✅
Runtime Public routes 11 11 0
Changed function payloads vs main (22bfa02) (2)
Function Status Baseline Current Delta Route changes
functions/__server.func changed 8.45 MB 8.45 MB -20 B ✅ none
functions/.well-known/workflow/v1/flow.func changed 8.45 MB 8.45 MB -20 B ✅ none

eve init install

Metric Baseline Current Delta
Installed footprint 123.22 MB 123.22 MB -2.1 kB ✅
Installed packages 128 128 0
dependencies 4 4 0
devDependencies 2 2 0
Dependency package bytes 42.21 MB 42.21 MB -2.1 kB ✅
devDependency package bytes 5.04 MB 5.04 MB 0 B ➖
Build Metadata
  • Preset: vercel
  • Nitro: nitro@3.0.260610-beta
  • Output directory: apps/fixtures/weather-agent/.vercel/output
  • Build metadata timestamp: 2026-07-31T13:40:25.041Z
  • Route aliases: 11 public, 1 internal (12 total aliases)
  • Vercel routes in config: 14
  • Severity legend: 🔴 dominant/large, 🟠 notable, 🟡 watch, ⚪ small
Package Drill-Down

Package Details

  • Package: eve@0.29.2
  • Package directory: packages/eve
  • Tarball: 7.46 MB (eve-0.29.2.tgz)
  • Unpacked payload: 27.83 MB across 2893 published files
  • Installed footprint: 84.81 MB across 6686 installed files
  • Installed root package: 26.48 MB
  • Installed dependencies: 58.33 MB
  • Runtime dependencies: 2
  • Peer dependencies: 5 (4 optional)

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

Heavy installed dependencies

  • eve: 26.48 MB (31.2%)
  • @rolldown/binding-linux-x64-gnu: 19.28 MB (22.7%)
  • @rolldown/binding-wasm32-wasi: 10.66 MB (12.6%)
  • ai: 6.56 MB (7.7%)
  • zod: 5.07 MB (6.0%)
Publish payload breakdown
Published file size
🔴 dist/src/compiled/shadcn-registry/index.js       [##################......] 9.68 MB 34.8%
🟠 dist/src/compiled/@photon-ai/chat-adapter-ime... [####....................] 2.42 MB 8.7%
🟠 dist/src/compiled/experimental-ai-sdk-code-mo... [###.....................] 1.51 MB 5.4%
🟡 dist/src/compiled/_chunks/node/undici-DWL_MYm... [#.......................] 502.4 kB 1.8%
🟡 dist/src/compiled/_chunks/workflow/undici-DWL... [#.......................] 502.4 kB 1.8%
🔴 Other published files                            [########################] 13.22 MB 47.5%
Installed footprint breakdown
Installed package size
🔴 eve                             [########################] 26.48 MB 31.2%
🔴 @rolldown/binding-linux-x64-gnu [#################.......] 19.28 MB 22.7%
🔴 @rolldown/binding-wasm32-wasi   [##########..............] 10.66 MB 12.6%
🔴 ai                              [######..................] 6.56 MB 7.7%
🔴 zod                             [#####...................] 5.07 MB 6.0%
🟠 undici                          [###.....................] 3.50 MB 4.1%
🔴 Other installed packages        [############............] 13.26 MB 15.6%
Runtime dependencies (2)
Package Range Notes
nitro 3.0.260610-beta
undici 8.9.0
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: 123.22 MB across 8562 installed files
  • Installed packages: 128 total (122 transitive-only)
  • dependencies: 4 direct packages totaling 42.21 MB
  • devDependencies: 2 direct packages totaling 5.04 MB
  • Other transitive package files: 75.97 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 (22.7%)
  • eve: 26.48 MB (21.5%)
  • @rolldown/binding-linux-x64-gnu: 19.28 MB (15.6%)
  • @rolldown/binding-wasm32-wasi: 10.66 MB (8.6%)
  • zod: 9.02 MB (7.3%)
Installed footprint breakdown
Installed package size
🔴 @typescript/typescript-linux-x64 [########################] 27.95 MB 22.7%
🔴 eve                              [#######################.] 26.48 MB 21.5%
🔴 @rolldown/binding-linux-x64-gnu  [#################.......] 19.28 MB 15.6%
🔴 @rolldown/binding-wasm32-wasi    [#########...............] 10.66 MB 8.6%
🔴 zod                              [########................] 9.02 MB 7.3%
🔴 ai                               [######..................] 6.56 MB 5.3%
🔴 Other installed packages         [####################....] 23.27 MB 18.9%
dependencies (4)
Package Range Installed size Share
@vercel/connect 0.4.3 141.0 kB 0.1%
ai ^7.0.38 6.56 MB 5.3%
eve file:eve-0.29.2.tgz 26.48 MB 21.5%
zod 4.4.3 9.02 MB 7.3%
devDependencies (2)
Package Range Installed size Share
@types/node 24.x 2.54 MB 2.1%
typescript 7.0.2 2.50 MB 2.0%
Function Drill-Down

Payload Size Graph

Unique function payload size and share of total
🔴 functions/.well-known/workflow/v1/flow.func     [########################] 8.45 MB 50.0%
🔴 functions/__server.func                         [########################] 8.45 MB 50.0%

Top Function Payloads

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

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 index.mjs                       [#######################.] 2.31 MB 27.3%
🟠 _chunks/runtime-artifacts.mjs   [################........] 1.59 MB 18.9%
🟡 _libs/undici.mjs                [##########..............] 980.5 kB 11.6%
🟡 _chunks/sandbox.mjs             [########................] 769.0 kB 9.1%
🟡 _libs/@ai-sdk/gateway+[...].mjs [####....................] 432.8 kB 5.1%
🟠 Other bundled files             [########################] 2.37 MB 28.0%

🧾 Vercel Config

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

🟠 functions/__server.func • 10 public routes, 1 internal alias • 8.45 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]/cancel
/eve/v1/session/[sessionId]/stream
/eve/v1/session/reset
Internal aliases /__server
Runtime nodejs24.x
Handler index.mjs
Payload 8.45 MB
Function files 8.45 MB across 43 files
Traced dependencies 0 B
Signal 🟠 Bundled file index.mjs is 2.31 MB (27.3%)

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 index.mjs                       [#######################.] 2.31 MB 27.3%
🟠 _chunks/runtime-artifacts.mjs   [################........] 1.59 MB 18.9%
🟡 _libs/undici.mjs                [##########..............] 980.5 kB 11.6%
🟡 _chunks/sandbox.mjs             [########................] 769.0 kB 9.1%
🟡 _libs/@ai-sdk/gateway+[...].mjs [####....................] 432.8 kB 5.1%
🟠 Other bundled files             [########################] 2.36 MB 28.0%

🧾 Vercel Config

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

Build Timing: e2e/fixtures/agent-tools-sandbox

This is an informational timing measurement inside eve build, from preflight through publication. Output-size measurement and profile writing are excluded.

Build mode: deployable Vercel build with sandbox template prewarm included.

  • Build pipeline: 2.05 s -> 2.08 s (+27.0 ms) vs main (22bfa02).
  • Timing is informational: shared GitHub runners are too variable for a hard timing budget.
Detailed phase timings vs `main (22bfa02)`
Phase Baseline Current Delta
extension.check 1.2 ms 1.1 ms -0.1 ms
project.resolve 0.6 ms 0.6 ms 0.0 ms
workspace.create 0.8 ms 0.7 ms -0.1 ms
host.prepare 240.3 ms 236.9 ms -3.4 ms
vercel.service-prefix.resolve 2.1 ms 1.8 ms -0.3 ms
nitro.create 220.2 ms 216.3 ms -3.9 ms
sandbox.prewarm 248.5 ms 238.3 ms -10.2 ms
nitro.cache.prepare 0.3 ms 0.2 ms -0.1 ms
nitro.prepare 0.7 ms 0.8 ms +0.1 ms
nitro.public-assets 0.7 ms 0.7 ms 0.0 ms
nitro.prerender 0.5 ms 0.5 ms 0.0 ms
nitro.bundle 1.31 s 1.35 s +45.5 ms
nitro.cache.write 0.4 ms 0.4 ms 0.0 ms
vercel.workflow-function.materialize 21.2 ms 20.6 ms -0.6 ms
agent-summary.emit 0.6 ms 0.5 ms -0.1 ms
nitro.close 0.1 ms 0.1 ms 0.0 ms
output.publish 3.2 ms 3.2 ms 0.0 ms
workspace.remove 1.8 ms 1.8 ms 0.0 ms

@chadhietala
chadhietala marked this pull request as ready for review July 31, 2026 13:44
@chadhietala
chadhietala merged commit 52cee9c into main Jul 31, 2026
89 checks passed
@chadhietala
chadhietala deleted the simplify-commit-review-run-vercel branch July 31, 2026 13:48
@chadhietala chadhietala added the simplify-devbox Simplification found by the automated devbox code review label Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

simplify-devbox Simplification found by the automated devbox code review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants