Released 2026-11-02 · Compare with 1.0.0-rc.1
Features
- Set
approvalinagent.tsto gate every tool, connection, and subagent call from one policy.
The agent's policy runs beside each entry's ownapprovaland the stricter result wins, so it can add a gate but never remove one. Subagent sessions inherit the root agent's policy. Thanks @kingztech2019 and @taoufik-ia for the proposals in #145 and #2673. (#5793) - Slack sends a person's edit to a message the agent serves to that thread's session, as a
<slack_message_edit>with a diff of the changed lines and the full edited text, andslackChannel({ onMessageEdited })decides which edits reach the agent.
An edit follows the channel'sturnPolicylike any message: by default it joins a running turn, and if the agent already replied, it starts a new turn, which shows no thread status until its first tool call finishes; add theno_replytool so the agent can stay quiet when an edit changes nothing. By default, eve sends edits to DMs, code channel messages, and messages that mention the agent before or after the edit. With an authoredonAppMention,onDirectMessage, oronMessage, edits need their ownonMessageEdited, so they can't skip those hooks' checks; until then they go toonEventor are dropped.
The generated Slack app manifest now subscribes to themessage.channels,message.groups,message.im, andmessage.mpimevents and adds thechannels:history,groups:history,im:history, andmpim:historyscopes, which Slack requires to send edits. Reinstall the Slack app to grant them. With these events, the default handler also answers DMs without extra setup, and an authoredonEventreceives every message event in channels the app has joined. (#5796) - Add the Tavily MCP integration to the registry, so
eve add connection/tavilyconnects web search, extraction, crawling, and URL mapping through Vercel Connect OAuth. (#5731) - Dynamic functions can read the session's sandbox with
ctx.getSandbox(), the same handle tools and hooks get.
eve runs dynamic functions before every model call, so read the sandbox insidectx.memo, keyed on what would change the files, such as the latest checkout call inctx.view.ctx.getSandbox()isn't available while choosing the model. (#5802) eve add channel/telegramnow offers guided setup with Vercel Connect or portable credentials.
With Connect, it stores the bot token in a Telegram connector and routes the connector's triggers to/eve/v1/telegram, so Connect registers and verifies the webhook. With portable credentials, it writes the bot token and a generated webhook secret to.env.local. (#5810)- Session events can now record a call or a content part that its turn made without a model run:
call.requestedaccepts anownerof{ turnId }, andcontent.completedleaves outrunId, withscope.turnIdnaming the turn.
The fold, the client's conversation, and the Slack channel place both under their turn.ContentCompletedData.runIdis optional andCallOwnerhas a third variant in TypeScript, so code that readsrunIdas always present or switches over owners needs a default branch. Stream version 27 also now allows a later release to add call owners, and a reader treats a call whose owner it doesn't know as the session's. (#5771)
Bug Fixes
eve devnow resolves a string agent model through a customglobalThis.AI_SDK_DEFAULT_PROVIDER, aseve startdoes, instead of routing it to the local AI Gateway connection. (#5789)- Only sign-ins the runtime starts can hold a turn.
A tool result shaped like a sign-in request, such as JSON from an MCP or OpenAPI connection, no longer opens a sign-in or changes who the turn runs as. (#5790) - Deliver Slack DM thread replies posted with "Also send to direct message" to the agent.
Thanks @dohooo for reporting this in #5774. (#5776)