Minor Changes
- c543585: Breaking: replace
limits.maxInputTokensPerSession,limits.maxOutputTokensPerSessionandlimits.maxTokenCostUsdPerSessionwith onelimits.sessionUsagefunction. It receives the session'stotalusage and itswindowsince the last approved continuation, and returnstruewhen the limit is reached; Continue starts a new window. The default is 40M new input tokens (input minus cache reads) per window. Subagents now check their own window with their ownsessionUsageor the root agent's instead of receiving a share of the parent's remaining quota. Sessions that can't ask now fail withSESSION_USAGE_LIMIT_REACHED, replacingSESSION_TOKEN_LIMIT_REACHEDandSESSION_TOKEN_COST_LIMIT_REACHED.
Patch Changes
- baf3030: Attach the agent trace session ID to auto-instrumented child spans on Vercel so Agent Runs can include network and other third-party spans in a session trace.
- 91b3183: The session input-token limit now counts only new input (uncached input plus cache writes). Cache reads no longer count toward the limit, the grant after Continue, or the quota shared with subagents, so long cache-heavy sessions stop hitting continuation prompts for replaying their own history. Usage telemetry still reports raw input and cache totals. Providers that report no cache details count exactly as before.
- 8aba0f6: Allow authored workflow tools to select an AI Gateway model when they open a local session with
ctx.agent(). The child keeps the target agent's other configuration, and the selected model applies for the session's lifetime. - 0aea7fc:
eve evalnow runs while aneve devsession for the same agent is open, instead of failing with "A dev server is already running for this eve agent." The eval server keeps its runtime generations, local Workflow data, and server record in a per-run directory under.eve/eval-servers/, so it never swaps or prunes the dev session's state. - a9f5065: Channel and session sends and responses now accept
idempotencyKeyto ignore retries across replay and owner handoffs. Photon supplies message IDs automatically; deduplication requires a shared Workflow World and only covers keys in the session's recent-key window. - 6752c95: Fix a workflow tool task running twice when the session was interrupted while publishing
task.started, for example during a slowtask.startedhook. The session now records each task's run before it publishes the event, so a retry only publishestask.startedagain and never starts a second run. - 964a41f:
limits.sessionTimeoutMsis now an idle timeout: the window restarts each time a turn settles, so a session in active use no longer ends 30 days after it was created. Idle sessions still complete when the window elapses, and the next channel message at their address starts a fresh session as before. - dd8c231: Linq and Photon iMessage channels now tell the model when a message is a reply, and include the text of the message it quotes.
- cf824a8: The Photon and Linq channels can now pass tapbacks to the agent with a new
onTapbackhook, which can also answer the approval or question posted in the message the tapback is on, for example approving with a like.channel.tapbackTool()gives the model a tool that reacts to the latest message with a standard tapback or any emoji. Tapbacks stay ignored unless you opt in. - 743b498:
eve start --no-schedulesandEVE_SCHEDULES_DISABLED=1start a server that does not fire authored cron schedules, so only one process runs them when you scale out. - b34844b: Channel
send(), channel message hooks, and a newcreate()on channel addresses accepthistoryto add prior user and assistant messages, such as a stored transcript, as real turns.create()starts a session that waits for its first message and reports withcreatedwhether it did. A newhistory.importedstream event publishes added messages; the default client reducer renders them, andtranscriptReducer()includes them. SlackthreadContextnow adds earlier replies as history when a message starts the thread's session; later messages keep the existing transcript. - e40d7d7:
eve buildandeve devnow evaluate a module shared by several tools, channels, or other authored files once per compile instead of once per importing file. Compile memory now grows with the code an agent actually has, not with the number of files that import it, so agents with many tools over a shared SDK or workspace package no longer run out of memory on smaller build machines. Authored modules transpiled to CommonJS with an__esModulemarker, such as atools/*.cjsfile withexports.default = …, now also compile and run correctly instead of resolving to the wholeexportsobject. On Windows, CommonJS authored modules can nowrequire()eve and other external packages. - 62d3227: Skip the final Slack reply when the message that started the turn was deleted, instead of letting Slack post it as a top-level channel message.
- ee5e8e9: Self-hosted
eve buildoutput now carries a build identity derived from its contents. eve exposes it to Workflow Worlds asWORKFLOW_DEPLOYMENT_IDunless that variable is already set, and records it ineve build --profilereports. - 7b8a520: Fix unnecessary
eve devruntime-generation changes when Nitro installs newer Rolldown versions. No-op rebuilds and environment-only reloads now keep the active runtime snapshot unchanged instead of treating bundler debug comments as runtime changes.