Skip to content

feat(eve): sessions - replace parent orchestration with holding workflows - #3063

Closed
AndrewBarba wants to merge 25 commits into
mainfrom
barba/session-holder-runtime
Closed

AndrewBarba wants to merge 25 commits into
mainfrom
barba/session-holder-runtime

Conversation

@AndrewBarba

@AndrewBarba AndrewBarba commented Sep 4, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Keeping stable session streams in a parent workflow pins turn execution to long-lived orchestration code. A small holding workflow now owns session resources and continuation aliases, while independent terminating workflows execute turns through unified owner inboxes. This draft focuses on the eve architecture and its interfaces; the cross-workflow stream writer remains a declaration stub pending SDK support. Existing-session migration is deferred.

Validation

  • Reset to the architecture and cleanup revision before the Workflow SDK backport. No dependency patches or subsequent SDK performance experiments are included.
  • pnpm install --frozen-lockfile and pnpm --filter eve build passed after clearing the generated SDK and package outputs. The installed SDK is unpatched; Run.getWritable, Run.getStreamReference, and Run.getReturnValue are absent.
  • Full stream lifecycle integration and end-to-end behavior remain blocked by the missing Run.getWritable() API. The stub fails explicitly when that API is unavailable.
  • Performance results from the later patched revisions do not describe this draft revision. The architecture remains under review and this draft is not ready to merge.

Checklist

  • This change was requested or approved by a maintainer
  • I ran the relevant checks from CONTRIBUTING.md
  • I added tests and documentation where relevant
  • I added a changeset if this touches the published eve package
  • DCO sign-off passes for every commit (git commit --signoff)

Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
Signed-off-by: Andrew Barba <barba@hey.com>
…lows

Signed-off-by: Andrew Barba <barba@hey.com>
@vercel

vercel Bot commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated
eve-docs Ready Ready Preview, v0 Sep 9, 2026 6:02pm UTC
eve-docs-4759 Ready Ready Preview, v0 Sep 9, 2026 6:02pm UTC
eve-pkg Ready Ready Preview, v0 Sep 9, 2026 6:02pm UTC

@github-actions

github-actions Bot commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

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

Key takeaways

  • Runtime delta: function payloads 20.78 MB -> 19.54 MB (-1.25 MB ✅); public routes 18 -> 17 (-1); 2 changed payloads.

Delta vs main (1a9556c)

Area Metric Baseline Current Delta
Package Packed tarball 8.70 MB 8.68 MB -18.6 kB ✅
Package Unpacked publish size 32.77 MB 32.61 MB -162.3 kB ✅
Package Installed footprint 77.91 MB 77.74 MB -162.3 kB ✅
Package Published files 3911 3885 -26
Package Installed files 7814 7788 -26
Package Installed package instances 33 33 0
Package Distinct installed package names 32 32 0
Package Installed dependency edges 51 51 0
Package Installed optional peer edges 8 8 0
Runtime Unique function payloads 2 2 0
Runtime Total function bytes 20.78 MB 19.54 MB -1.25 MB ✅
Runtime Public routes 18 17 -1
Changed function payloads vs main (1a9556c) (2)
Function Status Baseline Current Delta Route changes
functions/__server.func changed 10.39 MB 9.77 MB -623.8 kB ✅ public +/eve/v1/connections/[name]/callback/[attemptId]/[sessionId]
public -/eve/v1/connections/[name]/callback/[attemptId]/[token], -/eve/v1/connections/[name]/callback/[token]
functions/.well-known/workflow/v1/flow.func changed 10.39 MB 9.77 MB -623.8 kB ✅ none

eve init install

Metric Baseline Current Delta
Installed footprint 116.34 MB 116.18 MB -162.3 kB ✅
Installed packages 113 113 0
dependencies 4 4 0
devDependencies 2 2 0
Dependency package bytes 48.94 MB 48.78 MB -162.3 kB ✅
devDependency package bytes 5.04 MB 5.04 MB 0 B ➖
Build Metadata
  • Preset: vercel
  • Nitro: nitro@3.0.260903-beta
  • Output directory: apps/fixtures/weather-agent/.vercel/output
  • Build metadata timestamp: 2026-09-09T18:04:27.487Z
  • Route aliases: 17 public, 1 internal (18 total aliases)
  • Vercel routes in config: 20
  • Severity legend: 🔴 dominant/large, 🟠 notable, 🟡 watch, ⚪ small
Package Drill-Down

Package Details

  • Package: eve@0.52.4
  • Package directory: packages/eve
  • Tarball: 8.68 MB (eve-0.52.4.tgz)
  • Unpacked payload: 32.61 MB across 3885 published files
  • Installed footprint: 77.74 MB across 7788 installed files
  • Installed root package: 31.18 MB
  • Installed dependencies: 46.56 MB
  • Installed package instances: 33
  • Distinct installed package names: 32
  • Installed dependency edges: 51
  • Installed optional peer edges: 8
  • Runtime dependencies: 2
  • Peer dependencies: 6 (5 optional)

