Skip to content

test(eve): replace copied dynamic tool tests with behavior coverage - #1394

Draft
vercel-gh-bot-3[bot] wants to merge 1 commit into
mainfrom
e0/898dc1fa-fec8-4417-a80e-ced82e7a738f
Draft

test(eve): replace copied dynamic tool tests with behavior coverage#1394
vercel-gh-bot-3[bot] wants to merge 1 commit into
mainfrom
e0/898dc1fa-fec8-4417-a80e-ced82e7a738f

Conversation

@vercel-gh-bot-3

@vercel-gh-bot-3 vercel-gh-bot-3 Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Replace tests of copied helpers with tests that exercise the dynamic-tool runtime.

Reproduction

On main, the safeSerialize test block defines and tests its own copy of the private production function. I changed the production safeSerialize implementation to return { broken: true }, then ran:

pnpm --filter eve exec vitest run \
  --config vitest.unit.config.ts \
  src/context/dynamic-tool-lifecycle.test.ts \
  -t safeSerialize

All 7 selected tests passed. They never called the broken production function.

The four copied naming tests have the same problem. The file already covers both naming paths through dispatchDynamicToolEvent, including map keys and single tools named from their resolver slug.

Change

The hypothesis is that routing these assertions through dispatchDynamicToolEvent will catch production regressions while removing duplicate test logic.

This PR:

  • removes the test-local copies of qualifyDynamicToolNames and safeSerialize
  • keeps the existing production-path naming coverage
  • adds production-path assertions for JSON-safe closure metadata and the circular-reference fallback

The file drops from 44 to 35 tests and removes 116 net lines. No runtime code changes.

Runtime path under test

resolver entry.__closureVars
  -> dispatchDynamicToolEvent
  -> safeSerialize
  -> SessionDynamicToolMetadataKey

Validation

  • pnpm --filter eve exec vitest run --config vitest.unit.config.ts src/context/dynamic-tool-lifecycle.test.ts
  • pnpm --filter eve typecheck
  • pnpm lint
  • pnpm guard:invariants
  • git diff --check

Requested by: rui.lealsalvadorconti

@vercel

vercel Bot commented Jul 30, 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 30, 2026 3:30am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
eve-docs-4759 Skipped Skipped Jul 30, 2026 3:30am

@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

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

Key takeaways

  • No notable deltas vs main (46c6ce3).

Delta vs main (46c6ce3)

Area Metric Baseline Current Delta
Package Packed tarball 7.62 MB 7.62 MB +702 B ⚠️
Package Unpacked publish size 28.79 MB 28.79 MB 0 B ➖
Package Installed footprint 91.26 MB 91.26 MB 0 B ➖
Package Published files 2875 2875 0
Package Installed files 6664 6664 0
Runtime Unique function payloads 2 2 0
Runtime Total function bytes 16.80 MB 16.80 MB -40 B ✅
Runtime Public routes 11 11 0
Changed function payloads vs main (46c6ce3) (2)
Function Status Baseline Current Delta Route changes
functions/__server.func changed 8.40 MB 8.40 MB -20 B ✅ none
functions/.well-known/workflow/v1/flow.func changed 8.40 MB 8.40 MB -20 B ✅ none

eve init install

Metric Baseline Current Delta
Installed footprint 129.66 MB 129.66 MB 0 B ➖
Installed packages 130 130 0
dependencies 4 4 0
devDependencies 2 2 0
Dependency package bytes 43.12 MB 43.12 MB 0 B ➖
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-30T03:31:21.308Z
  • 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.27.13
  • Package directory: packages/eve
  • Tarball: 7.62 MB (eve-0.27.13.tgz)
  • Unpacked payload: 28.79 MB across 2875 published files
  • Installed footprint: 91.26 MB across 6664 installed files
  • Installed root package: 27.43 MB
  • Installed dependencies: 63.83 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: 27.43 MB (30.1%)
  • @rolldown/binding-linux-x64-gnu: 19.28 MB (21.1%)
  • @rolldown/binding-wasm32-wasi: 10.66 MB (11.7%)
  • @napi-rs/wasm-runtime: 6.56 MB (7.2%)
  • ai: 6.53 MB (7.2%)
