π Pieces
- feat: add Resend email piece (#12685) @Tosh94
- feat: add Plausible Analytics piece (#12686) @Tosh94
- fix(typefully): replace polling with webhook trigger, fix i18n, add test function (#12493) @bst1n
- fix(airtable): add missing i18n keys for Clean Record action and dropdown placeholders (#12227) @bst1n
- feat(senja): enrich outputs, add i18n, and new actions (update, delete, search) (#12218) @bst1n
- fix(pdf,google-gemini): ensure /tmp exists before writing temp files in sandbox (#13396) @kishanprmr
- feat: add PostHog product analytics piece (#12687) @Tosh94
- feat(pieces): add UptimeRobot piece (#12729) @majewskibartosz
- feat(pieces): add Azure DevOps piece (#12730) @majewskibartosz
- fix(text-helper): add Find All action and fix Find action gaps (#13394) @onyedikachi-david
- feat(useinbox): add INBOX piece with 6 actions and 6 triggers (#13380) @sanket-a11y
- feat(pieces): add Plunk email platform piece (#12975) @fran-mora
- fix(savvycal): unbreak Cloud OAuth, complete Create Event (#13136) @bst1n
- feat(webflow): add list sites, list collections actions (#13148) @Angelebeats
- feat(postmark): send email with template, get bounces and get delivery stats actions (#12109) @Harmatta
- feat(postmark): send email action (#13212) @Angelebeats
- feat: add Xquik actions for public X data (#13214) @kriptoburak
- feat(sendr): add Sendr piece with 18 actions and 4 webhook triggers (#13245) @cumonvip1
- feat(streak): add Streak CRM piece with actions and webhook triggers (#13345) @sanket-a11y
- chore(pieces): remove unnecessary project.json from connectuc, hootsuite, and pdf4me (#13347) @kishanprmr
- feat(pieces): add Frill integration with actions and triggers (#13256) @cumonvip1
- feat(beebole): add Beebole piece with time tracking actions (#13335) @sanket-a11y
- feat(imeetify): add iMeetify piece with appointment event webhook tri⦠(#13332) @sanket-a11y
- feat(teamhood): add actions for items/rows/users and triggers for new, updated, and completed items (#13330) @sanket-a11y
- feat(youtrack): add YouTrack piece with actions and triggers (#13247) @cumonvip1
- feat: add Hootsuite piece (#13312) @onyedikachi-david
- feat: add PDF4me piece with 7 document processing actions (#13314) @onyedikachi-david
- fix(webhook): handle undefined auth fields without crashing engine (#13306) @amrdb
- feat(SimplyPrint): add initial implementation (#13254) @coffandro
- feat: add Wayfront piece (#13280) @onyedikachi-david
- feat(weekdone): add Weekdone piece with OAuth2 auth, actions, and triggers (#13235) @onyedikachi-david
- feat(google): fix file search not working across Shared Drives in Docs, Drive, Sheets, and Forms (#13282) @AdamSelene
- feat(provenexpert): Add ProvenExpert piece, manage customer reviews, surveys, and send invitation emails (#13307) @sanket-a11y
- fix(apify): remove deprecated crawler option and validate dataset pagination (#13299) @sanket-a11y
- fix(google-sheets): exclude header row from Get All Rows when first r⦠(#13252) @onyedikachi-david
- fix(kapso): fix phone number prop (#13229) @kishanprmr
- fix(lemlist): campaigns dropdown was broken (#13230) @kishanprmr
- feat(freshservice): Add change and change-task support for Freshservice (#13172) @Christian-Schou
- feat(subflows): show disabled subflows with guard against execution (#13215) @AbdulTheActivePiecer
- fix(elevenlabs): update API key instructions to include required permissions (#13216) @kishanprmr
- fix(jotform): parse and flatten new submission trigger output (#13197) @onyedikachi-david
- fix(deftform): use responses array instead of fields in get-form-responses (#13164) @cumonvip1
- fix(Gamma): upgrade gamma piece to v1.0 from v0.2 and add folder selection (#13065) @aryakdangol
- fix(pieces): show actual error message in kapso auth validation (#13196) @kishanprmr
- feat(github): add support for github app auth (#13156) @AdamSelene
- fix(pieces): remove "Activepieces" brand leak from Microsoft OAuth descriptions (#13185) @AhmadTash
- feat(metabase): add custom api call action (#13173) @AdamSelene
- feat(pieces): add Pendo product analytics piece (#12153) @Harmatta
- feat(pieces-supabase): add list tables and get table schema actions (#13092) @Angelebeats
- feat(pieces): add Pubrio piece β B2B data intelligence (#12433) @KinGwaL
- fix(YouTube): new-video trigger returns only latest video (#13064) @hugh-codes
- fix(baserow): clean French i18n, sync translation keys, reorder actions (#13078) @bst1n
- fix(google-drive): fix file extension handling in Google Drive
list-filesaction (#13084) @bertrandong - feat: ConnectUC Piece (#12709) @dranes
- feat(iLoveAPI): PDF processing and electronic signature (#13142) @sanket-a11y
- fix(simplyprint): update logo url to cdn (#13333) @sanket-a11y
- fix(pieces): connectuc logo (#13140) @onyedikachi-david
- chore(piece-mistral-ai): pin peers to 0.26.2 / 0.67.1 / 0.12.1 (#13095) @AhmadTash
β¨ Exciting New Features
- feat: variables manager (encrypted project secrets) (#13073) @Louai-Zokerburg
- feat: add chat analytics telemetry push to console (#13313) @hazemadelkhalel
- feat: allow user to select steps while run hasn't finished without constantly dragging them to the latest executed step (#13281) @AbdulTheActivePiecer
- feat: Show failed step details across alert email and runs table + a button to jump to failed step while viewing run (#13086) @AbdulTheActivePiecer
- feat(chat): add voice input, text-to-speech, and redesign model selector (#13258) @hazemadelkhalel
- feat(event-streaming): handler flow generator + dispatch hardening (#13105) @AbdulTheActivePiecer
- feat(chat): long thinking and agentic architecture (#13223) @hazemadelkhalel
- feat(alerts): platform admins can un/subscribe to projects' alerts + personal projects alerts can be turned on/off + you can type the default alert email for your project on creation (#13106) @AbdulTheActivePiecer
- feat(engine): dehydrate large flow-run step outputs to S3 (SRE-69) (#13103) @abuaboud
- feat(web): one-click step testing from canvas + revamped split/drawer test panel (#13305) @Louai-Zokerburg
- feat(builder): redesign testing UX with drawer/split panels, Friendly View output, and refreshed data selector (#13081) @Louai-Zokerburg
- feat(web): create flows/tables inside folders + branded empty state (#13080) @Louai-Zokerburg
- feat: add platform admin connections page (#13082) @Louai-Zokerburg
- feat: allow users to select which permissions to grant when connecting a service (#13301) @MrChaker
- feat: remove custom domains (#13292) @MrChaker
- feat: add llmDescription to pieces and their actions and triggers (#13315) @AhmadTash
- feat(server): redact secrets from pino logs (#13055) @KhaledR57
π Bug Fixes
- fix(engine): self-exit on socket loss to break the OOM-orphan ratchet (#13410) @abuaboud
- fix(git-sync): opt in to allowUnsafeSshCommand after simple-git 3.36 bump (#13406) @abuaboud
- fix(server): increase MCP tool call timeout to 5 minutes (#13364) @hazemadelkhalel
- fix(worker): key sandbox network env off proxyPort, not live settings (#13221) @abuaboud
- fix(worker): use bracket notation for socket.handshake.auth (TS4111) (#13338) @abuaboud
- fix(webhook): handle undefined auth fields without crashing engine (#13306) @amrdb
- fix(engine): subflow failure overwriting sibling waitpoint-based steps outputs on resume (#13276) @amrdb
- fix: importing templates in the builder was not importing the notes (#13285) @AbdulTheActivePiecer
- fix(engine): stream SUCCEEDED for steps neighbouring skipped steps (#13206) @amrdb
- fix(chat): persist display tools, plan card, and thinking on reload (#13255) @hazemadelkhalel
- fix(server): bump worker-group cache key to v2 to isolate rolling-deploy reads (#13242) @amrdb
- fix(mcp): switch from enabledTools to disabledTools so new tools auto-appear (#13234) @hazemadelkhalel
- fix(canary): skip system jobs on canary app + reserve schema v9 (#13219) @abuaboud
- fix(server): drop redlock + cache no-worker-group sentinel in getWorkerGroupId (#13199) @abuaboud
- fix: subflow retry callback no longer hijacks subsequent step pauses (#13141) @abuaboud
- fix: importing the flow inside the builder was not showing the result in the builder (#13178) @AbdulTheActivePiecer
- fix(platform): restrict /platforms/assets/:id to PLATFORM_ASSET files (#13177) @abuaboud
- fix(webhooks): correct payload size calculation for buffers (#13158) @abuaboud
- fix: some pieces were failing to reconnect in the UI for older versions like MS Excel 365 on piece version 0.5.3 (#13175) @AhmadTash
- fix(event-destinations): align trigger payload with test payload (#13159) @AbdulTheActivePiecer
- fix(chat): robust project scoping, connection projectId, and build progress (#13155) @hazemadelkhalel
- fix(chat): enforce project scoping during build and fix progress card (#13154) @hazemadelkhalel
- fix(mcp): resolve 11 MCP tool issues β dropdown resolution, validation, error handling, and new delete flow tool (#13150) @hazemadelkhalel
- fix(mcp): derive authorize redirect URL from request host (#13144) @hazemadelkhalel
- fix(mcp): derive OAuth metadata URLs from request host (#13143) @hazemadelkhalel
- fix(worker): union sandbox resolv.conf nameservers into iptables egress allowlist (#13132) @abuaboud
- fix: enhance test trigger functionality and default tab behavior (#13373) @Louai-Zokerburg
- fix(web): fresh action steps untestable due to stale form valid (#13365) @Louai-Zokerburg
- fix: health check uses >= for minimum CPU/RAM/disk thresholds (#13293) @op57no23
- fix: wrap legacy_custom_domain query in trycatch (#13366) @MrChaker
- fix(server): resolve request host via X-Forwarded-Host for embed CSP and (#13321) @MrChaker
- fix: remove max allowed embed origins cap (#13359) @MrChaker
- fix: saml acs url should be the same for cusotmers pre-removal of custom (#13325) @MrChaker
- fix: ee/ce should allow platform creation for first user (#13303) @MrChaker
- fix: prevent trigger badge from overlapping step name text (#12390) @Vitalini
- fix(platform): serve user profile pictures from platforms assets (#13205) @KhaledR57
- fix: dispatch streaming events to destinations (#13130) @AdamSelene
- fix(ai-providers): make Azure API version configurable (#13035) @AhmadTash
π¨ Enhancements & Polish
- fix(chat): stop AI from looping endlessly on empty tool results (#13401) @hazemadelkhalel
- feat(chat): improve streaming reliability, thinking UI, and connection handling (#13362) @hazemadelkhalel
- feat(chat): show real-time AI thinking steps inline while chatting (#13360) @hazemadelkhalel
- fix(chat): eliminate Redis project selection for chat, use Postgres (#13356) @hazemadelkhalel
- feat(chat): auto-title conversations, remove ap_set_session_title tool (#13355) @hazemadelkhalel
- feat(chat): split ap_run_one_time_action into discover + execute (#13354) @hazemadelkhalel
- fix(chat): preserve thinking blocks for providers that support them (#13353) @hazemadelkhalel
- feat(chat): replace keyword-based plan status with ap_update_plan tool (#13352) @hazemadelkhalel
- feat(chat): move agent loop to BullMQ worker with stateless API (#13348) @hazemadelkhalel
- feat(chat): add one-time to flow conversion + slim system prompt (#13327) @hazemadelkhalel
- refactor(pieces): drop in-memory list and piece-version caches (#13228) @amrdb
- fix: sidebar buttons were not centered when collapsed (#13279) @AbdulTheActivePiecer
- chore: the queue status in the runs page was constantly showing up on viewing runs table, now it doesn't (#13266) @MrChaker
- feat(chat): persist UI messages for reliable reload rendering (#13262) @hazemadelkhalel
- feat(mcp): replace ap_list_pieces with bulk ap_research_pieces (#13260) @hazemadelkhalel
- feat(chat): revamp streaming UI with Zustand store and improved UX (#13250) @hazemadelkhalel
- fix(chat): custom API call support, build card fixes, and action name suggestions (#13224) @hazemadelkhalel
- chore: allow creating placeholder connections through the api (#13218) @AbdulTheActivePiecer
- feat(api): expose single user read endpoint (#13193) @AdamSelene
- feat: add external id and id of flows to flow related audit logs (#13204) @AbdulTheActivePiecer
- chore: add audit events for publishing, disabling and enabling flows (#13203) @AbdulTheActivePiecer
- feat(mcp): auto-resolve piece versions and improve tool UX (#13192) @hazemadelkhalel
- feat(chat): enable prompt caching for all AI providers (#13191) @hazemadelkhalel
- feat(chat): revamp thinking UI with chain-of-thought block (#13190) @hazemadelkhalel
- feat(mcp): add structuredContent to MCP tool responses (#13162) @hazemadelkhalel
- feat(chat): resolve options activity step, notes in build card, and project label lifecycle (#13153) @hazemadelkhalel
- feat(chat): optimize build process, system prompt, and connection handling (#13149) @hazemadelkhalel
- feat(chat): redesign AI chat UX with thinking, tiers, and platform-scoped experience (#13138) @hazemadelkhalel
π§Ή Maintenance
- refactor(pieces): drop in-memory list and piece-version caches (#13228) @amrdb
- chore(devX): watch engine and re-build it on change (#13367) @MrChaker
- chore: use node cron for expirePendingSsoDomains (#13137) @MrChaker
- chore(deps): require 3-day minimum release age for npm installs (#13243) @KhaledR57
- fix: increase betterstack webhook e2e timout to 3 min (#13264) @MrChaker
- docs(piece-builder): correct auth access patterns for context (#13378) @sanket-a11y
- docs: add embed changes in breaking changes (#13329) @MrChaker
- docs: add majewskibartosz as a contributor for plugin (#13395) @allcontributors[bot]
- docs: add fran-mora as a contributor for plugin (#13382) @allcontributors[bot]
- docs: add kriptoburak as a contributor for plugin (#13379) @allcontributors[bot]
- docs: add jerboa88 as a contributor for code (#13263) @allcontributors[bot]
Thanks β€οΈ
@AbdulTheActivePiecer, @AdamSelene, @AhmadTash, @Angelebeats, @Christian-Schou, @Harmatta, @KhaledR57, @KinGwaL, @Louai-Zokerburg, @MrChaker, @Tosh94, @Vitalini, @abuaboud, @allcontributors[bot], @amrdb, @aryakdangol, @automated-commits-ap, @bertrandong, @bst1n, @coffandro, @cumonvip1, @dranes, @fran-mora, @hazemadelkhalel, @hugh-codes, @kishanprmr, @kriptoburak, @majewskibartosz, @onyedikachi-david, @op57no23, @sanket-a11y and allcontributors[bot]