# Changelog Source: https://www.activepieces.com/docs/about/changelog A log of all notable changes to Activepieces ### Agents you can keep, talk to, and put where they belong An agent used to be a bag of settings inside one flow step. Now it is something you name, brief, talk to, and reuse. **Build one from a sentence** * **Describe the job**: the Agents page opens with a prompt box. Write *"summarise my unread emails every morning"* and you get a drafted agent — a name, instructions, and the tools it needs from the apps you have already connected. See [Create an agent](/docs/agents/create). * **It only reaches for what you asked for**: the draft picks actions that read your data, and adds one that sends, posts or files only when the sentence asks for it. * **Edit with AI**: describe a change in the editor — *"only reply to paying customers"* — and the instructions and tools are rewritten for you. Edits stay a draft until you press **Publish**, and publishing updates every flow already using the agent on its next run, with nothing to republish. **Where an agent lives** * **Choose the project up front**: new agents no longer land wherever you happened to be. The prompt box names the project and lets you change it, because the project decides which connections, flows and files the agent can reach. * **Move one later**: with a preview of what it costs first — the apps that have no connection in the new project, the people who lose a share, and the fact that tools which keep working now use the new project's accounts. See [Manage an agent](/docs/agents/manage). * **Deleting is honest about consequences**: an agent still running inside a published flow cannot be deleted or moved, and the flows are named so you know where to look. **Finding them** * The Agents page spans every project you can read, with search, sorting and a project filter answered by the server, so a long list stays complete and fast. ### AI-ready pieces: tool search, AI metadata, and audience The piece catalog is now built for AI agents as much as for humans. An agent connected through the [MCP server](/docs/mcp/overview) can find the right action across hundreds of pieces by describing the task — then inspect its schema and run it. **Tool search** * **Search by task, not by name**: the new `ap_search_actions` and `ap_search_triggers` MCP tools take a plain-language description (*"send a message to a Slack channel"*) and return the most relevant actions or triggers, ranked by semantic similarity. See [Tool Search](/docs/mcp/tool-search). * **Honest no-match**: results below a relevance threshold are dropped rather than padded, so agents don't grab a wrong tool when nothing fits. * **Self-host ready**: turn it on with `AP_TOOL_SEARCH_ENABLED`; semantic ranking uses an OpenAI key, with a keyword fallback when none is configured. **AI metadata & audience** * **Agent-oriented descriptions**: actions and triggers across the catalog carry `aiMetadata` — a description written for agents plus an idempotency declaration for safe retries. See [AI Metadata](/docs/build-pieces/piece-reference/ai-metadata). * **Audience targeting**: actions can target humans, agents, or both — the visual builder shows the human view while agents discover the AI view, so agent-only atomic actions don't clutter the piece selector. * **Output schemas**: pieces can declare a labelled, formatted presentation of their step output, driving the builder's data selector and output viewer. See [Output Schema](/docs/build-pieces/piece-reference/output-schema). ### Production setup: lightweight workers, bundled pieces, and predictable scaling A ground-up overhaul of how Activepieces runs in production. The new shape is sized from a single number, your peak concurrent flows, and every piece of it is cheaper to run and easier to reason about. See the updated [Production Setup](/docs/install/configure-operate/production-setup). **Workers** * **New lightweight worker image**: a dedicated, slimmer Docker image for the execution tier. * **One flow per worker**: run workers at `AP_WORKER_CONCURRENCY=1` so each worker handles a single flow at a time. Recommended size is **0.5 vCPU / 1 GB** per worker; about 300 MB is warm-process overhead, leaving \~700 MB for the flow. * **No noisy neighbours**: every flow gets its own guaranteed CPU and memory slice, so one flow can't starve or crash another. See [Reserved Resources](/docs/install/guarantees/reserved-resources). * **Less to provision**: the pre-warm feature and worker persistent disks are no longer required; each worker fills its cache lazily and reaches steady-state on its own. **Pieces & flows** * **Pieces are now bundled**: each piece (and its dependencies) is compiled into a single small artifact, KB-scale instead of multi-megabyte module trees. Bundling is applied uniformly, so existing pieces shrink too. * **Faster cold boot**: less code to compile and only a trivial amount of ephemeral disk needed per run. * **Served from S3**: flow bundles and pieces are served and cached from your in-region object store (npm registry stays as a fallback), cutting install time from seconds to under 100 ms. See [S3 Storage](/docs/install/configure-operate/setup-s3). **Scaling** * **Arithmetic scaling**: for every 10 workers, add 1 app (a **1:10** app-to-worker ratio). * **Measured**: throughput scales near-linearly through 80 workers / 8 apps (484 req/s warm) and keeps climbing to 777 req/s at 160 workers, though the per-worker rate tapers as the database takes more of the load. Full methodology in the [Benchmark](/docs/install/architecture/benchmark). **Worker Groups** Reserve dedicated worker capacity for specific projects. A worker group is a **floor**, capacity a project's runs can always claim and no other project can take, complementing the soft-cap **ceiling** that limits how much a project may use. Shield your critical projects from noisy neighbours. See [Worker Groups](/docs/install/configure-operate/worker-groups). ### Waitpoints — durable pause and resume for flow runs Flows can now **pause mid-execution and resume later** without losing any state. The execution context is fully persisted so restarts, deployments, or extended wait times do not affect in-progress runs. Two pause types are available out of the box: * **Webhook waitpoints** — the flow pauses and resumes the moment a specific callback URL is called. The URL is unique to the run, carries the caller's request body, headers, and query parameters through to the next step, and supports both async and synchronous (respond-when-done) modes. * **Delay waitpoints** — the flow pauses until a scheduled timestamp and then resumes automatically, freeing up worker capacity during the wait. Both types survive worker restarts. If a resume signal arrives before the run has finished writing its paused state, it is buffered and replayed automatically — no lost callbacks. Read more: [Waitpoints](/docs/install/architecture/waitpoints) · [Durable Execution](/docs/install/architecture/durable-execution) ### Network Security Activepieces now ships with a built-in **network proxy that protects your automations from network attacks**. * **One switch to turn it on** — set `AP_NETWORK_MODE=STRICT` and the protection is active. It's **opt-in today**, but in an upcoming release it will become **opt-out** (on by default). * **Allow list for trusted internal services** — if a flow legitimately needs to reach an internal API or database, add its address (or a whole subnet like `10.10.0.0/24`) to `AP_SSRF_ALLOW_LIST`. * **Works with your corporate proxy** — if you already use `HTTP_PROXY` / `HTTPS_PROXY`, Activepieces respects them automatically. See the [Network Security](/docs/install/architecture/network-security) architecture page for the full breakdown. ### Shared concurrency pools Projects can now share a single concurrency limit through **concurrency pools**, giving platform operators finer control over how worker capacity is distributed. * **Per-project concurrency** — set **Max Concurrent Jobs** directly in Project Settings > General. * **Shared pools** — multiple projects can be grouped into the same pool so they draw from one shared limit instead of each having its own. * **Embedding support** — when provisioning users via JWT, include `concurrencyPoolKey` and `concurrencyPoolLimit` claims to create or reuse a pool automatically. See [Provision Users](/docs/embedding/provision-users). Project Settings — Max Concurrent Jobs Learn more in the [Manage Concurrency](/docs/admin-guide/guides/manage-concurrency) guide. ### Stability & reliability improvements Major investments in worker architecture, testing, and resilience to ensure more reliable flow execution. **Worker Architecture** * Complete worker rewrite (worker v2) focused on stability and reliability * New sandbox process model with improved error handling and resource cleanup **Testing & Quality — what we added and why it matters** Race condition tests: * **Queue dispatcher** (12 tests) — tests orphaned job handling when a job is dequeued but all waiters have timed out, prevents double-loop spawn during close with in-flight dequeue, verifies single dequeue concurrency control, tests waiter timeout and retry behavior * **Subflow resume** (8 tests) — tests the race condition where the engine writes pause metadata to Redis before it's persisted to DB, verifies Redis fallback when DB is stale, simulates concurrent reads/writes with spy mocks, covers sync endpoint with concurrent Redis updates * **Rate limiter** (5+ tests) — tests concurrent job slot allocation, idempotency with concurrent dispatch, per-project isolation so different projects don't interfere * **Concurrent flow execution** — end-to-end test creating 5 concurrent flow runs verifying none get stuck or deadlocked * **Memory lock** — verifies mutual exclusion (two concurrent lock acquire calls on same key are serialized) Worker unit tests: * **Worker polling** — tests job execution lifecycle, resilience to invalid job data, null polls, unrecognized job types, mixed valid/invalid sequences * **Sandbox execution** — tests sandbox creation, startup, RPC communication, stdout/stderr accumulation, resource cleanup on timeout or memory issues, process cleanup and listener removal * **Process forking** — tests execArgv configuration (memory limits, node options), environment variable propagation * **Cache logic** — tests cache hit/miss, disk persistence, memory caching, cache invalidation predicates * **Configuration** — tests config loading for different container types (WORKER\_AND\_APP vs WORKER) End-to-end validation: * **[Smoke tests](https://github.com/activepieces/activepieces/blob/main/.github/workflows/smoke-test.yml) in GitHub Actions** — validates health checks and webhook flow execution on AMD64 and ARM64 * **[Benchmark tests](https://github.com/activepieces/activepieces/blob/main/.github/workflows/benchmark.yml) in GitHub Actions** — load testing across 6 app/worker configurations measuring throughput, mean latency, P50, P99 ([see results](/docs/install/architecture/benchmark)) **Resilience** * Worker gracefully handles invalid job data, null polls, and unrecognized job types * Sandbox properly cleans up processes, listeners, and resources on timeout or memory issues * Race condition fixes for subflow resume and user interaction jobs ### Platform Admin — full UI redesign A comprehensive visual refresh across all Platform Admin and Project pages with a cleaner, more consistent interface. **Platform Admin** * **Projects** — filter chips, inline edit icons, and cleaner sidebar without branding * **Users** — new Role and Last Active columns, dedicated Invite button, and per-row action menus * **Project Roles** — switched from table to card-based layout with permission viewing * **Audit Logs** — fully enabled with Action, Performed By, Project, and Date Range filters, plus detail slide-over panels with a full JSON payload viewer * **Secret Managers** — card-based layout with Hashicorp Vault, AWS Secrets Manager, Cyberark Conjur, and 1Password * **Branding** — refreshed page layout **Project pages** * **Automations** — renamed from "Flows", with Type and Owner filters, search, step icon details, status toggles, and favorites * **Connections** — Pieces and Owner filters, flow usage count, inline edit and refresh actions * **Runs** — updated tab navigation and consistent styling **General improvements** * Unified tab navigation across Automations, Runs, and Connections * Platform Admin link added to the bottom of the project sidebar * Slide-over panels for detail views instead of full-page navigation * Previous / Next pagination style throughout * Sidebar header replaced with a "Back to app" link ### Dedicated staging environment & improved release process All changes now go through a dedicated staging environment before reaching production. Every update is validated internally for a minimum of 16 hours before being promoted, ensuring higher reliability and fewer disruptions for our users. * **Staging-first deployment** — every change is tested in a production-like environment before going live * **Daily production promotions** — only validated, stable builds are promoted to production * **Weekly self-hosted releases** — predictable, stable releases published every week for self-hosted customers * **Emergency hotfix path** — critical fixes can still be fast-tracked to production when needed [Read more about our release cycle](/docs/handbook/engineering/onboarding/release-cycle) For previous releases, see the [GitHub Releases](https://github.com/activepieces/activepieces/releases) page. # i18n Translations Source: https://www.activepieces.com/docs/about/i18n This guide helps you understand how to change or add new translations. Activepieces uses Crowdin because it helps translators who don't know how to code. It also makes the approval process easier. Activepieces automatically sync new text from the code and translations back into the code. ## Contribute to existing translations 1. Create Crowdin account 2. Join the project [https://crowdin.com/project/activepieces](https://crowdin.com/project/activepieces) Join Project 3. Click on the language you want to translate 4. Click on "Translate All" Translate All 5. Select Strings you want to translate and click on "Save" button ## Adding a new language * Please contact us ([support@activepieces.com](mailto:support@activepieces.com)) if you want to add a new language. We will add it to the project and you can start translating. # License Source: https://www.activepieces.com/docs/about/license Activepieces' **core** is released as open source under the [MIT license](https://github.com/activepieces/activepieces/blob/main/LICENSE) and enterprise / cloud editions features are released under [Commercial License](https://github.com/activepieces/activepieces/blob/main/packages/ee/LICENSE) The MIT license is a permissive license that grants users the freedom to use, modify, or distribute the software without any significant restrictions. The only requirement is that you include the license notice along with the software when distributing it. Using the enterprise features (under the packages/ee and packages/server/api/src/app/ee folder) with a self-hosted instance requires an Activepieces license. If you are looking for these features, contact us at [sales@activepieces.com](mailto:sales@activepieces.com). **Benefits of Dual Licensing Repo** * **Transparency** - Everyone can see what we are doing and contribute to the project. * **Clarity** - Everyone can see what the difference is between the open source and commercial versions of our software. * **Audit** - Everyone can audit our code and see what we are doing. * **Faster Development** - We can develop faster and more efficiently. If you are still confused or have feedback, please open an issue on GitHub or send a message in the #contribution channel on Discord. # AI Capabilities Source: https://www.activepieces.com/docs/admin-guide/guides/ai-capabilities AI Capabilities let platform admins connect external services that give the Activepieces AI assistant additional abilities beyond what the AI model can do on its own. Currently, you can configure capabilities for **Web Search, Web Scraping, and Image Generation**. ### **Why use AI Capabilities?** AI Capabilities let your organization control which external services the AI assistant can use for specialized tasks. For example, you can allow the assistant to search for current information on the web, extract content from webpages, or generate images when users need these capabilities. Configuring these services at the platform level also means the required API credentials can be managed centrally rather than asking individual users to configure them. ### **Available AI Capabilities** #### **Web Search** Web Search lets the AI assistant search the live web for current information.  This is useful for tasks where the assistant needs information that may not be available in the model itself. #### **Web Scraping** Web Scraping lets the AI assistant extract clean content from webpages as Markdown, including pages that are rendered with JavaScript. This can be useful when the assistant needs to read and work with the full content of a webpage rather than just search results. #### **Image Generation** Image Generation lets the AI assistant create images such as realistic photos, marketing graphics with text, brand logos, and abstract art. The model is selected automatically for each request. ### **How To Set Up AI Capability** The setup is similar across the available capabilities: 1. Go to **Platform Admin → AI Center → AI Capabilities**. 2. Find the capability you want to configure. 3. Click **Set up**. 4. Enter the API key for the external service. 5. Click **Save**.