autogpt-platform-beta-v0.9.0
Significant-Gravitas/AutoGPTautogpt-platform-beta-v0.9.0Oct 23, 2026by ntindle
Upgrading?
Release notes summary
AutoGPT Platform beta v0.9.0 is a large release focused on self-hosting, abuse prevention and admin controls, safer autonomous execution, and resilient usage-limit handling. It also includes broad UI/mobile polish, major frontend performance work, new blocks and models, and many security and reliability fixes.
Key Highlights
- Self-hosting is expanded with a Docker Hub image and a Windows installer.
- New admin and abuse-prevention tools include multi-account abuse measures, an admin users page for lookup/ban/impersonation, and folded-in rate limits.
- Execution safety improves as blocks declare their effects, Auto judges cheap outward actions, and costly actions require approval first.
- Usage limits are redesigned, with AutoPilot pausing at limits, resuming when budgets reset, send-at-reset behavior, and running-low hints.
- Significant UI/mobile and performance work includes the sidebar-only layout, mobile chat polish, React 19, transcript virtualization, and many builder/copilot render optimizations.
Breaking Changes
- The classic layout is removed and the sidebar layout is served to everyone.
- The ENABLE_AUTH setting is removed.
- Mature product flags are retired, which may affect deployments relying on those flags.
New Features
- Self-host from the Docker Hub image with a Windows installer.
- Admin tools for multi-account abuse and an admin users page to look up, ban, and impersonate users with rate limits.
- Blocks declare their effects; Auto judges cheap outward actions and asks first on costly ones.
- Browser tools and Ollama blocks route traffic through an egress proxy.
- Redesigned usage limits and upgrade charge review.
- AutoPilot pauses at limits instead of dying, resumes when budgets reset, and supports send-at-reset with an out-of-budget panel and running-low hint.
- Voice mode added to the + menu, with model and token usage opened as dialogs.
- Per-expert default approval mode for new web chats.
- Durable per-scope schedule registry and DreamPass records, with dream pass leases, overlap guards, retention, and stop paths.
- Scheduled chats explain skipped runs, pause after repeated failures, alert owners, resume on reconnect, and can reduce frequency from usage-limit notes.
- Swap proxy service with placeholder handoff, provider content-host declarations, and per-box/per-user credentialed request caps.
- Expert onboarding improvements including multi-choice cards, answer review, full keyboard use, touch sizing, and one-click hiring of the recommended team.
- Changelog notification for new releases.
- Claude Haiku 5.5 and Meta Muse Spark Open added to the LLM catalog.
- New Notion blocks for updating page properties and appending to pages, plus a block that emails the account owner their own result.
- Mobile chat/sidebar polish, image thumbnails in chat input and chat, and restyled login/signup pages.
Full Release Notes
## 🔥 What's New? ### New Features - **#15824** - Add measures and admin tools against multi-account abuse (by @Pwuts) - **#14553** - Self-host from the Docker Hub image, with a Windows installer (by @ntindle) - **#14981** - Every block declares its effect; Auto judges cheap outward actions and asks first on costly ones (by @Pwuts) - **#15675** - Add admin users page to look up, ban and impersonate a user, with rate limits folded in (by @Pwuts) - **#15859** - Send the browser tools' traffic through an egress proxy (by @ntindle) - **#15215** - Redesign usage limits and review upgrade charges (by @Torantulino) - **#15388** - AutoPilot turns pause at their limits instead of dying, and Keep going picks them up (by @ntindle) - **#15390** - Resume or send a chat's turn when the budget resets (by @ntindle) - **#15403** - Add send at reset, the out-of-budget panel for Max, and a running-low hint (by @ntindle) - **#15585** - Add voice mode to the + menu; model and token usage open as dialogs (by @0ubbe) - **#15115** - Add per-expert default approval mode for new web chats (by @Abhi1992002) - **#14551** - Distill private account and Expert skills during dreaming (by @ntindle) - **#14960** - Add durable per-scope schedule registry for dream and community jobs with lifecycle hooks and backfill (by @ntindle) - **#14961** - Add durable DreamPass record written from the sync and batch dream paths (by @ntindle) - **#14970** - Add one guard against overlapping dream passes and a stop path built on the DreamPass record (by @ntindle) - **#15374** - A scheduled chat says once why its run was skipped (by @ntindle) - **#15375** - Pause a scheduled chat that keeps failing the same way, and say why (by @ntindle) - **#15377** - Alert the owner when a scheduled chat pauses, list it on Home, resume it on reconnect (by @ntindle) - **#15400** - Run a scheduled chat less often from its usage-limit note (by @ntindle) - **#14865** - Serve the swap proxy from a service that exposes only its two calls (by @kcze) - **#14868** - Hand boxes behind the swap proxy placeholders, not tokens (by @kcze) - **#15874** - Add multi-choice, answer review, full keyboard use and touch sizing for expert onboarding cards (by @0ubbe) - **#15836** - Hire the whole recommended team in one click on the hire step (by @Pwuts) - **#12652** - Show a changelog notification for new releases (by @ntindle) - **#15850** - Send Postmark email deliveries, opens, clicks and bounces to PostHog (by @kcze) - **#15307** - Add Claude Haiku 5.5 to the LLM catalog (by @ntindle) - **#15566** - Add Meta Muse Spark Open model (by @ntindle) - **#15023** - Add a Cookie settings link to signed-out pages (by @kcze) - **#15483** - Read PostHog flags from one project while dev reports to its own (by @kcze) ### Enhancements - **#15564** - The chat's approval gate answers the review pauses of workflows it started (by @Pwuts) - **#15701** - A banned account is refused by the API and its scheduled runs stop (by @Pwuts) - **#15906** - Show people who don't own a workflow the shared version of it (by @ntindle) - **#15982** - Keep each run in an org its runner belongs to (by @ntindle) - **#15949** - Require a shared key on calls between the backend's internal services (by @ntindle) - **#15951** - Start every Claude Code CLI from an allow-listed environment (by @ntindle) - **#15926** - Apply the outbound address rules to every IPv6 form of a blocked address (by @ntindle) - **#15986** - Send the Ollama blocks' traffic through the egress proxy (by @ntindle) - **#15959** - Pre-screen email addresses before sign-up and auth sends (by @Bentlybro) - **#14869** - Declare each provider's content hosts so the swap proxy scrubs them (by @kcze) - **#14872** - Hold each box to the run's ceiling on connected accounts (by @kcze) - **#14874** - Cap the swap proxy's credentialed requests per box and per user (by @kcze) - **#15725** - Let Otto view workspace and rendered images (by @ntindle) - **#15837** - Keep the suggested first tasks on Home until each is hidden (by @Pwuts) - **#15703** - Cap and cache public store search embeddings (by @Pwuts) - **#15208** - Reset usage on trial conversion to Pro or Max (by @Torantulino) - **#15530** - Count only paying subscribers as subscribed, in PostHog and MailerLite (by @kcze) - **#15396** - Check the AutoPilot allowance wherever a turn starts, bill AutoPilot block turns to credits past it, and say which limit decides (by @ntindle) - **#15436** - Default title and classifier models to Claude Haiku 5.5 (by @ntindle) - **#15383** - The frontend can read its feature flags from the backend (by @Pwuts) - **#15583** - PostHog answers feature flags by default, and the browser asks the backend for them (by @Pwuts) - **#15609** - Every PostHog event carries the revision that sent it (by @Pwuts) - **#15604** - Group each AutoPilot reply's model calls into one PostHog trace (by @kcze) - **#15605** - Send AutoPilot's tool calls and replies to PostHog as AI traces (by @kcze) - **#15852** - Flag our team and admin impersonation in PostHog (by @kcze) - **#15690** - Correlate Sentry errors with PostHog (by @ntindle) - **#15475** - Log when a queued turn starts, is cancelled, or gives its slot back (by @Pwuts) - **#15003** - Refresh warm context on follow-up turns (by @ntindle) - **#14977** - Add dream pass leases with renewal, a reaper for expired passes, retention, and in-flight batch cancellation (by @ntindle) - **#15010** - Protect recently recalled memories from dream demotions (by @ntindle) - **#15020** - Dream facts cite their sources, and a forget reaches what was derived from them (by @ntindle) - **#14941** - Read the three chat-rule keys in one pipelined MGET (by @Pwuts) - **#15683** - Skip node form re-renders on drag and edge writes in the builder (by @Abhi1992002) - **#15689** - Batch and dedupe builder execution updates (by @Abhi1992002) - **#15711** - Use by-id node reads, memoized viewers and ref-driven beads in the builder (by @Abhi1992002) - **#15726** - Isolate canvas renders, batch loads and memoize the block menu in the builder (by @Abhi1992002) - **#15678** - Keep Streamdown props stable while streaming (by @Abhi1992002) - **#15679** - Keep pending-answer contexts and actions stable (by @Abhi1992002) - **#15684** - Stop the app chrome re-rendering on URL-param writes (by @Abhi1992002) - **#15681** - Stop re-subscribing to execution events per render in the library (by @Abhi1992002) - **#15688** - Highlight a streaming code block incrementally (by @Abhi1992002) - **#15685** - Tick the thinking timer from one shared clock (by @Abhi1992002) - **#15710** - Stop reprocessing the whole chat on each render (by @Abhi1992002) - **#15709** - Select UI store fields and resize once per frame in the copilot (by @Abhi1992002) - **#15712** - Lazy-load mermaid and shiki, and profile 1 in 10 sessions (by @Abhi1992002) - **#15715** - Render transcript rows through a memoized MessageRow (by @Abhi1992002) - **#15713** - Re-render only the new row when a run is added to the library (by @Abhi1992002) - **#15717** - Stop waking snapshot subscribers on text tokens (by @Abhi1992002) - **#15716** - Keep the composer still while a reply streams (by @Abhi1992002) - **#15719** - Stop redrawing session rows on each list poll (by @Abhi1992002) - **#15740** - Virtualize the copilot transcript (by @Abhi1992002) ### UI/UX Improvements - **#15500** - Mobile polish for chat and sidebar, plus team and expert page redesign (by @0ubbe) - **#15545** - Mobile chat input polish, camera capture and composer overflow menu (by @0ubbe) - **#15769** - Smooth chat interactions on phones (by @0ubbe) - **#15876** - Restyle login and signup to match the app, and drop costly animations (by @0ubbe) - **#15106** - Delete the classic layout and serve the sidebar layout to everyone (by @Abhi1992002) - **#15882** - Show image thumbnails in the chat input and chat (by @0ubbe) - **#15401** - Add the in-chat Paused card for turns that land at a limit (by @ntindle) - **#15692** - Close the mobile nav on navigation and speed up its slide (by @0ubbe) - **#14370** - Prevent tooltips from blocking mouse interaction (by @Torantulino) - **#15590** - Say "workflows" in the billing and usage-limit copy merged after the rename (by @ntindle) - **#15704** - Drop the old "AutoPilot" name from the usage-limit copy (by @ntindle) - **#15768** - Name Otto or the expert where screens still said AutoPilot or Copilot (by @ntindle) ### Bug Fixes - **#15504** - Preserve LinkedIn and TikTok in block names (by @ntindle) - **#15501** - Refresh Needs you after answering questions (by @ntindle) - **#15529** - Send trial-ending notice for an early trial_will_end event (by @kcze) - **#15184** - Give new free trials one $20 CoPilot budget (by @Torantulino) - **#15547** - A second tap right after Send no longer stops the message (by @Pwuts) - **#15548** - AutoPilot stops asking about version checks, Expert hand-offs and work the user already asked for (by @Pwuts) - **#15589** - Keep a deleted skill deleted (by @ntindle) - **#15594** - List HubSpot in the MCP integration catalog (by @ntindle) - **#15587** - A long or blank search no longer breaks the marketplace search page (by @Pwuts) - **#15596** - Leave a skill review that another run may still be making alone (by @ntindle) - **#15574** - The app sidebar keeps the user's open/closed choice across reloads (by @Pwuts) - **#15580** - A retired Jev pin runs on jev-latest and logs an ERROR (by @Pwuts) - **#15602** - Release a cluster lock even after a failed refresh (by @ntindle) - **#15598** - Check the skill limit before saving a new learned skill (by @ntindle) - **#15597** - Explain why a skill stopped after its source was removed (by @ntindle) - **#15599** - Save a skill package as one change (by @ntindle) - **#15612** - Preserve translated button labels during checkout (by @ntindle) - **#15610** - Keep onboarding brain dump visible on short screens (by @ntindle) - **#15582** - Send attached files from the expert side-panel chat and show the message at once (by @Abhi1992002) - **#15579** - Stop chat delete waiting on best-effort cleanup (by @Abhi1992002) - **#15107** - Return compact Conductor wait/poll output by default (by @Abhi1992002) - **#15619** - Proactively refresh OAuth credentials before expiry (by @Otto-AGPT) - **#15639** - Maintain idle OAuth refresh grants daily (by @ntindle) - **#15647** - Lock every rotating OAuth refresh, and keep Notion's and Todoist's refresh tokens (by @Pwuts) - **#15632** - Make OAuth refresh-token rotation atomic under concurrent refreshes (by @goingforstudying-ctrl) - **#15150** - Default Graphiti reranker to gpt-4.1-mini (by @ntindle) - **#15656** - Migrate Graphiti extraction and reranking to GPT-6 Luna (by @ntindle) - **#15677** - Preserve concrete memory details in Luna extraction (by @ntindle) - **#15613** - Refuse a template from a pre-credentials run with a 400, not a 500 (by @Pwuts) - **#15654** - Show static Agent Output values on public share links (by @ntindle) - **#15653** - Handle long UTF-8 upload names safely (by @ntindle) - **#15222** - Start each morning briefing in a new Otto chat (by @Torantulino) - **#15649** - Keep IME input and the caret working in text fields that rewrite what the user types (by @kcze) - **#15592** - Keep a send handed to a new chat until the request setting it settles (by @ntindle) - **#15593** - Charge a credit-billed turn as its cost lands (by @ntindle) - **#15595** - Serialize at-reset joins and cancels across replicas (by @ntindle) - **#15591** - Fail a send at reset the server didn't set, bound the draft cache, ease far-off polling (by @ntindle) - **#15672** - Render file previews within a bounded size and concurrency cap (by @Pwuts) - **#15676** - Accounts without an active plan can't upload, preview, publish or connect tools (by @Pwuts) - **#15485** - Delete onboarding voice recordings once transcribed (by @kcze) - **#15337** - Keep the error code in the scheduled-turn alert so a failed routine says why (by @Pwuts) - **#15603** - Keep checkout buttons busy until the page leaves for Stripe (by @kcze) - **#15387** - Deliver mid-task messages to ChatGPT, and name the account and reset time on its limits (by @ntindle) - **#15336** - Treat a missing session as no pending messages instead of an unhandled rejection (by @Pwuts) - **#15643** - A delegated Expert chat starts on the mode its parent chat's gate enforces (by @Pwuts) - **#15641** - Plot admin accuracy trends oldest-first and only count scored days (by @ntindle) - **#15335** - List graph versions with their sub-graphs so the credentials schema matches the single-graph read (by @Pwuts) - **#15211** - Acknowledge Stripe refunds and disputes of subscription invoices instead of failing the webhook (by @Pwuts) - **#15178** - Skip RSS polling sleep in run-once mode (by @xjsns346) - **#15324** - Pin resume identity and rebuild credential masks (by @ntindle) - **#15232** - A URL that is not an MCP server gets a one-line 400, not its 404 page as a 502 (by @Pwuts) - **#15051** - The "Waiting for you" box leaves once its last card is answered (by @Pwuts) - **#15231** - Stop logging the password in the login page object (by @Pwuts) - **#15137** - Stop re-embedding unchanged multi-category blocks in every process (by @Pwuts) - **#15698** - Builder search history updates only the caller's own entry (by @Pwuts) - **#15129** - Support large ExecuteCodeBlock variables and JavaScript NaN (by @Bentlybro) - **#15423** - Clear the signup page's loading-reset timer on unmount (by @Pwuts) - **#15568** - Remove the tab title counter and re-notify chats once opened (by @kcze) - **#15490** - Keep Google block data out of Langfuse traces and session replays (by @kcze) - **#15705** - Stop sending emails and IPs to Sentry and mask session replay by default (by @kcze) - **#15567** - Stop sending a previous account's notifications after switching accounts (by @kcze) - **#15351** - Keep the traceback when a TruncatedLogger call passes exc_info (by @Pwuts) - **#15050** - A team change or Soul edit asks the user once, and its card names the teammate (by @Pwuts) - **#15747** - Turn off graphiti-core and mem0 vendor telemetry by default (by @kcze) - **#15750** - Load Tally's script only when someone opens the feedback form (by @kcze) - **#15011** - Rank connected MCP and first-party tools (by @Bentlybro) - **#15080** - Make chat session create idempotent so a lost response can't orphan a session (by @Bentlybro) - **#14496** - Prefer sub_heading over the long description on link-preview cards (by @Pwuts) - **#14887** - AutoPilot runs a block with an optional credentials field when the user has no key (by @Pwuts) - **#15756** - Resetting onboarding clears the wizard draft with a JSON null (by @Pwuts) - **#15758** - Refuse unknown webhook providers and bad email links with 404/400, not 500 (by @Pwuts) - **#15752** - DataFast waits for consent on /tour and stops sending workflow names (by @kcze) - **#15575** - Keep the memory inspector's dream result after the job ends (by @ntindle) - **#15499** - Surface capabilities hidden by kind filters (by @Bentlybro) - **#15123** - Deny every tool outside the session's allowed set, and fail CI on an unclassified CLI built-in (by @Pwuts) - **#15325** - Execute transfers atomically and re-check ownership (by @ntindle) - **#14972** - Use one recall policy so a forgotten fact is never recalled again (by @ntindle) - **#15748** - Load Google Analytics only when a measurement ID is set (by @kcze) - **#15062** - A burst of approval answers runs in one turn that is never dropped (by @Pwuts) - **#15327** - Don't re-charge REVIEW/RUNNING nodes on re-dispatch (by @ntindle) - **#15468** - Price Sonnet 5.5 cache reads at Anthropic's $0.10 per million (by @ntindle) - **#15798** - Preserve tentative status and episode reference time in recall (by @ntindle) - **#15018** - Keep the first turn's memory block out of stored history (by @ntindle) - **#15815** - Refuse a refund of an unknown top-up with 404, not 500 (by @Pwuts) - **#15816** - Let a trigger preset's webhook cross the database-manager RPC (by @Pwuts) - **#15720** - Retain Codex usage for interrupted turns (by @ntindle) - **#15751** - Load YouTube embeds only after marketing consent (by @kcze) - **#15765** - Stop asking PostHog over the network about flags it doesn't have (by @ntindle) - **#15787** - Browser and Next.js Sentry events mask URLs the way backend events do (by @Pwuts) - **#15814** - Keep saving onboarding after a save the server applied but never answered (by @Pwuts) - **#15345** - A failed renewal only cuts access on its own subscription, and wallet payments can resume (by @Bentlybro) - **#15233** - Sign brain-dump recording links through IAM so hosted pods can hand them out (by @Pwuts) - **#15873** - Keep answered questions readable in the chat history (by @0ubbe) - **#15887** - Give the onboarding card's chat answers their own name so dev builds again (by @Pwuts) - **#15884** - Load the block registry when the database manager starts (by @Pwuts) - **#15562** - Stop refusing sub-agent briefs and to-dos that mention sudo or subprocess (by @Pwuts) - **#15835** - Escape the auditor's ruling everywhere the consulting expert's model reads it (by @ntindle) - **#15646** - Drift reports name the fields that drifted (by @Pwuts) - **#15834** - Finish the memory stack's review follow-ups (by @ntindle) - **#15910** - Hand chat text to the Claude Code CLI exactly as written (by @ntindle) - **#15860** - Drop the virtualizer's scroll-end update once the transcript unmounts (by @Pwuts) - **#15936** - Set every Google Consent Mode default before the banner answers (by @kcze) - **#15928** - Pass the liveness probe before loading the block registry (by @Pwuts) - **#15940** - Keep the website visitor's PostHog id when they sign up (by @kcze) - **#15092** - Bill SDK provider base costs in every process, on platform keys only (by @Bentlybro) - **#15927** - Leave the brain dump on the first Skip click, and only once (by @Pwuts) - **#15965** - Check a webhook delivery's signature before loading its owner's credentials (by @ntindle) - **#15966** - Serve the API servers' Prometheus metrics on internal ports (by @ntindle) - **#15631** - Charge orchestrator tool calls before they run (by @qxyuan853) - **#15935** - Lock the approval mode until the chat knows its session and expert (by @ntindle) - **#15957** - A left-out expert's tick takes a mouse click again (by @Pwuts) - **#15918** - Send the same message again once the last one was answered, stopped or failed (by @Pwuts) - **#15633** - Price run_block with the resolved credentials (by @qxyuan853) - **#15969** - Check a signed-in route's token before reading the request body (by @ntindle) - **#15967** - Turn off the Better Auth endpoints nothing calls (by @ntindle) - **#15981** - Only unverify a user on a Postmark bounce that means the address failed (by @Torantulino) - **#15363** - Refuse an unsafe redirect_uri on the integration setup wizard (by @insuffer) - **#15552** - Correct transactional email copy, amounts and mobile layout (by @Torantulino) - **#15974** - Gate notification mail on a verified auth identity (by @Torantulino) - **#15953** - Suppress transactional emails to preview addresses (by @Torantulino) - **#15932** - Record why the brain-dump gate rejected a take, and retry it when its judge failed (by @Pwuts) - **#15948** - Serve memory calls in scripted journeys (by @ntindle) - **#15931** - Keep a message sent right after Stop on screen until its row is stored (by @Pwuts) - **#15960** - Cap the typed brain dump at the backend's 20,000-character limit (by @Pwuts) ### Documentation - **#15502** - Tell coding agents user-facing copy says "workflow", not "agent" or "graph" (by @itsababseh) - **#15611** - Lead the README with Experts and Otto (by @ntindle) - **#15682** - Link the README straight to the marketplace and docs (by @ntindle) - **#15968** - Bring the OSS Scanner threat model's scope, flags and severity guide up to date (by @ntindle) - **#15556** - Changelog v0.6.67–v0.6.69 (1 of 6) (by @itsababseh) - **#15557** - Changelog v0.6.70–v0.7.1 (2 of 6) (by @itsababseh) - **#15558** - Changelog v0.7.2–v0.7.4 (3 of 6) (by @itsababseh) - **#15559** - Changelog v0.8.0 (4 of 6) (by @itsababseh) - **#15560** - Changelog v0.8.1–v0.8.2 (5 of 6) (by @itsababseh) - **#15561** - Changelog v0.8.3–v0.8.4 (6 of 6) (by @itsababseh) ### Dependencies & Maintenance - **#15746** - Upgrade React to 19 (by @Abhi1992002) - **#15984** - Bump Next.js to 15.5.28 for the October 14 security release (by @Bentlybro) - **#15888** - Ship Node 24.22.1 in the Docker images, refusing the compromised eMudhra CAs (by @Pwuts) - **#15934** - Run workflows on patched Node 24.22.1 (CVE-2026-111497 Brotli RCE) (by @0ubbe) - **#15864** - Update certifi and pillow (by @kcze) - **#15741** - Bump pyasn1 to 0.6.4 in the libs and backend lockfiles (by @kcze) - **#15800** - Bump the security-updates group across 1 directory with 10 updates (frontend) (by @dependabot[bot]) - **#15522** - Bump cryptography from 50.0.1 to 50.0.2 in backend (by @dependabot[bot]) - **#15521** - Bump cryptography from 50.0.1 to 50.0.2 in autogpt_libs (by @dependabot[bot]) - **#15505** - Bump pyjwt from 2.15.0 to 2.15.1 in backend (by @dependabot[bot]) - **#15510** - Bump pyjwt from 2.15.0 to 2.15.1 in autogpt_libs (by @dependabot[bot]) - **#15516** - Bump google-auth-oauthlib from 1.4.1 to 1.5.0 in backend (by @dependabot[bot]) - **#15508** - Bump google-api-python-client from 2.200.0 to 2.201.0 in backend (by @dependabot[bot]) - **#15235** - Bump the production-dependencies group across 1 directory with 4 updates in libs (by @dependabot[bot]) - **#15524** - Bump requests from 2.32.5 to 2.34.2 in backend (by @dependabot[bot]) - **#15519** - Bump better-auth from 1.6.22 to 1.6.33 in frontend (by @dependabot[bot]) - **#15514** - Bump aiohttp from 3.14.3 to 3.14.5 in backend (by @dependabot[bot]) - **#15506** - Bump ruff from 0.16.10 to 0.17.0 in autogpt_libs (by @dependabot[bot]) - **#15507** - Bump the development-dependencies group across 1 directory with 2 updates in backend (by @dependabot[bot]) - **#15572** - Revert: read PostHog flags from each deployment's own project again (by @Pwuts) - **#15799** - Retire mature product flags (by @ntindle) - **#15964** - Remove the ENABLE_AUTH setting (by @ntindle) - **#15851** - Stop sending in-app events to DataFast (by @kcze) - **#15749** - Remove Vercel Web Analytics, keep Speed Insights (by @kcze) - **#15865** - Rewrite the copilot prompt text to say each rule once (by @Bentlybro) - **#14955** - Introduce MemoryScope and thread it through the memory code (by @ntindle) - **#14957** - Price dream inference from the LLM catalog and fix structured output on the native Anthropic path (by @ntindle) - **#14958** - Add one inference context, cost record and trace for background LLM calls (by @ntindle) - **#14953** - Run dream tests without the test server and drop unreachable dream paths (by @ntindle) - **#15669** - Add perf dev tools for re-renders, JS CPU and heap (by @Abhi1992002) - **#15621** - Resync drifted OpenRouter prices for six LLMs (by @ntindle) - **#15306** - Resync drifted OpenRouter prices for DeepSeek V4.1 Flash and Kimi K2.6 (by @ntindle) - **#15845** - Resync Mistral Large 4 OpenRouter price in the LLM catalog (by @ntindle) - **#15686** - Remove the unused email-update API route (by @Pwuts) - **#15697** - Remove the unused chat health route (by @Pwuts) - **#15818** - Delete backend functions and classes nothing calls (by @Pwuts) - **#15253** - Delete the unused contextual RunAgentInputs copy (by @Pwuts) - **#15755** - Delete the unused icons and boilerplate docs from the legacy icon module (by @Pwuts) - **#15776** - Share one empty-state illustration across the library view's empty tabs and delete its unused components (by @Pwuts) - **#15777** - Delete the unused helpers from the builder tutorial module (by @Pwuts) - **#15784** - Delete the unused barrels and helpers from the InputRenderer module (by @Pwuts) - **#15821** - Delete the builder's unused files, helpers and tutorial constants (by @Pwuts) - **#15829** - Delete the shared components' unused files (by @Pwuts) - **#15925** - Delete the unused page components and helpers outside components/ (by @Pwuts) - **#15929** - Delete the functions nothing calls from the shared utility modules (by @Pwuts) - **#15919** - Replace the legacy dropdown-menu module with the design system's DropdownMenu (by @Pwuts) - **#15921** - Build the admin and settings section navigation from one shared sidebar and mobile menu (by @Pwuts) - **#15780** - Share one tweet-fetching helper across the three Twitter timeline blocks (by @Pwuts) - **#15785** - Share the Revid API calls of the three AI video blocks through one base class (by @Pwuts) - **#15915** - Share the video blocks' media-storing methods through one mixin (by @Pwuts) - **#15825** - Build each Apollo block test fixture once (by @Pwuts) - **#15588** - Fix a flaky chat-reconnect test that ejected PRs from the merge queue (by @Pwuts) - **#15617** - Wait for the typed search in the MarketplaceStep attach test (by @Pwuts) - **#15687** - Stop the OAuth refresh lock test flaking in the merge queue (by @ntindle) - **#15338** - Request the app stack in the search tests that need it, and drop the dead graph_cleanup overrides (by @Pwuts) - **#15702** - Keep the test server's scheduler jobs out of the platform database (by @Pwuts) - **#15352** - Find the chat's Stop button by its exact name in the copilot tests (by @Pwuts) - **#15422** - Stop the trace-export retry test accepting a late attempt (by @Pwuts) - **#15378** - Keep the feature-flag tests from sending events to PostHog (by @Pwuts) - **#15371** - Write test fixture users to a fresh database even while their cached lookup is warm (by @Pwuts) - **#14962** - Cover the spend card's $0 chat ceiling in tests (by @Pwuts) - **#15372** - run_block_test.py runs on its own without a backend stack (by @Pwuts) - **#14963** - The skills-catalog tests refuse to empty a database that holds listings (by @Pwuts) - **#15759** - Stop the e2e and CI flakes from GC stalls, keep-alive resets, a refused first send and partial codecov verdicts (by @Pwuts) - **#15792** - Look for the workspace file inside the picker in attachment tests (by @kcze) - **#15452** - Pin the credits rate-limit test's clock so window boundaries can't flake it (by @ntindle) - **#15902** - Start smoke e2e users with the tab intros already seen (by @Pwuts) - **#15938** - Wait on the composer and the post-reply settle in attachment tests (by @kcze) - **#15962** - Settle each test's open requests before its file tears down (by @Pwuts) - **#15963** - Stop two copilot tests failing on slow CI runners (by @Pwuts) - **#15979** - Keep garbage collection out of the dream tests' timed runs (by @Pwuts) - **#15636** - Pin email rate limit window in a frontend test (by @mangod12) - **#15616** - Run the copilot journeys on the new chat stream runtime in CI (by @Pwuts) - **#15880** - Keep `cla: signed` on a push until CLA-assistant reports on the new head (by @Pwuts) - **#15945** - Pin workflow actions and restore MinIO CI (by @0ubbe) - **#15973** - Install Playwright's Chromium without apt, so a slow Ubuntu mirror can't time out CI (by @Pwuts) - **#15978** - Pull full-stack CI's service images with a retry that outlasts a Docker Hub refusal (by @Pwuts) - **#15983** - Cache the e2e seed dump in GHCR instead of the Actions cache (by @Bentlybro) ### New Blocks - **#15861** - Add "Update Notion page properties" and "Append to Notion page" blocks (by @Pwuts) - **#15838** - Add a block that emails the account owner their own result through the platform's mail, with no sign-in (by @Pwuts) --- ## 🎉 Thanks to Our Contributors! A huge shoutout to everyone who contributed to this release. Special thanks to our new contributors: - @xjsns346 - @qxyuan853 - @insuffer As well as our returning contributors: - @ntindle - @Pwuts - @kcze - @Abhi1992002 - @0ubbe - @Torantulino - @Bentlybro - @itsababseh - @Otto-AGPT - @mangod12 - @goingforstudying-ctrl --- ## 📥 How to Get This Update To update to this version, run: ```bash git pull origin autogpt-platform-beta-v0.9.0 ``` Or download it directly from the [Releases page](https://github.com/Significant-Gravitas/AutoGPT/releases). For a complete list of changes, see the [Full Changelog](https://github.com/Significant-Gravitas/AutoGPT/compare/autogpt-platform-beta-v0.8.4...autogpt-platform-beta-v0.9.0). --- ## 📝 **Feedback and Issues** If you encounter any issues or have suggestions, please [join our Discord](https://discord.gg/autogpt) and let us know!
Related Repositories
A collective list of free APIs
The agent that grows with you
A feature-rich command-line audio/video downloader
Python tool for converting files and office documents to Markdown.
Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.