unstale

npm / @composio/core

@composio/core

What changed in @composio/core 0.25 to 0.27, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

12 breaking1 deprecations8 new APIs and options5 behavior and defaults4 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

@composio/core 0.273 changes

Breaking changes 1

  • session.proxyExecute() and ctx.proxyExecute() return resultType: 'completed' or resultType: 'blocked'. Blocked requests have no HTTP response, so check resultType before reading status.

    0.27.0release notes

New APIs and options 1

  • create() and update() accept session hooks that can block a tool call before it runs or block its result before the agent sees it. On update, hooks replaces the list; null removes all hooks. hooks cannot be combined with experimental.sessionConfigId.

    0.27.0release notes

Behavior and default changes 1

  • Blocked calls from session.execute() and session.executeMeta() return resultType: 'blocked', empty data, the hook's message in error, and blockReason. Every result also carries hookResults when a hook applied.

    0.27.0release notes

@composio/core 0.2613 changes

Breaking changes 8

  • The SDK passes credentials through the API client's auth option and organization/project scope through scope, rather than placing them in default headers.

    0.26.0release notes

  • The SDK no longer applies this environment variable; pass defaultHeaders instead.

    0.26.0release notes

  • For S2S_OAUTH2, customConnectionData now requires val.access_token, matching the API requirement.

    0.26.0release notes

  • The returned client no longer exposes apiKey, userApiKey, orgApiKey, or logger; baseURL, maxRetries, timeout, and logLevel are read-only. Read keys from getConfig and derive clients with withOptions to change the other settings.

    0.26.0release notes

  • A per-call headers option can no longer specify credential or scope headers.

    0.26.0release notes

  • String formats outside the listed OpenAI-supported set are removed from strict tool schemas and reported as unsupported-keyword-stripped.

    0.26.0release notes

  • OpenAPI nullable is converted into a null type or null branch instead of being passed through; nullable: false is stripped and the rewrite is reported.

    0.26.0release notes

  • Setting more than one of x-api-key, x-user-api-key, and x-org-api-key now throws ComposioError because the API rejected every such request.

    0.26.0release notes

Deprecations 1

  • The SDK warns once per toolkit version when the API marks it deprecated, including the version, sunset date, and how to pin a newer version; error log level silences the warning.

    0.26.0release notes

Behavior and default changes 2

  • Credential and scope headers are folded into SDK options rather than forwarded; getConfig reports the folded values and omits those headers from defaultHeaders.

    0.26.0release notes

  • When apiKey is null and only an organization API key is supplied, every request, trigger channel authorization, and session.mcp.headers now carry x-org-api-key.

    0.26.0release notes

Fixes and other changes 2

  • String tool parameters are checked as base64 only when contentEncoding is base64; binary and other encodings are plain strings, while byte remains unchecked.

    0.26.0release notes

  • Null values are retained for properties marked nullable: true, as they already are when the type includes null.

    0.26.0release notes

@composio/core 0.2514 changes

Breaking changes 3

  • Setting API-client-owned identity and runtime headers through defaultHeaders or createSession({ headers }) now throws a ComposioError instead of silently overwriting them.

    0.25.0release notes

  • executeMeta() takes approval answers as its third argument, moving request options to the fourth.

    0.25.0release notes

  • unsubscribe() closes the realtime connection so a Node process can exit; calling it before subscribe() no longer fetches credentials or creates a client.

    0.25.0release notes

New APIs and options 7

  • Matching tool calls do not run and execute() or executeMeta() throws this error with questions on inputRequests; answers and requestState can be supplied when repeating the call.

    0.25.0release notes

  • The Python SDK gains the deny-or-allow fallback setting for sessions whose MCP client cannot ask the user.

    0.25.0release notes

  • Sets whether a call is denied or allowed when the session's MCP client cannot ask the user for approval.

    0.25.0release notes

  • The Python SDK adds input_responses and request_state to session.execute() and session.execute_meta() for answering approval requests.

    0.25.0release notes

  • Repeat a tool call with the user's answers in inputResponses and the error's requestState; forward decline and cancel responses unchanged.

    0.25.0release notes

  • The Python SDK gains require_approval lists for session tool approval.

    0.25.0release notes

  • Sessions accept a requireApproval list alongside toolkits, tools, and tags filters on create() and update(); matching tool calls require user approval before they run.

    0.25.0release notes

Behavior and default changes 2

  • The SDK reports itself through the API client's identity option instead of default headers. On Cloudflare Workers and Vercel Edge with Node.js compatibility enabled, x-client-runtime names that runtime and x-runtime-version is no longer sent.

    0.25.0release notes

  • A custom provider name that is not printable ASCII or has leading or trailing whitespace is reported as unknown in x-framework.

    0.25.0release notes

Fixes and other changes 2

  • Rejected promises from async trigger handlers are logged like synchronous throws instead of escaping as unhandled rejections; handler failures log the error message.

    0.25.0release notes

  • Concurrent subscribe() calls share one connection, and unsubscribe() cancels a subscription that is still connecting so it never opens a connection or delivers events afterwards.

    0.25.0release notes