Publish payload breakdown
Published file size
🔴 dist/src/compiled/shadcn-registry/index.js       [########################] 13.15 MB 45.7%
🟠 dist/src/compiled/experimental-ai-sdk-code-mo... [###.....................] 1.51 MB 5.2%
🟡 dist/src/compiled/@vercel/sandbox/index.js       [#.......................] 632.5 kB 2.2%
🟡 dist/src/compiled/_chunks/workflow/undici-DWL... [#.......................] 502.4 kB 1.7%
🟡 dist/src/compiled/@chat-adapter/slack/index.js   [#.......................] 440.5 kB 1.5%
🔴 Other published files                            [#######################.] 12.55 MB 43.6%
Installed footprint breakdown
Installed package size
🔴 eve                             [########################] 27.43 MB 30.1%
🔴 @rolldown/binding-linux-x64-gnu [#################.......] 19.28 MB 21.1%
🔴 @rolldown/binding-wasm32-wasi   [#########...............] 10.66 MB 11.7%
🔴 @napi-rs/wasm-runtime           [######..................] 6.56 MB 7.2%
🔴 ai                              [######..................] 6.53 MB 7.2%
🔴 zod                             [####....................] 5.07 MB 5.6%
🔴 Other installed packages        [##############..........] 15.73 MB 17.2%
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: 129.66 MB across 8532 installed files
  • Installed packages: 130 total (124 transitive-only)
  • dependencies: 4 direct packages totaling 43.12 MB
  • devDependencies: 2 direct packages totaling 5.04 MB
  • Other transitive package files: 81.50 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 (21.6%)
  • eve: 27.43 MB (21.2%)
  • @rolldown/binding-linux-x64-gnu: 19.28 MB (14.9%)
  • @rolldown/binding-wasm32-wasi: 10.66 MB (8.2%)
  • zod: 9.02 MB (7.0%)
Installed footprint breakdown
Installed package size
🔴 @typescript/typescript-linux-x64 [########################] 27.95 MB 21.6%
🔴 eve                              [########################] 27.43 MB 21.2%
🔴 @rolldown/binding-linux-x64-gnu  [#################.......] 19.28 MB 14.9%
🔴 @rolldown/binding-wasm32-wasi    [#########...............] 10.66 MB 8.2%
🔴 zod                              [########................] 9.02 MB 7.0%
🔴 @napi-rs/wasm-runtime            [######..................] 6.56 MB 5.1%
🔴 ai                               [######..................] 6.53 MB 5.0%
🔴 Other installed packages         [###################.....] 22.23 MB 17.1%
dependencies (4)
Package Range Installed size Share
@vercel/connect 0.4.2 135.8 kB 0.1%
ai ^7.0.38 6.53 MB 5.0%
eve file:eve-0.27.13.tgz 27.43 MB 21.2%
zod 4.4.3 9.02 MB 7.0%
devDependencies (2)
Package Range Installed size Share
@types/node 24.x 2.54 MB 2.0%
typescript 7.0.2 2.50 MB 1.9%
Function Drill-Down

Payload Size Graph

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

Top Function Payloads

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

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 index.mjs                       [########################] 2.30 MB 27.4%
🟠 _chunks/runtime-artifacts.mjs   [################........] 1.59 MB 18.9%
🟡 _libs/undici.mjs                [##########..............] 980.5 kB 11.7%
🟡 _chunks/sandbox.mjs             [########................] 768.8 kB 9.2%
🟡 _libs/@ai-sdk/gateway+[...].mjs [####....................] 432.8 kB 5.2%
🟠 Other bundled files             [########################] 2.33 MB 27.7%

🧾 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.40 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.40 MB
Function files 8.40 MB across 44 files
Traced dependencies 0 B
Signal 🟠 Bundled file index.mjs is 2.30 MB (27.4%)

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 index.mjs                       [########################] 2.30 MB 27.4%
🟠 _chunks/runtime-artifacts.mjs   [################........] 1.59 MB 18.9%
🟡 _libs/undici.mjs                [##########..............] 980.5 kB 11.7%
🟡 _chunks/sandbox.mjs             [########................] 768.8 kB 9.2%
🟡 _libs/@ai-sdk/gateway+[...].mjs [####....................] 432.8 kB 5.2%
🟠 Other bundled files             [########################] 2.32 MB 27.7%

🧾 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: 1.99 s -> 1.98 s (-13.0 ms) vs main (46c6ce3).
  • Timing is informational: shared GitHub runners are too variable for a hard timing budget.
Detailed phase timings vs `main (46c6ce3)`
Phase Baseline Current Delta
extension.check 9.6 ms 12.3 ms +2.7 ms
project.resolve 1.4 ms 6.3 ms +4.9 ms
workspace.create 1.3 ms 1.1 ms -0.2 ms
host.prepare 273.5 ms 202.5 ms -71.0 ms
vercel.service-prefix.resolve 2.2 ms 2.5 ms +0.3 ms
nitro.create 201.4 ms 198.5 ms -2.9 ms
sandbox.prewarm 210.6 ms 250.4 ms +39.8 ms
nitro.cache.prepare 0.2 ms 0.3 ms +0.1 ms
nitro.prepare 0.7 ms 0.7 ms 0.0 ms
nitro.public-assets 0.7 ms 0.8 ms +0.1 ms
nitro.prerender 0.6 ms 0.6 ms 0.0 ms
nitro.bundle 1.26 s 1.27 s +14.8 ms
nitro.cache.write 0.4 ms 0.4 ms 0.0 ms
vercel.workflow-function.materialize 23.4 ms 22.4 ms -1.0 ms
agent-summary.emit 0.5 ms 0.5 ms 0.0 ms
nitro.close 0.1 ms 0.1 ms 0.0 ms
output.publish 3.4 ms 3.3 ms -0.1 ms
workspace.remove 2.1 ms 2.1 ms 0.0 ms

Co-authored-by: ruiconti <1834568+ruiconti@users.noreply.github.com>
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.

0 participants