Changelog
This page highlights meaningful improvements after they are available to customers.
Entries focus on the product result, affected workflow, and any action customers should take.
Internal infrastructure details, private identifiers, security-sensitive implementation notes, and routine maintenance are intentionally excluded.
Planned work belongs in Availability & Roadmap, not in the changelog.
Rolling out
In progressMerged and rolling out. Each bullet moves under its date once it is live.
- Flat pricing: one flat hourly price per machine size for sandboxes and computers, with apps and databases billed on use up to that size's price.
- A deployment guest is isolated per customer rather than by the host session.
- A sandbox copy cold boots the scrubbed disk when memory is withheld.
- Docker Engine 29.9 with the
docker composeanddocker buildxplugins in the defaultmiosa-sandboxtemplate and the templates built on it. - SOMA at
small,mediumandlarge, with live vCPU and memory resize. - SSH certificates scoped to a single sandbox, alongside the existing authorized keys.
October 2026
October 18, 2026
- Deployments: a Next.js standalone build ships and runs as built - only the top-level dependency folder is stripped from the artifact, and the standalone server is started directly, so an app whose build output carries its own dependencies runs in a guest with no package-registry access.
- Deployments:
PORTis set for the app unless the app sets its own.
- Deployments on managed hosts: a release starts, stays up and serves its app on the port it listens on, and readiness is checked inside the host against that port, so an app that reported listening is no longer left unreported.
- Deployments: a managed instance records the shape its guest actually got.
- Deployments on managed hosts: the platform's own sweepers no longer kill a deployment's guest while it is still starting, and a guest survives a restart of the host agent.
- Deployments on managed hosts: a guest is published at its host's mesh address, so a deployment's hostname reaches the app.
- Deployments: a release that cannot install, cannot launch, or never answers on its port fails the launch with a named reason -
release_install_failed,app_launch_failedorapp_not_listening- instead of leaving a guest that cannot work. - Deployments: a Next.js release that produced no application build is refused with
build_output_missingnaming the missing output, instead of a guest that restarts forever. - Databases: backup retention restamps completed backups only, and only when the plan's date is at least a minute later, so a completed backup keeps its full window.
October 17, 2026
- Databases: table statistics show per-table size, rows, scans and vacuum times, list the indexes nothing uses, and add an audited per-table
VACUUM. - Databases: query statistics can be turned on for a database, and its top queries by total or mean time can be read.
- Databases: every stop records an audit event, fires a
database.stoppedwebhook and notifies the database's owner. - Volumes: a volume can be renamed, its attachments are listed with the computer each is attached to, and a metrics endpoint reports its size.
- Pricing:
GET /api/v1/pricingpublishes the versioned price book - the metered rate for each resource and a per-size hourly rate for computers. It is public and needs no key. - Pricing: outbound bandwidth is
$0.04per GB. - Usage:
GET /api/v1/usage/comparisonreports what you were billed beside what the same usage would cost on measured-use pricing, per resource and per kind. - Metrics:
GET /api/v1/{computers,sandboxes,deployments,databases}/{id}/metricsadds vCPU, memory, ingress and egress series, with per-replica series for a deployment. - SSH keys: account SSH keys are live under Settings, reaching the person's own machines. A key installs on a machine when you connect, and deleting it revokes every machine copy.
- Status:
GET /platform/versionreports the running release id, release name and build time, with no authentication. - Projects: renaming or deleting a project records a named event in the activity feed with the old and new name.
- Deployments: an upload deployment can name a placement region, and a malformed region is refused before anything is created.
- Usage:
GET /usagecan be filtered by project, and every row reports which project it belongs to. - Deployments: a start blocked because every candidate host is reserved for another organization says so, instead of reading as a general capacity shortage.
- Console: the pricing page is generated from the published price list, with a monthly cost by size.
- Databases: backups run on every machine, and a missing backup tool is a clear error instead of a silent failure.
- Databases: a database stuck in destroying is cleaned up, and turning on query statistics no longer restarts a database that cannot load the library.
- Databases: a managed service's virtual machine is billed once, and a top-up pack grants exactly what is paid with no bonus credits.
- Plans: Business limits are applied instead of falling back to Free - 30-day backups, 50 hosts, 25 custom domains, 250 containers, and 50,000 repositories with 250 GiB included.
- Plans: one picker decides the current subscription, so the plan, the billing period and the budget agree.
- Deployments: a first deploy whose runtime never starts fails with a stated reason instead of sitting in progress with no explanation.
- Deployments: switching a deployment to a new version no longer drops a request in the moment the route changes.
- Deployments: a start whose app never answers reports the guest's own log tail, process list and listening sockets.
- Deployments: a repository that contains symlinks builds, with links pointing outside the tree skipped and named, and a repository with a Dockerfile is refused at detection with a sentence saying how to proceed.
- Deployments: Next.js builds no longer fail with an incomplete archive. A sandbox export, the build output and the source snapshot are each verified by part count, byte count and checksum.
- Deployments: deployments are placed only on hosts whose runtime is accepting starts.
- Deployments: a build cap counts distinct deployments, so one deploy no longer blocks itself, and builds no longer fail on a plan whose per-sandbox size limit is smaller than the build machine.
- Projects: a new project no longer gets a
/datavolume nobody asked for, and already-deleted resources no longer block a project delete. - Access: a workspace-scoped key sees and changes only its own workspace's volumes and snapshots.
- Activity: a resource's history stays under its project after the resource is gone.
- CLI:
miosa logoutrevokes the key it created, and CLI login keys expire after 30 idle days. - Forge: pull request preview builds appear under their own repository's deployments, and pushing with a workspace-scoped key says an organization-wide key is needed.
October 16, 2026
- Deployments: environment variables are per environment, so preview values no longer reach production runtimes and a rollback no longer deletes preview values.
- Deployments: preview and version builds start with the deployment's preview variables.
- Deployments: environment values can be revealed to organization owners and admins, with every revealed name written to the audit log.
- Deployments: environment variables can be removed with
DELETE /deployments/{id}/env/{name}, and setting one returns the release it cut. - Deployments: a terminal can be opened in one running replica of a dynamic deployment, with every session audited.
- Deployments: an upload can be published as a server app with a start command and a port, not only as a static site.
- Deployments: dynamic deployments can run on the 4 vCPU / 8 GB size.
- Agents: each harness uses one primary provider with an optional backup, chosen in the agent's settings.
- Agents: a run that fails for a provider reason - a rejected key, a rate limit, an exhausted quota - is retried once on the backup provider under the same run.
- Agents: one CLI sign-in can cover several organizations, and the approval page shows each organization's role, workspace count and state.
- Agents: a CLI sign-in can be reported as not mine, recorded in the organization's activity.
- Sandboxes: expiry can be extended up to 30 days on a paid plan and 1 day on a free plan.
- Auth:
GET /auth/sessionsis paged, with status, limit and offset, a total, and the session making the request. - Console: the project page is a canvas of resource cards - services, databases, storage and sandboxes - with a node panel, staged changes, and a Deploy that cuts a release for the nodes it changed.
- Console: deployment builds and versions merge into one timeline with per-attempt status, the failure reason and its next action, and Promote on a ready version.
- Console: security sessions are paged with this device pinned above every page, and a Sign out all other sessions action reports how many the server revoked.
- Console: Settings gains a CLI sessions page, listing the terminals signed in with CLI login, the organizations each covers and where each starts.
- Console: a banner appears on every console page while workloads are paused for credit, with Add credit and the server's own per-kind counts.
- Console: onboarding adds a bring-your-code step that connects a code host, searches repositories and imports several at once.
- Sandboxes: sandboxes with 8 or more vCPUs enable huge pages in the guest, which speeds up large builds.
- Sandboxes: platform identity variables are defaults, so an app's own
MIOSA_*values win. - Sandboxes: a live vCPU shrink no longer blocks commands, and resizing by restart accepts CPU and memory pairs outside the named sizes.
- Forge: static sites deploy more reliably from a repository, and a build failure reads as a sentence ending in an error code.
- Deployments: metrics report CPU used during the window, and memory averages no longer include zeroes from machines that did not own the instance.
- Sandboxes: a create that answers an error no longer leaves a running sandbox the caller cannot see.
- Sandboxes: killing a process ends its whole process tree, so a server child no longer keeps listening.
- Sandboxes: a large sandbox claims a prewarmed machine again, instead of falling back to a cold boot.
- Deployments: a rebuild no longer takes a static site, or a dynamic app, down. The active version keeps serving while the build runs and after a failed build.
- Deployments: static serving returns an uploaded
404.htmlwith a404, resolves extensionless routes, and applies the index fallback only to single-page apps. - Deployments: publishing from a sandbox finds the project root instead of always packing the workspace root, and its build command runs in the app's own folder.
- Deployments: a hostname that points at a real deployment which is not currently serving answers
503 not_liveinstead of looking like a rejected domain. - Deployments: a request naming an organization the key does not act in is refused, instead of quietly answering with another organization's data.
- Deployments: a redeploy rebuilds a sandbox-published app from its recorded source, and a failed build no longer marks a deployment with a live release as failed.
- Deployments: a public preview serves every path and method, so an app's own API routes work, and a private preview's assets load on a cookie.
- Deployments: the certificate for a new version or site host is obtained before the version reports live, so the first visit no longer waits.
- Deployments: a deployment refused because its size was unavailable starts once that size is certified.
- Deployments: a domain under the organization's own white-label base goes live when it is attached.
- Databases: a deleted database stays deleted, and a failed backup reports why it failed.
- Databases: a read-only member running a query in the SQL console can no longer write.
- Projects: a preview environment that was already destroyed no longer blocks deleting its project.
- API keys: keys created with the
clipreset can remove deployments, and thecipreset can read domains. - Forge: hosted agents' workspace keys can reach that user's repositories.
- Console: failed deployments read honestly with one canonical status, and build logs stream with the bearer token instead of looping on a
401. - Console: a function can be created again, and every starter returns its body.
- Console: a storage bucket with objects can be deleted, and the console says what goes.
- Console: databases no longer show a storage allowance that was never provisioned.
October 15, 2026
- Forge: a deployment can be created from a hosted repository by id or
org/name, with automatic deploys on push, and redeployed at the branch head or a chosen commit. - Forge: a repository can name one deployment its open pull requests preview into, each built as an unpromoted version at its own URL.
- Forge: version previews report a
deploycheck on the commit and the pull request, which a branch rule can require before merging. - Deployments: every ready version answers at its own preview host, promoted or not, and an unpromoted preview build is torn down when it is archived.
- Deployments: a version can be deleted with
DELETE /deployments/{id}/versions/{version_id}. Only the live version and the version rollback would return to are refused. - Agents: a run that can no longer finish is closed instead of staying in progress.
- Sandboxes: the live browser runs headed on its own display, so a site's human check can clear.
- Sandboxes:
GET /sandboxes/{id}reportscheckpoint_pending, and a resume that meets an in-flight checkpoint waits and retries instead of failing. - Agents: a failed run shows the harness tool's own error line, and a rejected provider key says which key or subscription to fix.
- Deployments: a version preview reports its own URL, and a hostname that would exceed the DNS label limit is given no preview URL.
- Sandboxes: restored sandboxes no longer fail with a page-server connection refused or a stale memory snapshot, and a sandbox in error reports its browser as stopped.
- Sandboxes: a pause that fails resumes the machine, so it matches its running state instead of freezing every command.
- Sandboxes: the browser start waits for its window, and a browser that misses it shuts down instead of hanging.
- Forge: pushing with a browser session token is refused with a clear
401before the response starts. - Forge: editing a file through the file API now records a push, triggers the linked deployment and refreshes pull request previews.
- Forge: a repository whose
org/nameis exactly 16 characters is no longer reported as not found, and tagging a commit by its full SHA is no longer refused. - Projects: deleting a project counts only live resources, so destroyed resources no longer block it.
- Deployments: host certificates for new deployment hostnames are issued without exhausting one certificate authority's budget.
- Deployments: preview hosts of static deployments serve from the static host pool instead of reporting the artifact unavailable.
- Deployments: when both the apex and
wwwform of a domain serve, the deployment URL is the apex. - Databases: a database's connection URL no longer changes when the database restarts.
- API keys: the active key cap counts only real, unexpired keys, and expired temporary keys are retired every 15 minutes.
October 14, 2026
- Sandboxes: saved website sign-ins are stored on the platform and typed into the browser of your own running sandbox, only on the saved site over HTTPS.
- Deployments: a deployment can be addressed by its short id, its name or a hostname bound to it, anywhere a deployment id is accepted.
- Deployments: static sites honour
_headersand_redirectsin the deployed folder, and a deployment's cached copies can be purged. - Domains: a custom domain can be moved to another deployment without re-verifying it, keeping its DNS verification, certificate state and redirects.
- Domains:
GET /domains/{hostname}/checkreports readiness step by step, from the DNS records expected to the certificate. - Plans:
GET /limitsreturns plan limits and current usage for workspace-scoped keys - concurrent computers, total computer memory and concurrent sandboxes. - Pricing:
GET /compute/pricinglists every computer size with its vCPUs, memory, disk and hourly price.
- Errors name the field, the policy, the organization and the plan, so a refusal says which limit applied.
- A computer claimed from the warm pool reaches the current tooling instead of reporting its tools missing.
- Sandboxes: a create never gets a machine booted with a smaller disk than requested.
- Sandboxes: a stopped sandbox can be deleted, and a delete after a failed delete gets a fresh operation instead of repeating the old failure.
- Sandboxes: a stopped sandbox is marked destroyed rather than left stopped.
- Sandboxes: resuming immediately after a pause returns a retryable
503with a hint instead of a server error. - Deployments: creating a deployment whose name already exists is refused, naming the existing deployment and pointing at a push instead of silently creating a second one.
- Deployments: a deployment's URL is the custom domain that actually serves it, and the managed hostname field always shows the platform hostname.
- Plans: an organization's plan is read from one source, so plan limits and billing agree.
- Computers: a resume after a host restart finds the disk of a computer claimed from the warm pool.
October 13, 2026
- Optimal: the chat streams a reply as it arrives, with tool steps in the reply's own row, an approval card answered in place, and a machine tab that can pause, resume, snapshot and destroy a machine.
- Optimal: deployments are managed from the workspace panel, and recent chats move into the sidebar so
/optimalreopens the most recent chat.
- Access: workspace-scoped keys can delete computers in their own workspace. Creating, resizing, updating and cloning a computer are still refused.
- Computers: the desktop viewer reports its connection state to the embedding page.
- Sandboxes: a resume that fails keeps the sandbox's stored disk instead of discarding it.
- Sandboxes: a stopped sandbox resumes even when its host has no free slots of that shape, which previously returned a capacity error and left it stopped.
- Computers: the desktop viewer opens for computers that are private, tenant-scoped or key-scoped, not only public ones.
- Computers: hibernation retries are bounded, every attempt reports an outcome, and a computer no longer hibernates repeatedly while it is still active.
- Computers: resuming during a maintenance window restores memory and open windows instead of cold booting the disk.
- Computers: a start is no longer left waiting on a maintenance run that already failed.
- Optimal: a send that cannot run because no model key is connected is refused before a sandbox is provisioned, and a chat sandbox stops when it goes idle.
- Access: organization owners, admins and organization-wide members reach every workspace in their organization.
October 12, 2026
- Sandboxes: read what a sandbox can change live with
GET /api/v1/sandboxes/{id}/resources, and change vCPU or memory withPATCH /api/v1/sandboxes/{id}/resources, the SDKsandbox.resize()call, ormiosa sandbox resize. vCPU resize is live on a running Firecracker sandbox, up to the count it booted with. Memory resize is rolling out across the warm pool: a sandbox reports whether it supports it in itscapabilities, and one from an older warm slot reportslive_memory: falseuntil that slot is rebuilt. SOMA sandboxes resize on their own host. - Sandboxes: a persistent code interpreter, so Python and JavaScript keep their variables, imports and definitions across cells, with named contexts and a reset, through
POST /api/v1/sandboxes/{id}/code/run. - Sandboxes: creating from a template that has a start command with
wait: truereturns as soon as the sandbox is running, instead of timing out on an app that nothing had started yet. @miosa/sdk3.7.1, the Pythonmiosa2.16.1 and@miosa/cli2.3.1, which add the sandbox resource and resize calls and themiosa sandboxcommand group.- Sandboxes: the Docker template is a real catalog entry rather than an assertion - Compose and Buildx are claimed only for a promoted generation.
- Sandboxes: any vCPU and memory combination is accepted, not only the named sizes, through
cpu_count,memory_mbanddisk_size_mbonPOST /api/v1/sandboxes, with plan ceilings reported per field. - Templates: one image with starter content -
miosa-sandboxis the image, andnextjs,nextjs-postgres,static-htmlandfastapi-authare content you seed into it, exposed with akindso a client can group them. - Agents: an official tool server catalog -
GET /api/v1/mcp-catalog,POST /api/v1/mcp-catalog/{slug}/installandPOST /api/v1/mcp-catalog/{slug}/test, with 40 reviewed vendor entries, keys held as placeholders and a test before anything is saved. - Agents: Hermes Agent is a first-class runner -
POST /api/v1/runswithrunner: "hermes", and the catalog publishes which harnesses accept which credentials. - Agents: agent accounts for your own end users -
GET /api/v1/agents/credentials,/agents/settings,/agents/modelsand/connectionsresolve at organization, workspace or external-user scope withscopeandinheritedsaying where a value came from. - Billing: learning credits - pass glossary, game and video checks to earn up to $100 per person and per organization, paid against a verified email and an account at least 24 hours old, issued as wallet lots that expire after 180 days.
GET /api/v1/learn/programis the public probe. - Docs: learning progress is saved to your account and follows you across devices -
GETandPUT /api/v1/account/learning-progress. - Databases:
/api/v1/databasesis the one create route and/managed-databasesa thin alias, so older clients keep working. - SDKs and API: a workspace-scoped key can now reach sandbox deploy and snapshots, deployments (show, delete, rollback, redeploy, stop, env, database, custom domains), databases (list, create, show, delete, start, stop, backup, query - never credentials), storage buckets, objects and volumes, Forge repositories, refs, files, pull requests, checks and releases, and the read-only credit balance.
- A sandbox reports, per sandbox and per host, what it can change live and why it cannot, instead of a client having to assume.
- Agents: harness run start is faster - a shorter launcher wait, chat machine reuse and no install at run time.
- Agents: one image bakes Claude Code, Codex and OSA, and the other harnesses install on first use, so sandbox startup no longer waits on prebaking every runner.
- Sandboxes: a shape whose slots are all leased boots cold instead of being refused.
- Templates: Python starters install into their own virtual environment, so nothing depends on a bare
pythononPATH. - Docker: the Docker, Compose and Buildx claims come from a promoted generation rather than being asserted.
- Databases: host operations are addressed by fleet node id,
/managed-databasesset the owner, and a delete marks the database destroying first so it no longer races the boot reconciler. - Sandboxes: a shape that does not resolve answers
422 SANDBOX_SHAPE_NOT_AVAILABLEorSANDBOX_SHAPE_AMBIGUOUSinstead of500 SANDBOX_CREATE_FAILED. - Sandboxes: exhausted network slots answer a retryable
503 SANDBOX_SLOTS_EXHAUSTEDwithRetry-After. - Sandboxes: an explicit
runtime_profileis honoured - it answers503 SOMA_RUNTIME_UNAVAILABLEwhen no eligible host exists, whileautofalls back and reportsruntime_fallback_reason. - Sandboxes: the browser viewer and CDP WebSocket URLs returned by
POST /api/v1/sandboxes/{id}/browsernow connect instead of answering404on every client. - Agents: connection key paths for Airtable, Atlassian and Supabase are accepted as those vendors document them.
- Computers: a warm-pool computer restored from a region slot carries its live-memory plan instead of reporting live memory unavailable.
October 11, 2026
@miosa/cli2.3.0 adds the sandbox runtime option andmiosa runtimes list, after 2.2.0 addedmiosa deploy create, continuing the single@miosa/cli2.x line across npm, Homebrew and script installs.- Sandboxes: choose the runtime a sandbox boots on - Firecracker (the default), SOMA, or auto - over the API, with
miosa runtimes list, the SDKruntimeoption and the console runtime picker in the same release. SOMA is early access, enabled per organization. - Sandboxes: an idempotent create that hits an uncertain placement outcome returns a retryable
503withRetry-Afterinstead of a terminal409, so a retry with the sameIdempotency-Keyresolves to the same sandbox. - Sandboxes: a live, interactive browser with a CDP endpoint, so an agent and a person can share one session, with an https live view and revocable view or control links.
- Sandboxes: a paused sandbox wakes on the next request to its preview URL, and on accounts created on or after October 11, 2026 a sandbox without an explicit idle timeout pauses after 30 minutes idle.
- Releases: changing environment variables or config creates a new release over the same build, and rolling back restores that release's frozen config.
- Forge: a repository gets a default merge policy, a one-person organization can merge its own pull request, and a branch can be created through the API.
- Status: per-service uptime and mean latency history over the last hour up to 90 days.
- Status: sustained downtime drafts an incident for an operator to review and publish.
- Databases: a lifecycle activity timeline, so a database's create, start and stop events are visible on its detail page.
- Environments: named, versioned environments for sandboxes and computers, with an organization default and per-workspace overrides, over
GETandPOST /api/v1/environments. - Snapshots: named snapshots with a per-organization allowance, per-machine history with search, and a file browser and download that work while a machine is stopped or gone.
- Setup and scripts: a setup file on sandbox and computer create, run once in the background after the machine is ready, with setup status and error reporting.
- Connections: a Connections module for tool servers and apps, backed by a shared per-account credential store, per-harness settings and a model catalog.
- Harness support now covers Claude Code, Codex, OSA, pi, OpenCode, Prime Agent, Kimi Code, Mistral Vibe and Custom.
- Environment secrets stay out of snapshots, forks and resumed memory.
- A snapshot's file browser runs on a machine host, never the control plane.
- Documentation: a redesigned docs experience with Learn paths,
⌘Ksearch and Ask OSA, plus expanded Browser use, Computer use, OpenComputers, SOMA (early access, enabled per organization), Trust Center and status pages. - Sandboxes: the browser can run in a 1 GiB sandbox - the memory floor drops from 1.5 GiB to 800 MiB, with a low-memory Chromium profile.
- Sandboxes: a browser that your own code already started can be watched -
POST /api/v1/sandboxes/{id}/browserstatus lists other Chrome processes in the guest and attaches by a debugging port found on a browser process only. - Sandboxes: a per-browser CDP host at
cdp-{id8}-{token}.sandbox.miosa.ai, andbrowser.running,browser.stateandbrowser.observed_aton the sandbox so a restart never leaves a stale "browser running". - Templates: Docker CE with Compose and Buildx is advertised in the template catalog, for certified images only.
- Every MIOSA email now shares one consistent, branded design.
- Deployments report the URL that actually serves, including App Engine apps that register their own host.
- Deployment versions expose immutability and a sealed timestamp, and the API reports whether a deployment's config has changed since its live release.
- Sealed deployment artifacts are immutable at the storage layer: a built artifact is never overwritten by different content.
- App Engine responses carry a version header that identifies the live release.
- The status page needs several consecutive probes before it moves a service to degraded or down, so a single blip no longer reads as an outage.
- Sandbox, computer and deployment pages show placement (MIOSA-managed or your own cloud) instead of "Placement unknown".
- Private previews and remote computers enforce visibility on every host, and WebSocket previews work across hosts.
- Snapshot delete refuses to remove anything still in use, and fork, clone and restore start clean.
- The pricing API now states the billing basis.
- Sandboxes:
instant-codesandboxes create successfully again, and the template catalog is reconciled to the setGET /api/v1/sandbox-templatesactually serves. - Deployments: appliance operations run through the owning host, so appliance CPU and memory readings are current instead of stale.
- Sandboxes: port probes work in images without netcat, and a fresh app-template sandbox no longer waits on an application nobody started.
- Publishing the same sandbox again reuses its deployment and URL instead of creating a duplicate app.
- The sandbox template catalog lists exactly the templates you can launch, and every listed template creates successfully.
- Redeploying keeps every attached hostname routed and drops stale ones.
- A deployment will not start while its linked database is missing or not ready.
- Deployment environment secrets are write-only: saving the masked preview back over a stored secret is refused.
- Sign-in works immediately after a password reset or signing out everywhere, instead of the new session being rejected.
- Validation errors read cleanly, without raw
%{count}placeholders. - "Total computers" no longer counts destroyed machines.
- Deployment links point at
miosa.ai, the dashboard host. - A stopped deployment returns a branded page with a retry hint instead of a bare error.
- Artifact conflicts and digest mismatches return clear
409and422responses instead of a server error. - A database that stalls while deleting is detected so the deletion can finish.
- A machine's outbound-network profile is applied reliably.
- Manually running a cron job is recorded in the audit log.
- A cron job's execution history can be cleared from the dashboard.
- Setup helpers work on minimal Debian guests.
- Sign-in and accounts: a user with no organization membership can sign in and reach onboarding -
GET /api/v1/auth/mereturnstenant_id: nullandneeds_onboarding: true. - Sandboxes: customer SOMA sandboxes get egress, live resize and the prepared image.
- Sandboxes: a typed refusal when a SOMA sandbox with plugged memory is paused, forked or snapshotted -
409 SOMA_MEMORY_PLUGGEDcarrying the plugged, booted and total memory and the instruction to resize back. - Computers: a restore uses the runtime version that wrote the slot, and snapshot paths and records carry that version.
- Forge: a Forge automation re-run's
commit_shais no longer mistaken for a card number.
October 10, 2026
- Agents: agent versions reference an environment, with MCP secrets and machine steering on computers.
- Wallet and organizations: choose which organization pays for new machines, with per-member caps.
- Invites: invited people join the inviting organization, with a branded invite email, resend and branding uploads.
@miosa/sdk3.5.0 and 3.6.0, and React, Svelte and Vue wrappers 0.4.0.@miosa/cli2.0.0, one CLI across npm, Homebrew and script installs.- Python
miosa2.3.0 through 2.15.0, and Gov2.1.0andv2.2.0. - Rust
miosa0.1.0, the first release. - Java and Elixir SDKs updated (package release pending).
- Sandboxes: a live interactive browser with a CDP endpoint -
POST,GETandDELETE /api/v1/sandboxes/{id}/browser,/browser/share,/browser/cdp-url, a CDP screencast and input viewer, and view-only share links. - Sandboxes: drive that browser without CDP -
GET /api/v1/sandboxes/{id}/browser/screenshotandPOST /api/v1/sandboxes/{id}/browser/actionsfor click, type, key, scroll, drag, navigate, back, forward, reload and wait. - Sandboxes:
POST /api/v1/sandboxes/{id}/processes/{pid}/signaland/stdinsend a signal or write to a running process. - Sandboxes:
fail_faston sandbox create, run, fork and resume, and on computer create and start, answers503 NO_READY_MACHINEbefore anything starts or bills. - Sandboxes: snapshot share links -
POST,GETandDELETE /api/v1/snapshots/{id}/sharesplus publicGET /api/v1/shared/snapshots/{token},/treeand/files, scoped to a folder, expiring and read-only. - Sandboxes:
GET /api/v1/sandboxes/{id}/desktopanswers422 DESKTOP_NOT_AVAILABLE_FOR_SANDBOXESpointing at/browserinstead of a misleading success. - Computers:
GET /api/v1/computers/{id}/desktop/window-statereturns the screenshot and the accessibility tree in one round trip. - Deployments: environment or config changes mint a new release over the same artifact, the rollout applies that release's frozen config, and the release reports a config fingerprint and whether the config changed.
- Deployments: deployment versions expose
immutableandsealed_at, and a storage immutability refusal maps to409or422rather than a generic error. - Deployments: connecting a repository with auto-deploy on now enqueues the first build instead of leaving the deployment pending until a push.
- Deployments: storage usage -
GET /api/v1/storage/usage(narrow with?workspace_id=) andGET /api/v1/deployments/{id}/storage-usage, with each store labelled metered, partial or not metered so an unmetered store is visible rather than a fake zero. - Databases:
GET /api/v1/databases/{id}/activityreturns a database's lifecycle activity, merging audit and host events, newest first and paginated. - Forge: asynchronous code-host import -
POST /api/v1/forge/github/imports(now 202),/imports/batch,GET /imports,GET /imports/{id}andPOST /imports/{id}/retry, withqueuedandcloningprogress. - Forge: a default merge policy with solo self-merge,
POST /api/v1/forge/repositories/{id}/branches, and head and base aliases. - Forge: repository abuse reports and their resolution -
GET /api/v1/forge/reports,POST /forge/reports/{id}/resolve. - Agents: schedule or trigger an agent -
GETandPOST /api/v1/agents/{id}/triggers,PATCHandDELETE /agents/{id}/triggers/{trigger_id},POST /agents/{id}/triggers/{trigger_id}/fire, an inboundPOST /api/v1/agent-triggers/{token}, and run approvals atGET /runs/{id}/approval-gate. - Agents: agent sessions - continue a run against the same session instead of starting from scratch.
- Agents: sign in to Claude Code and Codex from the console and reuse that login in a sandbox -
GET /api/v1/agent-accounts,POST /agent-accounts/api-keys,POST /agent-signinsandPOST /agent-signins/{id}/code. - Agents: a maintained harness model catalog - Claude Code, Codex and Ollama Cloud models with their context windows - on
GET /agents/harnessesand/agents/harness-versions?include=models. - Agents: per-run provider cost and usage on your own keys at
GET /api/v1/runs/usage, with grouping by agent, chat, workspace, day, model or harness and arun.costwebhook event. - Agents: OSA runs natively on Ollama Cloud when the organization holds an Ollama credential.
- Sign-in and accounts: two-factor is enforced on writes - an owner of an organization with more than one member or an active payment method gets a structured
403 MFA_REQUIREDon non-GET billing and member routes. Reads are never gated and solo owners are not affected. - Sign-in and accounts: signup trust - a human-check widget on register and after three failed logins, a disposable-email deny-list, a per-IP signup throttle of ten an hour, and the welcome credit only once the email is verified and only once per identity.
- Sign-in and accounts: a new-sign-in email when a sign-in comes from a device the account has not used in 90 days, throttled and suppressible.
- Sign-in and accounts: SSH is configurable per organization, workspace, environment and machine - login user, sudo, principal format, TTLs, extensions and allowed key types - with a bring-your-own or platform-generated SSH certificate authority, rotation that keeps the old authority trusted for an overlap, and a white-label SSH hostname verified by a TXT record.
- Sign-in and accounts: authorized keys per machine with a label and an expiry enforced by the guest sshd, and a revoke that removes exactly that line; keys carry an external user id so end-user credentials see only their own.
- Sign-in and accounts: API keys are fully customizable - description, label, metadata, expiry, resource wildcards, project restriction, named rate-limit tiers, machine-bound and end-user-bound keys.
PATCHonly narrows, rotation takes a grace period up to seven days, and usage is reported. - Sign-in and accounts: Developer keys gain enforced per-key request budgets, revocable scoped tokens at
GET /tokens/scoped,POST /keys/{id}/rotate, authenticated external connection checks atPOST /developer/connections, and confirmed webhook replay. - Webhooks: every delivery carries
X-MIOSA-Webhook-Signature: t=<unix>,v1=<HMAC>with a 300-second tolerance. - Billing:
GET /api/v1/compute/pricingpublishes each plan's enforced ceilings - concurrency as separate computer and sandbox numbers, per-resource limits and the allowed sizes. - Billing: at-rest storage for agent run artifacts is metered.
- Status:
GET /api/v1/status/historyserves per-service uptime and mean latency, in one-day buckets up to 90 days and one-hour buckets up to 14 days. - Docs and emails: one shared design for every platform email, with the category named in the masthead, and new account emails for a changed or reset password, a created or rotated API key, an accepted invite, a top-up receipt and a scheduled account deletion.
- Product language is applied consistently across API messages and console copy.
- Email delivery moved to a durable queue with a rate limit, retries and a dead-letter, so account and billing email is not lost under load.
- WebSocket upgrades to a sandbox on another host no longer hang.
- API keys work on private previews, preview policy is enforced before the cross-host hop, and remote computers report their visibility.
- Deployments: a stopped deployment serves a branded page, and responses on platform and custom-domain hosts carry
x-miosa-deployment-id. - Status: degraded now needs a signal a person can feel rather than flipping on a few milliseconds.
- CLI routes for upload, rename, chmod, copy, fork, workspace stats and ssh-info.
- Malformed ids answer 400, and the OpenComputers start-job route works.
- Billing gaps for named snapshots, member caps and stop reason.
- Sign-in and accounts: tokens issued after a password reset or a sign-out-everywhere stay valid, and emailed links that returned 404 now resolve.
- Sign-in and accounts: naming a new organization no longer fails when the name's slug is already taken - it retries with a short suffix.
- Sandboxes: restoring a snapshot that is still being written answers a retryable
409, and a named snapshot says why it cannot be deployed yet. - Sandboxes: an omitted disk size adopts the floor of the shape's CPU and memory.
- Databases:
updated_atis returned, so the console stops saying "updated not reported". - Deployments: republishing a sandbox reuses its deployment, a retried publish lands on the deployment the first attempt made, and a redeploy keeps every attached hostname routed while dropping stale ones.
- Deployments: running a deployment with a missing or unready linked database is refused.
- Builds: build failures read as sentences, and a build stuck queued or building for three hours fails so the build and deployment settle.
- Webhooks: internal targets are refused and redirects are never followed on delivery.
- Agent workflows: archiving a workflow also removes its event subscriptions, and a trigger's last status follows its run to the final state.
October 9, 2026
- Agent runs and sessions can start on any machine you can reach, with approvals and triggers.
- Agent runtime capabilities are bring-your-own-key, and the harness auto-updates.
- API-key usage attribution and credential controls, including scoped keys.
- A model catalog adds the latest Claude, Codex and Ollama Cloud models with context windows and capabilities.
- A Developer welcome, API workbench and resource workflows for building against the platform.
@miosa/sdk3.4.0 and 3.4.1.- Agents: run an agent on a new machine rather than an existing one, choosing the target at launch, with scoped access for the run, a notice when it finishes, and the run's cost.
- Agents: the harness catalogue advertises its run targets and each harness's run capabilities, so a client can pick a valid target before launching.
- Agents: agent runtime is bring-your-own-key only; every platform-credit path for agent runs is gone.
- Agents: a chosen model is honoured by OSA, passed through as
OSA_MODEL. - Sandboxes and computers: a setup file runs once after the machine is ready -
setup_fileonPOST /sandboxes,POST /computersandPOST /sandboxes/batch, up to 64 KiB, withsetup_statusandsetup_erroron the machine. - Sandboxes and computers: run a command and read its output -
POST /sandboxes/{id}/commandsandPOST /computers/{id}/commandstake a command, working directory, timeout and optional stdin, and return stdout, stderr, exit code and duration. - Agents: steer a running agent from inside the machine -
POST .../agent/promptsand.../agent/stop, withmiosa-queue-promptandmiosa-stop-agentinstalled before every setup script. - Sign-in and accounts: short-lived SSH certificates for one sandbox -
POST /api/v1/sandboxes/{id}/ssh-certificatesandPOST /sandboxes/{id}/ssh-keyswith"certificate": true, default 900 seconds and a one-hour maximum. - CLI:
GET /api/v1/whoamifor key-authenticated callers, newconnections:readandconnections:writescopes, and an API key usable with tool servers, connected accounts and CLI tools. - CLI:
POST /sandboxes?wait=<seconds>waits on the create for readiness, andGET /agents/chats/{id}/contextreturns used, window and remaining tokens with a compaction count. - CLI: a sandbox TCP tunnel at
WSS /api/v1/sandboxes/{id}/tunnel/{port}for port forwarding. - Snapshots: snapshot delete refuses to remove anything still depended on and names the dependents, and snapshot history lists per machine with search, a workspace filter and paging.
- Agent usage and estimated spend are shown against your own provider keys.
- Sign-in alerts, and automatic billing resume for computers whose credits ran out.
- CLI: sandbox file upload works for multipart bodies instead of answering
500, and rename, chmod and copy work on every guest image instead of answering502. - CLI: an unnamed sandbox fork derives a unique child name instead of failing, and ssh-info and workspace stats return correct values.
- Developer platform: a malformed id in a path answers
400 INVALID_IDnaming the field instead of500, and an unknown well-formed id answers404. - Sandboxes and computers: the setup helper commands are on
PATHinside a login shell on Debian guests. - Snapshots: the snapshot file browser runs on a machine host and refuses to run on the control plane, so browsing works while the machine is stopped or gone.
- Sign-in and accounts: signup, sign-in and verification emails are delivered again after an outage that silently dropped them, and code emails are only reported as sent once the provider accepts them.
October 8, 2026
- The Sandboxes console was rebuilt around a one-column overview that scales to thousands of sandboxes.
- Usage rollups, resource attribution, and shared link and graph views.
- Forge preview deploys and project links.
- A workflow builder and workflows v2.
- OSA runs natively against Ollama.
- Agents: a run can be dispatched to any machine you can reach instead of the one you pass, with the harness chosen at launch.
- Agents: approvals and triggers for agent runs, including scheduled and inbound webhook triggers, and a run's approval gate exposed on the run.
- Agents: agent CLI versions auto-update inside a guest, and a run resolves the latest CLI and warns when the version registry is unreachable.
- Deployments: run an automation on merge -
GETandPOST /api/v1/repositories/{id}/automation-runs. - Billing: when a credit top-up lands, computers that billing had suspended resume automatically, matching what sandboxes already did.
- Console: the Command Center shows real data - registered and running agents, sandbox and deployment resources, usage and cost - and streams that tenant's resource and run events.
- The Sandboxes module now surfaces the routes the console previously never used, with honest environment and lifecycle state.
- Sandboxes: a resume waits for an in-flight checkpoint instead of timing out and leaving the row paused.
- Projects: rows that belong to a workspace but no project are assigned the workspace's default project.
- Stuck boots and lifecycle actions report the truth.
- Agents: an agent sign-in no longer answers 404 once its sandbox exists; it waits for the machine and answers
SIGNIN_TARGET_NOT_READYorSANDBOX_BOOT_TIMEOUT, and destroys the sandbox when it cannot boot. - Billing: a computer suspended for exhausted credits and later stopped is no longer cold booted while suspended.
October 7, 2026
- The sandbox runner region is selectable from the console.
- Developer is now an immersive entrance with an API workbench and complete platform workflows.
@miosa/sdk3.3.0 and 3.3.1.- Sign-in and accounts: organization SAML single sign-on, with an owner-only admin API, identity-provider metadata import, domain verification and an enforce-SSO gate on sign-in.
- Agents: an Agents API for versioned agent definitions -
GETandPOST /api/v1/agents,GET,PATCHandDELETE /agents/{id},POST /agents/{id}/restore, version history, duplicate, the agent's runs, and templates. - Workflows: build and publish node-graph workflows -
GETandPOST /api/v1/workflows, publish, pause, resume, run, versions, a webhook, the node-type catalogue and run history. - Projects: a resource graph with
GET /api/v1/graph,/search,/links,POST /links/preview, and per-resource connections and impact, plus a project summary. - Developer platform: platform events and subscriptions -
GET /api/v1/platform-events, the outbox,GET|POST /event-subscriptions, delivery history and redelivery. - Developer platform: tool servers and MCP -
GETandPOST /api/v1/mcp-servers,GET,PATCHandDELETE /mcp-servers/{id},POST /mcp-servers/{id}/test, plus connected accounts and CLI tools. - Billing: usage and cost by project -
GET /api/v1/usage/projectsandGET /projects/{id}/usage. - Forge: link a repository to a project and deploy on push -
POST /api/v1/repositories/{id}/project-linkandGET /repositories/{id}/deployments. - Forge: pull request previews, tags, check suites, releases, provenance and attestations, merge policy and code owners, plus commit detail at
GET /api/v1/repositories/{id}/commits/{sha}. - Console: the Developer, Workflows, Storage, AI Gateway, SSO, Products, Observability and Forge screens are backed by real endpoints instead of placeholders.
- Every console screen was rebuilt to reflect real state.
- SDK guides and management states were repaired.
- Storage: presigned access now returns signed gateway URLs, so bucket policy and quota apply to presigned downloads.
- Open Computers: host metrics and persisted job history, Compose projects routed with per-host frames, and IDE sessions.
- Projects: a project that still has agent definitions cannot be deleted, and the API names the dependent resources instead of failing late.
- Audit and usage:
GET /api/v1/audit-logaccepts and returnsworkspace_id, andGET /api/v1/usageechoes it; a foreign workspace is a403. - Computers: host-seeded guest files are world-readable, so a reused desktop rootfs comes up with a working resolver and its screen starts.
- Databases: a refused connection to an ephemeral Postgres instance fails fast instead of leaking a connection pool.
October 6, 2026
- Invites link to the frontend, and invited people join the inviting organization.
- Sign-in and accounts: an invited person who signs up joins the inviting organization instead of getting a personal organization.
- Sign-in and accounts: resend an organization invite, a second invite for the same address supersedes the first link, and the invite preview reports whether the account exists and who invited it.
- Sign-in and accounts: branded invite emails, and a new company organization can pull its branding from its own website, filling only empty fields.
- Sign-in and accounts: upload branding artwork with
POST /api/v1/settings/branding/assets/{kind}, served from a public content-hashed route.
- Computers: a hibernated computer wakes from its saved memory again instead of a cold boot, so hibernation survives a service restart.
- Deployments: navigating a static site always resolves to the active version, and a stale version pin is cleared on the next navigation.
- A static deployment navigation never serves a superseded version.
- A computer never restores a memory snapshot onto a newer rootfs.
- Sign-in and accounts: invite links in the email and the console banner point at
miosa.ai/invites/{token}instead of an API host that answers 404.
October 2, 2026
- Sandboxes: opt-in runner endpoints, documented at
/docs/develop/sandboxes/and/docs/api-reference/sandboxes/-run-us.miosa.ai, aSoma-Runner-Urlresponse header on create,runner_urlon a421, the runner error codes, HTTP/3 with an HTTP/2 fallback, and a 300-second idle timeout you can raise withPATCH /api/v1/sandboxes/{id}. - Console: every API key shows the runner endpoint it talks to, in the create review step, the key reveal, the key inventory and the key detail dialog, with opt-in runner-mode SDK and cURL snippets.
- Status page: a Sandbox runners section showing per-runner status, feed age and pool depth, with an explicit placeholder when the control plane reports nothing.
- Sandboxes: a resume queued behind an in-flight pause is answered honestly instead of coming back as
503 restore_outcome_uncertain.
- Computers: a desktop that has only ever been resumed can cold boot, after two persistent-disk defects - a stale first-boot marker that permanently disabled machine-id repair, and stale X display lock files.
- Computers and sandboxes: tearing one down no longer unregisters an egress address owned by a different live machine.
- Sign-in and accounts: a revoked or rotated API key stops working on every control-plane node immediately instead of remaining usable for up to a minute.
October 1, 2026
- Egress profiles per computer and per workspace, with host policy routing.
- Viewer stream tokens take a caller-supplied time to live and support cluster-wide revocation, so a live view can be expired or revoked by the owning tenant.
September 2026
September 30, 2026
- Workspaces:
POST /api/v1/workspacesresolves a create against stable identity - a matching external id returns200withreused: true, and a live workspace with that name returns409 WORKSPACE_NAME_EXISTScarrying the existing workspace so a client can adopt it.
- The reported burn rate matches what the console shows.
- Billing:
GET /api/v1/account/billing/overviewreports a recent daily rate separate from the mean, a runway rate that cannot overstate it, a burn trend, and managed databases as their own cost bucket.
- A rootfs that already holds customer data is never deleted.
- Stopped time is cleared when a computer returns to a billable state.
- Computers: the orphan sweep no longer kills a running desktop whose database row disagrees with reality.
- Computers: waking a desktop no longer deletes a rootfs that already holds customer data; adopting an existing rootfs is explicit and deletion requires an explicit flag.
- Sandboxes: a reconcile job no longer stamps an intact persistent sandbox as errored and destroyed by checking the wrong disk.
- Sandboxes: restoring from a large snapshot is no longer reaped as an orphan while the archive is still downloading.
- Sandboxes: a restore is no longer refused because an unanchored process match found the sandbox's own leftover helper.
- Sandboxes: restore works after a host restart, with each stub drive path recovered from the recorded snapshot.
- Sandboxes: paused sandboxes no longer lose their newest checkpoint to a date-ordering bug in retention.
September 29, 2026
- Deployments: a white-label static deployment's managed alias no longer returns
503 static_artifact_unavailable- the primary hostname and the managed alias share one route and replay and deregister together. - Computers: a fresh cold boot no longer erases the guest configuration it just wrote when a pending filesystem journal is replayed afterwards.
- Sandboxes and computers: guest metrics sampling no longer crashes once a minute on a paused machine.
- Sandboxes: new sandboxes no longer log platform-tools staging failures from an archive that the refresh job had overwritten and pruned.
September 27, 2026
- Billing: a tenant on a plan nothing is charging can start paying - the plan row offers "Set up payment", the same checkout Subscribe uses.
- Billing: Enterprise can be subscribed to from the app rather than only contracted, with its price rendered and a Subscribe action.
- Console: the usage Spend view shows a current burn rate for the last 24 hours, the trailing mean separately with the trend in words, and a balance runway taken from the faster of the two.
- Console: the credit ledger has sticky day bands carrying each day's net movement, tabular amounts with the credit count under the dollar figure, and labelled chips instead of raw event names.
- Console: managed database spend has its own segment and colour in the cost donut instead of being folded into compute.
- Console: cloud accounts, workspace spend, the ledger, plan rates and the digest panel distinguish empty from filtered-empty from a failed fetch, and a failed load more surfaces the error.
- Console: an unread credit balance reads "Not reported" with the ledger error shown, instead of a false zero.
- Console: plan limits the API does not publish are omitted rather than asserted, so no invented included-credits line and no false percentage.
- Billing: the processor line no longer names a payment provider for a subscription that has none.
- Computers: resumes stop returning
503 resume_lock_timeoutfor minutes while a peer checkpoint copy is rebuilt. - Sandboxes: a paused sandbox no longer loses its last checkpoint generation when the retention conversion and the pause's own background checkpoint run at once.
- Computers and sandboxes: exec and file requests no longer return
500in the minutes after a control-plane deploy. - Computers: resumes no longer fail after a host rolls back to an earlier release.
- Computers and sandboxes: resumes are no longer refused because the host's memory ledger had drifted far above real usage.
September 26, 2026
- Deployments: wildcard TLS for a white-label tenant's base and sandbox hostnames through a DNS challenge, with the matching wildcard routes.
September 25, 2026
- Deployments: a published deployment can be taken off the air -
POST /api/v1/deployments/{id}/stopremoves its public route and records it as stopped, andPATCHwith a state now answers422 STATE_NOT_PATCHABLEinstead of a silent success.
- Deployments: preview WebSocket upgrades are relayed instead of returning
502.
- Deployments: App Engine app subdomains are routed through the platform proxy, so they resolve.
- Databases: a managed database is recorded as running and recoverable, and the recovery reconciler no longer crash-loops.
- Sandboxes: sandboxes orphaned by a host restart are repaired from their recorded checkpoint.
- Sandboxes: exec and stream requests that can never run return a normal JSON error instead of a broken stream.
- Computers: a desktop can be woken again after a restart.
- Computers: white-label desktop branding is applied through the live session bus.
- Snapshots: a snapshot is no longer failed by an unrelated restore failure, and legal state transitions are locked.
September 24, 2026
- Sandbox template bake and publish use reflink-aware clones, with generation retention and golden dedupe.
- Deployments: a custom domain can be given a wildcard TLS certificate by delegating its ACME challenge with a
_acme-challenge.<domain>CNAME to the platform's delegation target, enabled per tenant. - Databases: managed database provisioning is reachable per workspace with the project's real workspace id.
- Deployment platform hardening across edge batching, routing contracts and capacity triggers.
- Deployments: edge route pushes are batched into one configuration push, so a control-plane restart no longer opens and closes every proxied WebSocket connection.
- Deployments: per-request logs moved off the transactional store and now age out at 14 days.
- Billing uses a sub-credit accumulator, fixing per-tick rounding that overcharged large machines and billed small ones zero.
- Metering now covers previously unbilled deployment branches, and admin reversals no longer count as consumption.
- Databases: a managed database's default-name collision is resolved with a per-project name, so provisioning stops creating the wrong database.
- Domains: a domain that failed verification is re-verified and recovered once DNS proves current.
- Domains: TLS issuance is budgeted and returns
429with a named code when a tenant or the platform exceeds its issuance budget. - Computers: desktop boot readiness probing is correctly sized, and a desktop boot failure reports its real cause.
- Computers: the live guest token is re-persisted on every boot, so a machine stays reachable after a reboot.
- Computers: removing one computer no longer destroys guest access tokens belonging to others.
September 23, 2026
- Sandboxes:
GET /api/v1/sandboxes/{id}/toolsreports the shared AI runner toolchain installed inside a sandbox - Claude, Codex and the Gemini CLI - with a manifest generation and install time. - Sandboxes: a paused sandbox can resume on a second host when its own host is full or ineligible.
- Billing: a sandbox suspended for exhausted credits resumes automatically once credit is topped up.
- Agents: every sandbox and desktop gets a shared, always-current AI runner toolchain injected at boot and kept in sync from the registry.
- Computers: the metrics payload carries the guest's own memory, disk, process and thread figures alongside the host view.
- Sandboxes: attestation reports every failed check, not just the first.
- Console: live event streams are told before a control-plane shutdown and given a reconnect hint, instead of dropping silently.
- Custom domains close a policy bypass, and TLS issuance is now recorded.
- The default edge function is bootable.
- An upstream header timeout answers 504, not 503 maintenance.
- Sandboxes: capacity refusals surface immediately in readiness and share one error shape, so a create no longer looks like it is still starting.
- Sandboxes: a create verifies the candidate host holds the template artifact before landing, so it fails up front instead of producing a broken sandbox.
- Sandboxes: operations stranded behind a stale lifecycle pointer are recovered.
- Sandboxes: a sandbox that errored without ever being assigned a machine is finalized instead of sitting in error.
- Computers: a computer adopted from the pool resumes from its pool identity after a control-plane restart.
- Deployments: an appliance whose computer vanished fails the stranded deployment honestly instead of hanging.
- Billing: a tenant's billing period rolls forward even when the scheduled roll never fires, so usage is not backbilled into the next period.
- Billing: static egress is measured before the response body is consumed, so it stops billing zero.
September 22, 2026
- Sandboxes: a new smallest shape,
sandbox/micro@v1at 1 vCPU, 512 MiB and 10 GiB, for function-sized work.
- Billing: tenants are no longer charged for warm-pool machines they never claimed.
- Billing: an admin credit reversal is no longer counted as customer consumption.
- Deployments: static responses can report a cache hit, because the edge cache now survives the request that reads it.
- Sandboxes: exec and file operations are subject to per-sandbox adaptive backpressure instead of piling on.
- Billing: per-tick sandbox settlement keeps sub-credit remainders, so large sandboxes stop being overcharged and small ones stop billing zero.
- Billing: deployment branches that were going unbilled are now metered.
- Edge functions: a function created with an omitted or too-small memory no longer returns a bare
502forever - out-of-range memory is refused at create. - Sandboxes: creating from a custom template converges a host whose stable rootfs path has drifted, instead of refusing forever.
- Deployments: a forced appliance restart can no longer blank a customer's containers.
- Deployments: binding a custom domain enforces the tenant's custom-domain policy, and the domain is promoted once the edge route is registered.
- Computers: a desktop with non-default branding no longer fails guest provisioning on a stray byte in its handoff command.
September 20, 2026
- Sandboxes: resuming a sandbox that is already running answers immediately instead of contending for the lifecycle lock.
- Sandboxes: a transient restore failure returns a named reason instead of a bare
503. - Sandboxes and computers: the error-row reaper no longer destroys workspaces that are still recoverable.
September 19, 2026
- Sandboxes: a full guest disk answers
507on file write and upload rather than502 AGENT_UNAVAILABLE.
- Sandboxes: resuming against a host that is momentarily unready answers
503instead of500.
September 18, 2026
- Sandboxes:
GET /api/v1/sandboxes/{id}/storagereports live workspace disk occupancy read from the guest, pressure on both bytes and inodes, and whether the sandbox can only be recovered rather than resumed. - Sandboxes:
POST /api/v1/sandboxes/{id}/recovery/exportreturns a read-only, allowlisted archive of a paused or errored sandbox's files taken straight off its disk, without booting the guest. - Sandboxes: writes and uploads report distinct storage codes - workspace full, inodes full, storage I/O error - and creates refused on disk exhaustion name host storage capacity.
- Sandboxes: a write the guest rejects as disk full is classified as non-retryable instead of being folded into a retryable transport outage.
- Sandboxes: resuming a sandbox that failed to boot on storage answers
409 WORKSPACE_RECOVERY_REQUIREDnaming the recovery export, instead of a generic not-paused error. - Sandboxes: creating or fetching a sandbox by a name whose previous sandbox is still being destroyed answers a bounded
409withRetry-Afterinstead of a success-shaped object. - Sandboxes: sandboxes on managed slots are grown to their shape's contract disk size, so creates stop failing boot with a disk-contract error.
- Sandboxes: a restore is no longer refused when a service restart left an empty runtime cgroup behind.
September 17, 2026
- Sandboxes: a checkpoint resume on a host whose network slots are leased out is refused immediately with a retryable
503 SANDBOX_HOST_CAPACITYinstead of after a long verification pass. - Sandboxes: a resident resume waits for the guest to answer before returning, so a later ready timeout no longer surfaces.
- Computers, databases and MCP: computer file, exec and screenshot tools, desktop tools, the sandbox screenshot tool, and managed database SQL, backup, restore and idle probes now run through the host that owns the workload, so they work from any control-plane node.
- Sandboxes:
GET /api/v1/sandboxes/{id}/readinessanswers a retryable503withRetry-Afterwhen a resume never confirms ready, instead of200 pendingforever. - Sandboxes: a checkpoint resume whose boot never confirms reverts to paused, and readiness names the timeout rather than reporting a bare paused row.
- Sandboxes: a restore whose recorded checkpoint generation is missing resumes from the newest committed generation instead of failing.
September 16, 2026
- Sandboxes: resuming a sandbox stamped as checkpointed goes straight to the restore, removing the client-side aborts on
POST /api/v1/sandboxes/{id}/resume. - Billing: a sandbox whose machine no longer exists on its host is no longer metered, and spend accrued while an idle pause kept failing is refunded.
- Billing: after a host restart, running sandboxes are re-registered with the idle detector, so a sandbox that survives a restart still pauses instead of running and billing indefinitely.
- Optimal: a parked tool call's Approve and Deny card appears in the chat even when the live event was missed, on a reload, a reconnect, or another device.
- Sandboxes: resume has a request budget, every resume error maps to a named non-500 status, and a create refused on disk exhaustion answers
503. - Sandboxes: a lifecycle lock timeout on resume answers
503, and a disconnected host no longer holds the lock.
September 15, 2026
- Approvals in Optimal chat, with auto-approve and tool steps in history.
- A warm desktop shows as live within a second of launch.
- Desktop terminals work, dedicated hosts stay dedicated, and hosts are cordoned only on real faults.
- Optimal: parked tool calls surface in the chat with Approve and Deny, with a per-workspace auto-approve switch in the chat header and tool results settling into their own call row.
- Optimal: settled approvals fold into the work summary instead of flooding the chat with a card per decided call.
- Computers: a desktop cold boot is about ten seconds faster, because the artifact resolver trusts the snapshot's integrity certificate instead of re-hashing the whole rootfs.
- Pending approvals survive a missed stream event, and per-actor tenant isolation stops leaking backend internals.
- Optimal: signing out disconnects the live stream and clears that user's cached history and auto-approve settings, and auto-approve is scoped to the signed-in user rather than the browser.
September 14, 2026
@miosa/sdk3.2.5.
- Computers: a desktop launched from the gallery shows as live within about a second instead of after several.
- Computers: the terminal pane inside a desktop session stops closing with "Disconnected: Unauthorized".
- Dedicated hosts: desktops, App Engines, live database placement and backup and snapshot restores fail closed on cells reserved for another tenant, so another tenant's work no longer lands on hosts dedicated to you.
September 13, 2026
- Sandboxes: a fresh boot grows the filesystem on the host as well as the backing file, so a machine whose rootfs sat inside a larger device boots instead of being refused by the disk contract.
- Sandboxes: a create refused for host capacity answers a retryable
503 NO_CAPACITYwithRetry-Afterinstead of500 SANDBOX_CREATE_FAILED.
- API: a request that outlives the gateway's response-header timeout answers
504 UPSTREAM_TIMEOUTwith the request id and a note to retry only with the same idempotency key, instead of503maintenance. - Sandboxes: a checkpoint restore whose snapshot is missing its rootfs refuses with a named error instead of silently booting a fresh disk under the restored memory.
September 12, 2026
- Sandbox sessions are restored across tabs, and running sandboxes are shown.
- Tenant federation binds a tenant's workloads to its own hosts.
- Sandboxes: sessions are restored across tabs, so opening the console in a second tab no longer redirects to sign-in.
- Tenant federation binds a tenant's workloads to its own hosts.
- OpenComputers enrollment, handshake and safe reuse were repaired.
- The tenant rate limit the cache resolves is the one enforced.
- The tenant rate limit the cache resolves is the one enforced.
September 11, 2026
- The active API key cap rose from 25 to 100.
- Computer shares and desktop warm adoption became platform-wide defaults.
- Sandboxes: sandbox templates can be composed in an interactive builder with selectable tools and editable resources constrained by your plan limits - Sandboxes, Templates.
- Billing: invoice history in the console, with provider PDF and hosted invoice links where the provider supplies them and explicit states when a document is missing.
- Console: the Sandboxes page shows a workspace-scoped running count and a paginated running list, refreshed while the page is visible.
- Saved payment cards are shown without replaying recovered payments, and automatic funding is durable.
- Google sign-in validates email verification before sign-in.
- Sign-in and accounts: a verified session is restored across tabs, and OAuth synchronisation and MFA trust expiry are handled.
- Billing: saved cards show the card network, brand, last four digits, expiry and the real default, and an existing-card holder sees "Add credits" rather than being asked to set up payment again.
- Billing: reachable from the main navigation and the account menu.
- Sign-in and accounts: onboarding requires an intentional organization name, shows and locks the permanent slug, preserves the selected workspace, and makes the plan step optional and explicit.
- Computers: the desktop viewer loads inside the gallery and viewer surfaces instead of being blocked by browser policy while the card read Live.
- Computers: computer cards no longer flood the startup stream while provisioning, terminals use the authenticated domain, and screenshots negotiate their format instead of being rejected.
- Sandboxes: the launch catalog uses only verified template sizes and exposes unknown or degraded readiness instead of hiding it.
- Sandboxes: warm slots grow their rootfs to the tier's disk before the guest checks it, so larger warm claims stop failing on a disk contract.
- Billing: automatic funding is durable - attempts are reserved before charging, monthly caps are enforced, the saved card is preserved, and a credit completion is retried without a second charge.
- Console: Forge is hidden from ordinary customer roles in navigation.
- BYOC: enrollment commands and connection readiness for your own servers were repaired, so a disconnected host is no longer reported as installed.
- A destroyed sandbox frees its name, and a world-readable guest resolver no longer blocks in-guest renames.
- OpenComputers host enrollment and connection reporting were repaired.
- Sign-in and accounts: Google sign-in now requires Google's verified-email claim, so an unverified address can no longer create a session.
- Sign-in and accounts: the tenant request rate limit is now actually enforced.
- Sandboxes: a create the runtime cannot satisfy is a
422with a named code andretryable: falseinstead of a500that invited a pointless retry. - Sandboxes: an uncertain placement is
503 SANDBOX_PLACEMENT_RECONCILINGwhen you sent an idempotency key and409 SANDBOX_PLACEMENT_UNCERTAINwhen you did not, instead of a500. - Sandboxes:
aptworks inside a sandbox - the baked package index is no longer scrubbed out of the golden image. - Sandboxes: containers inside a sandbox can reach the network.
- Sandboxes:
GET /api/v1/sandboxes?state=errorreturns your errored sandboxes instead of none. - Computers: starting a stopped computer reprovisions from the durable disk instead of returning
500 failed to wake computer. - Console: onboarding reuses your signup workspace and migrates the old implicit draft.
September 10, 2026
- Sign-in and accounts: the active API key limit per workspace rose from 25 to 100, and the refusal names the real limit.
- Sandboxes: a paused sandbox holding a committed checkpoint is no longer flipped to error by a crash writer.
- Sandboxes: a destroyed sandbox frees its name, so reusing a stable name succeeds.
- Sandboxes:
apt-get updateworks inside a sandbox - the guest resolver file is world-readable and/tmpis no longer a self-bind mount, somvandrenameacross/tmpsucceed.
September 9, 2026
- Pausing an already paused sandbox is idempotent instead of an error.
- Streaming exec honors the caller timeout.
- Docker readiness is proven through the API socket.
- Sandboxes: the Docker phase of a sandbox create dropped from about 286 ms to about 3 ms.
- Sandboxes: a streaming exec honours the caller's timeout instead of cutting off at a fixed 30 seconds.
- Sandboxes: pausing an already paused sandbox is idempotent instead of an error.
- Sandboxes: the
tinyandquadtiers resolve correctly, so sandboxes requested at those shapes are created. - Sandboxes: a custom image with no sandbox account boots, because the workspace owner is resolved inside the guest.
September 8, 2026
- A warm-baked tools template and a larger machine tier, with warm capacity.
@miosa/sdk3.2.4.- Sandboxes:
GET /api/v1/template-cataloglists the templates your workspace can actually launch, built-ins and your own under one contract. - Sandboxes: a private built-in template can be granted to a single workspace and stays a not-found everywhere else.
- Sandboxes: a new
quadtier at 4 vCPU, 4096 MiB and 20480 MiB resolves as a named tier and can be warm-claimed. - Sandboxes: self-serve template builds - create a build, read its status and logs, cancel, retry, promote and roll back, and set a per-template warm pool.
- Docs: an on-premises infrastructure page, a server onboarding page and an infrastructure troubleshooting page under
/docs/infrastructure/.
- A production acceptance wave of lifecycle and security fixes.
- Sandboxes: pause and resume answer in about two seconds instead of a fixed twenty, with durable
pausingandresumingstates and a fast409for a conflicting call. - Sandboxes:
POST /api/v1/sandboxes/{id}/recoveranswers202with the destination immediately, and destroying a source with a recovery in flight is refused. - Sandboxes: an idle timeout pauses resident, keeping the machine in memory so returning is fast, with a RAM floor and a maximum resident window.
- Sandboxes: a create refused by a full host retries on the next host instead of failing as an uncertain placement.
- Docs: glossary terms are easier to find, and the quickstart and BYOC pages were clarified.
- Sandboxes: recovery artifacts belong to the recovered sandbox, so deleting the crashed source right after a recover no longer breaks the new one.
- Sandboxes: exec with an invalid working directory is a
400or422instead of a502, a killed exec is flagged as timed out, and a paused sandbox's proxy answers a consistent503withRetry-After. - Sandboxes: a sandbox token can no longer enumerate other workspaces or templates.
- Sandboxes: a repeat pause or resume during a transition is an idempotent
202, and a crossed request is a named409. - Sandboxes: a resume that times out no longer reverts the row to paused while the host keeps resuming.
- Sandboxes: a restored sandbox is no longer reaped by the abandoned-capture reaper seconds after it comes back.
September 7, 2026
- Sandboxes: exec output that was cut short is surfaced instead of being silently lost, and one validated timeout is honoured on both exec paths.
- Sandboxes: Docker containers inside a sandbox survive runtime preparation.
- Sandboxes: the readiness stream honours the caller's own timeout and short-circuits on a terminal failure instead of hanging to the platform maximum.
- Sandboxes: a sandbox whose machine was killed is reported as errored and recoverable instead of staying running with no error.
- Sandboxes: pause never returns
500while a checkpoint is still being written. - Sandboxes: pause, stop and resume answer
202in progress instead of500when the host call exceeds its deadline.
September 6, 2026
- Computers: a desktop cold boot no longer fails because the guest's first-boot identity service times out.
- Computers: a desktop cold-booted on a host with no resident server now completes its post-boot setup instead of failing.
- Sandboxes: an idle timeout now actually pauses the sandbox when configured - platform readiness probes no longer reset the activity clock.
September 5, 2026
@miosa/sdk3.2.3.- Sandboxes: recover a paused or errored persistent sandbox from its own on-disk copy into a new sandbox, without the source ever being opened read-write -
POST /api/v1/sandboxes/{id}/recover. - Sandboxes: resume tells you why a restore failed instead of one generic error - snapshot missing, expired or corrupt, disk recovery required, or a retryable
503withRetry-After. - SDKs:
sandbox.exec.runandexec.streamaccept an abort signal; cancelling ends the parent and child guest processes, and an incomplete stream rejects rather than reporting a wrong exit code. - SDKs:
sandbox.destroy()reportsdestroyingwith the operation id while deletion is in flight and is a no-op on a repeat call.
- Customer runtime, shelving and lifecycle recovery, and OAuth sign-in.
- Sign-in and accounts: Google and GitHub sign-in worked again after failing for every user with an undefined-column error on the tenant selection query.
- Computers: a failed boot of a permanent computer no longer deletes its disk - the existing rootfs is preserved and only processes and network are released.
- Computers: desktop boots no longer fail on images with no netplan directory.
- Sandboxes: destroying a paused sandbox succeeded instead of failing and pinning the sandbox in error while retrying every 30 seconds.
- Sandboxes:
POST /sandboxes/{id}/pausereturns202 pausinginside the client window instead of a500at exactly 60 seconds. - Sandboxes:
resumeno longer reports itself running while the guest is still coming up, which made the next exec fail. - Billing: the admission path and the reservation path took tenant locks in opposite orders and deadlocked under load; both now take the tenant lock first.
September 4, 2026
@miosa/sdk3.2.2 and@miosa/cli1.3.4.- Sandboxes: guest output is streamed as it is produced instead of buffered.
- API: exec responses carry a
Server-Timingheader with resolve, dispatch and node timings on the standard exec path.
- Sized warm tiers, shape-exact claims, and boot failure reasons shown in log text.
- API: a shelf claim failure during provisioning returns a typed, retryable
503withRetry-Afterinstead of an anonymous500. - Sandboxes: destroy intent is persisted truthfully, the operation id is retained on readback, and deletion settlement is fenced.
- SDKs:
getOrCreate({ waitUntilReady: true })returns a sandbox only when it is running and command-ready, throwing a retryableSANDBOX_READY_TIMEOUTrather than handing back a not-yet-ready sandbox. - CLI: CLI JSON errors expose server-supplied retryability and preserve request ids.
- Billing: creates and destroys no longer deadlock under a burst on one tenant - billing jobs from hosts run on the control plane.
September 3, 2026
- API: transient sandbox readiness failures are structured in creation responses instead of surfacing as an opaque error.
- Sandboxes: pausing a sandbox and restarting the host no longer loses the ability to restore it - checkpoint manifests record the stub drive ids.
- Sandboxes: cancelling a foreground command kills the whole process group, not just the leader.
- Computers: pausing a computer no longer discards its artifacts.
September 2, 2026
@miosa/sdk3.2.0 and 3.2.1.@miosa/cli1.3.2 and 1.3.3.- Python
miosa2.2.1 and 2.2.2. miosa-mcp0.4.3.
- Readiness streams no longer close before delivering, and sandbox boot failures surface clearly.
- API: sandbox usage, database attach, environment set and snapshot endpoints no longer leak raw internal error terms into JSON.
- Sandboxes: reading a binary file no longer returns a
500; it returns base64 plus an encoding marker, the same shape download uses. - CLI:
miosa sandbox createsends an idempotency key and retries on transient status codes, so a manual retry cannot create a duplicate billable sandbox. - CLI: the stream parser renders sandbox exec output instead of blank lines.
- SDKs: the TypeScript and Python SDKs generate an idempotency key once per create and reuse it across retries, and waiting for readiness resolves on command readiness so a following exec cannot hit
409 SANDBOX_NOT_COMMAND_READY. - SDKs:
waitUntilReady()throws a boot-failed error as soon as a sandbox reaches a terminal state instead of hanging to the full timeout.
September 1, 2026
- Custom vCPU and memory shapes for sandboxes, with per-plan resource caps.
- Resource-based pricing with a rate card, live estimates, and plan selection during onboarding.
@miosa/sdk3.1.0, and@miosa/cli1.2.0 and 1.3.1.- Python
miosa2.2.0. - Sandboxes: create with
docker: trueand Docker is enabled inside the sandbox at boot, with no rebake needed. - Sandboxes: the create form takes a custom disk above the size floor, and a custom vCPU and memory, wired through to the API.
- Sandboxes: per-row resource cost on the sandbox and computer lists, and a live cost estimate on the create forms.
- Billing: self-serve Subscribe and Pay checkout, a billing history statement view, a dismissible low-balance banner, and plainer auto-recharge copy.
- Billing:
GET /api/v1/billing/plansreturns each plan's maximum vCPU, memory and disk, rendered on the plan cards and the comparison table. - Billing: the public pricing page was rebuilt around resource-based billing with a rate card and a "How billing works" section.
- Onboarding: a skippable "What are you building?" step that recommends a plan and wires Subscribe to the same checkout.
- API: a paused sandbox reports
pause_detail, so a maintenance pause is distinguishable from a permanent one, onGET /api/v1/sandboxes/{id}and on the readiness stream. - CLI:
miosa sandbox create --cpu,--memoryand--disk, andmiosa templates create --cpuand--memory, pass an off-tier shape through unchanged instead of snapping it to the nearest tier. - SDKs: the TypeScript SDK, the Python SDK and the MCP create tool accept off-tier shapes when CPU, memory and disk are all supplied.
- Templates:
templates createhonours request-level CPU, memory and disk instead of building every template at the platform default.
- Sandboxes: a custom shape boots at exactly the memory you asked and paid for - non-tier shapes were being collapsed to small and ballooned down.
- Sandboxes: a custom shape no longer fails its own row validation on the first create.
- Templates: a tenant template's baked workspace is no longer evicted on boot, which was shipping an empty workspace to the guest.
- Templates: custom templates are recognised by UUID-form ids, by slug-form creates carrying image metadata, and by the resolved-image stamp.
- Templates: the build sandbox boots the base image validation actually accepted.
- Computers: restoring from a snapshot regenerates DNS and hostname and verifies the guest network reconfigure succeeded.
- Computers: a running sandbox or computer survives a control-plane service restart - workloads are checkpointed and paused before shutdown and resumed on boot.
- Billing: a create that resolved to the tiny shape no longer fails a resource cap, because the disk cap follows the shape.
August 2026
August 31, 2026
- Sandboxes: any vCPU and memory combination can be created, not only the named tiers - a 4 vCPU, 4096 MiB, 30720 MiB shape is admitted instead of refused with
shape_mismatch. - Billing: per-plan resource ceilings replace a fixed allowed-size list, so a create is admitted against your plan's maximum vCPU, memory and disk, and every exceeded field is named.
- Billing: paid plans auto-recharge before a pause when credits run out; free plans pause instead.
- Billing: plans can be paid for directly - the approval gate is gone, so Subscribe activates the plan and grants the credits with no admin step.
- Billing: leaked or previously unbilled resources now accrue a charge - GPU, managed service, computer backup and Forge automation compute were billed at zero.
- Sandboxes: a new sandbox's resolver file could come back as the literal bytes of another file, leaving the sandbox with no DNS or egress.
- Sandboxes: exec and file access fail fast when the workload behind the row is dead, instead of paying a full round trip to the host.
- Sandboxes: legacy checkpoints written before the architecture cutover can be trusted and restored again.
- Sandboxes: a cold boot of a certified image no longer fails readiness with an identity mismatch.
- Runs: a run that wrote its required output but not an optional file no longer loses the whole run - mark a file optional.
- Runs: output collection no longer stops silently part way through the file list, and a failure names every remaining missing file.
August 30, 2026
- Python
miosa2.1.0.
- Computers: computer backups no longer silently lose their bytes when retention or an owner purge runs over the snapshot they share.
August 29, 2026
- A custom disk selector on sandbox create, plus custom CPU and memory on the create form.
- Custom templates can be created and their builds watched.
- Template identifiers are copyable with paste-ready integration code.
@miosa/sdk3.0.1 and 3.0.2, and@miosa/cli1.1.19 through 1.1.22.- Sandboxes: pick the disk yourself in the console - Sandboxes > New has a custom disk input that accepts anything at or above the selected size's floor, with inline validation.
- Sandboxes: set vCPU and memory per sandbox - Sandboxes > New > Advanced takes optional vCPU and memory, where blank means the size default.
- Sandboxes: template create takes vCPU, memory and disk alongside a named size.
- Sandboxes: the template page shows a copyable template identifier and copy-ready create snippets for the Python SDK, the TypeScript SDK and the CLI.
- Sandboxes: the sandbox page is a full module - Services, Connectors, Database, Usage and Policies tabs, a working terminal, and reworked Files, SSH and Terminal tabs.
- Settings: Workspace has a default sandbox template card.
- Sandboxes: build errors in the template list, the template page and the runtime catalog read as human text instead of raw error tuples.
- Console: the page no longer shifts when you click a tab or nav item - the scrollbar gutter is reserved.
- Sign-in and accounts: logging out and back in no longer pushes you through naming an organization again when you already own a named one, and the switcher stops listing unnamed duplicates.
- Sandboxes: list and detail tables use tabular numbers with tighter padding, and the runtime catalog summary is four cards.
- Sandboxes: creating with an explicit null disk, CPU or memory resolves to the shape default instead of crashing.
- Sandboxes: a published shape with no baked network slot cold boots from the base rootfs instead of failing with a slot rejection.
August 28, 2026
- Services, Connectors, Database, Policies, Usage and a PTY terminal as sandbox tabs.
- A new tiny machine shape at 1 vCPU and 1024 MiB.
- Atomic creation, idempotency keys and immutable versions for sandboxes.
- Sandboxes: the templates API became a real workflow - every error body carries a request id, a template and its first build are created atomically, an idempotency key makes retries safe, template versions are numbered and immutable, and a sandbox can be moved to another template with a preview-first migrate that lists what is lost as loudly as what is preserved.
- Sandboxes: you can set the disk size you want - a requested disk at or above the shape's floor is honoured instead of requiring an exact match, and a custom-disk sandbox always cold boots.
- Sandboxes: a template build that starts from a template you ship inherits that template's declared shape instead of falling back to the platform default.
- Builds: a Kali base image is accepted and builds a real image at the medium shape.
- Builds: the builder honours the shape declared in the build spec instead of always building on the small shape and running out of disk.
- Builds: template builds failed for every tenant with a capacity rejection because the build machine floor had been raised to a shape the fleet does not keep slots for; the floor is back to the small shape.
- Builds: a comment inside a Dockerfile line continuation no longer ends the instruction and silently drops the rest of the step from the build.
August 27, 2026
- A workspace's own templates show in the UI with honest build state.
- Sandboxes: bulk create over the API -
POST /api/v1/sandboxes/batch, with batch status, items, cancel and a live stream, up to 10,000 sandboxes at a concurrency you set. - Agents:
POST /api/v1/runsaccepts a run group, and a failed run always reports a non-empty error code and message plus a plain agent message instead of making you parse a metadata blob. - Databases:
GET /api/v1/databases/{id}/metricsreturns real data - memory and CPU series carry points and the current block reports memory used and CPU percent, where the endpoint previously always answered an empty series.
- Sandboxes: deletion returns faster -
DELETE /api/v1/sandboxes/{id}answers as soon as the destroy is durably queued and may report destroying rather than destroyed.
- Dead state styling was fixed across nine components.
- Snapshots purge their stored objects before the record is removed.
- Runs report a terminal failure reason and whether they are blocked or retryable.
- Sandboxes: a large sandbox create on a busy host no longer fails with a cross-device link error - the warm slot is cloned with a topology-aware sparse copy.
- Sandboxes: the tenant's always-on setting now applies to sandboxes created through the public API.
- Builds: an unknown Dockerfile base image fails with a clear named error instead of silently substituting Debian.
- Sandboxes: the
bookwormanddebian-12aliases resolve to a template that boots, and the retired alias no longer appears in the list. - Sign-in and accounts: an email MFA challenge reports distinct states - malformed, expired, already used, too many attempts, wrong code - so the screen can tell you to request a fresh code.
- Sign-in and accounts: sign-in has its own rate limit, a non-string email or password returns a normal
400instead of a500, and registering an existing address no longer reveals that it is taken. - Agents: optional connector runs no longer die mid-run with a
401because connector recognition differed between dispatch paths.
August 26, 2026
@miosa/sdk3.0.0,@miosa/cli1.1.18, and Pythonmiosa2.0.0.- Sandboxes: create and manage your own sandbox templates and watch them build - Sandboxes > Templates lists your templates separately from platform ones, validates the build spec with a dry run before submit, and streams build progress with cancel and retry.
- Sandboxes: a template that has never built reads "Not built yet" and cannot be launched, and failed, cancelled and never-run builds are distinguished in words instead of a raw code.
- Billing: the pricing page actions work - "Choose Business" and "Request Enterprise" take you to billing with that plan preselected.
- Billing calls to action are wired, and provider labels are cleaned up.
- Billing: the plan named in the URL is honoured, so arriving at
/billing?plan=businesspreselects it and opens the change-plan dialog. - Billing: after a top-up the credit balance refreshes itself instead of leaving the success notice over a stale balance.
- Onboarding always reuses an auto-created organization to stop double tenants.
- Email verification delivery failures and server errors are handled in the auth flow.
- Billing: the payment provider shown on the plan and credits views is the real one.
- Billing: top-up, subscription and cancellation notices no longer reappear on every page refresh.
- Organizations: choosing a company organization at signup no longer creates a second empty organization that kept the welcome credits.
- Sign-in and accounts: registration says the address could not receive a verification email instead of a generic failure, and verification and MFA screens show a plain message instead of a raw server error or a wrong "that code is incorrect".
- Sign-in and accounts: after OAuth sign-in the token is removed from the address bar so it no longer lingers in the URL and browser history.
- Console: tabs, switches, checkboxes and radios show their state again in light and dark themes, and the chosen storage survives a page reload.
- Console: a failed backend response can no longer paste raw HTML into a customer-facing error message.
August 24, 2026
- The full Forge frontend shipped: all repository screens, collaboration, provenance and lifecycle, with bounded pull request diffs.
- Bring your own cloud: a placement switcher, spend caps and batch create.
- Forge: the full repository workspace - browse code and commits, list branches and tags, open, approve and merge change requests with review timelines and comment threads, read checks with their evidence, see releases with source artifacts and checksums, read a provenance timeline with signed attestations, edit merge rules, fork a repository, change visibility and delete a repository.
- Forge: a change request renders the actual diff - a changed-files section with totals, ahead and behind counts, and one collapsible patch per file with line numbers, status and renames; files withheld at the safety boundary are labelled rather than shown blank.
- BYOC: choose where your work runs - Cloud sets an organization default of platform-managed or your own certified cloud with a precedence explainer, Settings > Workspace sets per-workload defaults, and a placement badge names which tier won on the sandbox inventory, sandbox header, computer cards and deployments.
- Sandboxes: batch create from the Sandboxes page - a count and a concurrency, live counters, a fill graph, a failure sample and a cancel.
- BYOC: pool create, the pool policy editor and the pools table show the hourly cost ceiling and the pool's time to live.
- Computers: every desktop card always shows its real screen - cards without a full-motion slot show the real desktop as a poster, and the number of full-motion desktops per host was raised from four to six.
- Computers: a card can no longer show the remote-desktop vendor's own session-disconnected panel.
- Every desktop card always shows its real screen, and a vendor's Session Disconnected panel never reaches a card.
August 23, 2026
- Forge: public Forge repository pages show organization profiles, fork counts and stars, and a repository can be starred.
August 22, 2026
- Forge: large repositories with many branches or tags are readable again - ref discovery is bounded per kind and reports when it stopped, instead of failing the repository and leaving the code view unavailable.
August 21, 2026
- Sandboxes: an exhausted network slot surfaces a retriable named error instead of silently leasing a legacy default slot, so a create can no longer land on a foreign network's snapshot.
August 20, 2026
- Returning OAuth users no longer loop through first-run setup.
- Sign-in: returning Google OAuth users with a completed setup reach the platform even when no workspace is visible; members, viewers and guest roles are no longer forced through owner-only onboarding; and the callback strips the token from the URL.
August 19, 2026
- A readiness stream endpoint for sandboxes.
- Instant create from pre-provisioned capacity for faster sandbox startup.
- New accounts no longer see low-credit warnings, and a computer that cannot be paid for is refused before it boots.
- Sandboxes: destroying a sandbox under a burst of traffic reports success instead of
503- a destroy racing its own stop is treated as success.
August 18, 2026
@miosa/sdk2.0.7 and Pythonmiosa1.3.8.- Sandboxes:
GET /api/v1/sandboxes/{id}/readiness/stream- a readiness stream that emits ready immediately or when the sandbox becomes ready, emits a timeout past the server deadline, and sends keepalives. - Billing: computers refuse up front with
402 insufficient_creditsfrom both create and start when the balance cannot cover a single billing tick, instead of booting a machine that is hibernated seconds later.
- API keys are reachable, findable and named consistently, with a usable inventory and permission display.
- Console: API keys has its own sidebar row and one name everywhere, at
/developer/api-keys. - Console: the key inventory defaults to active keys with a count and a show-revoked toggle, revoked rows carry no dead controls, scopes render as badges with an overflow count, rows are selectable with bulk revoke behind a count-based confirmation, and the creation wizard groups permissions by category.
- Console: onboarding offers "Create an API key" weighted like the primary action.
- Every new account gets its first workspace, and brand-new accounts are no longer told they are running low.
- Accounts: every new signup receives its default workspace and owner membership in the same transaction, so a brand-new account can create API keys and use the platform.
- Onboarding: an account that owns no workspace resumes at the step that creates it, ending the loop where customers were stuck on "Your workspace is ready" and could not reach anything.
- Billing: brand-new accounts no longer receive a "your credits are running low" email about the welcome bonus before spending anything.
- API: every event stream was sending headers and closing before delivering a single event; sandbox events, notifications, all log streams, deployments, run groups, snapshots and open computers now deliver.
- Sandboxes: warm-slot adoption is bounded, so a defective slot falls back to a cold boot instead of hanging the create for a minute.
August 17, 2026
- Durable Forge mirror operations, public profiles with stars, and evidence-backed pull request detail.
@miosa/sdk2.0.6, Pythonmiosa1.3.7, Gov2.0.3, and@miosa/cli1.1.16.- Forge: two revisions can be compared - a bounded comparison that resolves refs to commits and reports when it stopped rather than overclaiming.
- Forge: pull request detail is evidence-backed with retained collaboration evidence and permission-gated actions.
- Forge: bounded pull request diffs render with added and removed files and per-file sections.
- Sandboxes: placement orders sandbox and desktop candidates by exact measured round-trip time instead of a broad latency class, so creates land on the closest host first.
- Forge: the first push to a new repository is accepted - every Forge-enabled organization now has a baseline push ruleset before repository creation.
- SDKs: a sandbox create that asks for a compact body no longer returns the full sandbox view after waiting for readiness.
August 16, 2026
- Forge: mirror operations are visible inside a repository - source authority, mirror mode, commit and ref totals, local and observed source heads with convergence, deliveries against completed reconciliation, and append-only operation receipts.
- Forge: the full console surface - repository tabs for code, commits, branches, tags, change requests, checks, releases, provenance, policy, lifecycle and settings, plus public organization and user profiles, repository creation and a diff viewer.
- Sandboxes: creation no longer fails fleet-wide - certified template snapshots are accepted again through their own path.
- Sandboxes: a paused sandbox restores against the artifact template and generation recorded with its network slot.
- Computers: a restored desktop snapshot starts inside its deadline.
August 15, 2026
- Forge repository workflows, README rendering and share cards.
- Forge: public repository pages show organization profiles, fork counts and stars, and a repository can be starred.
- Forge: repository workflows - create public, internal or private repositories with an optional README, gitignore and MIT license, and browse files, the README, commit history, refs and pull requests; file creation, visibility changes, branch protections and deletion are wired to real endpoints.
- Forge: README files render as sanitized Markdown with repository-relative images and links.
- Forge: repository pages generate their own social share cards.
- Forge: the public landing was restored with repository discovery, and anonymous public repository reads no longer probe protected endpoints.
- The Forge GitHub installation callback, and replay of existing GitHub mirrors.
- Forge: an existing mirror can be replayed instead of failing on an already-mirrored repository.
August 14, 2026
- Three-plan pricing and billing flows, with the Business monthly credit allowance explained.
- The Forge public landing, plus a governed Forge backend with verified backup and restore and Git traffic routing.
- Billing: three plans published - Developer at $0 with 1,000 credits at activation, Business at $500 a month with 100,000 credits at activation and 50,000 after each paid monthly renewal, and Enterprise as custom - visible without signing in at
/pricingand in the console billing page. - Billing: plan selection with request, approval, checkout, cancellation and limit requests.
- Billing: pricing is readable without authentication, and
GET /api/v1/compute/pricingreturns the plan catalogue to unauthenticated callers. - Billing: the billing page shows included, purchased, reserved, refunded, adjusted, expiring, gross and spendable credit balances, and the pricing page lists every billable surface with its unit and charging behaviour.
- Forge: a public landing at
miosa.ai/forgewith a working waitlist. - Forge: installing the code host app returns you to your Forge organization instead of being misrouted as a repository.
- Billing: the Business credit allowance is explained the same way on the home page, the public pricing page and both billing views.
- Forge: "Join beta" scrolls to the form instead of remounting the page.
- Docs: pricing documentation regenerated to the three current plans.
- Docs: all public sandbox benchmark results, scores, rankings and provider comparisons were removed.
August 13, 2026
@miosa/sdk2.0.5 and Pythonmiosa1.3.6.- Sandboxes:
POST /api/v1/sandboxesacceptswait=trueto block until the sandbox is running before responding, and a compact response format for a trimmed create body, with named errors for a readiness timeout and a boot failure. - Sandboxes: the create-and-run response reports server wait and server exec time separately instead of one combined field.
- Sign-in and accounts: sign-in MFA can mark the browser trusted for 24 hours, or 15 minutes otherwise, for both email codes and authenticator codes - "Remember this browser" on
/login. - Onboarding: the finish action navigates straight to the chosen module instead of stalling behind an auth refresh.
- Sandboxes: the snapshot boot path batches admission, billing and quota work and replaces restore-time shell orchestration with one native guest bootstrap.
- Sandboxes: same-tenant bursts no longer serialise credit and admission checks.
- Sandboxes: placement prefers the lowest measured latency, so creates land on the nearest healthy host.
- Sandboxes: boot concurrency is configurable live, removing second-wave waits in large bursts.
- Sandboxes: warm-slot refill is deferred behind customer claims so restore work does not compete with a new sandbox's first command.
- The final onboarding step navigation was unblocked.
- Sandboxes: the first command after a warm adoption no longer fails with a transport-closed error, and a first command rejected during identity handoff is retried once.
- Sandboxes: creates under a concurrent burst fall back to a snapshot restore instead of racing the warm-pool refill.
- Sandboxes: snapshot boot no longer fails during overlapping configuration, and can reclaim a network slot from a dead owner.
- Sandboxes: creating a sandbox or computer whose name or parameters contain an identifier is no longer falsely rejected by the card-data scan.
August 12, 2026
- The public home, auth and pricing experience was rebuilt.
- A social preview and enterprise contact page.
- Console: the public home, sign-in and invite layouts were rebuilt, and the interactive desktop demo moved to
/desktop-demo. - Console: the home page unfurls with a purpose-built social preview image, and the AI consultation chat became an enterprise contact page with a prefilled mailto.
- Onboarding: the flow was cut from seven screens to three, the final screen shows the live credit balance, and there is one finish action.
- Sandboxes:
POST /api/v1/sandboxes/rundefaults to a non-persistent sandbox on host-local storage, so the one-shot run lane starts without a durable rootfs.
- Onboarding was simplified, with the live credit balance shown after onboarding.
- Desktop stream retries stop before provisioning completes.
- Sandboxes: small ephemeral sandboxes report interactive after proving the final block device and baseline filesystem, finishing disk growth in the background.
- Sandboxes: readiness on distant hosts no longer pays extra cross-region calls, and the guest readiness checks were collapsed into one authenticated command.
- Sandboxes: ephemeral readiness no longer forces durable-media flushes, and per-tenant spend admission no longer serialises one tenant's burst.
- Public site: mobile home layout and header repaired, and the home page renders during session restore instead of a black page.
- Public site: the OSA entry in the footers is a real external link.
- Onboarding: welcome credits are provisioned and verified before the flow reports success, and a failure returns
503instead of promising credits it did not record. - Onboarding: a failing legacy settings mirror can no longer trap a user on the final step.
- Computers: the desktop preview no longer retries the stream endpoint in a tight loop while the computer is provisioning.
- Computers: deleting a computer while it is still provisioning cancels the provisioning and tears down the host.
August 11, 2026
- Agents: a run created with required connectors now has those connectors staged into the run, so connector tools are actually available to the agent.
- Sign-in and accounts: a fresh sign-in code can be requested from the MFA prompt without restarting sign-in.
- Console: the Command Center was rebuilt as an evidence-backed surface - broken resources are prioritised, a selected resource expands inline with its facts, supported actions, confirmation and recovery receipts, and status counts act as filters.
- Console: a system pulse panel shows workspace viability, lifecycle, releases, capacity and telemetry freshness, separating desired from observed state.
- Authentication code emails use a clearer design.
- Computers: creating a computer no longer falls back to a slow cold boot when warm adoption runs outside enforce mode.
- Sign-in and accounts: sign-in, sign-up and verification were rebuilt around six-digit code entry with a resend cooldown and distinct invalid, expired, rate-limited and unreachable messages.
- Sign-in and accounts: authentication code emails carry purpose-specific subjects and headings on a redesigned layout.
- Sign-in and accounts: account emails were crashing and not being delivered; password reset, email verification, computer ready, sandbox ready and deployment succeeded messages send again.
- API: failed API calls return the real status from the service instead of being masked as
503. - Databases: stopping or restarting a managed database flushes the engine's durable state first, so recent writes survive a stop and start.
- Storage: object uploads of any content type are accepted instead of failing with
415.
August 10, 2026
Clearer documentation navigation
- The sidebar now groups guides by customer goal instead of mixing product workflows, internal architecture, and infrastructure ownership.
- White-label architecture, customer identity, branding, domains, events, metering, and examples now live together under Build Your Product.
- Infrastructure choices, external providers, and provider comparisons now share one Infrastructure section.
- Sandboxes, deployment, data, computer, security, and recipe labels use consistent customer-facing language.
- Existing documentation URLs remain unchanged, so saved links and integrations continue working.
A clearer path from idea to production
- The documentation homepage now leads with the outcomes teams can achieve instead of presenting Sandboxes as the primary product promise.
- A three-stage journey explains how agents create software safely, prove the result, and deploy one verified release.
- Goal-based starting paths connect application development, Agent Runs, computer automation, and customer-controlled infrastructure to the relevant guides.
- Production release proof remains visible without requiring new users to understand every command before they begin.
- The refreshed homepage supports keyboard navigation, reduced motion, mobile layouts, and accessible contrast in light and dark themes.
Operational documentation and safer discovery
- Projects now have a dedicated conceptual guide that separates ownership from Sandboxes, Computers, and Deployments.
- Domain guidance now translates DNS-provider fields and shows the complete ownership, certificate, and routing sequence.
- Recovery playbooks provide symptom-first checks for deployments, domains, TLS, App Engine hosts, and Sandbox previews.
- Documentation search recognizes common customer language while returning canonical MIOSA concepts.
- Public changelog checks reject common private identifiers before publication.
- Documentation feedback sends only the page path, rating, and feedback source, with no query string or customer-entered content.
No customer action is required.
Documentation search
- Search now ranks direct title and phrase matches ahead of weaker body and terminology matches.
- Results can open a matching section directly instead of stopping at the top of its page.
- Common product aliases remain discoverable without diluting exact matches.
- The selected result now uses one quiet neutral surface with a clear destination arrow instead of a stacked accent treatment.
- Search supports mouse, keyboard, screen-reader, light-theme, dark-theme, and mobile navigation.
Guided learning paths and clearer terminology
The documentation now provides a guided education layer across the existing technical references, cookbook workflows, and API guides.
Learning paths
- A new Learning Paths hub organizes existing documentation around four outcomes: deploying a first production app, building an agent product, automating a desktop, and building a white-label platform.
- Every path defines an ordered reading sequence, expected result, proof requirement, recovery expectation, and finish line.
- A compute chooser explains when to begin with a Sandbox, Computer, App Engine Host, Bring Your Own Cloud region, or OpenComputer.
Complete Next.js example
- A new Next.js tutorial takes an application from an empty Sandbox through Preview, App Engine publishing, Deployment proof, custom-domain verification, safe updates, and rollback.
- Expected results appear after each major step instead of leaving readers to infer whether an operation succeeded.
- A symptom-first recovery table covers pending capacity, broken previews, unavailable App Engine Hosts, incomplete promotion, DNS verification, incorrect domain ownership, and application regressions.
- The tutorial ends with an explicit completion checklist and production-hardening links for databases, secrets, publishing, and domains.
MIOSA glossary
- A visual flow shows how work moves from Organization and Workspace through Sandbox, Release, Version, Deployment, and Domain.
- “Do not confuse” guidance separates User and Organization, Release and Version, Deployment and Runtime Instance, and Bring Your Own Cloud and OpenComputers.
- Definitions cover customer-visible ownership, development, deployment, domain, agent, data, security, infrastructure, and billing concepts.
- Private infrastructure details and security-sensitive implementation notes remain excluded.
Sidebar navigation
- The selected page now uses a quiet neutral surface and subtle border instead of a colored gradient and glow.
- Parent groups stay visually calm while the exact current page remains clear.
- Hover and keyboard-focus states remain distinct in both light and dark themes.
- Docs: an infrastructure section covering the platform's own fleet, bringing your own cloud, and shared responsibility.
- Docs: a glossary, a learning-path hub and an end-to-end tutorial that takes an app from an empty sandbox to production.
- Docs: a projects guide and symptom-first recovery playbooks for deployments, DNS, TLS, hosts and sandbox previews.
- Docs: the sandbox recovery lifecycle documented end to end, with public sandbox states separated from snapshot and fork operations.
- Docs: search rebuilt with title-first ranking, section-level results with deep links, result counts and a clearer empty state.
- Docs: the landing page now leads with building and deploying software, with goal-based entry cards.
- Docs: the sidebar reorganised into Build Your Product and Infrastructure groups, with every existing URL preserved.
- Console: the Command Center no longer declares the Agents module unavailable when the agent registry is empty.
August 9, 2026
A clearer documentation experience
The documentation now uses one navigation system and a more focused reading layout.
- Search, appearance controls, page navigation, and Ask OSA are easier to find.
- Ask OSA opens beside the article without replacing or shrinking the documentation landing experience.
- The assistant panel can be resized to fit different screens and reading preferences.
- Generated search and AI indexes were refreshed to match the public documentation.
Domain setup and deployment URLs
Domain configuration now explains the difference between platform-provided deployment URLs and customer-owned domains more clearly.
- Organization domain setup presents the required DNS record and verification state in one flow.
- Deployment screens show which hostname is currently serving the application.
- Custom deployment domains remain scoped to the owning organization and deployment.
- DNS, certificate, and routing states use clearer status language and recovery guidance.
Onboarding improvements
New organizations can configure team access and domain setup during onboarding.
The final onboarding step now provides clearer next actions for using the platform, CLI, and agent workflows.
- Sign-in and accounts: a privacy rights request can be filed without an account, confirmed by an emailed link, then checked or cancelled.
- Deployments: the domains page was rebuilt around one explicitly selected deployment with a searchable picker and a shared add-domain dialog, and domain states are filtered as verified, pending and invalid.
- Docs: the documentation site has one unified navigation and header, old build pages redirect to canonical ones, and Ask OSA is back as a header action.
- Docs: Ask OSA opens as an overlay and no longer displaces the "On this page" rail, and its panel is resizable.
- Docs: the appearance control shows an explicit system, light or dark label and offers glass modes.
- Onboarding: the final step recommends only Deploy, Sandbox and Computer, and its deployment action goes straight to creating one.
- Deployments: custom-domain routing recovers after a runtime restart, with the network device recreated before the runtime resumes.
- API: deleting a deployment that is still building or running returns
409 RUNTIME_ACTIVEwith an instruction to stop it first, instead of deleting it. - API: the JSON API rejects payloads containing card-number-shaped values while excluding identifier-shaped strings, so normal ids are not mistaken for card numbers.
August 8, 2026
- Computers: a small desktop restored from a snapshot no longer takes nearly a minute to become usable - the restored session gets a bounded resume grace period and the fallback restart no longer blocks readiness polling.
August 7, 2026
- Sign-in and accounts: durable browser sessions - the account security page lists your active browser sessions and sign-in activity, can revoke one or all others, and shows authenticator status. A password reset or an organization switch revokes existing sessions.
- Sign-in and accounts: a new-sign-in security email after a successful password or OAuth sign-in, and the user payload exposes the OAuth provider, avatar source, whether a password is set, and last login.
- Computers: viewer access controls in computer settings - the viewer password status is shown, with rotate and reveal where the replacement is displayed once and copyable.
- Computers: the desktop viewer keeps its intended quality - a preset had been silently overwriting the full resolution with a quarter of it.
- Computers: fast live desktop handoff transfers viewer ownership from the gallery to the workspace, with gallery previews capped.
- Computers: the interactive workspace was stabilised - viewer ownership, stream continuity, embedded permissions, terminal duplication and stale scrollback, dock controls and action menu hierarchy.
- Computers: gallery cards render edge to edge as one desktop surface with no dead strip above the live preview.
- Computers: plan capacity limits are visible - every size is listed with locked options disabled, the required upgrade explained, and remaining aggregate running memory shown.
- Computers: restored desktops come up much faster - the desktop snapshot is certified once instead of being re-hashed on every launch, removing about fifteen seconds per restore.
- Computers: medium, large and extra-large desktops no longer fail to launch - snapshot disk contracts are recorded per size and snapshots are paired with their exact rootfs.
- Computers: a stale warm slot is reaped and provisioning continues instead of failing with an adopt error.
- Computers: an extra-large computer is no longer silently created as medium, because every advertised size resolves correctly.
- Computers: transient routing errors show the branded retry page instead of raw JSON inside a desktop card.
August 6, 2026
- Sign-in and accounts: signup requires a six-digit email verification step before onboarding, with a resend option and a client cooldown, and unverified returning users are routed through the same flow.
- Sign-in and accounts: organizations can define custom member types carrying their own titles, module scopes and permission allowlists, assign them to members, and use them in invitations.
- Sign-in and accounts: an invitation inbox lists pending organization and workspace invitations with the destination, role and expiry, and lets the recipient decline - Account > Invitations.
- Sign-in and accounts: authenticator-app two-factor authentication is complete - password-confirmed setup with a QR secret, ten single-use recovery codes, verification enforced before login tokens are issued, and a disable path.
- Computers: every advertised desktop size can be launched from a certified warm snapshot instead of only the small tier, cutting the wait for medium, large and extra-large.
- Agents: a redesigned contextual operator panel in the embedded computer chat - it shows the signed-in actor, workspace, resource and computer context, renders replies as Markdown with collapsed activity, and replaces the composer with Attach, Ask, Investigate, Plan and Act.
- Agents: the embedded computer chat is bound to the signed-in identity, routes through the hosted API rather than localhost, and no longer restores stale conversation state from local storage.
- Computers: instant launch stays responsive - the launch action is not disabled while plan metadata loads, and the provisioning overlay clears as soon as the live viewer connects.
- Computers: desktop rendering is faster - the VNC client is bundled and preloaded instead of downloaded per computer, and the viewer transport is warmed during create.
- Computers: gallery previews renew their viewer session before it expires, so a healthy running computer is no longer shown on a disconnected page while labelled live.
- Computers: interactive desktops keep the connected session across viewer credential rotation and unexpected disconnects, retaining the last frame.
- Computers: quick create exposes only the fastest placement, and size, idle behaviour and template defaults are clamped into the effective plan.
- Computers: stop, resume and restart work for remotely placed warm computers.
- Sign-in and accounts: a personal organization is preserved when a user goes through company onboarding.
- Console: the organization member surface was redesigned as a compact directory with denser rows and explicit role and status labels on mobile.
- Computers: the warm handoff retries transient and stale connection failures and restores the direct handoff path, so a warm launch no longer stalls.
- Computers: live branding works on the warm path, and a cosmetic check failure can no longer destroy a usable desktop.
- Computers: restored desktops reopen correctly - restored sessions are owned and repaired, and a restored snapshot no longer re-enters build mode.
- Computers: a desktop stopped and started repeatedly no longer lands in a stale paused state.
- Sign-in and accounts: the organization name and slug are immutable after onboarding.
- Computers: a host-session failure no longer permanently refuses a reconnect.
August 5, 2026
- Docs: a Computers fast start and readiness page, plus refreshed benchmark and overview pages describing the warm launch path and the readiness contract.
- Computers: the embedded desktop workspace is more stable - the native viewer is revealed when the navigation completes and authenticated stream URLs are preferred.
- Computers: gallery previews preconnect to the warm viewer while the handoff is still provisioning, so a warm launch shows the desktop sooner.
- Computers: creation is plan-aware - the size list is filtered by the active plan, the plan's idle-stop policy is enforced, and the warm small tier is labelled fast start.
- Computers: warm handoff is more reliable - the viewer route is published before handoff and the viewer overlaps the handoff.
- Computers: interactive desktops use latency-ranked host selection across certified warm pools.
- Computers: placement and plan choices are honoured, including an explicitly automatic placement and an explicitly selected region.
- Computers: the desktop viewer URL no longer returns
503. - Computers: warm desktop routing resolves an adopted desktop to its real backing host, and adopted machines survive a service restart.
- Computers: the desktop wallpaper is normalised to the platform default.
- Computers: a desktop preview that loads a proxy error page is no longer shown as live.
- Computers: stuck and failed computers can be deleted, and unavailable lifecycle actions are disabled.
August 4, 2026
- Databases: a managed database is no longer rescheduled onto another host and reformatted onto a blank volume - an existing database is refused rather than moved when its storage host is unavailable.
- Sandboxes and computers: a guest can no longer grow host memory without bound by writing to its own console.
August 3, 2026
- Sandboxes: the
instant-codetemplate is publicly creatable - previously hidden from the create list.
- Sandboxes: pause and resume on a customer-cloud host perform a real live pause and resume instead of being aliased to stop and start, so running processes and memory survive.
- Deployments: deployments that vanished when their appliance machine was lost are recovered - liveness and automatic reprovisioning default on, active releases are replayed after host recovery, and linked database variables are restored.
- Sign-in and accounts: closed an authorization bypass where a caller without the egress scopes could reach the same OAuth provider listing and start behaviour through a duplicate route.
August 1, 2026
- Sandboxes: create many sandboxes in one job from a batch page with live dispatch and runtime counters, and cancel a running batch - Sandboxes > Batch,
POST /api/v1/sandboxes/batch. - BYOC: a placement switcher for platform-managed versus your own cloud across sandboxes, computers and deployments, a placement badge showing where a machine ran, workspace placement defaults, and spend caps with a time to live on cloud pools - Cloud.
- Console: an integration access panel on computers, sandboxes, deployments, databases, projects, agents and workflows showing which connections are inherited from the organization, workspace or project and which are set on the resource, with integrations settings moved to
/integrations.
- Databases: the database detail view shows desired against observed lifecycle state and immutable lifecycle receipts, and the capability copy matches what resize, backup, restore and metrics actually do.
- Sign-in and accounts: closed a high-severity advisory where a forged token could revoke another user's session.
July 2026
July 30, 2026
- Databases: plan-aware backup retention is returned by the API - 7 days on Free and Starter, 14 on Pro, 30 on Scale and Platform, 35 on Enterprise - with the retention window and each backup's expiry exposed on the database endpoints.
- Cloud: host certification now covers computers and deployments as well as sandboxes, so desktop and deployment capacity on your own cloud can be certified and made selectable.
- Sign-in and accounts: accounts with no organization or no workspace are treated as incomplete even when the stored onboarding state says ready, and are routed back into onboarding to repair scope.
- Integrations: governed assignment is complete with organization, workspace, project and resource targeting, capability and delivery-mode choices, and corrected tool server configuration.
- Databases: the telemetry panel shows current CPU load and memory utilisation plus sample freshness and count, instead of treating any successful response as healthy.
- Databases: plan-specific backup retention and storage readiness are exposed, and restore checksum verification receipts and failure codes are displayed.
- Databases: restores verify the checksum of every artifact before restoring and fail closed with stable codes when a checksum is missing or mismatched.
- Databases: branch and replica allowances are enforced under locks, and quota reservations are released when provisioning fails.
- Databases: the plan API reports which managed features are actually available, so high availability, point-in-time recovery, cross-region recovery and backup encryption read as unavailable until they are implemented.
- API: sandbox create and deployment list no longer return a
500when the tenant context is blank or malformed; they return the expected422. - BYOC: every cloud account must use role assumption - the dormant direct access-key mode and its public preview field are removed.
- BYOC: the onboarding templates now require the exact provisioning role plus your organization's external id instead of trusting a whole account root.
- BYOC: account verification works with keyless credentials again, and host installs no longer fail on systems whose resolver is a local stub.
- BYOC: image builds no longer fail at the copy-on-write mapping step, and a build that cannot leave the certified free-space floor is rejected before any cloud resources are created.
- Deployments: an interrupted control-plane cutover no longer leaves the API stopped - a recovery guard restores the prior release when rollback is still safe.
July 29, 2026
- Databases: run one SQL statement against a managed PostgreSQL database from the tables browser and SQL editor -
POST /api/v1/databases/{id}/query, with a 15-second timeout and responses capped at 1000 rows. - Deployments: publish from an uploaded build with no repository -
POST /api/v1/deployments/drop/sessionscreates an upload-backed deployment, and uploads are candidate-first so they never change production automatically. - Deployments: drop a built static site by file or folder to create an immutable preview candidate -
/deploy/new. - Deployments: a native App Engine surface with grouped navigation, a domains screen with add, DNS instructions, verify and remove, and the deployed app's preview in place of the old portal screen.
- Deployments: the new-deployment flow is source-first around a repository URL, with App Engine as a runtime target rather than a source.
- Networks:
/networkrebuilt as a contained module consolidating routes and tunnels into endpoints with tenant-wide posture and capability inventory, and publishing a public endpoint now requires explicit confirmation. - Cloud: cloud and BYOC presented as organization capacity rather than workspace configuration, with node certification controls that queue and poll durable operations.
- Cloud: a shared compute-origin selector in sandbox and computer creation sends strict placement requests.
- Cloud: read which workloads and providers are actually available -
GET /api/v1/cloud/capabilities, covering sandboxes, computers, deployments, databases, storage, volumes, functions and agents across platform, open-computer, AWS and GCP capacity. - Cloud: workload placement is gated on exact, unexpired certification receipts, and customer-cloud placement needs an explicit region and pool.
- Computers: create a computer by purpose with safe defaults, and the genuinely supported options moved under advanced settings -
/computers/new. - Computers: workspace-scoped saved setups are real create, read, update and delete -
/computers/templates. - Computers: one workspace hosting the live desktop stream, resizable terminal tabs and the agent chat panel in a single surface.
- Sandboxes: a terminal section and a connect section with a generated SSH key, a copyable connection command, and the private key revealed only on request.
- Sandboxes: inventory uses workspace and project scoped queries with pagination, sorting, filtering and tracked bulk lifecycle jobs.
- Sandboxes: creation is plan-aware with project attribution, allowed-size enforcement, total and concurrent limits and the backend lifetime cap.
- Integrations: connect a provider once and assign it at organization, workspace, project or resource scope, with assigned integrations resolved into sandbox and deployment runtime environments.
- Integrations: marketplace made operational with a working discovery view, provider detail and persisted provider requests.
- Integrations: a first-class hosted tool server configuration surface at
/integrations/mcp. - Databases: resize is limited to the five billable shapes with a current-to-target comparison and a confirmation dialog explaining the restart.
- Storage: bucket creation, file upload and signed application access explained in plain language, with unsupported capability screens removed from customer navigation.
- Sandboxes: list sandboxes with server-side paging, filtering and sorting -
page,limit,state,template_id,searchandsort, returning totals, page counts and per-state counts. - Sandboxes: create to first command is about a second faster on warm hosts.
- Storage: the bucket list reports allocated, used and available capacity and the per-bucket maximum, so the console can show remaining allocation.
- Computers: warm desktop slots wait up to 90 seconds for readiness instead of 30, so healthy desktops stop being discarded into a cold boot.
- Computers: gallery cards open the workspace directly and hand the authenticated session in, and viewer recovery retries through the boot window.
- Computers: delete uses one confirmation instead of two, and a stopped computer's workspace can be reopened.
- Deployments: the deployment inventory is responsive rows with clear manage and open actions instead of a dense table.
- Deployments: domain actions open the canonical organization domain settings, and section navigation is URL-backed so refresh, back and shared links work.
- Databases: the tables browser and SQL editor use the full module canvas, structured values render as readable JSON, and resize shows hourly and approximate monthly runtime pricing.
- Databases: attachments, usage and cost, and policies are backend-backed, and revealing a secret is an explicit action that clears on leaving the panel.
- Databases: the plan's storage allowance and the managed database ceiling are enforced, and price is shown before creation.
- Optimal: tasks, investigations, artifacts, approvals, history, usage and preferences are wired to workspace-scoped contracts, with governed approvals.
- Databases: activity and logs work for a managed database on any compute host, because log requests route through the node that owns the guest.
- Databases: decrypted credential responses are marked private and non-cacheable so connection credentials are not stored by intermediaries.
- Computers: unsupported create options are rejected instead of silently ignored - GPU options, a maximum runtime and a linked database return a named
422, and malformed fields are named. - Computers: a hibernated computer can no longer be deleted while it is waking during a rolling release.
- Storage: creating or resizing a bucket above the plan allowance returns a named
422with a per-account lock so concurrent creates cannot over-allocate. - Databases: resize accepts only the five supported shapes, checks credits first, and returns
402or a422listing the supported shapes. - Agents: run groups are workspace-scoped, and cross-workspace access returns
404. - Billing:
GET /api/v1/usageapplies the requested resource-family filter to both grouped rows and timeline points and echoes it back, returning422for an invalid value. - Sandboxes: sandbox memory is scrubbed and the shared default TLS key removed before a snapshot is captured, and unique SSH host keys are generated when a key is installed after restore.
- Deployments: clicking App Engine no longer renders a
500, and the redundant advanced console entry point is removed. - Optimal: tasks, sections and chat stay bound to the selected workspace and resource, and every chat session for a selected machine is restored with its tab.
- Sign-in and accounts: sign-in no longer wedges when a session cookie cannot be validated, and the redirect accepts the apex domain.
July 28, 2026
- Command Center:
/command-centeris the canonical operational route, with/dashboardredirecting there and query strings preserved. - Command Center: an interactive resource graph with node controls, selection and expansion, workspace-scoped inventory, capability receipts, and resource snapshot and fork actions.
- Agents: the workspace agent control plane wired to persisted agent definitions, with real execution configuration and capability editing that preserves what you configured.
- Optimal: chat conversations persist across reloads.
- Databases: the managed database data browser is back on the database page, with tables and a SQL editor.
- Optimal: conversation state survives moving between platform pages, the resolved workspace is preserved so a chat does not silently switch, and sessions are hardened across organization and workspace switches.
- Computers: creation waits for the selected workspace before provisioning, regions without live capacity are disabled, and the visibility you chose is preserved.
- Optimal: answers are recovered when the live stream is unavailable, so chat still replies.
- Workspaces: a remembered workspace that returns a forbidden error now recovers by trying another workspace in the active organization, with no refresh and no retry loop.
- Command Center: the topology canvas keeps pan, zoom, expansion, selection and fit controls on narrow viewports.
July 27, 2026
- Agents: an agents console with sections for authority, definitions, evaluations, memory, runs, skills, tasks, templates, tools, triggers and usage.
- Workflows: a workflows console with builder, connections, runs, schedules, templates and usage.
- Cloud: a cloud console with accounts, connect, hosts, open computers, permissions, placement, pools and regions.
- Network: a network console with domains, meshes, policies, routes and tunnels.
- Developer: a developer surface with API keys, webhooks and code samples.
- Intelligence: an intelligence section with per-provider pages.
- Projects: projects and products consoles, with project sections for activity, compute, environments, health and network.
- Observability: an observability console with per-section pages, plus reworked analytics and logs.
- Security: agent authority, approvals, authentication, people, roles and sessions pages.
- Storage: buckets, volumes, activity and protection pages.
- Integrations: a catalog, provider detail, connections, installed and requests pages.
- Sandboxes: deepened detail, creation and control surfaces.
- Computers: inventory, templates, settings and usage pages, plus an immersive desktop wall.
- Databases: rebuilt database list and detail with a create flow, inventory and detail views.
- Dashboard: rebuilt as an operational command center.
- Onboarding: first-run setup rebuilt as a guided flow covering profile, organization and workspace, team invites, domain routing, goals and activation, with a product tour.
- Sign-in and accounts: authenticator-app second factor shows a scannable QR code plus a manual setup key, and recovery codes can be downloaded.
- Deployments: egress policy controls exposed on the deploy surface.
- Platform: the redesigned consoles, onboarding and navigation shipped in one release.
- Platform: one shared application shell and module sidebars across consoles, with duplicate navigation destinations removed.
- Platform: legacy workspace URLs retired and permanently redirected to their canonical modules.
- Optimal: chat sessions and workspace records bound to the active organization and workspace.
- Deployments: customer-facing "Docker" wording replaced with "App Engine".
- Sign-in and accounts: the theme default follows your operating system's light or dark setting while explicit choices are kept.
- Workflows: workflow runs moved to durable run groups.
- Sandboxes: the control plane was completed with batch, environment and template surfaces.
- Databases: provisioning contracts and layout corrected, and the database resource inventory scoped and aligned.
- Deployments: the deployment creation flow was fixed.
- Computers: the archived computers fleet experience corrected.
- Projects: project filters stabilised.
July 25, 2026
- Databases: the database list and detail page show platform recovery as its own state with polling and a data-preservation message, instead of collapsing it into provisioning or error.
- Agents: one server-owned action decision for every surface - an actions catalog, authorize, approvals with approve and deny, grants and receipts.
- Builds: durable reviewed app documents - create, version, review, publish and run generated apps over the API, with declared data collections, resumable automations and callbacks bound to action authority.
- Usage:
/usagerebuilt as a usage control console with spend, ledger, plan rates, reports and controls views and a per-resource cost explorer. - Account:
/accountrebuilt as a console with profile, security and access sections. - Docs: an agent operating guide, a platform BYOC page and a databases API reference.
- Sign-in and accounts: an email change page at
/email-change.
- Sign-in and accounts: credential locations consolidated -
/api-keysowns platform access keys,/integrationsowns provider credentials, and CLI sessions move to/account, with the old paths redirecting. - Billing: plan detail moved into the billing console, and the old plans and email settings paths redirect.
- Status: unsupported latency and 90-day uptime claims were removed from the public status page, which now reads as monitored checks with the latest verified timestamp.
- Docs: the changelog consolidated into a single release history, and the known-limitations page removed.
- Platform: light theme fixed across the shell.
- Databases: a managed database that was running when the service or a compute host was interrupted now comes back up automatically from its persistent volume, while deliberately stopped, paused, suspended, destroyed and retired databases are left alone.
- Deployments: permanent deployment appliances recover on their own after a host or service interruption, with bounded retries.
- Computers: a failed hibernation resume no longer destroys the computer's persistent disk, hibernation snapshot or address reservation, so the resume can be retried.
- Integrations: channel configuration and notification preferences save to the server instead of simulating it.
- Computers: one computer state model now drives the computer page and the sign-in callback.
July 24, 2026
Public contracts and deployment guidance
The CLI, API, SDK, data, domain, release, and deployment guides were aligned with the shipped platform contracts.
- API examples use the current production base URL and credential families.
- Sandbox snapshots, restore, fork, and lifecycle operations are documented.
- Release creation, exact promotion, production proof, and rollback are documented as separate steps.
- Managed database lifecycle, credentials, backups, restores, logs, metrics, and placement are covered.
- Documentation checks reject known stale commands, paths, and hostname patterns.
Usage and platform controls
Usage and billing surfaces now use consistent USD and credit meanings.
The Action Authority experience supports constrained approvals for sensitive operations.
- Security: the Action Authority console at
/settings/action-authority- review and resolve pending agent action approvals, inspect immutable action receipts, browse the versioned capability catalog, and revoke standing grants, failing closed when the authority API is unavailable. - Security: create exact action grants, each with a version, fingerprint, scope, constraints and expiry, with malformed or unconstrained grants refused before they save.
- Billing: credit balances and dollar balances agree across the dashboard, usage, billing and settings, with the ambiguous balance wording removed.
July 22, 2026
- Sign-in and accounts: the unsubscribe link in low-credit emails works - every opt-out had been returning
404, so the alerts kept re-sending. - Billing: balance alerts are much quieter - one email per severity level, a further email only on escalation, no daily re-send, and no running-low notice at all when auto-recharge is on.
- Databases and deployments: the deployment page shows a managed database panel with readiness, database id, environment, engine and version, lifecycle state, and a note that preview environments use isolated database branches.
- Computers: computer deletion goes through one fail-closed path - owner-host resources are destroyed and verified before durable ownership is removed - so a deleted computer can no longer be reported deleted while its resources survive.
- Deployments: redeploying a sandbox-published App Engine deployment rolls out its active release instead of attempting a rebuild from source, with environment variables rematerialised.
July 21, 2026
- Computers: desktop branding is the platform's or the tenant's own end to end - the viewer title, favicon, loading, reconnecting and error states are replaced, and the tenant's product name, colours and logo are applied at provisioning and repair.
- Computers: the desktop viewer controls are restored - clipboard, fullscreen, display, scaling, keyboard, pointer and quality were hidden by a branding override.
- Computers: the desktop image installs the latest OSA release and exposes
osa,osagentandmiosain the desktop terminal, with the retired launcher replaced by a terminal running the agent. - Computers: white-label desktop wallpapers actually apply, so a tenant with a custom wallpaper no longer gets the default background on newly provisioned machines.
- Sandboxes: sandbox attributes returned to SDK callers no longer flip between two shapes, which fixes clients that failed to read them depending on the code path.
- Sandboxes: snapshotting or forking a paused sandbox clones its live rootfs instead of using a computer-style path, fixing fork and restore.
- Agents: managed runs are labelled from the agent's own terminal output, so a mid-run error or an abnormal stream close is recorded as a failure instead of "succeeded".
- Sandboxes: guest DNS works again - the resolver file is written world-readable so unprivileged workloads can resolve names.
- Billing: sandbox usage reports provisioned memory and creation count alongside vCPU, CPU and network.
- Billing: snapshot storage is billed from the observed physical object size, so charges match what is stored.
- Security: a sandbox token injected into a machine can no longer mint delegation tokens for arbitrary users.
- Security: oversized and compressed payloads are rejected before decoding on the open-computer codec and the local persistence journal.
- Computers: fixed cold desktop provisioning failing to start by colocating the image cache and persistent disks on the same device.
July 20, 2026
- Webhooks: run lifecycle events are durable and subscribable - created, running, succeeded, failed, canceled and file ready - and deliveries survive a control-plane restart.
- Webhooks: secrets must be 16 to 255 characters, and failed deliveries reset on reactivation instead of staying failed.
- Agents: managed Claude Code runs wait for the egress proxy before launching, removing intermittent connection-refused run failures.
- Agents: Claude Code and Codex are installed world-readable and executable inside the sandbox, so managed runs can start the CLI.
- Agents: the Claude instruction workspace is staged readable before the run starts, so a staged-access failure no longer aborts the run.
July 19, 2026
- Billing: sandbox spend limits - organization owners and admins can set a monthly cap or unlimited, choose ascending alert thresholds, and see spent, reserved and remaining for the period at Settings > Billing.
- Billing: sandbox admissions are refused with
402 SANDBOX_SPEND_LIMIT_EXCEEDEDnaming the scope, limit, spent, reserved and requested credits once the cap is reached. - Webhooks:
sandbox.spend_threshold_reachedis a subscribable event alongside the existing billing events. - Sandboxes: the create flow shows catalog-backed sizes with each contract id, vCPU, memory and disk, and a fast start, cold start or unavailable readiness badge, hiding sizes the template does not advertise.
- Sandbox snapshots: snapshot create accepts a retention or expiry, and snapshot responses expose retention, last used and expiry. A snapshot past retention returns
410 SNAPSHOT_EXPIRED. - Sandboxes: a typed
429with class, limit, requested, window andRetry-Afterwhen an organization allocates vCPUs faster than allowed. - Docs: the sandbox, snapshot and cookbook pages and the published API specification were rewritten to match the shipped contract.
- Docs: the bring-your-own-cloud pages carry an explicit notice that customer-host provisioning and sandbox placement are disabled until the acceptance suite is complete.
July 18, 2026
- Sandboxes:
POST /api/v1/sandboxesreturns a dedicated503withRetry-Afterwhen the requested size is not currently available on the fleet, instead of an unhelpful error. - Sandboxes: the published specification documents the size selector, the default small contract, persistent-by-default lifecycles and the default session timeout.
- Docs: the bring-your-own-cloud sandbox pool flow, covering account attach, preflight, region, pool and placement scope.
- Sandboxes: plan-gated sizes are enforced at admission, so an over-plan size is refused up front with a plan error instead of failing later.
July 17, 2026
- Catalog:
GET /api/v1/compute/catalogreturns the shape contracts, so a client or SDK can map each advertised size to its exact vCPU, memory and disk contract.
- Sandboxes: a typed
429 SANDBOX_CREATE_RATE_LIMITwithRetry-Afterand the plan class, limit and window when an organization creates sandboxes faster than its plan allows. - Billing: sandbox metering is attributed to the sandbox's resource contract rather than raw request fields.
July 16, 2026
- Console: settings has one domain story - a Branding & Domains group, a dedicated branding page, domain and DNS management only on the domains page, and a live three-step setup guide that reflects real state.
- Console: the top navigation no longer paints over the search box - labels collapse to icons based on the nav's own width.
- Status:
GET /api/v1/status/overviewreports real per-service checks across API, auth, compute, open computers, AI and billing, instead of a permanently empty list.
July 15, 2026
- Computers: adopting a computer is re-identified in place instead of restarting - about 17 seconds down to about 1 second.
- Computers: the desktop stream no longer comes up dead - start waits for the desktop to bind before the session is handed over.
- Computers: storage clone durability fixed across every copy path, ending corrupt disks and the build and container failures that came with them.
- Sandboxes: restoring a sandbox rebases its rootfs off the shared golden disk, so restored sandboxes no longer corrupt the shared image.
- Console: fixed three
500s reachable from normal page loads - the integrations catalog, the egress audit and the workspace computers list. - Console: the security audit and network pages were rewritten against the real contracts and return the expected shapes.
- Organizations: sessions minted before organizations existed heal from durable membership instead of locking the user out.
- Landing page: the homepage has a real main landmark again, restoring screen-reader navigation.
July 14, 2026
- Organizations: switch organization from the account page.
- Sandboxes: restore no longer forces memory pages in eagerly - pages are read lazily through the fault handler, so restoring a sandbox is cheaper.
- Organizations: legacy memberships are preserved and stale sessions recover their organization from durable membership, so users whose organization exists no longer see a create-an-organization screen.
- Organizations: access and membership authorization are enforced consistently across API keys, OAuth credentials and sessions.
- Sandboxes: placement retries on another eligible host when a reserved node is unreachable and releases the failed reservation.
- Sandboxes: a cloned rootfs is flushed before it is attached, fixing corrupt filesystems that dropped sandboxes to error.
- Databases: managed database readiness and reattachment were hardened, so a database attached to a deployment is ready before attachment.
- Deployments: attaching a database returns
409 DATABASE_NOT_READYwith a clear message instead of partially attaching. - Deployments: a host in draining state keeps serving its existing routes instead of returning
503to live traffic. - Console: API contracts were aligned for tenant, membership, grant, checkout and token flows.
July 13, 2026
- Organizations: multi-organization sessions through the API - list, current and switch endpoints, with the selected organization validated against membership and preserved across token refresh and page reloads.
- Computers: live memory resize. A computer boots at its family maximum and a balloon deflates it to the paid tier, so changing size now changes memory without restarting the machine, and the row and billing both use the paid amount. vCPU and disk changes still apply on the next full boot.
- Computers: customer-ready desktop time after a restore drops from about 9 seconds to about 3, because a healthy resumed session is kept instead of restarted.
- Computers: snapshots record the resume capability, so a fresh desktop restores from its snapshot instead of falling back to a cold boot.
- Billing: credit exhaustion rechecks the canonical wallet before suspending a running resource, so a concurrent top-up cannot leave a resource suspended.
- Organizations: invites recover the session for an accepted invitation instead of leaving the user stranded on the invite page.
- Organizations: switching surfaces retryable errors for invalid or revoked memberships.
- Docs: availability, known limitations, custom domain, invite, sandbox and SDK version pages were corrected against current behaviour.
July 12, 2026
- Organizations: an organization switcher in the header and mobile navigation lets a user in more than one organization change the active one.
- Computers: resize a computer with
PATCH /api/v1/computers/{id}and a size. The response reports that a restart is required, the new size applies on the next boot, and the disk only ever grows.
- Computers: a resize boot waits for in-guest filesystem growth before reporting active, and an enlarged disk is re-expanded on every cold boot.
- Computers: restart runs on the computer's owning host instead of failing on the wrong node.
- Deployments: white-label App Engine apps route correctly across hosts.
July 11, 2026
- Databases: managed database runtimes are no longer treated as orphans and killed by the reaper, so instances stay up across sweeps.
July 10, 2026
- Computers: the desktop viewer URL for a computer is now
<computer>.<your-computer-domain>/viewer, for embedding a desktop in your own app.
- Computers: desktop streaming is back on the direct low-latency path, and a healthy resumed session is no longer torn down on boot.
- Computers: desktops boot reliably - guest session startup is serialised and the startup deadlock is removed.
- Deployments: environment variables are passed through to App Engine apps, so database-backed apps boot with their connection string and secrets.
- Deployments: custom domains stay active - DNS verification accepts the canonical proxy target and verified domains attach instead of being marked failed.
- Deployments: App Engine apps are routed through their owning node, fixing
502s on custom-domain traffic. - Computers: desktop provisioning no longer deletes the baked desktop layout, and white-label branding is applied to the real monitor after the desktop is live.
July 7, 2026
- Deployments: a deployment proof endpoint and a live proof panel on the deployment page, checking the deployment row, running state, public URL, host readiness, the app row, the container route and an optional HTTP probe -
GET /api/v1/deployments/{id}/proof. - Agents: expected outputs can declare an output root, so relative expected files are collected from a declared directory and absolute paths are preserved.
- Computers: an explicit restart reprovisions the machine rather than reusing a broken runtime.
- Docs: App Engine documented as the workspace container runtime for apps that need Docker, background processes or durable hosting, publishing to a public URL under
deploy.miosa.ai, a workspace or tenant domain, or an exact custom domain.
- Docs: custom domain, known limitations, availability, share token, preview URL and SDK version pages refreshed, plus a reworked computers guide and docs navigation.
- Computers: the embedded desktop is resized to its frame, embed mode is restored, viewer parameters survive a reload, and the stream is tuned for low latency.
- Computers: desktop branding is restored after a repair, and the branded desktop stays active rather than dropping to the default shell.
- Console and docs: customer-facing surfaces can no longer ship legacy naming - App Engine is enforced by a naming check in the production deploy.
July 6, 2026
- Agents: active Claude Code and Codex runs no longer fail after three transient sandbox process-state misses; sustained failures still fail with full diagnostics.
- App Engine: the embedded console is back inside the workspace, its tabs route to the real console paths, and the sidebar entry is renamed to App Engine.
- App Engine: custom domains and app hostnames for published apps route to the appliance app, and duplicate workspace app hosts are resolved.
- App Engine: both the build command and the start command are sent to the appliance contract.
- Sandboxes: creating while scheduled capacity is still starting returns a distinct retryable
503with aRetry-Afterhint, and real failures return a create-failed code instead of a misleading validation error. - Sandboxes: sandboxes that enter an error state persist the failure reason and last error, so a failed sandbox says why.
- Status page: a status reading older than three minutes is shown as unknown and stale instead of being presented as current.
- Deployments: a release that crash-loops slowly is failed and dropped from retries instead of looping for days behind a running badge, and an abandoned release behind a healthy version is aborted within minutes.
- App Engine: publishing fails fast with a clear
503when the appliance control token is missing, instead of surfacing a confusing upload401.
July 5, 2026
- App Engine: builds install the release into the workspace appliance and call the endpoint it actually exposes, so App Engine deploys reach a running container instead of failing.
July 4, 2026
- Invites: organization and workspace invite emails are branded HTML with the logo, including older records whose template override was blank.
- Invites: invite landing pages show context before accepting, and legacy invite links redirect to the canonical page.
- Settings: webhooks point at the live contract, the unsupported manual retry control is gone, and email delivery shows an honest read-only status.
- Settings: organization and workspace member pages show real counts, hierarchy and wired invite actions.
- App Engine: the embedded portal signs in automatically with a platform-minted single-sign-on URL, tabs use the real portal paths, and links use the tenant deploy domain instead of exposing runtime URLs.
- App Engine: the clients page counts and labels appliances by portal readiness, showing stale hosts as needing repair, and portal readiness requires the backing runtime to be live with a fresh heartbeat.
- Console: the compute sidebar no longer shows fake expandable chevrons, deeper modules no longer double-highlight an unrelated item, and unclear labels were renamed.
- Deployments: releases larger than about 128 KB install instead of failing every retry with an argument-list-too-long error.
- App Engine: destroyed, failed and pending historical rows no longer appear as live apps in the deploy table.
- Users: deploying a new frontend version no longer strands open tabs on an error page - the app reloads once on a stale chunk and the error page offers a reload action.
July 3, 2026
- Billing: published plans are Free, Starter, Pro, Team and Enterprise with their credit and sandbox allowances, and accounts missing their welcome credit were backfilled.
- Computers: open-computer host, container and custom-domain limits cover Team and Enterprise, and the removed legacy plan is rejected.
- Settings: plan usage counts only resources that still exist, and members render with their real name, email and avatar.
- Billing: compute is metered only while the machine is actually running, so stopped machines stop accruing charges.
- Computers: always-on computers and app runtimes revive from their existing disks when their node reboots, instead of staying dead after a restart.
- Computers: computers left showing active with no machine running are flipped to stopped within minutes instead of showing live and billing.
- Sandboxes: running sandboxes are excluded from the orphan reaper, so in-use sandboxes are no longer destroyed by cleanup.
- Deployments: embedded app previews are no longer rate limited on request bursts.
- Data retention: destroyed resources older than 30 days and retired appliances idle for 14 days are permanently deleted by a daily job.
- Pricing: the console lists the current plan set and the free-plan copy says the right credit amount.
- Settings: compute and GPU pricing fallbacks match the backend rates, so the prices shown are the prices charged.
- App Engine: the embedded portal no longer shows implementation-provider branding in its frame chrome.
July 2, 2026
- Agents: a background run whose sandbox became unreachable is marked failed with diagnostics instead of sitting pending forever.
July 1, 2026
- Agents: agent runs no longer force-load a default tool server into every Claude Code and Codex run; it is loaded on demand.
June 2026
June 27, 2026
- BYOC: bring your own cloud account through a documented API - attach a cloud account, choose regions, create pools, provision a pool, list nodes and run preflights.
- BYOC: connect with an access key and secret instead of a role trust, with the keys encrypted at rest and only a preview returned.
- BYOC: an onboarding kit - infrastructure templates, a least-privilege policy and a step-by-step guide.
- Deployments: white-label sandbox preview hosts can obtain TLS certificates on demand.
- BYOC: computers provision into your own cloud pool instead of the shared fleet, and scale on your own pool rather than the platform plan.
- BYOC: sandboxes in your own cloud are metered as orchestration and no longer deduct platform compute credits.
- Computers: desktop computers are persistent by default, while sandboxes keep their suspend timer.
- Computers: tenant branding is applied to provisioned desktops.
- Agents: the default run timeout for Claude Code and Codex runners is extended to 24 hours.
- Agents: runs no longer use an output mode that produced no final message.
- Deployments: the appliance portal route is registered when the appliance is marked healthy, and the appliance routes through the platform proxy rather than the machine address.
June 26, 2026
- Agents: run inputs can be injected as files into the runtime alongside materialised environment.
- Computers: provisioning failures are visible on the computer object and in the API, instead of a silent stuck state.
- Accounts: API keys can carry agent runtime profile scopes.
- Agents: a default tool server is wired into Claude runs.
- Agents: Claude Code is pinned to a specific version with an isolated package cache, its tool server configuration is loaded, and the runner is isolated from the home bin directory.
- Agents: sandbox agent runs execute as tracked background processes, and the agent binaries are exposed to the sandbox user.
- Agents: runs fail fast when a required connector is unavailable.
- Agents: run workspace lifecycle and long-run file transfers were hardened.
- Computers: active computer machines are protected from the orphan reaper.
- Sandboxes: sandbox resume restoration is explicit, and a snapshot resume routes to the host that recorded it.
June 25, 2026
- Agents: one run contract behind
POST /api/v1/runswith command, custom, Claude Code and Codex runners, and a single run read surface for outputs, messages, command output, files, previews, activity, events and diagnostics. - Docs and API: the developer API reference is generated from the live routes, and a check fails when a live route is undocumented.
- Databases: managed databases accept external workspace, user and project ids for attribution, matching sandboxes, computers and agent runs.
- Sandboxes: in-sandbox provisioning became opt-in - new sandboxes get read and interact only unless created with provisioning allowed, and provisioning calls otherwise return
403. - Deployments: appliance DNS labels are capped so they resolve, and invalid hostnames are rejected at registration.
- Agents: Codex runs in explicit non-interactive mode with its working directory set, and Claude and Codex output is bridged into run messages when no structured final message is returned.
- Deployments: the janitor no longer kills deployment runtime machines - they were missing from the supervised set and were being killed every ten minutes.
June 24, 2026
- Agents: agent runtime provider commands were fixed, Codex runs non-interactively inside the isolated runtime, and Codex uses the workspace home.
- Computers: desktop agent tool readiness and computer agent command execution were fixed.
- Docs: the benchmark page was published with per-lane detail, and the Python and TypeScript SDK pages were updated.
- Deployments: the appliance liveness probe routes to the node that owns the appliance rather than the control plane.
- Sandboxes: template readiness probes are cached instead of re-probed per request.
June 23, 2026
- Sign-in: GitHub sign-in works - the routes had been returning
500because only the Google handlers existed. GitHub users are deduplicated by email, with a fallback when GitHub hides the address. - Computers: passwordless desktop embedding -
GET /api/v1/computers/{id}/embedreturns a viewer URL carrying a short-lived token for iframes. - Computers:
GET /api/v1/computers/{id}/urls,GET /api/v1/templatesandGET /api/v1/webhooks/eventswith signing metadata. - Databases: managed databases take a scheduled daily backup, with per-day idempotency, per-database failure isolation and retention pruning - previously they had no automated backups.
- Billing: a tenant whose resources were paused for exhausted credit resumes automatically on top-up.
- Computers: desktop developer tools are repaired on boot and validated by running them, with a fallback that replaces a crashing shim; a slow repair no longer marks a healthy desktop as errored.
- Agents: Claude Code runs work on desktop computers, inheriting the machine's or sandbox's environment variables.
- Billing: balance alerts fire on the real spendable balance.
- Deployments: deployments orphaned between a ready release and the deploy are finished by a reconciler instead of hanging forever.
- Deployments: appliance hostnames stay inside the DNS label limit and prefer the human workspace name over a UUID slug.
- Sandboxes: a doubled prefix in sandbox preview URLs was removed.
- Sandboxes: legacy platform-owned preview domains are treated as stale and cleared, while a real tenant-owned base domain still works.
- URLs: the platform enforces one URL contract -
miosa.aifor the platform and sandbox previews,miosa.appfor durable published deployments.
June 22, 2026
- Sandboxes and computers:
GET /api/v1/compute/catalogexposes the canonical product, template and size metadata with per-entry artifact readiness. - BYOC: authenticated cloud routes for accounts, role attach, regions, pools and preflights, with new cloud read and write scopes.
- Console: the platform console separates the authenticated desktop session from the desktop viewer password, so opening a computer no longer needs the viewer password.
- Sandboxes: pricing and catalog readiness are aggregated across the live fleet instead of reporting one node's local state.
- Sandboxes: warm-pool refill enforces the exact requested size and clears stale health state after a refill.
- MCP: the create tools advertise the canonical sizes.
- Sandboxes: slot validation no longer requires a per-slot image to already exist, which had collapsed the fleet onto a single base snapshot and capped concurrency.
- Sandboxes: an exec touching shared state can no longer crash the sandbox process.
- Databases and sandboxes: managed database credentials can be rekeyed with zero downtime, and a control-plane restart or deploy no longer destroys running sandboxes or mislabels a clean shutdown as an error.
June 21, 2026
- Deployments: appliances provision at a new starter tier and are resizable up through larger tiers.
- Deployments: appliance scale to zero - hibernating frees the appliance's memory in about a second and waking restores it in place with the database and portal intact.
- Console: an all-clients dashboard showing every workspace as a client with all of its appliances and deployments in one view.
- Deployments: resizing an appliance up a tier now takes effect - the resize allowlist had been hardcoded to the base sizes.
- Deployments: appliance sizes pass schema validation on both the computer and deploy host schemas.
June 20, 2026
- Billing: the credit ledger is the single source of truth for balance reads, including the balance reported to MCP clients, which previously read a stale mirror.
- Billing: the tenant top-up mirror is kept in sync with the ledger, so top-ups are reflected immediately.
June 19, 2026
- Agents: connector attach, sync, preflight and detach for sandboxes, computers and deployments, plus provider triggers with one-time webhook tokens and signed inbound webhook verification.
- Docs: about fifteen missing product pages restored and re-linked, covering the deploy API reference and the agent product, runtime, device and workflow guides.
- Accounts: the workspace invite acceptance page was rebuilt with preview, expired, already-accepted and error states.
- Console: an Ask AI drawer on the docs site.
- Sign-in: token refresh retries with backoff on transient failure instead of dropping the session.
- Billing: the console credit balance shows the correct dollar value.
- Billing: balance alert emails gained a visible unsubscribe link and one-click unsubscribe headers, and no longer leak a placeholder organization name.
June 18, 2026
- Agents: sandboxes can run platform-managed Claude Code agent runs, and a run can be dispatched asynchronously into a sandbox rather than blocking the request.
- Sandboxes: command records accept arbitrarily long commands, so long exec commands no longer fail.
- Accounts: the current-tenant endpoint resolves for API-key callers such as the SDK and CLI instead of always returning
404. - Computers and sandboxes: preview and deployment domains are separated from computer domains.
June 16, 2026
- Billing: the public pricing page works again - four read-only pricing routes had been behind authentication and returned
401with no token, so the page showed a loading state forever. - Billing: usage rollups no longer fail when compute or runtime attribution fields are missing from a record.
June 15, 2026
- Agents: agent runtime profiles standardise which runtime, tools, connectors and environment apply to agent runs, and machines inherit a profile by default with the option to pin or skip one.
- Agents: orchestration groups - create a group of runs, dispatch it, cancel it and stream grouped run events.
- Agents: signed, short-lived download links for agent run artifacts and sandbox exports, and run artifact bytes are persisted so artifacts survive after the run finishes.
- Agents: cancel a running agent run, and cancel sandbox process runs.
- Agents: runtime environment variables inherited per organization, workspace and project, with a deployment target.
- Sandboxes: export and download sandbox contents.
- Docs: inherited runtime environment, MySQL and Qdrant data pages, and pages for the enterprise data partner pattern and transactional email.
- Sandboxes and computers: stored environment is injected into exec, so variables set on a machine now apply to its commands.
- Agents: runtime environment is injected into agent runs, and profile environment into machine exec.
- App Engine: the portal single-sign-on handshake survives a cross-host proxy hop, so the embedded portal logs in instead of returning
401. - App Engine: the host watchdog no longer re-provisions a healthy appliance and the revive loop is bounded, so appliances stop flapping between healthy and unavailable.
- Billing: the AI inference rate sheet is realigned to market pricing.
- Billing: outbound egress is metered per tenant at 5 cents per GB, and the unified credit wallet is enabled.
- Billing: persistent volume storage is billed per provisioned GiB-hour, attached or not, and database backup storage per GiB-hour.
- Billing: deployment builds, functions and buckets deduct from the credit wallet.
- Billing: every ledger line is itemized with its resource type and id, and spend can be grouped by resource or product.
- Billing: balance alert emails read the real credit balance, so a tenant holding credits no longer gets a false budget-exhausted email.
June 14, 2026
- Sign-in and accounts: real password reset for apps built on platform app authentication -
POST /api/v1/app-auth/{resource_type}/{resource_id}/password-resetalways returns202, stores a hashed one-hour token and emails a confirmation link, and the confirm route sets a new password and invalidates the token. - Sign-in and accounts: real email confirmation for app authentication - when a project requires it, signup creates a 24-hour token, emails a confirmation link, and login for an unconfirmed user is refused.
- Databases: MySQL and Qdrant are creatable, and the supported-engine list in error bodies now names them.
- Databases: PostgreSQL images ship the vector extension, so it can be enabled without a runtime install step.
- Databases: persistent volume attach and detach on computers - hot-plug a disk into a running machine and unmount and unplug it, both of which previously returned
501. - Agents: target-agnostic agent runs - dispatch a natural-language prompt to an agent runtime inside a sandbox or computer, list runs and inspect one.
- Agents: agent run outputs are recorded as durable run events and declared artifacts, with a runtime capabilities listing and artifact download.
- Agents: a managed connector works end to end - the vendor token never leaves the platform and an egress allowlist rule is seeded on first use.
- MCP: sandbox operations route through the sandbox engine, with new stop, extend, snapshot delete and fork tools.
- Builds: Bun and Hono app templates for a JSON API and for HTMX.
- SDKs: agent device facades added to the Go, Python and TypeScript SDKs.
- Docs: backend agent orchestration guides, agent product workflow guides, and an agent runs API reference.
- Agents: creating a secret with a connector binding works in one request.
- Billing: the console dollar value of the credit balance uses the canonical credit-to-cent ratio, matching whoami and invoices.
- MCP: the storage object tools were corrected against the live contract - upload uses a raw body, list parses the keys, and download decodes raw bytes.
- Docs: Mermaid diagrams render and the mobile docs shell is fixed.
June 13, 2026
- Sandboxes: sandboxes are persistent by default - stopping a sandbox preserves its filesystem and returns a resumable paused sandbox, create accepts opting out, and delete destroys it.
- Sandboxes: attach provider connectors to a sandbox, with sync, preflight and detach, and a connector catalog.
- Agents: managed connector presets can be configured per tenant without storing a vendor token.
- Deployments: the deployment page gains a versions tab with a chronological table, per-row promote and rollback, and an active-version highlight.
- Docs: snapshots documented as preserving filesystem state across sessions, checkpoints and forks, and an agent platform documentation set published.
- Sign-in and accounts: the current-tenant endpoint reports the real plan name and returns the balance from the ledger, so CLI auth and API-key callers see the correct plan and balance.
- API keys: newly minted keys can carry the egress read and write scopes.
- Computers: white-label desktop URLs stay on the tenant's own computer domain and are never built on the reserved deploy portal domain.
- Deployments: sleeping and waking status badges on the deployment page.
June 12, 2026
- API keys: tenant owners and admins can self-create tenant-wide platform keys -
POST /api/v1/api-keyswith a platform key type mints a tenant key, the default stays a personal user key, and a non-owner gets403. - API keys: key creation in the console asks for a key type - tenant automation with full tenant access for server-side use, or a scoped personal key.
- Billing: new signups are granted $10 of starting credit instead of $5, and the grant upserts so it cannot be silently dropped.
- Billing: the organization-create signup path grants the starting credit too, so new organizations no longer start at zero.
- Billing: the default tenant usage budget rose from $5 to $100, so new tenants are not paused almost immediately.
- Deployments: app subdomains under a workspace deploy domain resolve to the deployed container, and the appliance portal domain routes to the portal.
- Deployments: a short-lived single-sign-on URL for the appliance portal, so opening the embedded portal does not ask for a second login.
- Console: onboarding completes once - users who finished are sent straight to their projects - and the final step links to CLI setup.
- Billing: a tenant with credits remaining is never paused by the budget gate.
- Billing: the remaining balance shown on the billing screen is the credit balance net of usage.
- Sandboxes: exec and other operations refresh the idle clock, so a sandbox is no longer stopped mid-use.
- Sandboxes: large file uploads work - payloads are sent in chunks instead of failing on one oversized command.
- Sandboxes: the default timeout rose to an hour, the Starter concurrent-sandbox limit rose from 1 to 3, and a failed boot returns the reason in the response.
- Computers: always-on and permanent computers are never reaped, so an always-on computer is no longer destroyed after entering an error state.
- API keys: listing and revocation are role-scoped, and platform keys are tenant-wide with a much higher rate limit than user keys.
June 11, 2026
- Deployments: an observability endpoint returning invocations, error rate, latency percentiles, CPU, memory and cold-start rate for a selectable window.
- Deployments: per-request access logs with paging, status and time filters.
- Deployments: a per-route breakdown with invocations, error rate and latency percentiles.
- Deployments: runtime application logs with a live stream, and build log streaming per version.
- Builds: build machines default to 4 vCPU and 8 GB, with a smaller tier selectable per deployment.
- Console: the App Engine section was rebuilt as a native workspace with deployments, projects, domains, databases, logs, usage and settings tabs.
- Sandboxes: fast-boot sandboxes honour the memory you request instead of always resuming a default shape.
June 10, 2026
- App Engine: deployments default to native Docker-capable runtime nodes instead of running Docker inside a workspace computer, with the previous behaviour still reachable.
- Console: the deployment list no longer scrolls horizontally, and API key error states are human-readable with distinct copy for each failure.
- Console: the logs empty state distinguishes "log aggregation not enabled" and points to resource-level logs.
- Docs: the API key page was rewritten around the two key types, and the CLI page and published specification were refreshed.
June 9, 2026
- Deployments: log snapshots accept server-side filters - line limits and tail, time bounds, text and regular-expression include and exclude - across deployments, computers, sandboxes and databases, with a named error for an invalid expression.
- Sandboxes: list the listening ports inside a sandbox with the owning process.
- Sandboxes, computers, databases and deployments: a resource metrics summary returning state, readiness, CPU, memory, disk, uptime, timeout remaining and boot timings.
- Deployments: curated Dockerfile and Compose starting points for a range of frameworks and workers, selectable when creating a deployment.
- Deployments: workspace host endpoints for the console, SDK, CLI and MCP callers, and MCP tools to create a App Engine.
- Organizations: workspace email invites - create an invite, get a shareable link, preview it publicly and accept it.
- Organizations: project member roles over the API.
- Console: member settings support email invites with a role, list pending invites with expiry and a revoke action, and an acceptance page handling expired, revoked, already-accepted and email-mismatch states.
- Console: a App Engine section in the sidebar embedding the appliance portal, and a deployment wizard that accepts deep links with a template preselected.
- Docs: pages for connecting third-party computer providers, a comparison against other providers, and the component library with design tokens, plus a App Engine guide and API reference.
- Console: sandbox lifecycle actions work from the list - pause, resume and snapshot per row with toasts, and the stats strip shows ready and provisioning counts.
- Console: settings reflow on narrow screens and the login page preserves a safe redirect destination through login and MFA.
June 8, 2026
- Sandboxes: a fused run endpoint -
POST /api/v1/sandboxes/runcreates the sandbox, waits for it to be command-ready and runs the first command in one call, returning the sandbox, the output, the exit code and server timings. - Computers: the desktop sign-in gate renders tenant branding for white-label tenants.
- Docs: the landing page redesigned with getting-started paths, and an Ask AI assistant rail on documentation pages.
- Docs: a benchmarks page publishing a verified production run - 100 sandboxes at concurrency 10, all successful, with command-ready latency percentiles - plus a provider comparison.
- Computers: the desktop opens in a native viewer client instead of loading the viewer from a public CDN, so keyboard and mouse input reach the guest reliably.
- Computers: a desktop URL reports ready only once a real session is up, and the cold-boot window was raised so the first open shows the desktop instead of an error.
- Computers: desktop entry paths always route to the viewer gate, so an unauthenticated visit goes to sign-in rather than a broken page.
- Docs: sandbox documentation gained a documented fast path.
June 7, 2026
- Computers: a per-computer desktop password gate - the viewer shows a prompt, the owner reads and rotates a one-time password, and a public rate-limited session endpoint issues a token.
- Agents: one-shot composable app lifecycle - an agent can deploy an app, create its resources and attach a domain in one call, through the API or the compose tool.
- Databases: Qdrant added to the engine model, and vector extension support for PostgreSQL.
- Deployments: a deployment records its linked bucket and auto-provisions a database and storage bucket on create.
- Billing: the active payment provider was cut over to the live provider.
June 4, 2026
- Sandboxes: creating from an app template seeds runnable starter code into an empty workspace and starts it after seeding.
- Billing: the credit balance comes from the credit ledger directly, fixing "credits show 0" from a drifted mirror column.
- Billing: a tenant holding credits is no longer blocked by an exhausted dollar budget - the credit check and the budget check are alternatives.
- MCP: the server reports its version without an API key.
June 3, 2026
- Deployments: attach a managed database to a deployment without leaving the deploy flow -
POST /api/v1/deployments/{id}/database. - Builds: read build and runtime logs for a single version, optionally filtered by stage.
- Deployments: log snapshots return without streaming and tolerate missing buffers, so logs read immediately after a deploy.
- Deployments: sandbox-published apps stay on runtime routing instead of falling back to static routing, fixing
502s on server-rendered deployments. - Deployments: publish responses name the real publish model instead of always reporting a static release.
- Deployments: the deprecated XSS-protection header is gone, and the content security policy no longer allows localhost frame ancestors.
- Sandboxes: the default lifetime rose from 300 to 900 seconds when no timeout is passed, so framework and package installs stop timing out.
- Databases: using a database that is not running returns a structured connectivity error instead of a generic failure.
June 2, 2026
- Console: the dashboard is rebuilt as a command center with a desktop shortcut, compute by status and by region, and a recent-activity feed.
- Console: the observability query page is real - environment and time-window selectors, a query editor, summary tiles, an event timeline and a results table.
- Console: the observability functions page shows live metrics instead of placeholders.
- Console: platform navigation category links are clickable again and the mega menu is keyboard accessible.
June 1, 2026
- Billing: plan purchases, credit top-ups, saved-card charges, refunds and cancellations work again on a single payment provider instead of returning a server error.
- Billing: choose any top-up amount between $1 and $5,000 instead of four fixed buttons.
- Billing: auto-recharge charges the saved card and grants credits instead of only sending a notification.
- Sign-in and accounts: signup sends an email verification message, and buying credits or subscribing requires a verified email while free credits do not.
- Billing: balance alert emails are throttled to once a day instead of every fifteen minutes.
- Billing: running computers and deployments draw down the same credit balance as sandboxes, so one wallet covers all compute.
- Console: the billing page rechecks the balance after a successful top-up, so new credits appear without a manual refresh.
- Computers: the computer workspace page no longer overflows its header or detail panels.
May 2026
May 31, 2026
- Billing: a reworked billing and pricing surface - checkout and auto-recharge go through unified endpoints, credit purchase offers preset and custom amounts from $1 to $5,000, and the plans page loads the real plans instead of hardcoded ones.
- Console: "coming soon" surfaces were replaced with real ones across observability alerts, notebooks, project members and security, with the coming-soon route removed.
- Computers: desktop access restored on mobile, and the mobile sidebar keeps its icon rail.
- Settings: verified preview domains display as verified.
- CLI: sign-in redirects survive onboarding, so finishing onboarding returns you to the CLI authorization flow.
- Billing: removed portal buttons that returned a server error, since the payment provider offers no hosted portal.
May 28, 2026
- Sandboxes: restoring a snapshot restores the workspace filesystem, so files written before the snapshot come back.
- Sandboxes:
POST /sandboxesaccepts a size (xs through xl), and the default memory is 4096 MB instead of 1024. - Sandboxes: when capacity is still initialising after a restart, creation returns
503withRetry-Afterand a distinct code, so SDKs back off and retry. - Sandboxes: boot reliability - the warm pool refills on any deficit, network slot acquisition is shuffled, and a liveness check removes most snapshot failures.
- Security: a sandbox token injected into a machine can no longer mint delegation tokens for arbitrary users, and the caller's node must own the sandbox before a token is signed.
- Security: sandbox tokens go through the same scope checks as API keys, and provision scope is required to create resources.
- Security: sandbox token lifetime is capped at 24 hours when a caller asks for an unbounded value.
May 27, 2026
- Sandboxes: every sandbox boots with platform identity available inside it - seven environment variables including a signed token that authenticates back to the API, so code inside the sandbox can call the platform without embedding a real key.
- Sign-in and accounts:
POST /api/v1/tokens/scopedlets white-label tenants mint short-lived tokens bound to one end user and workspace, capped at 24 hours, with scope escalation refused. - Sandboxes: a
sandboxes:createscope implied bysandboxes:write, so existing keys keep working. - Sandboxes: a file tree, batch write of up to 100 files, and live file watch over a stream.
- Sandboxes: process control answers on the main API host instead of returning
404. - Sandboxes: public share URLs backed by short-lived share tokens.
- Quotas: per-end-user quota limits, enforced when a sandbox is created with
429 QUOTA_EXCEEDED. - Billing:
GET /api/v1/usagerollups grouped by end user, end project or workspace over 7 days, 30 days, month to date or a custom range. - Organizations: a cursor-paginated
GET /api/v1/audit-logfilterable by type, actor and resource. - Events: a tenant-wide event stream with glob type filtering.
- Deployments: framework detection extended to Astro, SvelteKit and Dockerfile, with static versus server-rendered chosen automatically and Dockerfile builds succeeding instead of failing closed.
- Databases: a sandbox on one host can reach a managed database on another host.
- API: the preview-domain routes accept API keys, matching the SDKs.
- Sandboxes: starting a project template registers its preview so the proxy can route to the dev server port.
- Sandboxes: snapshot to fork preserves the workspace, so files written before a snapshot survive into the fork.
- Docs: the homepage rewritten with code samples across five SDKs, and a cookbook overhaul adding embed-a-sandbox, per-user quotas and billing, and sandbox events in real time.
- Volumes: attaching a volume no longer reports success without mounting anything - it returns a clear refusal instead of a false success.
- Sandboxes: creation succeeds when the delegated end-user id is not a UUID, by attributing the sandbox to the organization.
- Docs: the sidebar active state was rebuilt so the indicator no longer shifts content.
May 26, 2026
- Docs: twenty-two new pages for the release - API references for preview tokens, sandbox shares, tenant preview domain, branding, quotas, usage, audit log, tenant events, sandbox environment, processes, files, templates and webhooks, a five-page integrations section including a white-label walkthrough, and four drop-in UI component pages for React, Vue and Svelte.
- Docs: a full audit pass correcting status values, the default working directory, preview URL shapes and the tool count, and removing internal mechanism detail while keeping every user-facing number. The open-source repositories are public.
May 25, 2026
- Agents: the expose tool returns the named computer's URL, so the returned URL routes for named computers instead of only identifier-prefixed slugs.
May 24, 2026
- Databases: resize a managed database's disk between 1 GB and 1 TB with
PATCH /api/v1/managed-databases/{id}. - Databases: deleting a project or workspace now cascades to its managed databases.
- Webhooks: lifecycle webhooks for sandbox, managed database and deployment state changes, so consumers can react without polling.
- API: the event-stream ticket endpoint accepts API keys, which previously got
401. - API keys: keys can be scoped to a single workspace, isolating them per workspace.
- Sandboxes: register a custom domain for a sandbox, not just for a computer or deployment.
- Console: the domains panel gained an inline wizard - list, add with validation, a DNS setup card, per-domain verify and remove.
- Settings: custom domains UI with a unified CNAME target, and the plan card reads concurrent-sandbox limits from the API instead of a hardcoded number.
- Notifications: a bell in the header with an unread badge, a dropdown, and mark-one and mark-all actions.
- Docs: a Claude Code skills guide.
- Security: connected OAuth accounts refresh their tokens automatically, and if the provider's token endpoint is down the request is served with the existing token rather than failing.
- Throughput: API rate limits raised substantially - the public API and authenticated keys from 300 to 30,000 requests a minute, event streams from 300 to 3,000, and sign-in from 20 to 60.
- Webhooks: delivery hardened - latency recorded per attempt, retries extended to eight attempts over about 24 hours, and a terminal dead-letter state instead of silent loss.
- Sandboxes: the sandbox terminal connects again - it had been closing immediately because the wrong protocol was echoed.
- Security: the OAuth callback redirects to a completion page with a success or error status instead of leaving the popup unresolved.
May 23, 2026
- Security: security is a top-level console module - overview, secrets, network, audit and OAuth providers - with Secrets, Network and Audit Log tabs on the sandbox page too.
- Security: connecting an OAuth account completes in a popup that closes itself and refreshes the secrets list, with a getting-started path on the landing page.
- Workspaces: a three-step create-workspace wizard and a per-workspace settings page with identity, compute defaults (maximum computers, maximum size, auto-suspend, always-on) and a guarded delete.
- Workspaces: a workspace switcher as a command palette with fuzzy search, keyboard navigation and a URL parameter; list pages re-fetch on switch.
- Workspaces: an activity feed with the last ten events on the workspace settings page.
- Organizations: workspace invites - create, list, revoke, preview and accept.
- Resources: move a sandbox, deployment, database or project to another workspace with
POST /api/v1/{resource}/{id}/move. - Projects:
DELETE /api/v1/projects/{id}, refusing with409 PROJECT_HAS_DEPENDENT_RESOURCESwhen child resources still exist. - Databases: managed database REST routes, including additional databases per project.
- Databases: every sandbox in a project with a running managed database gets its connection string written to a platform env file at boot, so sourcing that file is enough to connect.
- Onboarding: a two-screen post-signup flow, a welcome email with three calls to action, and a five-step product tour.
- Notifications: a per-user notification centre with unread count and a live stream.
- Status: the public status page reworked, with a header health indicator.
- Docs: a security API reference, a troubleshooting page, a five-SDK security reference, and three cookbook recipes.
- Sandboxes: the expose call now returns a URL that actually routes instead of a broken port form.
- Sandboxes: published templates are pushed to every region, so the first sandbox in any region lands on the snapshot boot path.
- Sandboxes: file writes are permitted under the standard workspace, home, temporary and platform directories.
- Databases: managed database provisioning completes in about five seconds instead of hanging and leaving databases failed.
- Organizations: creating a workspace immediately adds the creator as owner, so the next request no longer fails.
- Organizations: creating a project auto-provisions its volume and default database.
- Domains: a tenant that points a wildcard CNAME at the platform proxy has its preview domain bound automatically on first request.
- Docs: corrected preview URL examples and the content security policy example.
May 22, 2026
- Agents: the hosted tool server grew from 9 to 145 tools, covering computers (lifecycle, desktop methods, files, checkpoints, environment, logs, domains, services), sandboxes (lifecycle, files, snapshots, logs, expose, deploy, templates), deployments, storage, databases, workspaces and billing.
- Agents: new desktop-control tools (screenshot, click, double-click, type, key, move cursor, scroll) and introspection tools for sandboxes and deployments.
- Security: a credential vault with OAuth-connected accounts, a network allowlist with audit-only and enforce modes, and a live audit log.
- Computers: Secrets, Network and Audit Log tabs on the computer page, with the audit log tailing live.
- Organizations: per-workspace membership with owner, admin, member and viewer roles, with non-member requests refused.
- Organizations: invite by email, with preview and accept routes and the invite email sent by the platform.
- Organizations: settings split into organization members and workspace members.
- White-label: a custom-domain setup wizard with a branding preview card.
- White-label: requests to an unknown or unverified host return a named error, and a credential belonging to a different organization on a pinned host is refused.
- CLI: the authorization page shows the code and an explicit sign-in screen, and the login page explains the sign-in is for the CLI.
- Docs: a hosted tool server guide with per-client tabs and the full tool catalogue, an agent development kit guide, a benchmarks page with reproduction commands, and a custom-domains page.
- Sandboxes: a new template builds its snapshot automatically at creation, so its first boot lands on the fast path.
- Console: the code editor is loaded only when an editor opens, and polling pauses while a tab is hidden.
- Console: every settings page rendered as raw unstyled HTML because its stylesheet was missing after a refactor; restored.
- Console: the domains page was stuck loading from an infinite refetch loop, and the deploy page was hammering the deployments API.
- Console: a re-render loop was firing about a thousand requests in ten seconds at the projects API and getting rate limited.
- Billing: the billing page crashed when a non-essential endpoint returned
404; it now degrades instead of failing the whole dashboard. - Docs: walked back an over-claimed benchmark comparison and moved unshipped claims into a roadmap section.
May 21, 2026
- Sign-in and accounts: SAML single sign-on settings - upload identity-provider metadata or configure manually, see status, test login, download service-provider metadata and follow a setup checklist.
- Deployments: webhook endpoints at
/settings/webhookswith per-endpoint delivery history and a retry action. - Sandboxes: an SSH tab on the sandbox page with the connection string, key download and agent setup instructions.
- Deployments: a version selector with one-click rollback on the deploy page, plus a runtime instances tab with polling, restart and state badges.
- Console: new settings surfaces for tokens, security, notifications, audit, integrations and usage, plus per-project settings and workspace environment variables, logs and webhooks.
- Billing: billing copy renamed from the previous payment provider to the one actually in use.
May 18, 2026
- Organizations: organization slug setup is enforced during onboarding and in account settings.
- Docs: scoped preview domains documented and a public API specification added.
- Console: compute workspace polish - consistent sidebar pattern, standardised spacing and fixed shell scrolling.
May 17, 2026
- Computers: a desktop control API - hotkey, key down and up, clipboard read and write, screen size, environment info, wallpaper, accessibility tree, mouse down and up, cursor move, and seven window operations.
- Deployments: read production runtime instances, one instance, and its logs.
- Projects: a project workspace backend so consoles can create and list compute projects.
- Console: a projects workspace with a per-project shell and nineteen sub-pages.
- Docs:
miosa.ai/docsrelaunched as a native part of the console with 67 pages, search, a command palette and diagrams. - Docs: a public machine-readable docs index,
llms.txt,llms-full.txtand an OpenAPI document for agents and tooling. - Status: a public status page.
- Docs: all desktop methods, the CLI command reference, the Python SDK reference, the tool server guide and the white-label guide.
- Docs: usable on phones with tap targets, a full-screen assistant drawer and scrollable tables.
- Files: file download works, streaming through the native read path instead of shell and base64.
- Files: seven file operations pointed at the wrong path and are corrected.
- Computers: right-click and scroll no longer freeze the desktop for ten seconds.
- Agents: hardened the computer tools.
May 16, 2026
- Computers: a desktop is reported active only once its desktop agent is actually responding, instead of during boot.
- Sandboxes and computers: HTTPS inside a machine no longer stalls - link-local IPv6 is disabled so a browser cannot fall back to a dead route, and TCP segment clamping is applied on the sandbox network path.
May 14, 2026
- Agents: six tools to control a computer desktop - click, type, key (single keys and combinations), scroll, drag and launch an application.
- Sandboxes: tag sandboxes, deployments, databases and domains with your own external workspace, user and project ids, read them back on responses and filter lists by them.
- Sign-in and accounts: new API key scopes for project authentication and project integrations.
- Computers: file writes are binary-safe and no longer limited by shell argument size, so larger files, quotes and heredocs work.
- Computers: file writes create missing parent directories, and files written under the home directory are owned by the user so applications can read them.
- Computers: agent calls retry transport failures, reducing unavailable errors.
- Computers: scrolling up on the desktop no longer stalls for about ten seconds, double-click is available, application launch resolves common aliases, and typing is faster.
- Sandboxes:
pip installworks without special flags, since the externally-managed marker is removed from the image. - Sandboxes: a 1 GB swap file is baked into the image and activated at boot, so large installs and builds are less likely to be killed.
May 13, 2026
- Sandboxes: create and manage your own sandbox templates alongside the built-in ones.
- Sandboxes: define a template with a build spec - base image, CPU, memory, disk, steps, environment, workdir, user, start and ready commands, preview port and artifact paths - validate it, build it and follow the build to ready or failed.
- Computers: Chrome starts reliably in the desktop, with shared memory sized and the sandbox flags set correctly.
- Computers: Chrome runs with full browser capabilities, with the restrictive process and extension-limiting flags removed.
- Sandboxes: workspace panels are gated on the sandbox being ready, and the preview route offers a retry.
- Sandboxes: the files and git tabs always use the sandbox API, and the ports tab exposes ports through it with the backend-issued preview URL.
May 12, 2026
- Sandboxes: first-class previews for a sandbox port, each with a name, port, visibility and metadata.
- Sandboxes: set a preview time to live between 60 seconds and 7 days, mark a preview private so it requires authentication, and share it with a time-limited link that can be revoked.
- Sandboxes: request a region for a new sandbox, used for placement and persisted.
- Deployments: publish static output from a running sandbox into an immutable deployment version, optionally promoting it in the same call.
- Deployments: list and read versions, promote a ready version, and roll back to an older ready version.
- Deployments: attach, list, verify and remove custom domains, with several per deployment.
- Deployments: apex domains can be registered, verified and served, not only subdomains, with a redirect policy between the apex and
www. - Deployments: the API returns the exact DNS records to create with verification instructions.
- Sandboxes: an artifacts tab showing the preview URL, lifecycle state and output paths.
- Deployments: a promoted static version is served at the deployment hostname and its verified custom domains from immutable artifacts with long-lived cache headers.
- Deployments: registering a domain is idempotent, so repeating the same registration returns the existing domain.
- Sandboxes: preview traffic has its own per-preview rate limit, and previews are served so they can be embedded, with the preview token stripped before the request reaches the app.
- Computers: restoring from a saved snapshot boots through the snapshot path, and the restored machine comes back running with its network rebound.
- Computers: desktop and terminal stream tokens are replicated to the host running the computer, so streaming works on every host.
- Deployments: a domain that already belongs to another resource is refused instead of creating a duplicate.
- Sandboxes: deploy returns specific errors instead of a generic failure when the sandbox has no runtime address or the port is invalid.
May 11, 2026
- Sandboxes: list the built-in templates with the default template id, and read one template's defaults.
- Sandboxes: run a template inside a running sandbox, installing dependencies, starting the dev server and returning an artifact manifest.
- Sandboxes: read a sandbox's artifact paths, preview metadata and lifecycle state.
- Sandboxes: opening a terminal returns a short-lived token and its expiry for the terminal socket.
- Sandboxes: create from a template and inherit its CPU, memory, disk, readiness probe, preview port and workdir, with an unknown template refused naming the list endpoint.
- Sandboxes: the terminal socket connects to sandboxes running on any host.
- Sandboxes: preview URLs at the sandbox preview domain now serve.
- Deployments: deploy a running sandbox to a live URL, with port and custom domain accepted and the response carrying the state and URL.
- Deployments: responses include the public URL, and a running deployment's managed hostname is re-registered automatically after an edge restart so the URL recovers without a redeploy.
- Computers: the desktop iframe and terminal socket accept computer hostnames and are proxied across hosts.
- Computers: the terminal opens in the home directory instead of failing, and accepts a starting directory.
- Sandboxes and computers: writing a file creates missing parent directories, and the workspace is prepared and owned by the sandbox user on boot.
- Sandboxes: destroying a sandbox releases its network slot lease, so repeated create and destroy cycles do not exhaust a host's slots.
May 10, 2026
- Sandboxes: create from the new Debian 12 fast-boot runtime, which becomes the default template.
- Sandboxes: choose a template at creation from the published list.
- Sandboxes: request a disk size, and keep a sandbox running with an always-on flag so it is not auto-destroyed when idle.
- Billing: sandbox runtime is metered while the sandbox is running, checked every few minutes, so long-running and always-on sandboxes are charged for elapsed time instead of only at destroy.
- Agents: builder sessions are stored server-side and survive across browsers and devices instead of living in the browser.
- Sign-in and accounts: continue with GitHub on the login and registration pages.
- Agents: a tabbed integration centre splitting the page into OAuth, AI keys and services, with OAuth provider cards and brand logos.
- Agents: voice mode - a hands-free voice conversation with an audio-reactive orb, a live transcript pane, a voice picker and an editable system prompt.
- Agents: a dictation microphone, a slash-command palette, and image paste and file drag-and-drop in the composer.
- Agents: a unified chat surface, so the builder page uses the same agent chat panel as sandboxes and computers, with a child-agent drawer.
- Agents: three more AI providers, bringing the catalog to twelve.
- Agents: a live connection indicator in the chat header.
- Sandboxes: the terminal supports two display modes, command autocomplete, a quick command menu and one-click installers for common coding agents.
- Sandboxes: set a timeout from one second up to 24 hours.
- Sandboxes: the default size is 1 vCPU, 1 GB RAM and 3 GiB disk, with requests capped at 4 vCPU, 8 GB and 10 GB.
- Computers: terminal, event and desktop streams wait for a booting computer and retry, so a connection opened during boot no longer closes immediately.
- Agents: the chat warns if no event arrives and marks a task failed with an explanation after silence.
- Agents: the builder project tabs are mine, recently viewed, shared with me and templates.
- Computers: the desktop URL points at the computer domain so the desktop opens rather than failing, and stream URLs use the same domain.
- Billing: the billing page shows the real plan name, usage budget, top-up balance and available balance instead of zero in every dollar field.
- Billing: top-up payments credit the balance, period usage resets at renewal, and a cancelled subscription returns the account to the free plan, instead of those events being dropped.
- Sign-in and accounts: a signed-in user with no workspace gets a personal workspace created automatically instead of every API call failing.
- Sign-in and accounts: clearer errors for GitHub sign-in failures, covering no public email, a provider error and a cancelled sign-in.
- Appearance: components using undefined colour tokens no longer render white-on-white buttons or dark-on-dark text.
May 8, 2026
- Sandboxes: clone a repository into the sandbox at boot by passing a repository URL with an optional branch and clone path, with the checkout status reported in the sandbox metadata.
- Sandboxes: pause a running sandbox to stop paying for CPU while keeping it alive, and resume it, with pause, resume, snapshot and fork on the sandbox page.
- Sandboxes: fork a running sandbox into a new one that inherits its template, size, environment, services, tags and metadata.
- Sandboxes: sandbox responses include boot diagnostics, so you can see whether it came from a warm pool or a cold boot and how long the boot took.
- Billing: size presets are named Agent, Builder and Service with hourly rates.
- Billing: the pricing page was rewritten per credit with Free, Starter, Pro, Scale and Enterprise plans and a monthly and annual toggle.
- Billing: computer and sandbox size rate tables with hourly and monthly prices, a storage and egress rate table including the stopped-computer rate, and inference cluster rates.
- Billing: an inline enterprise contact form and a pricing FAQ.
- Computers: a creation flow with a runtime choice, per-size prices and a review step before launch.
- Computers and sandboxes: new machines come with the common coding agent CLIs and a starter repository already installed, and the cold-boot path no longer spends minutes installing them over the network.
- Sandboxes: an idle sandbox with a timeout set is snapshotted and paused automatically, and any command, file transfer or tunnel activity resets the idle clock.
- Sandboxes: the event stream carries agent, tool-progress and computer-use events on top of lifecycle events.
- Sandboxes: the idle timeout you choose is actually sent on create, previously defaulting to disabled.
- Computers: auto-suspend now defaults to five minutes for sandbox-type workloads and fifteen minutes for interactive desktops when you do not set one.
- Files: the default path is the home directory, and the standard workspace, home and temporary directories are permitted.
- Computers: opening a computer's hostname in a browser redirects to the desktop client instead of returning a JSON status blob.
- Billing: the billing overview classifies sandbox, database and custom-domain runtime as compute and inference tokens as AI, instead of lumping them under other.
- Computers: the in-machine agent token is written to the path the agent actually reads, fixing the
401that every sandbox and computer auth request returned. - Computers: the root filesystem clone uses copy-on-write instead of a full sparse copy.
- Sandboxes: a repository import that is not a valid HTTPS URL is refused up front instead of failing the clone silently.
- Sandboxes: requests have a timeout and retry once on
401.
May 7, 2026
- Billing: see your dollar balance and remaining budget - plan, monthly usage budget, top-up balance, spend this period, remaining, period start and auto-reload state -
GET /api/v1/billing/balance. - Billing: start a checkout session for a plan subscription or a one-time top-up and get a URL back, surfaced as top-up buttons on the billing page.
- Billing: read paginated usage history of up to 200 rows -
GET /api/v1/billing/transactions. - Billing: computers and sandboxes are metered per minute by vCPU-hour, GiB-hour of memory and GiB-hour of disk, and storage is metered daily with the first 5 GiB per computer free.
- Billing: top-ups carry a bonus credited by the payment webhook.
- Billing: turn on auto-reload so your card is charged and your balance topped up below a threshold.
- Billing: a usage breakdown with a spend-versus-included bar and a category table showing amount, units and share.
- Billing: a plan card with plan name, status, included budget, period start, next renewal and cancellation date.
- Billing: a usage trend chart with 7, 14, 30 and 90 day windows, a filterable usage table, inline invoices, and payment-issue and free-plan banners.
- Billing: projected monthly spend from your daily average, with a warning when the projection exceeds your budget.
- Billing: usage past the plan budget is posted to your next invoice as a usage overage line at period end.
- Billing: balance alert emails at three levels - budget exhausted, almost depleted and credits running low.
- Agents: bring your own provider API keys for seven providers, returned only as a masked preview.
- Sandboxes: read back the environment variables a sandbox was created with.
- Sandboxes: update an existing sandbox with
PATCH /api/v1/sandboxes/{id}. - Sandboxes: dedicated file routes for read, write and list.
- Agents: an agent tab on the sandbox page with the chat panel bound to that sandbox session, and a recent-chats list in the builder sidebar.
- Cron: a job detail page with execution history, expandable run output, a run-now button and editable schedule, size and timeout options.
- Deployments: a deployment list with status filters and per-status counts, and publishing from a sandbox as a deployment source.
- Deployments: a deployment detail page with overview, build log, builds, environment variables and settings tabs, rollback to the last build, and custom domain connect and remove.
- Functions: a detail page with metrics, a copyable curl example and an editable name.
- Storage: the bucket page rebuilt with files, info, access, settings and danger tabs, including bucket credentials and CORS configuration.
- Billing: a request that would exceed your budget is rejected before any work starts, with
402naming whether it is the free tier or the budget cap, on sandbox and computer create and start. - Billing: when a workspace runs out of budget its running computers are paused automatically instead of continuing to accrue usage.
- Sandboxes: the preview pane shows a placeholder with a port selector while the app boots, and boot detection polls faster at first.
- Docs: snapshots renamed to checkpoints across the reference and guides, new errors, rate limits, architecture and recipes pages, and a published specification with 182 paths.
- Landing page: rewritten positioning copy, the badge changed from launching soon to live now, and the call to action is now to build your workspace.
- Refund policy: rewritten for subscriptions, top-ups, metered usage and billing errors.
- Billing: the spend cap's tenant lookup was corrected so the cap is enforced reliably instead of passing requests through.
- Billing: usage records and categories read from corrected metrics, fixing a
400on the billing page. - Sandboxes: a request that reaches a listener node without the sandbox cached falls through to a lookup instead of
404ing, so preview URLs resolve from any node.
May 6, 2026
- Settings: white-label branding - app name, light and dark logos, favicon, three brand colours, email sender name and address, support email and URL, and a "powered by" toggle - gated to the higher plans with an upgrade prompt below that.
- Settings: branding applies across the console, including the header logo, favicon, page title and brand colours, and the workspace response carries the branding object so a branded app can paint before first render.
- Settings: transactional email is sent from your configured sender identity, and preview URLs use your custom preview domain.
- Agents: eight tools offered to the model in standard function-calling format - create a sandbox, exec, write and read files, expose a port, install dependencies, take a screenshot and deploy.
- Agents: the deploy tool promotes a running sandbox into a persistent deployment and can attach a custom domain in the same call.
- Agents: send a code-execution tool and the model runs code in a sandbox for up to ten turns, with the sandbox created on the first call and destroyed when the response finishes.
- Agents: the model listing reports which tools each model supports.
- Sandboxes: give a sandbox a name and look it up by name.
May 4, 2026
- Integrations: connect thirty third-party services with credentials encrypted at rest, mapped to provider environment variables and injected into the project's machines at boot.
- Integrations: a marketplace with eight providers, filterable and searchable, where connecting a provider shows the environment variables it injects.
- Integrations: an integrations tab on computers, sandboxes and deployments with an add drawer, connected providers, injected variables and removal.
- Sign-in and accounts: a built-in project auth provider that creates user and session tables in the project database and issues tokens, with configurable signup, token expiry and email confirmation.
- Sign-in and accounts: the project machine receives the auth secret and settings so application code can verify tokens.
- Agents: register outgoing webhooks subscribed to twenty-five event types across machines, databases, deployments, previews, health checks, cron and billing, with HMAC signatures and exponential-backoff retries.
- Agents: send a test event and inspect or replay individual webhook deliveries.
- Cron: schedule an agent task instead of a shell command, using a natural-language description optionally bound to a specific computer.
- Agents: an app builder dashboard with a prompt box, project tabs - mine, shared, templates - project search and template cards.
- Agents: a builder project view with a resizable chat panel, prompt chips, and preview, cloud, code and files tabs, plus publish.
- Agents: a cloud sidebar in the builder with eleven sections including overview, AI, emails, database, users, storage, secrets, functions, SQL editor, logs and usage.
- Agents: an orchestrator panel showing multi-agent work in chat, with per-agent chips, wave progress and the synthesis.
- Agents: an agent progress view with a planning step and a running list of tool calls and results.
- Appearance: a light, dark or auto theme switcher in the account menu.
- Sandboxes and computers: an always-on flag keeps a machine running with auto-pause and idle detection disabled, and auto-pause now defaults to off so machines no longer stop five minutes after creation unless configured.
- Emails: sandbox provisioning sends its own ready and failed emails, separate from computer lifecycle emails.
- Agents: the builder runs its AI requests through the platform API instead of a direct provider call.
- Agents: tool call cards were redesigned into one minimal style with a status dot, duration and click-to-expand output.
- Emails: provisioning emails no longer fail with a missing-field error.
May 3, 2026
- Databases: create and run a managed PostgreSQL database sized on CPU, memory and storage, with start, stop, restart and delete.
- Databases: read the generated connection credentials.
- Databases: a stopped database keeps its persistent volume, so restarting brings the same data back, and it is billed per hour in minute ticks.
- Databases: a management UI with a list showing status, name, engine, size and region, a create form, and a detail page with lifecycle actions and credential reveal.
- Storage: S3-compatible object storage buckets, namespaced per tenant, with quota enforcement and usage counters.
- Storage: put, get, list and delete objects including nested keys, and generate S3-style presigned URLs signed with SigV4.
- Storage: bucket management with a file browser, drag-and-drop upload with progress, per-object download and delete, and presigned URL generation.
- Databases: a table browser with column types, sort, filter, paging, inline cell edit, row insert and bulk delete.
- Databases: a SQL editor with a keyboard shortcut to run, tabular results and the last ten queries kept as history.
- Logs: stream a computer, sandbox or database's logs live, with a real-time viewer, severity colouring, pause and resume, reconnect with backoff and a connection indicator.
- Cron: schedule a recurring task on a five-field cron expression that boots an ephemeral sandbox, runs a command, captures output and cleans up, with a job list, create form and detail page with execution history.
- Deployments: every pull request gets its own preview environment, created on open, rebuilt on push and destroyed on merge or close, with a previews tab listing them.
- Health checks: attach a TCP, HTTP or HTTPS probe to a computer, sandbox or database with configurable interval, timeout, port, path and thresholds, and see the state transition between healthy, degraded and unhealthy.
- Databases: pass a database flag when creating a sandbox or deployment and a managed PostgreSQL is auto-provisioned and linked, with connection variables injected into the machine and the database destroyed with its parent.
- Sandboxes: an attach-database toggle with a size selector at creation, and a database tab showing status, engine, size and credentials.
- Files: a full filesystem API inside sandboxes and databases - list, read, write, upload, download, stat, mkdir, rename, copy, delete and chmod - with uploads up to 10 MB.
- Sandboxes: the file editor is a real code editor with syntax highlighting for the common languages, line numbers, bracket matching, folding, autocomplete and search.
- Functions: create serverless edge functions with node, python, deno or bun runtimes, an entrypoint, environment variables, memory and a timeout, each with a public invoke URL.
- Functions: invoke a function with a JSON payload delivered as an environment value and read the captured output.
- Functions: a management UI with a list, per-runtime starter templates, and a detail page to edit code, deploy, test and view results.
- Sandboxes: a cloud tab with service cards for database, storage, intelligence, secrets, logs and usage.
- Billing: a usage dashboard with credit balance, used this period, daily rate, projection and plan progress, a stacked breakdown by category, a top-consumers ranking and a paginated transaction table.
- Agents: computer-use tool calls render as cards naming the action, with inline screenshots that expand on click.
- Agents: an activity badge over the desktop stream showing what the agent is doing.
- Sandboxes: sandbox URLs now open in the shared computer workspace.
- Navigation: databases, storage and cron jobs added as a data and automation group in the platform header.
- Databases: the deployment create wizard is four steps with an optional managed PostgreSQL.
- Computers: screenshot, click and type calls are routed through the node that owns the machine, so they work for remotely hosted machines.
- Computers: the computer domain serves HTTP/1.1 so socket upgrades work and terminal connections stay open.
- Settings: the actions in the computer settings tab are all wired, and a force restart clears the stale session.
- Emails: computer and sandbox provisioning emails no longer raise a missing-field error.
May 2, 2026
- Sign-in and accounts: a security page with password change, a send-link action to verify your email, and a revoke action that ends the current browser session.
- Sign-in and accounts: enable or disable email two-factor authentication, confirming with a six-digit code and showing the enabled state.
- Sign-in and accounts: when email two-factor is on, sign-in shows a verification step asking for the emailed code and its expiry.
- Sign-in and accounts: confirm your email address from the link in the verification email, and resend it while signed in.
- Sign-in and accounts: sign-in tells you at the first step whether a second step is needed, then finishes with the emailed code.
- Sign-in and accounts: redesigned password recovery with a reset form, a confirmation and a choose-a-new-password page.
- CLI: an install page walking through Homebrew install, authorization and verification, with one-click copy on each command.
- Computers: a home tab with the machine's info and live system statistics - uptime, memory and disk bars, CPU count and detected services.
- Computers: channels, schedules, services and tutorial tabs, with schedules creatable from templates on a cron expression and runnable on demand.
- Agents: give a computer an inbound email address, read its recent messages, and choose how mail is handled.
- Agents: list the communication channels available and enable or disable one, and read and update notification preferences including quiet hours.
- Billing: read per-GPU credit rates directly in settings, surfaced in the create wizards.
- Accounts: a welcome email on signup or first Google sign-in, and transactional emails moved to a branded layout.
- Deployments: emails when a computer finishes or fails to provision, and when a deployment succeeds or fails, each linking to the resource or the build logs.
- Computers: the terminal supports multiple tabs and remembers open terminals across reloads.
- Computers: the tab bar can be scrolled with arrow buttons when tabs overflow.
- Sign-in and accounts: email codes come from a cryptographic source, expire after ten minutes and stop after five wrong tries.
- Sign-in and accounts: replies to platform emails now land instead of bouncing, with a reply-to address and a plain-text version.
- Billing: GPU prices come from the compute pricing endpoint, so they show in the create wizards.
- Sandboxes: the concurrent limit comes from the plan's concurrent cap rather than its total cap, no capacity returns a retryable
503, and creates are throttled per tenant by plan. - Computers: start, stop and restart call the user API instead of the admin endpoint, so they work for normal accounts.
- Computers: opening a computer by its slug resolves, and provisioning registers it in the proxy cache so it is reachable as soon as it is created.
- Sandboxes: proxy routing resolves the host's network address rather than its hostname, fixing failed connections to sandboxes on other hosts.
- Sign-in and accounts: failed Google sign-in returns you to the login page with an error code instead of a raw JSON error or a
502. - Sign-in and accounts: the password reset email link opens the working reset page.
- Sign-in and accounts: the OAuth session is mirrored into a server session cookie at the callback, so the signed-in state is available to server-rendered requests.
May 1, 2026
- CLI: sign in from the terminal with a browser approval flow instead of pasting a key -
miosa auth loginopens the authorization page with a one-time code and returns a fresh key once approved. - CLI: approve or deny a pending terminal login from the console, either from the link the CLI opens or by pasting the code.
- Sign-in and accounts: see and manage terminal access in one place, listing CLI devices and API tokens with fingerprint, scopes and last-used dates, with a per-token revoke.
- Billing: two higher tiers published, Platform at $499 a month with 100 computers, 10,000 sandboxes, 50,000 credits and white-label branding, and Enterprise.
- Billing: plan limits now carry sandbox, deployment, custom-domain and API-key caps, per-plan API rate limits, allowed machine sizes and a preview-domain flag.
- Billing: read your plan, every resource limit and live usage plus the next upgrade tier -
GET /api/v1/tenant/plan. - Billing: a plan and usage tab showing your plan and price, an upgrade link, and usage against limits with progress bars.
- Sandboxes: read per-size compute rates in credits per hour and GPU rates, and that one credit is one cent.
- Sandboxes: the create wizard lets you enable PostgreSQL, Redis or MySQL services, pick a region and set a maximum runtime from five minutes to 24 hours.
- Sandboxes: the list shows each sandbox's preview URL with copy and open, and inline service badges.
- Sandboxes: an interactive terminal over a socket, with a reconnect window that keeps the in-machine terminal alive across disconnects.
- Computers: ports, environment variables, a file manager, snapshots, a create wizard with template, size, GPU and region, and a provisioning screen showing named steps with a live percentage.
- Docs: a changelog page, a CLI page, and API reference pages for filesystem, streaming exec, snapshots, services, custom domains, network policy and events.
- Docs: sandbox SDK documentation for TypeScript, Python and Go, plus templates and status pages, and a rebuilt landing page with tabbed code examples.
- Computers: rename a computer and change its resolution, auto-stop setting and selected apps after creation.
- Deployments: edit the name, branch, build command, run command and auto-deploy setting without deleting and recreating.
- Sandboxes: every sandbox is registered with the proxy on boot and gets a public preview URL immediately.
- Sandboxes: maximum lifetime raised from one hour to 24 hours.
- Settings: a branding tab to serve sandbox previews from your own domain, with a live DNS status badge, a verify action and a setup guide.
- Authentication: the page you were heading to is preserved through an OAuth sign-in instead of dropping you on the sandboxes page.
- Docs: fixed broken internal links, replaced a flat feature table with descriptive cards, and added mobile breakpoints.
- Sandboxes: creating past your plan cap fails cleanly naming the plan and the cap.
- Settings: the branding tab now sends the preview domain under the key the backend expects, so saving a domain takes effect.
- Onboarding: the open-computers welcome modal only appears on its own page instead of interrupting every page.
- Billing: token charges for chat completions were computed per thousand tokens instead of per million, overcharging by a factor of a thousand.