Arcade 1.11.1
App version f0ceab0 · released 2026-10-02 · previous 1.11.0
This release has upgrade notes
Read the upgrade notes before upgrading: they list what you must do before or during the upgrade.
Release notes
This release changes how every worker pod runs: arcadedev/worker is now the supervisor image, which starts one runtime per toolkit version on demand. It also always encrypts recorded tool-execution payloads, and it changes enum values in three toolkits. A default install upgrades with no values change. Read the Upgrade notes for memory sizing, first-call latency, and the toolkit callers that must migrate.
Database migrations
This release applies schema changes. Migrations run automatically on helm upgrade unless <service>.database.migrations is false.
- Engine — adds one nullable column to the gateway table. Nothing in this release reads it, but the new engine requires the schema version it brings, so it must apply before the new image serves. Additive; a rollback leaves the column in place, unused.
- Coordinator and experience-api — none.
Security
- Recorded tool-execution inputs and outputs are always encrypted at rest. 1.10.0 added encryption as an opt-in; it can no longer be left off. See Upgrade notes.
- Disabling an account now cuts off its dashboard and CLI sessions immediately. Their tokens used to keep working until they expired, including to create project API keys. Project API keys are unaffected.
Added
- Worker supervisor settings under
workerDefaults.supervisor:prewarmToolkits,serveToolkits,maxChildren,idleTtlSeconds,capacityWaitSeconds,venvsSizeLimitandpeerRouting.*. See Upgrade notes. workers[].toolPackages(andworkerDefaults.toolPackages) limits a worker to the listed toolkit packages, for example[arcade_math].- Worker startup probes. A startup probe replaces the fixed 180-second delay on liveness and readiness, so a worker takes traffic as soon as it is healthy and is restarted if it is not up within 300 seconds. Tune with
workerDefaults.probes.startup,.livenessand.readiness, or per worker underworkers[].probes. - Suggestions across a whole project.
GET /v1/orgs/{org_id}/projects/{project_id}/suggestionslists the suggestions from every gateway in a project in one request, ranked by supporters and filterable by gateway and submitter. 1.11.0 added the per-gateway inbox. - New tools in existing toolkits:
- Outlook Mail 3.5.0:
ListEmailCategories,SaveEmailCategory,RenameEmailCategoryandDeleteEmailCategory. Rename and delete update every email that carries the category, and refuse when more than 50 do. - Outlook Calendar 3.4.0:
RespondToEventaccepts, declines or tentatively accepts an invitation, with an optional note or proposed time;ForwardEventsends an invitation to someone not yet invited;FindMeetingTimesproposes ranked times for a group without booking anything.GetSchedulereports per person whether their calendar could be read, so a calendar it cannot see no longer reads as free. - Jira 3.3.0:
CreateIssueandUpdateIssueaccept markdown descriptions, components, fix versions and any other field, including custom fields.SearchIssuesWithJqlpages past the first page. - OneDrive 1.1.0 and SharePoint 1.1.0:
ReadFilereturns the text of a PDF or plain-text file. - Microsoft Teams 1.1.0:
GetChatMessagespages through older chat history.
- Outlook Mail 3.5.0:
Changed
arcadedev/workerruns the supervisor. See Upgrade notes.- Google Calendar, Linear and Discord change enum values. See Upgrade notes.
- The Browse catalogue on the Servers page grows from 163 to 477 vendor-hosted MCP servers, each still added in one click. An OAuth server must accept your deployment's callback URL.
Fixed
- MCP clients behind a proxy that rewrites the
Hostheader can sign in to a gateway again. They no longer get "token has invalid audience" right after authorizing: the gateway now also accepts tokens issued for its public URL, which the chart derives from the API hostname. No values change. - Authorize & Run no longer fails with
oauth2 details are requiredwhen a toolkit's OAuth provider shares its ID with a remote MCP server in the project, such as a remote server namedservicenowbeside the ServiceNow toolkit. - Re-authorizing Zoom, Calendly or Square for a new tool keeps the scopes already granted. Users switching between tools were asked to authorize again on every switch.
- Engine request log lines carry
trace_idandspan_id, so a trace leads to its request log line. A recovered handler panic is marked as an error on its trace. - Deleting a project that is a member's default project explains the refusal — remove those members first — instead of returning a bare "Bad request".
- A worker image tag made only of digits renders as written. Passed with
--set, a short commit SHA such as6505385used to render as6.505385e+06, and the pod failed to pull. - Toolkits:
- Gmail 8.12.0: replies and drafted replies quote the thread the way Gmail's Reply button does, with formatting and links kept and the "On … wrote:" time in the user's time zone. Both tools now request
calendar.settings.readonly, so users are asked to authorize again; if you use your own Google OAuth app, add that scope to it. - Outlook Mail: replies and forwards quote the original's
Sent:line in the mailbox's time zone instead of UTC. They now requestMailboxSettings.Read, so users may be asked to authorize again. - Google Calendar: a date-only start and end create a real all-day event, and
UpdateEventworks on events on any calendar throughcalendar_id.updated_calendar_idnow actually moves the event. - Microsoft Teams:
GetChatMessagesdate filters work, and a chat whose newest page holds only system events is no longer reported empty. Team lookups explain permission and not-found errors. - Slack 2.7.0:
usernamesmatch a person's real name and display name as well as their handle. An action that would act on an ambiguous name returns a retryable error listing the candidates.ListConversationswith no filter returns private channels, DMs and group DMs as its description says. - Zoom 2.1.3: meeting invitation, transcript, recording and summary lookups find a never-used Personal Meeting Room and instant meetings. They request two more scopes, so some users are asked to authorize once more.
- Gmail 8.12.0: replies and drafted replies quote the thread the way Gmail's Reply button does, with formatting and links kept and the "On … wrote:" time in the user's time zone. Both tools now request
Removed
engine.encryptExecutionPayloads. Payloads are always encrypted.
Operator impact
- Worker pods run the supervisor: check memory limits, consider
supervisor.prewarmToolkits, and dropWORKERSfromextraEnv. - New values:
workerDefaults.supervisor.*,workerDefaults.toolPackages,workerDefaults.probes.*and theirworkers[]counterparts. All default to the previous behaviour except that workers now use a startup probe. - Removed value:
engine.encryptExecutionPayloads. - The worker image is about 3 GB uncompressed; size private mirrors and node disk accordingly.
- The engine migration must apply before the new engine image serves.
- Optional, and only if tool-execution recording was enabled before this release: run
backfill-execution-payloadsto encrypt rows stored as plaintext. - Operators with their own Google OAuth app add
calendar.settings.readonly.
API & behavior
GET /v1/orgs/{org_id}/projects/{project_id}/suggestions: new.- Deleting a member's default project:
422with an explanation, instead of400. - MCP gateway OAuth: tokens issued for the gateway's public URL are accepted.
- Google Calendar 4.1.1, Linear 8.0.0 and Discord 2.0.0 change enum values; previous versions are still served.
- Gmail, Outlook Mail and Zoom tools request additional scopes.