Skip to content

0.42.0

Latest

Choose a tag to compare

@zackbart zackbart released this 05 Nov 14:25
8295e7e

This release makes Connecta easier for agents to use: shorter served text, failures that name the next step, a read-only program route, and better discovery. Six breaking changes can alter how existing clients or deployments behave, so check them before upgrading.

Breaking: A deployment classification override to "read" no longer applies to a tool whose source declares a write. That tool stays a write on every surface, so its calls prompt on hosts that prompt, a direct call_tool is refused, and a read-only pool loses it. Remove the override, or change it to the new "read-repeatable" if you have checked that a repeat is harmless. Native pool writes are now named <connector>__WRITE__<tool>, or a hashed form of it, so update anything that hardcodes a native write's name, such as host approval rules, allowlists and prompts. execute.watchdogMs now defaults to 55 s (was 120 s) and caps direct calls, and workerExecutor() defaults to a 50 s timeout and a 40 s queue deadline; raise them only below your clients' own request limit. GitHub answers a resource HTTP 403 as provider_permission_denied instead of auth_required, without a credential handoff. A skills fetch returns its text once, in content, not in structuredContent.text. @zackbart/connecta-eve now requires exactly Eve 1.0.0-rc.4 as its peer; its README lists what that brings to your app, including a default edit_file tool to gate wherever write_file is gated.

Reads and programs: Writable /mcp and /mcp/<pool> endpoints now list a seventh meta tool, execute_read_code, annotated read-only and refusing every write before dispatch, so hosts that gate on annotations can run read-only programs without a write approval. Set execute: { readRoute: false } to turn it off, and read the read programs section in documentation/meta-tools.md first: such a program runs unprompted on hosts that auto-approve reads, and a read tool that takes a URL or query can carry data out in its arguments. connecta.result(handleOrId, { all: true }) reads a retained result whole up to 1.5 MiB. A direct read over its inline cap can now answer with a sample in the result's own shape rather than its first bytes, so a client that parses a truncated direct result should not assume the body is a prefix of the result.

Failures and recovery: Failure messages now give the exact next step, and anything branching on nextAction.tool === "authorize_connector" must also accept the new handoff shapes. A program that may have written warns against rerunning it, program writes report how they failed in unknownWrites, and a tool's isError text now reaches agents up to 4,096 UTF-8 bytes. Program errors and timeouts arrive as typed failures before MCP clients give up on the request. A QuickJS crash that could cost a run its answer, or the next request, is fixed.

Discovery: Served instructions and tool descriptions are shorter, and connector guides now hold only provider-specific facts. Search ranks partial matches by the rarity of the query words they cover, so a hatch's common verb no longer hides a named tool. A connector that does not answer in time keeps its tools in discovery from its last complete catalog, marked stale: true. The execute_code inventory can show each connector's configured description as a short purpose.

Deployments without these overrides, native write names, longer client timeouts or the Eve helper need no configuration changes.