New
- Imported legacy Suna chats are now first-class: migrated sessions show up in the session list with a restore state (instead of a misleading "Done"), and opening one restores its full conversation history into the session. Files from every imported chat live in the project repo under
legacy/. (#6235, #6241, #6251) - Admin: an activity-analytics dashboard, a projects console, clearer tier labels, and admin-issued trials with per-account entitlement overrides. (#6244, #6249, #6250)
- Apps: serverless app deployments are provider-neutral — any Dockerfile runtime builds and serves (including non-root images), and the first request after idle reliably wakes the app. (#6253)
- Reloading a busy session asks before stopping the running turn, and says clearly when a turn was stopped.
Improved
- Setup links: secret links now last 7 days, an expired link says it expired instead of "invalid", and completing one notifies the waiting session immediately. (#6240)
- Faster navigation between projects and sessions: one cache entry per entity, and route segments are no longer discarded on the way. (#6231)
- Browser tabs are named after the session you have open. (#6236)
Fixed
- Billing: subscriptions activate only after the first invoice is paid; compute metering opens and closes windows atomically with precise start times; sandbox resume reconciliation is fenced so a wake race can't double-bill; a ledger row can no longer be both usage and an admin debit. (#6247, #6248)
- The terminal stays attached when the session runtime restarts during a reload.
- Removed noisy request-timeout toasts.
- Firefox no longer shows a crash message from the background shader when WebGL is unavailable. (#6254)
Removed
- The local Docker sandbox provider. Sessions run on cloud sandboxes.
What's Changed
- chore(release): VERSION → 0.12.6 [skip ci] by @github-actions[bot] in #6237
- Fix Platinum resume billing reconciliation race by @markokraemer in #6239
- fix(setup-links): 7-day secret-link TTL, expired-vs-invalid intake UX, resolve-on-set session notify by @markokraemer in #6240
- fix(suna-migration): write migrated sessions as 'completed' so they list by @markokraemer in #6241
- fix(billing): hold resume fence until provider runs by @markokraemer in #6242
- refactor(sandbox): remove retired local Docker provider by @markokraemer in #6243
- fix(billing): close compute windows atomically by @markokraemer in #6245
- feat(billing): admin-issued trials + per-account entitlement overrides by @markokraemer in #6244
- fix(billing): pin compute meter start precision by @markokraemer in #6246
- fix(billing): activate subscriptions only after the first invoice is paid by @markokraemer in #6247
- fix(billing): ledger type honesty guard + 2026-07-30 backfill + overdraft-guard regression tests by @markokraemer in #6248
- feat(admin): projects console, sandboxes rename, ops removal, tier clarity by @markokraemer in #6249
- feat(admin): activity + usage analytics dashboard by @markokraemer in #6250
- feat(web): first-class legacy-session UX — restore language, not 'Done' by @markokraemer in #6251
- feat(apps): complete provider-neutral serverless deployments by @markokraemer in #6253
- fix(web): suppress Gecko/Firefox Paper Shaders null-WebGL-context crash wording (BS fd773de2) by @agent-kortix in #6254
- fix(compliance): move ino + kortix-ses-sender inline IAM policies to group-based (DCF-776) by @agent-kortix in #6255
- fix(compliance): remove hardcoded
inouser from IAM groups Terraform (DCF-776) by @agent-kortix in #6257 - test(apps): make retired-provider scan deterministic by @markokraemer in #6259
- Centralize complete system audit reconstruction by @markokraemer in #6252
- docs(apps): centralize deployment architecture reference by @markokraemer in #6264
- Fix audit v2 migration timeout on hosted data by @markokraemer in #6263
- fix(connectors): refresh session grants from manifest by @markokraemer in #6265
- fix(audit): drop primitive structural summaries by @markokraemer in #6266
- fix(compliance): remove stale saumya@kortix.com from administrators group Terraform by @agent-kortix in #6267
Full Changelog: v0.12.5...v0.12.6