feat(eve): show full span details in eve traces - #1646
Open
chadhietala wants to merge 3 commits into
Open
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Span rows carry inline token/cost/tool chips and the header aggregates models, token totals, cost, and errors across the trace's step spans. Two new flags expose everything else the spool records: --verbose expands every span with all attributes and events, and --json dumps the full trace machine-readably. The local trace reader now parses span events, status messages, and span kind instead of dropping them. Signed-off-by: Chad Hietala <chadhietala@gmail.com>
Contributor
Bundle + Package Summary:
|
| Area | Metric | Baseline | Current | Delta |
|---|---|---|---|---|
| Package | Packed tarball | 7.64 MB | 7.64 MB | +3.4 kB |
| Package | Unpacked publish size | 28.62 MB | 28.63 MB | +11.3 kB |
| Package | Installed footprint | 71.94 MB | 71.95 MB | +11.3 kB |
| Package | Published files | 3010 | 3012 | +2 |
| Package | Installed files | 6709 | 6711 | +2 |
| Runtime | Unique function payloads | 2 | 2 | 0 |
| Runtime | Total function bytes | 16.88 MB | 16.88 MB | -40 B ✅ |
| Runtime | Public routes | 13 | 13 | 0 |
Changed function payloads vs main (2df982e) (2)
| Function | Status | Baseline | Current | Delta | Route changes |
|---|---|---|---|---|---|
functions/__server.func |
changed | 8.44 MB | 8.44 MB | -20 B ✅ | none |
functions/.well-known/workflow/v1/flow.func |
changed | 8.44 MB | 8.44 MB | -20 B ✅ | none |
eve init install
| Metric | Baseline | Current | Delta |
|---|---|---|---|
| Installed footprint | 110.35 MB | 110.36 MB | +11.3 kB |
| Installed packages | 121 | 121 | 0 |
| dependencies | 4 | 4 | 0 |
| devDependencies | 2 | 2 | 0 |
| Dependency package bytes | 43.03 MB | 43.04 MB | +11.3 kB |
| devDependency package bytes | 5.04 MB | 5.04 MB | 0 B ➖ |
eve init dependency changes vs main (2df982e)
dependencies
- Changed:
eve@file:eve-0.30.4.tgz->eve@file:eve-0.30.5.tgz
Build Metadata
- Preset:
vercel - Nitro:
nitro@3.0.260610-beta - Output directory:
apps/fixtures/weather-agent/.vercel/output - Build metadata timestamp: 2026-08-04T22:52:23.597Z
- Route aliases: 13 public, 1 internal (14 total aliases)
- Vercel routes in config: 16
- Severity legend: 🔴 dominant/large, 🟠 notable, 🟡 watch, ⚪ small
Package Drill-Down
Package Details
- Package:
eve@0.30.5 - Package directory:
packages/eve - Tarball: 7.64 MB (
eve-0.30.5.tgz) - Unpacked payload: 28.63 MB across 3012 published files
- Installed footprint: 71.95 MB across 6711 installed files
- Installed root package: 27.28 MB
- Installed dependencies: 44.67 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.28 MB (37.9%)@rolldown/binding-linux-x64-gnu: 19.34 MB (26.9%)ai: 6.60 MB (9.2%)zod: 5.07 MB (7.0%)undici: 3.50 MB (4.9%)
Publish payload breakdown
Published file size
🔴 dist/src/compiled/shadcn-registry/index.js [#################.......] 9.68 MB 33.8%
🟠 dist/src/compiled/@photon-ai/chat-adapter-ime... [####....................] 2.42 MB 8.5%
🟠 dist/src/compiled/experimental-ai-sdk-code-mo... [###.....................] 1.51 MB 5.3%
🟡 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 [########################] 14.01 MB 48.9%
Installed footprint breakdown
Installed package size
🔴 eve [########################] 27.28 MB 37.9%
🔴 @rolldown/binding-linux-x64-gnu [#################.......] 19.34 MB 26.9%
🔴 ai [######..................] 6.60 MB 9.2%
🔴 zod [####....................] 5.07 MB 7.0%
🟠 undici [###.....................] 3.50 MB 4.9%
🟠 nitro [##......................] 2.41 MB 3.3%
🔴 Other installed packages [#######.................] 7.75 MB 10.8%
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: 110.36 MB across 8587 installed files
- Installed packages: 121 total (115 transitive-only)
- dependencies: 4 direct packages totaling 43.04 MB
- devDependencies: 2 direct packages totaling 5.04 MB
- Other transitive package files: 62.27 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 (25.3%)eve: 27.28 MB (24.7%)@rolldown/binding-linux-x64-gnu: 19.34 MB (17.5%)zod: 9.02 MB (8.2%)ai: 6.60 MB (6.0%)
Installed footprint breakdown
Installed package size
🔴 @typescript/typescript-linux-x64 [########################] 27.95 MB 25.3%
🔴 eve [#######################.] 27.28 MB 24.7%
🔴 @rolldown/binding-linux-x64-gnu [#################.......] 19.34 MB 17.5%
🔴 zod [########................] 9.02 MB 8.2%
🔴 ai [######..................] 6.60 MB 6.0%
🟠 undici [###.....................] 3.50 MB 3.2%
🔴 Other installed packages [##############..........] 16.67 MB 15.1%
dependencies (4)
| Package | Range | Installed size | Share |
|---|---|---|---|
@vercel/connect |
0.4.3 |
141.0 kB | 0.1% |
ai |
^7.0.38 |
6.60 MB | 6.0% |
eve |
file:eve-0.30.5.tgz |
27.28 MB | 24.7% |
zod |
4.4.3 |
9.02 MB | 8.2% |
devDependencies (2)
| Package | Range | Installed size | Share |
|---|---|---|---|
@types/node |
24.x |
2.54 MB | 2.3% |
typescript |
7.0.2 |
2.50 MB | 2.3% |
Function Drill-Down
Payload Size Graph
Unique function payload size and share of total
🔴 functions/.well-known/workflow/v1/flow.func [########################] 8.44 MB 50.0%
🔴 functions/__server.func [########################] 8.44 MB 50.0%
Top Function Payloads
🟠 functions/.well-known/workflow/v1/flow.func • 1 public route • 8.44 MB
| Metric | Value |
|---|---|
| Public routes | /.well-known/workflow/v1/flow |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 8.44 MB |
| Function files | 8.44 MB across 43 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file index.mjs is 2.26 MB (26.8%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 index.mjs [#######################.] 2.26 MB 26.8%
🟠 _chunks/runtime-artifacts.mjs [################........] 1.61 MB 19.1%
🟡 _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.38 MB 28.2%
🧾 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 • 12 public routes, 1 internal alias • 8.44 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/clear/eve/v1/session/compact/eve/v1/session/reset |
| Internal aliases | /__server |
| Runtime | nodejs24.x |
| Handler | index.mjs |
| Payload | 8.44 MB |
| Function files | 8.44 MB across 43 files |
| Traced dependencies | 0 B |
| Signal | 🟠 Bundled file index.mjs is 2.26 MB (26.8%) |
🟠 🔎 Dependency Analysis
📦 Bundled files:
Bundled file size
🟠 index.mjs [#######################.] 2.26 MB 26.8%
🟠 _chunks/runtime-artifacts.mjs [################........] 1.61 MB 19.1%
🟡 _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.38 MB 28.2%
🧾 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.20 s -> 2.20 s (-4.6 ms) vs
main (2df982e). - Timing is informational: shared GitHub runners are too variable for a hard timing budget.
Detailed phase timings vs `main (2df982e)`
| Phase | Baseline | Current | Delta |
|---|---|---|---|
extension.check |
9.8 ms | 9.0 ms | -0.8 ms |
project.resolve |
1.5 ms | 1.4 ms | -0.1 ms |
workspace.create |
1.1 ms | 1.2 ms | +0.1 ms |
host.prepare |
319.1 ms | 268.2 ms | -50.9 ms |
vercel.service-prefix.resolve |
2.3 ms | 2.7 ms | +0.4 ms |
nitro.create |
194.5 ms | 198.8 ms | +4.3 ms |
sandbox.prewarm |
346.6 ms | 358.4 ms | +11.8 ms |
nitro.cache.prepare |
0.3 ms | 0.2 ms | -0.1 ms |
nitro.prepare |
0.8 ms | 0.9 ms | +0.1 ms |
nitro.public-assets |
0.8 ms | 0.8 ms | 0.0 ms |
nitro.prerender |
0.5 ms | 0.5 ms | 0.0 ms |
nitro.bundle |
1.29 s | 1.32 s | +28.4 ms |
nitro.cache.write |
0.3 ms | 0.4 ms | +0.1 ms |
vercel.workflow-function.materialize |
22.3 ms | 24.1 ms | +1.8 ms |
agent-summary.emit |
0.5 ms | 0.5 ms | 0.0 ms |
nitro.close |
0.2 ms | 0.1 ms | -0.1 ms |
output.publish |
3.6 ms | 3.8 ms | +0.2 ms |
workspace.remove |
2.2 ms | 2.2 ms | 0.0 ms |
Signed-off-by: Chad Hietala <chadhietala@gmail.com>
chadhietala
force-pushed
the
chad/rich-trace-details
branch
from
August 4, 2026 22:22
21bbf13 to
a5b95a6
Compare
chadhietala
marked this pull request as ready for review
August 4, 2026 22:23
Detail lines under --verbose now render as tree(1)-style entries: every fact, attribute key, and event gets a connector beneath the span's row, with payload content on a plain margin, so the tree's rails never break and each block reads as part of its span. All tree chrome — bars and connectors on span rows and detail lines alike — is dimmed so only labels and values render bright. Signed-off-by: Chad Hietala <chadhietala@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
eve tracesshowed only the span tree with a model name and elapsed time, even though the local spool already records far more per span: token usage and cache split, gateway costs, prompt/response payloads, tool arguments and results, lineage, span events (step.started,turn.completed,exception, …), and error status messages. Some of that was never even parsed — the reader dropped OTLPevents,status.message, andkindon read.This change exposes all of it in the CLI, without touching capture, the spool format, or retention:
↑1.4K ↓213token counts,$0.0031gateway cost, the tool name onai.toolCallrows. The header aggregatesModels,Tokens(↑/↓ plus cache),Cost, andErrorsacross the trace. Totals sum onlyagent.stepspans: model spans repeat the same counters, and a subagent's usage already appears as its own step spans in the same trace, so summing anything else would double-count.eve traces --verboseexpands every span under its tree row: status (with the error message on failures), timing, ids/scope/kind, every attribute sorted — withai.prompt.messagesrendered as a chat transcript and JSON payloads pretty-printed, reusing the TUI drawer's formatters — and every span event with its offset from span start.eve traces --jsondumps the same records machine-readably, one object per selected trace, forjq-style scripting over usage, costs, and payloads.LocalTraceSpannow carriesevents,statusMessage, andkind, parsed with the same defensive skip-malformed semantics as the rest of the reader. This is additive: the TUI/tracesviewer behaves exactly as before. Surfacing events in the TUI detail drawer is deliberately left to a follow-up.One internal refactor of note:
formatAttributeContent(used by the TUI drawer) now takes adimstyle function instead of the full TUITheme, so the CLI reuses the payload formatters instead of forking them. No behavior change in the TUI.basic usage
--verbose
--json w/ jq winnowing
Validation
pnpm --filter eve test:unit— 574 files, 5942 passed (1 skipped)vitest run --config vitest.integration.config.ts src/cli/commands/trace.integration.test.ts src/cli/dev/tui/traces/trace-store.integration.test.ts src/tracing— 26 passed, including new coverage for chips, header totals,--verboseexpansion,--jsonoutput, and reader event/status-message parsingpnpm typecheck,pnpm lint,pnpm fmt,pnpm guard:invariants,pnpm docs:check— all greenbin/eve.js tracesagainst a synthetic spool exercising usage/cost attributes, prompt/response payloads, tool I/O, events, and a failed span; verified default chips + header,--verbosetree expansion (transcript, pretty JSON, event offsets, error status message), and--jsonround-tripeve evalsuites are CI-only); no fixture eval covers thetracesCLI surfaceChecklist
CONTRIBUTING.mdevepackagegit commit --signoff)