Installed footprint is measured from an isolated temporary npm install of the packed tarball.
Graph metrics read only package.json files in package directories directly beneath a node_modules boundary, including nested boundaries. Each directory is one package instance; distinct names come from those manifests. Dependency edges count each unique name in dependencies or optionalDependencies per instance; optional peer edges count peerDependencies marked optional.

Heavy installed dependencies

  • eve: 31.18 MB (40.1%)
  • @rolldown/binding-linux-x64-gnu: 19.31 MB (24.8%)
  • ai: 7.06 MB (9.1%)
  • zod: 6.41 MB (8.3%)
  • undici: 3.51 MB (4.5%)
Publish payload breakdown
Published file size
🔴 dist/src/compiled/shadcn-registry/index.js       [#############...........] 9.76 MB 29.9%
🟠 dist/src/compiled/@photon-ai/chat-adapter-ime... [###.....................] 2.27 MB 7.0%
🟠 dist/src/compiled/@ai-sdk/code-mode/index.js     [#.......................] 1.03 MB 3.1%
🟡 dist/src/compiled/@vercel/blob/index.js          [#.......................] 901.4 kB 2.8%
🟡 dist/src/compiled/_chunks/workflow/signal-exi... [#.......................] 514.6 kB 1.6%
🔴 Other published files                            [########################] 18.14 MB 55.6%
Installed footprint breakdown
Installed package size
🔴 eve                             [########################] 31.18 MB 40.1%
🔴 @rolldown/binding-linux-x64-gnu [###############.........] 19.31 MB 24.8%
🔴 ai                              [#####...................] 7.06 MB 9.1%
🔴 zod                             [#####...................] 6.41 MB 8.3%
🟠 undici                          [###.....................] 3.51 MB 4.5%
🟠 nitro                           [#.......................] 1.89 MB 2.4%
🔴 Other installed packages        [######..................] 8.37 MB 10.8%
Runtime dependencies (2)
Package Range Notes
nitro 3.0.260903-beta
undici 8.9.0
Peer dependencies (6)
Package Range Notes
@opentelemetry/api ^1.0.0 optional peer
ai catalog:
braintrust ^3.0.0 optional peer
dd-trace ^6.13.0 optional peer
just-bash ^3.1.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: 116.18 MB across 9684 installed files
  • Installed packages: 113 total (107 transitive-only)
  • dependencies: 4 direct packages totaling 48.78 MB
  • devDependencies: 2 direct packages totaling 5.04 MB
  • Other transitive package files: 62.36 MB

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

Heavy installed dependencies

  • eve: 31.18 MB (26.8%)
  • @typescript/typescript-linux-x64: 27.95 MB (24.1%)
  • @rolldown/binding-linux-x64-gnu: 19.31 MB (16.6%)
  • zod: 10.37 MB (8.9%)
  • ai: 7.06 MB (6.1%)
Installed footprint breakdown
Installed package size
🔴 eve                              [########################] 31.18 MB 26.8%
🔴 @typescript/typescript-linux-x64 [######################..] 27.95 MB 24.1%
🔴 @rolldown/binding-linux-x64-gnu  [###############.........] 19.31 MB 16.6%
🔴 zod                              [########................] 10.37 MB 8.9%
🔴 ai                               [#####...................] 7.06 MB 6.1%
🟠 undici                           [###.....................] 3.51 MB 3.0%
🔴 Other installed packages         [#############...........] 16.80 MB 14.5%
dependencies (4)
Package Range Installed size Share
@vercel/connect 1.0.0 167.9 kB 0.1%
ai ^7.0.82 7.06 MB 6.1%
eve file:eve-0.52.4.tgz 31.18 MB 26.8%
zod 4.5.4 10.37 MB 8.9%
devDependencies (2)
Package Range Installed size Share
@types/node 24.x 2.54 MB 2.2%
typescript 7.0.2 2.50 MB 2.1%
Function Drill-Down

Payload Size Graph

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

Top Function Payloads

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

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 index.mjs                        [#########...............] 1.83 MB 18.8%
🟡 _libs/undici.mjs                 [#####...................] 980.8 kB 10.0%
🟡 _chunks/esm-Fqlolk7e.mjs         [####....................] 723.3 kB 7.4%
🟡 _chunks/chatgpt-model.mjs        [###.....................] 699.1 kB 7.2%
🟡 _chunks/signal-exit-Dsy-TT0V.mjs [###.....................] 616.2 kB 6.3%
🔴 Other bundled files              [########################] 4.91 MB 50.3%

🧾 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 • 16 public routes, 1 internal alias • 9.77 MB
Metric Value
Public routes /
/.well-known/workflow/v1/webhook/[token]
/eve/v1/activity/[token]
/eve/v1/callback/[token]
/eve/v1/connections/[name]/callback/[attemptId]/[sessionId]
/eve/v1/health
/eve/v1/info
/eve/v1/session
/eve/v1/session/[parentSessionId]/subagents/[callId]/[childSessionId]/stream
/eve/v1/session/[sessionId]
/eve/v1/session/[sessionId]/cancel
/eve/v1/session/[sessionId]/clear
/eve/v1/session/[sessionId]/compact
/eve/v1/session/[sessionId]/reset
/eve/v1/session/[sessionId]/stream
/eve/v1/task-input/[token]
Internal aliases /__server
Runtime nodejs24.x
Handler index.mjs
Payload 9.77 MB
Function files 9.77 MB across 114 files
Traced dependencies 0 B
Signal 🟠 Bundled file index.mjs is 1.83 MB (18.8%)

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 index.mjs                        [#########...............] 1.83 MB 18.8%
🟡 _libs/undici.mjs                 [#####...................] 980.8 kB 10.0%
🟡 _chunks/esm-Fqlolk7e.mjs         [####....................] 723.3 kB 7.4%
🟡 _chunks/chatgpt-model.mjs        [###.....................] 699.1 kB 7.2%
🟡 _chunks/signal-exit-Dsy-TT0V.mjs [###.....................] 616.2 kB 6.3%
🔴 Other bundled files              [########################] 4.91 MB 50.3%

🧾 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: 6.02 s -> 5.77 s (-251.2 ms) vs main (1a9556c).
  • Timing is informational: shared GitHub runners are too variable for a hard timing budget.
Detailed phase timings vs `main (1a9556c)`
Phase Baseline Current Delta
extension.check 0.8 ms 14.4 ms +13.6 ms
project.resolve 0.4 ms 4.0 ms +3.6 ms
workspace.create 0.6 ms 3.3 ms +2.7 ms
host.prepare 587.1 ms 558.6 ms -28.5 ms
vercel.service-prefix.resolve 2.3 ms 2.4 ms +0.1 ms
nitro.create 602.0 ms 368.4 ms -233.6 ms
sandbox.prewarm 417.2 ms 392.3 ms -24.9 ms
nitro.cache.prepare 0.3 ms 0.3 ms 0.0 ms
nitro.prepare 0.8 ms 0.8 ms 0.0 ms
nitro.public-assets 0.7 ms 0.8 ms +0.1 ms
nitro.prerender 0.5 ms 0.4 ms -0.1 ms
nitro.bundle 4.35 s 4.37 s +14.2 ms
nitro.cache.write 0.3 ms 0.4 ms +0.1 ms
vercel.workflow-function.materialize 47.3 ms 49.2 ms +1.9 ms
agent-summary.emit 0.7 ms 0.7 ms 0.0 ms
nitro.close 0.2 ms 0.1 ms -0.1 ms
output.publish 3.7 ms 3.5 ms -0.2 ms
workspace.remove 2.4 ms 2.2 ms -0.2 ms

…oordination

Signed-off-by: Andrew Barba <barba@hey.com>
…ream writers

Signed-off-by: Andrew Barba <barba@hey.com>
…dates

Signed-off-by: Andrew Barba <barba@hey.com>
AndrewBarba and others added 5 commits September 9, 2026 12:18
Signed-off-by: Andrew Barba <barba@hey.com>
Interactive research page mapping every workflow-server and VQS round trip
between ingress and the first model call for each session path (new session,
idle follow-up, steer on an active turn, Slack ingress, first-turn rekey,
tools, cancel and timeout), with the hosted phase timings from the
agent-workflow-stress run and the resulting optimization levers.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
Addendum to the session holder research and the wire-budget page: start the
holder and first turn in parallel from the handler, let the first turn write
index zero, move the timeout start and entered marker off the critical path,
trim holder bootstrap, and pursue multi-event suspension deltas upstream
instead of changing eve's hook shape.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
…dget page

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
…erhead

Signed-off-by: Andrew Barba <barba@hey.com>
@vercel

vercel Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Your Vercel team Internal Playground is not permitted to deploy from this git repository. Contact an administrator to add github organization vercel as a Protected Git Scope in Internal Playground on Vercel. Once added, commit again to see your changes.

Learn more: https://vercel.com/docs/security/protected-git-scopes

Re-trace Paths A and B against 5a95ccb: three steps per turn, the
checkpoint carried through step payloads, session.waiting written in
finalize, descriptor and timeout start overlapped with the model. Add the
four-run benchmark chart and note that the native phase profiler no longer
exists on the branch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
…turn start

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>

This branch was successfully deployed

3 active (1 outdated) deployments
Preview – eve-docs — 0f0403c4 Deployed Sep 9, 2026 by vercel[bot]
Preview – eve-pkg — 0f0403c4 Deployed Sep 9, 2026 by vercel[bot]
Preview – eve-docs-4759 — 5a95ccb4 Deployed Sep 9, 2026 by vercel[bot]
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.

2 participants