Skip to content

Upgrade eve to 1.0.0-rc.1 - #184

Merged
fmhall merged 2 commits into
Merit-Systems:mainfrom
darafsheh:eve-1.0-rc-upgrade
Nov 2, 2026
Merged

fmhall merged 2 commits into
Merit-Systems:mainfrom
darafsheh:eve-1.0-rc-upgrade

Conversation

@darafsheh

@darafsheh darafsheh commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Upgrade eve to 1.0.0-rc.1

This upgrades the agent, chat frontend, tests, and evals from eve 0.66.3 to 1.0.0-rc.1, following eve's Upgrade to 1.0 guides. This targets a release candidate, so it may be worth holding as a draft until eve 1.0.0 ships.

What changed

  • Agent APIs. Dynamic models, instructions, tools, and the browser subagent now use defineDynamic((ctx) => value). eve 1.0 resolves these before every model call, so the scheduled-run lease is still rechecked on each step. compaction.thresholdPercent is now compaction.threshold, and memory recall uses only turn.started.
  • Session events (v26 → v27). The eve and Linq channels, the hooks, and the browser trace timeline all use v27 events with (event, ctx) handlers. Each tool name is read from call(ctx.view, callId). Linq still delivers replies only through send_message: the default content.completed posting is overridden. Sign-in prompts still go out as native Linq links.
  • Browser worker. run_browser is now a resumable serve tool. The coordinator continues a worker by taskId instead of agentId, and stops one with eve's built-in eve__task_cancel. The restored task_cancel tool and its patch hunk are removed. Production instructions use Eve’s supplied structured completion tool rather than the old final_output name.
  • Scheduled runs. Pending input is stored as eve Interaction[]. Typed answers are matched to options locally, because 1.0 has no public text-to-answer helper. A worker that overruns its runtime limit is retired with end() and replaced by a fresh session. Delivery results now read Delivery.sessionId, and an inactive session raises SessionNotActiveError. Completion follows Eve’s same-turn task lifecycle; the previous later-turn deferral is removed. The old database column is retained for compatibility with deployments still serving pre-1.0 sessions.
  • Chat frontend. Moved to eve/client 1.0 and v27 events: conversationOf and selectors from eve/events, Interaction/Answer, Delivery.stream(), and cursors keyed by position. The custom paginated history hook is kept, because SessionStore can't prepend older pages. Child relationships are retained separately from the visible transcript and recovered for resumed workers, so activity and trace access survive pagination and reloads.
  • Eve channel route ownership. The route lists match 1.0's routes. /eve/v1/task-input/:token no longer exists, and the new /eve/v1/health route needs no session. Inbox hook tokens use the same format as before.
  • Dependencies. ai, @vercel/connect, and chat are bumped to eve 1.0's peer ranges.

Disabled or worked around until upstream releases catch up

  • Stripe Link purchases are disabled. No @stripe/link-integrations-eve release is built for eve 1.0; the latest, 0.3.8, was built with 0.79.0. eve 1.0 refuses to load extensions built with 0.83 or earlier. The extension and the two link__* coordinator tools are removed, and the agent says Link purchases are temporarily unavailable. Wallet connection at /link and fill_from_link remain. The README's Link section explains how to re-enable purchases.
  • evlog. evlog/eve's hook only understands v26 events, including in 3.0.0-beta.1. A small local hook now emits one wide event per turn.settled and per session.ended. A local OTel runtimeContext tags spans with the matching evlog.request_id.
  • Linq native replies. patches/eve@1.0.0-rc.1.patch ports the existing reply patch: the bundled Linq adapter still doesn't forward reply_to.

Behavior differences

  • The chat shows only the current conversation, so messages from before a context clear() are hidden.
  • Chat usage totals now include spend recorded by delegated (browser worker) calls.
  • User message IDs are now ${deliveryId}:user instead of ${turnId}:user.

Deploying

  • Keep the existing 0.66.3 deployment running. Sessions started there predate 0.69, so they never move to a 1.0 deployment.
  • A scheduled run that is paused for the user's answer at deploy time has stored the old request format; re-run it after the upgrade.

Testing

  • On Node 24.13.0: pnpm check passes (879 tests across 94 files, lint, types, formatting, and Knip); pnpm test:runtime passes (2 evals, 16 gates).
  • pnpm build and pnpm build:eve pass with the existing local development configuration.
  • Regression coverage runs the production scheduled-run completion hook with a real PGlite database for both reportable and empty results, and exercises activity collection with a resumed worker whose opening lies outside the visible history page.
  • The runtime fixture now loads the production coordinator and browser-worker completion instructions, rather than fixture-only instructions.
  • At the original PR revision (b1da6b5), a local UI smoke test verified sign-in, workspace/chat loading, a live model reply, and reply persistence after reload. The expired local Vercel credential was refreshed before that successful turn.
  • Live Linq delivery, external sign-ins, and browser-provider execution have not been exercised for this revision.

🤖 Generated with Claude Code

- Move agent, channels, hooks, instructions, and tools to eve 1.0 APIs and
  v27 session events (defineDynamic functions, (event, ctx) handlers,
  Interaction/Answer, Delivery, ctx.view selectors).
- Make run_browser a resumable serve tool continued by taskId; use eve's
  built-in eve__task_cancel instead of the restored task_cancel tool.
- Port the Linq native-reply patch to eve@1.0.0-rc.1 and drop the
  task_cancel hunk.
- Disable Stripe Link purchases: no @stripe/link-integrations-eve release
  is built for eve 1.0, which refuses older extensions. Wallet connection
  remains.
- Replace evlog's eve hook (v26-only) with a local v27 per-turn wide event
  hook and matching OTel runtime context.
- Migrate the chat frontend to eve/client 1.0 and v27 events.
- Update tests, evals, and the runtime smoke fixture; bump ai,
  @vercel/connect, and chat to eve 1.0's peer ranges.

Co-Authored-By: Claude <noreply@anthropic.com>
@fmhall
fmhall merged commit bc8cae7 into Merit-Systems:main Nov 2, 2026
2 checks passed

This branch was successfully deployed

1 active deployment
Preview — e3a68066 Deployed Nov 2, 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