feat(eve): ingest session notifications inline in the callback route#1196
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
Bundle + Package Summary:
|
| Area | Metric | Baseline | Current | Delta |
|---|---|---|---|---|
| Package | Packed tarball | 4.04 MB | 4.05 MB | +442 B |
| Package | Unpacked publish size | 14.70 MB | 14.71 MB | +6.4 kB |
| Package | Installed footprint | 53.86 MB | 53.86 MB | +6.4 kB |
| Package | Published files | 2743 | 2747 | +4 |
| Package | Installed files | 5983 | 5987 | +4 |
| Runtime | Unique function payloads | 2 | 2 | 0 |
| Runtime | Total function bytes | 11.66 MB | 11.67 MB | +10.2 kB |
| Runtime | Public routes | 10 | 10 | 0 |
Changed function payloads vs rui/notification-reactors-research (7feb447) (2)
| Function | Status | Baseline | Current | Delta | Route changes |
|---|---|---|---|---|---|
functions/__server.func |
changed | 4.40 MB | 4.41 MB | +5.5 kB |
none |
functions/.well-known/workflow/v1/flow.func |
changed | 7.26 MB | 7.27 MB | +4.8 kB |
none |
eve init install
| Metric | Baseline | Current | Delta |
|---|---|---|---|
| Installed footprint | 92.26 MB | 92.27 MB | +6.4 kB |
| Installed packages | 122 | 122 | 0 |
| dependencies | 4 | 4 | 0 |
| devDependencies | 2 | 2 | 0 |
| Dependency package bytes | 28.98 MB | 28.99 MB | +6.4 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-24T23:57:54.465Z
- Route aliases: 10 public, 1 internal (11 total aliases)
- Vercel routes in config: 11
- Severity legend: 🔴 dominant/large, 🟠 notable, 🟡 watch, ⚪ small
Package Drill-Down
Package Details
- Package:
eve@0.27.3 - Package directory:
packages/eve - Tarball: 4.05 MB (
eve-0.27.3.tgz) - Unpacked payload: 14.71 MB across 2747 published files
- Installed footprint: 53.86 MB across 5987 installed files
- Installed root package: 13.43 MB
- Installed dependencies: 40.44 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: 18.96 MB (35.2%)eve: 13.43 MB (24.9%)ai: 6.43 MB (11.9%)zod: 5.04 MB (9.4%)nitro: 2.41 MB (4.5%)
Publish payload breakdown
Published file size
🟠 dist/src/compiled/experimental-ai-sdk-code-mo... [###.....................] 1.51 MB 10.2%
🟡 dist/src/compiled/@vercel/sandbox/index.js [#.......................] 632.4 kB 4.3%
🟡 dist/src/compiled/_chunks/workflow/undici-C2Z... [#.......................] 502.4 kB 3.4%
🟡 dist/src/compiled/@chat-adapter/slack/index.js [#.......................] 440.5 kB 3.0%
🟡 dist/src/compiled/@vercel/oidc/index.js [#.......................] 379.5 kB 2.6%
🔴 Other published files [########################] 11.25 MB 76.5%
Installed footprint breakdown
Installed package size
🔴 @rolldown/binding-linux-x64-gnu [########################] 18.96 MB 35.2%
🔴 eve [#################.......] 13.43 MB 24.9%
🔴 ai [########................] 6.43 MB 11.9%
🔴 zod [######..................] 5.04 MB 9.4%
🟠 nitro [###.....................] 2.41 MB 4.5%
🟡 @ai-sdk/provider-utils [#.......................] 852.0 kB 1.6%
🔴 Other installed packages [#########...............] 6.75 MB 12.5%
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: 92.27 MB across 7855 installed files
- Installed packages: 122 total (116 transitive-only)
- dependencies: 4 direct packages totaling 28.99 MB
- devDependencies: 2 direct packages totaling 5.04 MB
- Other transitive package files: 58.24 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.3%)@rolldown/binding-linux-x64-gnu: 18.96 MB (20.5%)eve: 13.43 MB (14.6%)zod: 9.00 MB (9.8%)ai: 6.43 MB (7.0%)
Installed footprint breakdown
Installed package size
🔴 @typescript/typescript-linux-x64 [########################] 27.95 MB 30.3%
🔴 @rolldown/binding-linux-x64-gnu [################........] 18.96 MB 20.5%
🔴 eve [############............] 13.43 MB 14.6%
🔴 zod [########................] 9.00 MB 9.8%
🔴 ai [######..................] 6.43 MB 7.0%
🟠 @types/node [##......................] 2.54 MB 2.8%
🔴 Other installed packages [############............] 13.97 MB 15.1%
dependencies (4)
| Package | Range | Installed size | Share |
|---|---|---|---|
@vercel/connect |
0.4.2 |
135.8 kB | 0.1% |
ai |
^7.0.34 |
6.43 MB | 7.0% |
eve |
file:eve-0.27.3.tgz |
13.43 MB | 14.6% |
zod |
4.4.3 |
9.00 MB | 9.8% |
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 [########################] 7.27 MB 62.2%
🟠 functions/__server.func [###############.........] 4.41 MB 37.8%
Top Function Payloads
🟠 functions/.well-known/workflow/v1/flow.func • 1 public route • 7.27 MB
| Metric | Value |
|---|---|
| Public routes | /.well-known/workflow/v1/flow |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 7.27 MB |
| Function files | 7.27 MB across 39 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file __eve_nitro_handler__.mjs is 2.71 MB (37.3%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 __eve_nitro_handler__.mjs [########################] 2.71 MB 37.3%
🟡 _chunks/world-vercel.mjs [########................] 903.2 kB 12.4%
🟡 _chunks/sandbox.mjs [#######.................] 767.6 kB 10.6%
🟡 _libs/@ai-sdk/gateway+[...].mjs [####....................] 432.5 kB 6.0%
🟡 _chunks/token-util-B6qBs3-0.mjs [###.....................] 379.1 kB 5.2%
🟠 Other bundled files [##################......] 2.08 MB 28.6%
🧾 Vercel Config
{
"handler": "index.mjs",
"launcherType": "Nodejs",
"shouldAddHelpers": false,
"supportsResponseStreaming": true,
"runtime": "nodejs24.x",
"environment": {
"WORKFLOW_PRECONDITION_GUARD": "1",
"NODE_OPTIONS": "--experimental-require-module"
},
"maxDuration": "max",
"experimentalTriggers": [
{
"type": "queue/v2beta",
"topic": "__eve776561746865722d6167656e74_wkf_workflow_*",
"consumer": "default",
"retryAfterSeconds": 5,
"initialDelaySeconds": 0
}
]
}🟠 functions/__server.func • 9 public routes, 1 internal alias • 4.41 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 |
| Internal aliases | /__server |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 4.41 MB |
| Function files | 4.41 MB across 30 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file _chunks/runtime-artifacts.mjs is 1.45 MB (32.9%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 _chunks/runtime-artifacts.mjs [########################] 1.45 MB 32.9%
🟠 _chunks/world-vercel.mjs [###############.........] 900.3 kB 20.4%
🟠 _chunks/sandbox.mjs [#############...........] 767.6 kB 17.4%
🟡 _chunks/token-util-B6qBs3-0.mjs [######..................] 379.1 kB 8.6%
🟡 _chunks/dist-BX517Nmz.mjs [######..................] 348.7 kB 7.9%
🟡 Other bundled files [#########...............] 561.0 kB 12.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: 2.80 s -> 2.69 s (-111.2 ms) vs
rui/notification-reactors-research (7feb447). - Timing is informational: shared GitHub runners are too variable for a hard timing budget.
Detailed phase timings vs `rui/notification-reactors-research (7feb447)`
| Phase | Baseline | Current | Delta |
|---|---|---|---|
extension.check |
12.8 ms | 1.1 ms | -11.7 ms |
project.resolve |
10.2 ms | 0.7 ms | -9.5 ms |
workspace.create |
1.1 ms | 0.9 ms | -0.2 ms |
host.prepare |
241.3 ms | 185.0 ms | -56.3 ms |
vercel.service-prefix.resolve |
2.0 ms | 2.6 ms | +0.6 ms |
nitro.app.create |
27.0 ms | 25.1 ms | -1.9 ms |
nitro.app.cache.prepare |
0.3 ms | 0.3 ms | 0.0 ms |
nitro.app.prepare |
0.9 ms | 1.1 ms | +0.2 ms |
nitro.app.public-assets |
0.8 ms | 0.7 ms | -0.1 ms |
nitro.app.prerender |
0.6 ms | 0.5 ms | -0.1 ms |
nitro.app.bundle |
758.6 ms | 737.4 ms | -21.2 ms |
nitro.app.cache.write |
0.4 ms | 0.5 ms | +0.1 ms |
sandbox.prewarm |
264.1 ms | 271.3 ms | +7.2 ms |
nitro.flow.create |
195.4 ms | 180.5 ms | -14.9 ms |
nitro.flow.cache.prepare |
0.2 ms | 0.2 ms | 0.0 ms |
nitro.flow.prepare |
0.7 ms | 0.7 ms | 0.0 ms |
nitro.flow.public-assets |
0.2 ms | 0.2 ms | 0.0 ms |
nitro.flow.prerender |
0.0 ms | 0.0 ms | 0.0 ms |
nitro.flow.bundle |
1.09 s | 1.09 s | +3.0 ms |
nitro.flow.cache.write |
0.3 ms | 0.3 ms | 0.0 ms |
nitro.flow.close |
0.2 ms | 0.2 ms | 0.0 ms |
workflow.emit |
181.8 ms | 175.7 ms | -6.1 ms |
agent-summary.emit |
0.6 ms | 0.6 ms | 0.0 ms |
nitro.app.close |
0.1 ms | 0.1 ms | 0.0 ms |
output.publish |
3.9 ms | 3.9 ms | 0.0 ms |
workspace.remove |
6.0 ms | 5.8 ms | -0.2 ms |
80cc51e to
de0ada5
Compare
de0ada5 to
a103b00
Compare
b141926 to
e84ca9b
Compare
e84ca9b to
39173e4
Compare
7feb447 to
216bdf8
Compare
|
Superseded — reparenting the stack (now |
Stacked on #1172 (base:
rui/notification-reactors-research) and lands before #1167. Prototype for issue #1170, scoped to the caller-side ingestion of notification-class events — no remote-agent propagation here. #1167 restacks on top and carries the remote lane (callback envelope, callee forwarding, theagent-remote-callbacksfixture and its evals).What
Notification-class child events (
authorization.required/authorization.completedsurfaced on a caller's stream) reach the channel and the stream with no run, no hook, and no queue wake — the event arrives as an HTTP callback, so the compute is already paid.POST /eve/v1/callback/<sessionId>:events:subagent.event(carryingchildSessionId);world.runs.get, read-only — no dedicated persistence) and runs the channel's existing adapter event handler against it, so push channels render with zero authoring changes;world.streams.writeby the run-derived name) for followers (TUI, web, evals).Both effects are best-effort per the lane's fire-once contract: a finished session logs and drops; nothing retries.
Three commits: two standalone harness fixes (same-step approval + runtime-action drop; live-module OpenAPI
baseUrl) and the ingestion itself.Why inline, not a run
Earlier iterations delivered through a per-session sidecar run (a workflow parked on
<sessionId>:events, catching up over the stream by cursor). It works, and the replay-cost argument for it is real — but it over-serves this lane. The notification class is fire-once and drop-ok: it needs neither the sidecar's journaled exactly-once, its ordering, nor its consumer-held state. Inline ingestion in the callback's own compute is the minimal shape that satisfies the contract. The sidecar survives in the research doc as the graduated tier for event classes that genuinely need cursor semantics, ordering, or state (progress, proxied HITL), gated behind the frequency-admission rule.The load-bearing feasibility questions were verified on disk:
world.streams.writeandworld.runs.getboth work from plain route code (no workflow context), and the wrappedsubagent.eventwas observed on the parent's durable stream, written by the HTTP handler.Known-red / deferred
childSessionIdonSubagentChildEventStreamEventtrips the rule-36 capability-epoch ceremony on four contracts (additive/compatible; ceremony not run), soguard:invariantsfails on this branch.strm_<id>_user) is a vendored-engine naming contract; the engine should eventually expose a resolver or accept name-less default writes.Unit suite green, typecheck clean.