Skip to content

refactor(eve): give the local trace spool one owner - #1463

Merged
chadhietala merged 2 commits into
mainfrom
simplify-commit-review-trace-spool
Jul 31, 2026
Merged

refactor(eve): give the local trace spool one owner#1463
chadhietala merged 2 commits into
mainfrom
simplify-commit-review-trace-spool

Conversation

@chadhietala

@chadhietala chadhietala commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Found

  • trace-store.ts re-declared the spool's id/file patterns, size cap and isMissing, and repeated the reader's list → read → parse → dedupe walk: refactor(eve): extract the local trace reader into a shared harness module #1444 extracted only span parsing, not the on-disk contract.
  • The copies had drifted — one sorted segment names, one didn't; the reader hardcoded "segments" where resolveLocalTraceSegmentsDirectory already existed.
  • trace-conversation.ts re-implemented formatAttributeContent's wrap/JSON tail as wrapText, payloadLines, payloadJsonLines.

Did
The reader owns the layout via listLocalTraceIds, readLocalTraceActivityMs, listLocalTraceSegments, readLocalTraceSegment; the store keeps only its span-id cache and no longer imports node:fs/node:path. Payload formatting is shared as wrapPlainText/formatPayloadContent. −136/+137.

Validated
80 unit + 23 integration pass unmodified — list order, incremental re-read, malformed and oversized segment skipping, retention pruning, orphan parents. No test changed. tsc --noEmit, lint, fmt, guard:invariants clean.

#1444 moved span parsing into `local-trace-reader.ts` but left the
spool's directory and file contract on both sides of the boundary: the
`/traces` store re-declared `TRACE_ID_PATTERN`, `SPAN_FILE_PATTERN`,
`MAX_SEGMENT_BYTES`, and `isMissing`, and repeated the listing, size cap,
read, parse, and span-id dedupe the reader already did. The copies had
already drifted — the reader sorted segment names and the store did not,
the reader's file pattern carried an unused capture group, and the reader
hardcoded `segments` where `resolveLocalTraceSegmentsDirectory` exists.

The reader now owns the layout and exposes what a viewer needs of it:
`listLocalTraceIds`, `readLocalTraceActivityMs`, `listLocalTraceSegments`,
and `readLocalTraceSegment`. The store keeps only what is its own — the
per-span-id cache — and no longer imports `node:fs` or `node:path` at
all. `readLocalTrace` becomes internal (it had no outside caller) and
takes an app root like every other entry point.

Payload formatting had split the same way: `trace-conversation.ts` grew
`wrapText`, an alias `payloadLines`, and a `payloadJsonLines` that
re-implemented the tail of `formatAttributeContent` with a differently
spelled but equivalent JSON predicate. All three collapse into
`wrapPlainText` and `formatPayloadContent`, exported from
`trace-content.ts` and used by both views.

Also drops a dead `export type { LocalTrace, LocalTraceSpan }` re-export
from the trace command; every consumer imports the types from the reader.

Signed-off-by: Chad Hietala <chadhietala@gmail.com>
@chadhietala chadhietala added the simplify-devbox Simplification found by the automated devbox code review label Jul 31, 2026
@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 3:26pm
eve-docs-4759 Ready Ready Preview, v0 Jul 31, 2026 3:26pm

# Conflicts:
#	packages/eve/src/cli/dev/tui/traces/trace-conversation.ts
#	packages/eve/src/cli/dev/tui/traces/trace-store.ts
#	packages/eve/src/tracing/local-trace-reader.ts
@github-actions

Copy link
Copy Markdown
Contributor

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

Key takeaways

  • No notable deltas vs main (4d755f5).

Delta vs main (4d755f5)

Area Metric Baseline Current Delta
Package Packed tarball 7.49 MB 7.49 MB +712 B ⚠️
Package Unpacked publish size 27.92 MB 27.92 MB +1.0 kB ⚠️
Package Installed footprint 84.89 MB 84.89 MB +1.0 kB ⚠️
Package Published files 2917 2917 0
Package Installed files 6710 6710 0
Runtime Unique function payloads 2 2 0
Runtime Total function bytes 16.91 MB 16.91 MB -40 B ✅
Runtime Public routes 11 11 0
Changed function payloads vs main (4d755f5) (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.30 MB 123.30 MB +1.0 kB ⚠️
Installed packages 128 128 0
dependencies 4 4 0
devDependencies 2 2 0
Dependency package bytes 42.29 MB 42.29 MB +1.0 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-31T15:27:39.918Z
  • 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.3
  • Package directory: packages/eve
  • Tarball: 7.49 MB (eve-0.29.3.tgz)
  • Unpacked payload: 27.92 MB across 2917 published files
  • Installed footprint: 84.89 MB across 6710 installed files
  • Installed root package: 26.56 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.56 MB (31.3%)
  • @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.7%
🟠 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.30 MB 47.7%
Installed footprint breakdown
Installed package size
🔴 eve                             [########################] 26.56 MB 31.3%
🔴 @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.30 MB across 8586 installed files
  • Installed packages: 128 total (122 transitive-only)
  • dependencies: 4 direct packages totaling 42.29 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.56 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.56 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.3.tgz 26.56 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.4%)

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 index.mjs                       [#######################.] 2.31 MB 27.4%
🟠 _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.4%)

🟠 🔎 Dependency Analysis

📦 Bundled files:

Bundled file size
🟠 index.mjs                       [#######################.] 2.31 MB 27.4%
🟠 _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.29 s -> 2.10 s (-191.3 ms) vs main (4d755f5).
  • Timing is informational: shared GitHub runners are too variable for a hard timing budget.
Detailed phase timings vs `main (4d755f5)`
Phase Baseline Current Delta
extension.check 6.7 ms 9.4 ms +2.7 ms
project.resolve 1.4 ms 1.4 ms 0.0 ms
workspace.create 1.3 ms 1.5 ms +0.2 ms
host.prepare 397.6 ms 189.6 ms -208.0 ms
vercel.service-prefix.resolve 2.7 ms 2.4 ms -0.3 ms
nitro.create 219.6 ms 217.2 ms -2.4 ms
sandbox.prewarm 205.9 ms 225.4 ms +19.5 ms
nitro.cache.prepare 0.3 ms 0.4 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.6 ms 0.6 ms 0.0 ms
nitro.bundle 1.42 s 1.42 s -3.7 ms
nitro.cache.write 0.5 ms 0.5 ms 0.0 ms
vercel.workflow-function.materialize 24.3 ms 25.2 ms +0.9 ms
agent-summary.emit 0.6 ms 0.6 ms 0.0 ms
nitro.close 0.2 ms 0.1 ms -0.1 ms
output.publish 4.0 ms 3.9 ms -0.1 ms
workspace.remove 2.4 ms 2.2 ms -0.2 ms

@chadhietala
chadhietala merged commit 731464f into main Jul 31, 2026
89 checks passed
@chadhietala
chadhietala deleted the simplify-commit-review-trace-spool branch July 31, 2026 15:57
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