Patch Changes
- 910705c: An agent or
servetool call with an emptytaskIdnow starts a new task instead of failing withUNKNOWN_TASK. Some models send""for the optionaltaskIdrather than omitting it. - 3ac1bd0:
eve startno longer keeps the server's stdout and stderr in memory after startup. Output is still forwarded, and an unexpected exit no longer repeats the full log history in its error. - 4c8ffa6: Keep successful tool calls completed when their output includes
codeandmessagefields. - ee0c6c0:
ctx.cancel()in amessage.receivedhook now cancels the turn when the message is a plain-text answer to a pendingask_questionorctx.ask()question. The question resolves ascancelledand the tool call never receives the text. Before, eve logged a warning and delivered the answer.ctx.cancel()in anaction.partialhook for a workflow tool's report now cancels the turn waiting on that tool too. - bc4edd9: Attachments no longer fail a step when the session's sandbox cannot be resumed, for example when a follow-up lands on another replica. Earlier attachments and tool-result files in history reach the model as a "FileNotFound" note, and new inbound attachments and tool-returned files become a "could not be stored" note. Tools that use the sandbox still report the resume error.
- 2de4011: Fail fast with an actionable error when the project has an unsupported
microsandboxversion (such as 0.7), instead of every sandbox operation throwingisInstalled is not a function. - 394ed22: Start built, managed eve agents when a local production Next.js server loads its configuration, so
next startcan serve eve routes. - f6bf73e: Keep every property name in
eve__searchtool signatures that run past the length cap. A long signature now drops its property descriptions before any property name, so the model no longer misses fields a large MCP tool such as Linear'ssave_issuesupports. - b382594: Compaction no longer re-caps a tool result it already capped. A capped result now fits the size limit it was measured against, so later compactions leave it as it is instead of nesting another truncation notice and keeping less of the original content. A summary written after a cap also sees the whole content the capped result kept.
- a1c18f5: Teams group chats and channels no longer show connection sign-in links or confirmation codes in the shared thread. The card now has a Sign in button, and Teams shows the link only to the person who has to sign in, so another member can't connect their own account under the requester's identity.
- 9f3a634: Snapshot retained tracing arguments and errors so later mutations cannot introduce private content into telemetry or checkpoints. Apply accepted delegation capture ceilings when re-entering durable turns, including through
resume(). - ec2862e: When a tool throws, the error on its
tool.call.failedinstrumentation event now keeps the thrown error'sname, such asQuotaError, instead of always readingError. Theaction.resultstream event reports the same name aserror.name. - c1880f4: Parse a workflow tool's result as JSON when its run completes, the way a local tool's result already is. A tool that returns
ctx.ask()'s answer directly, after the person picked an option, no longer fails the turn withCannot convert undefined or null to object: undefined properties are omitted, a tool that returns nothing reportsnull, and the same applies toctx.reply()inservetools. A result JSON can't carry, such as aDateorMap, now fails the call with a serialization error instead of reaching the model as{}.