PricingDocs
Get started

Run your whole company from one repo you own.

Start with one job and grow from there.

Get started

Product

  • Agent Computer
  • Company as Code
  • Connectors
  • Automations
  • Channels
  • Agents & Skills
  • Security
  • Self-hosted
  • Enterprise
  • Pricing
  • Download

Solutions

  • Sales
  • Marketing
  • Engineering
  • Product
  • Finance
  • People
  • IT
  • Data Science

Developers

  • Documentation
  • AI Operating System
  • CLI
  • SDK
  • Quickstart
  • For developers
  • Marketplace
  • GitHub

Company

  • About
  • Careers
  • Blog
  • Changelog
  • Use Cases
  • Brand

Connect

  • X
  • LinkedIn
  • Discord
  • Status
  • Support
  • Terms
  • Privacy
©2026 Kortix

Changelog

July 12, 2026

Smoother session open and switch, plus marketing and maintenance-banner polish

v0.9.106

Fixed

  • Opening or switching sessions no longer flashes a blank screen. A brief "runtime still starting" moment during a switch is now treated as a loading state, not an error, so the session just renders in place.
  • A session whose sandbox had gone idle no longer dead-ends on "open a new session." It now resumes on its own, with an in-place Restart if it can't wake automatically.
  • Cleaned up the marketing site: removed dead Compare links from the footer, dropped Blog from the nav, and fixed the CLI footer link.

Improved

  • The deploy maintenance banner is clearer and on-brand, and is treated as a critical rollout signal.

What's Changed

  • chore(release): VERSION → 0.9.106 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4491
  • fix(session): kill white-flash on switch + auto-resume hibernated sandboxes by @markokraemer in https://github.com/kortix-ai/suna/pull/4494
  • chore(dev-eks): deploy dev-e9712115 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4496
  • fix(runtime): preserve sandbox identity during recovery by @markokraemer in https://github.com/kortix-ai/suna/pull/4497
  • chore(dev-eks): deploy dev-b7e6ec91 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4499

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.105...v0.9.106

Release on GitHub
July 12, 2026

Steadier session switching, email-code sign-in, and a batch of fixes

v0.9.105

Fixed

  • Switching between sessions no longer flashes a "Something went wrong" screen. A brief "runtime still starting" state during a session switch now shows a short loader and recovers on its own instead of surfacing as an error.
  • The review inbox (sidebar and Review Center) keeps loading even when one of its sources is temporarily unavailable — it now degrades gracefully instead of failing the whole panel.
  • Session file uploads are recoverable again after an interruption.
  • PDF previews now open at 100% zoom instead of 50%.
  • Sign-in polish on mobile: the mark is pinned top-left, gutters are wider, and the tagline is refreshed.

New and improved

  • Signing in now defaults to a one-time email code, with password kept as a secondary option.
  • Projects still on the older manifest now show a clear v1 → v2 upgrade prompt in the sidebar.
  • Maintenance mode: admins can bypass a full lockdown through a signed session, and deploys now raise a heads-up banner while a rollout is in progress and clear it automatically once the API is healthy.

What's Changed

  • chore(release): VERSION → 0.9.105 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4486
  • chore(dev-eks): deploy dev-9f6fa472 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4488
  • fix(web): render nothing for transient runtime-not-ready (info, not an error) by @markokraemer in https://github.com/kortix-ai/suna/pull/4489

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.104...v0.9.105

July 12, 2026

Reliable session uploads and production migration recovery

v0.9.104
  • Session uploads no longer fail at the generic 15-second proxy cutoff.\n- Failed sends preserve and restore the full prompt and attachments.\n- Legacy personal connector credentials migrate safely into member-owned profiles.\n- Restores missing runtime-context and executor-profile schema.

What's Changed

  • chore(release): VERSION → 0.9.104 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4479
  • chore(dev-eks): deploy gateway dev-0fc33d40 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4480
  • chore(dev-eks): deploy dev-0fc33d40 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4481
  • fix(web,api): stop transient runtime-not-ready throw from crashing every session switch + harden review inbox by @markokraemer in https://github.com/kortix-ai/suna/pull/4483
  • feat(maintenance): admin bypass + auto rollout banner in CI/CD by @markokraemer in https://github.com/kortix-ai/suna/pull/4484

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.103...v0.9.104

July 12, 2026

Staging release: auth, chat input, Slack defaults, and runtime reliability

v0.9.103
  • Promote the fully tested staging candidate to production.
  • Includes sandbox identity race protection and restored health deployment identity.
  • Includes staged authentication redesign and chat input model-state fixes.
  • Includes reliable Slack project default agent/model handling.
  • Staging artifact build and deploy passed; public staging ke2e passed 9/9.

What's Changed

  • chore(release): VERSION → 0.9.103 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4395
  • Use-cases section + "Use this template" guided install (flag-gated) by @lillyboga in https://github.com/kortix-ai/suna/pull/4397
  • chore(dev-eks): deploy dev-6e1c7f8a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4398
  • templates: rebuild dependency-upgrades from the real automation by @lillyboga in https://github.com/kortix-ai/suna/pull/4400
  • chore(dev-eks): deploy dev-fb6e1b99 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4401
  • fix(sandbox): ignore stale failed builds by @agent-kortix in https://github.com/kortix-ai/suna/pull/4396
  • chore(dev-eks): deploy dev-df0e1486 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4402
  • fix(templates): surface registry:template items in the templates list by @lillyboga in https://github.com/kortix-ai/suna/pull/4403
  • chore(dev-eks): deploy dev-819bb8a2 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4404
  • fix(web): keep project shell during session loading by @markokraemer in https://github.com/kortix-ai/suna/pull/4405
  • feat: add project default agent selection by @markokraemer in https://github.com/kortix-ai/suna/pull/4406
  • chore(dev-eks): deploy dev-0cfa5a8d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4407
  • feat(review): per-session review indicators + one coherent needs_you count by @markokraemer in https://github.com/kortix-ai/suna/pull/4408
  • fix(runtime): preserve session sandbox identity by @markokraemer in https://github.com/kortix-ai/suna/pull/4409
  • chore(dev-eks): deploy dev-61b51bf7 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4410
  • feat(session): local CLI attach commands in the Terminal panel by @markokraemer in https://github.com/kortix-ai/suna/pull/4411
  • fix(runtime): keep active sandbox turns alive by @markokraemer in https://github.com/kortix-ai/suna/pull/4412
  • chore(dev-eks): deploy dev-f67b3a3c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4413
  • fix(session): wrap long unbroken tokens in messages instead of overflowing the page by @markokraemer in https://github.com/kortix-ai/suna/pull/4414
  • templates: rebuild standup-summary as the weekly shipping leaderboard by @lillyboga in https://github.com/kortix-ai/suna/pull/4416
  • chore(dev-eks): deploy dev-962a5955 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4417
  • feat(web): redesign the template install wizard (two-column + logos + stepper) by @lillyboga in https://github.com/kortix-ai/suna/pull/4418
  • Harden pentest findings and keep Strix manual by @markokraemer in https://github.com/kortix-ai/suna/pull/4415
  • chore(dev-eks): deploy dev-705be76c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4420
  • fix(sandbox-proxy): route Platinum opencode(4096) HTTP through the :8000 agent (fixes opencode attach 502) by @kubet in https://github.com/kortix-ai/suna/pull/4419
  • feat(file-viewer): inline PPTX viewer (read-only, minimal) by @markokraemer in https://github.com/kortix-ai/suna/pull/4421
  • chore(dev-eks): deploy gateway dev-2c9fbb8b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4422
  • chore(dev-eks): deploy dev-2c9fbb8b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4423
  • fix(session): 'healthy is not defined' crash on session start by @markokraemer in https://github.com/kortix-ai/suna/pull/4424
  • chore(dev-eks): deploy dev-aa635e10 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4425
  • feat(file-viewer): slim the PPTX viewer to native, closeable chrome by @markokraemer in https://github.com/kortix-ai/suna/pull/4426
  • chore(dev-eks): deploy dev-738a371b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4427
  • fix(file-viewer): read-only PPTX treatment for the mobile layout by @markokraemer in https://github.com/kortix-ai/suna/pull/4428
  • docs: require PR and deployed dev verification by @markokraemer in https://github.com/kortix-ai/suna/pull/4429
  • chore(dev-eks): deploy gateway dev-02ba91a1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4430
  • chore(dev-eks): deploy dev-02ba91a1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4432
  • fix(file-viewer): contain the PPTX mobile Slides/Notes drawer to the panel by @markokraemer in https://github.com/kortix-ai/suna/pull/4433
  • fix(llm-gateway): preserve actionable upstream errors by @markokraemer in https://github.com/kortix-ai/suna/pull/4434
  • Add durable session-scoped runtime context by @markokraemer in https://github.com/kortix-ai/suna/pull/4431
  • chore(dev-eks): deploy dev-717fc422 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4435
  • chore(dev-eks): deploy gateway dev-81ff550d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4436
  • chore(dev-eks): deploy dev-feb17f9b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4440
  • fix(llm-gateway): restore API typecheck by @markokraemer in https://github.com/kortix-ai/suna/pull/4439
  • chore(dev-eks): deploy gateway dev-da75c672 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4443
  • fix(gateway): standardize all error exits by @markokraemer in https://github.com/kortix-ai/suna/pull/4444
  • chore(dev-eks): deploy gateway dev-6e6eddb9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4445
  • chore(dev-eks): deploy dev-6e6eddb9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4446
  • fix(sandbox-proxy): strip preview cookies upstream by @markokraemer in https://github.com/kortix-ai/suna/pull/4438
  • chore(dev-eks): deploy dev-501654ca [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4447
  • security(billing): prevent credit balance overdrafts by @markokraemer in https://github.com/kortix-ai/suna/pull/4441
  • chore(dev-eks): deploy gateway dev-f6e70cfe [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4448
  • chore(dev-eks): deploy dev-f6e70cfe [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4449
  • chore(dev-eks): deploy dev-f2a1f24a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4450
  • fix(sessions): recover provider-lost runtimes safely by @markokraemer in https://github.com/kortix-ai/suna/pull/4451
  • chore(dev-eks): deploy dev-1cb65dbf [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4452
  • Add session-scoped connector profiles by @markokraemer in https://github.com/kortix-ai/suna/pull/4437
  • fix(sessions): verify provider restart state by @markokraemer in https://github.com/kortix-ai/suna/pull/4454
  • chore(dev-eks): deploy dev-a8fd60a2 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4455
  • fix(sessions): reclaim missing runtime identity safely by @markokraemer in https://github.com/kortix-ai/suna/pull/4456
  • chore(dev-eks): deploy dev-632c973c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4457
  • feat(sdk): @kortix/sdk v2 — canonical entry, CDN bundles, publish hardening, live-stack playground by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4382
  • chore(dev-eks): deploy gateway dev-25260b0b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4459
  • chore(dev-eks): deploy dev-25260b0b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4460
  • fix(api): harden pentest auth and billing findings by @markokraemer in https://github.com/kortix-ai/suna/pull/4461
  • chore(dev-eks): deploy dev-aa3a0962 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4464
  • fix(health): restore staging deployment identity fields by @markokraemer in https://github.com/kortix-ai/suna/pull/4465
  • fix(slack): honor project default agent/model reliably, show real channel names by @markokraemer in https://github.com/kortix-ai/suna/pull/4463
  • chore(dev-eks): deploy dev-8bbda732 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4469
  • chore(dev-eks): deploy dev-e811a05f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4472
  • feat(web): redesign auth flow into a staged, minimal experience by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4467
  • chore(dev-eks): deploy dev-3c0b0ec5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4474
  • fix: make session uploads recoverable by @markokraemer in https://github.com/kortix-ai/suna/pull/4477

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.102...v0.9.103

July 11, 2026

slack bind-thread + pending main

v0.9.102

Adds slack bind-thread (bind a session to a Slack thread for approval-reply loops; #4385) plus all other pending main changes promoted through staging (v0.9.102-staging, commit 6275ff93). Enables the WRING funding-request APPROVE-in-thread flow.

What's Changed

  • chore(release): VERSION → 0.9.102 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4367
  • fix(desktop): keep the Files page title clear of the macOS window controls by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4370
  • fix(iam-web): hide Supabase internals from the SSO card by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4369
  • feat(markdown): clean, minimal code blocks + refreshed Shiki palette in unified markdown by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4288
  • feat(docs): fumadocs UI overhaul + unified-markdown content styling by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4374
  • fix(security): full security pass — 30 verified findings (2 crit, 14 high, 8 med, 6 low) by @markokraemer in https://github.com/kortix-ai/suna/pull/4373
  • chore(dev-eks): deploy dev-7536a7d4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4375
  • fix: no red error-toast storm when joining a project as a member by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4376
  • chore(dev-eks): deploy dev-7cf19a42 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4377
  • feat(iam): enterprise-gate Groups/Roles/Audit/SSO with upsell UI + surface SAML SP details by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4371
  • chore(dev-eks): deploy dev-3957ae79 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4378
  • feat(iam-web): ship wizard step screenshots (temporary placeholders) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4381
  • feat(slack): slack bind-thread — bind current session to a Slack thread by @markokraemer in https://github.com/kortix-ai/suna/pull/4385
  • fix(slack): recover from a deleted channel agent + honest session-start errors by @markokraemer in https://github.com/kortix-ai/suna/pull/4386
  • chore(dev-eks): deploy dev-499841bb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4388
  • test(slack): integration-cover the deleted-agent recovery wiring (follow-up to #4386) by @markokraemer in https://github.com/kortix-ai/suna/pull/4390
  • chore(dev-eks): deploy dev-8f162e29 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4391

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.101...v0.9.102

July 9, 2026

Agents now always answer your first message, plus SSO and gateway fixes

v0.9.101

This release fixes a timing bug that could make an agent miss the very first message of a session, tightens single sign-on for teams, makes gateway errors say what actually went wrong, and hardens how OAuth tokens are stored.

Fixed

  • Agents now reliably reply to your first message. On a fast cold start, the agent could fire your opening prompt before it had finished subscribing to its own event stream — so a quick first turn finished in that gap and the reply was lost (most visible as a silent first message in Slack). The agent now subscribes first, reconciles anything it missed on connect, and delivers each turn's end exactly once.
  • Clearer gateway errors instead of a generic failure. When an upstream model provider failed mid-response (for example, an overloaded or request-too-large error on an otherwise-started stream), the gateway used to bury it as a generic "empty completion" and retry the same failing provider until it gave up. It now surfaces the real upstream error and message, drops the failed provider immediately, and fails over to another one when available.
  • SSO group-to-role sync now works for SAML. SAML providers weren't registered with a group-claim mapping, so the group attribute never reached the token and group-driven role assignment silently did nothing (login still worked). Providers now register with the correct mapping, and the SSO setup card documents the common identity-provider gotchas.
  • SCIM group membership applies to pending invites. A user provisioned via SCIM but not yet signed in was silently dropped from pushed groups. Their group is now recorded on the invite and applied automatically when they accept, matching how project access already works.

Improved

  • Sandbox templates show which provider they use. Each template card and recent build now carries a small provider chip (Daytona, Platinum, Managed), and the templates section is tidier and less cluttered.
  • CLI secrets match the web app. kortix secrets set --identifier KEY=VALUE lets you store more than one value under the same key from the terminal, and kortix secrets ls now lists by identifier and flags any missing required keys — bringing the CLI in line with the web Add-secret experience.
  • CLI token context shows your environment grant. kortix token / whoami --token-only now include the env part of an agent grant (not just connectors and CLI access), and a bound default project points you at kortix projects use to switch.

Behind the scenes

  • OAuth server access and refresh tokens are now stored with peppered scrypt, matching every other credential (previously plain SHA-256). Existing tokens keep working until they expire.
  • All OpenRouter usage now attributes to one canonical app (www.kortix.com) instead of splitting across per-environment entries.
  • Removed an unused internal session-LLM route that no client called.
  • Trimmed frontend build spend by skipping builds that don't touch the frontend and gating preview builds.

Kortix is open and source-available.

What's Changed

  • chore(release): VERSION → 0.9.101 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4347
  • feat(web/sandbox): provider badge + declutter Sandbox templates by @kubet in https://github.com/kortix-ai/suna/pull/4348
  • feat(cli): surface env grant in token context + switch hint on bare landing by @markokraemer in https://github.com/kortix-ai/suna/pull/4342
  • chore(dev-eks): deploy dev-5d19382c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4350
  • fix(api): hash OAuth tokens with peppered scrypt, not bare sha256 by @markokraemer in https://github.com/kortix-ai/suna/pull/4344
  • chore(api): remove the dead session-LLM router feature by @markokraemer in https://github.com/kortix-ai/suna/pull/4349
  • chore(dev-eks): deploy dev-5f686f74 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4351
  • fix(llm-gateway): surface real upstream stream errors instead of generic empty_completion by @markokraemer in https://github.com/kortix-ai/suna/pull/4352
  • chore(dev-eks): deploy gateway dev-463b0b1f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4353
  • chore(dev-eks): deploy dev-463b0b1f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4354
  • chore(dev-eks): deploy dev-067f48cf [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4355
  • fix(sandbox-agent): subscribe to opencode /event before firing initial prompt (+ reconcile-on-connect, exactly-once turn-end) — fixes first-message-no-reply on fast cold boots by @kubet in https://github.com/kortix-ai/suna/pull/4356
  • chore(dev-eks): deploy dev-2179947d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4357
  • fix(iam): SAML providers missing group-claim attribute_mapping (SSO groups never synced) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4358
  • chore(dev-eks): deploy dev-32e8b0d5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4359
  • chore(dev-eks): deploy dev-15506687 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4361
  • feat(cli): consistent styled help + tiered command layout by @markokraemer in https://github.com/kortix-ai/suna/pull/4365
  • chore(dev-eks): deploy dev-bdf08d8c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4366

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.100...v0.9.101

July 8, 2026

Marketplace 1-click imports, groups and custom roles for every plan, and a sandbox that recovers when a build fails

v0.9.100

New

  • Marketplace imports. Agents, commands and bundles install into a project in one click. The detail view now shows what a listing actually contains — bundle contents, capability badges, type-aware copy — before you add it.
  • Groups and custom roles on every plan. Previously limited by tier; now available to all accounts.
  • Answer permission prompts from the CLI. Sessions that pause for approval can be resolved without leaving the terminal.
  • One-click Slack connect via kortix channels connect — no manual app setup.
  • Review center approvals. Approve and deny executor requests for real, with change descriptions rendered as markdown.
  • OAuth1 connectors for OpenAPI and HTTP.
  • Always-bound project CLI. login binds a default project; unbound commands recover interactively instead of failing.

Improved

  • kortix.toml is now kortix.yaml (TOML stays supported as v1 legacy), with format-aware manifest errors and agent-scope/trigger-path parity.
  • Destructive actions are confirm-gated: deleting secrets, revoking gateway keys, deleting sandbox templates and sessions, archiving projects.
  • Loading states unified across the app; onboarding moves Skip into the footer per step.
  • Upgrades are surfaced with an accent card and a Recommended badge.
  • A complete IAM administrator's guide: SSO/SAML, SCIM, roles, groups, custom roles, agents, audit.

Fixed

  • Sessions on projects pinned to the Platinum sandbox provider could not start. Production's sandbox_provider type was missing the platinum value, so every session create failed at the database. The value is now added; a sandbox that fails to start also raises properly so provisioning retries.
  • Retry build / Fix with agent works again, snapshot quota cleanup can fire, and the prewarm cache is bounded with an alarm when cleanup falls behind.
  • Permission leaks closed. Project detail sections are filtered by read capability, previously ungated project endpoints now check their capability leaf, member management gates on the leaf rather than a broad write floor, and viewers no longer see error toasts for surfaces they cannot read. Read-only users get a degraded view instead of a broken one, and the floor member role can fire triggers again.
  • Service-account bearer tokens are accepted wherever user tokens are.
  • Unknown CLI commands now error with a suggestion instead of silently scaffolding a project named after the typo.
  • The model picker updates immediately after connecting a provider, and setup links render as clean CTA chips rather than raw token URLs.
  • Resolved high-severity CodeQL findings (ReDoS, temp-file handling, TOCTOU, CLI opener).
  • Rename dialogs no longer close mid-save; sessions and projects show honest error, empty and retry states.

What's Changed

  • chore(release): VERSION → 0.9.100 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4281
  • fix(web): model picker updates instantly after connecting a provider by @markokraemer in https://github.com/kortix-ai/suna/pull/4283
  • chore(dev-eks): deploy dev-bf518cc0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4284
  • refactor(web): onboarding wizard — per-step Skip in the footer by @markokraemer in https://github.com/kortix-ai/suna/pull/4285
  • fix(platinum): create throws on terminal failed-start so provision retries by @kubet in https://github.com/kortix-ai/suna/pull/4289
  • refactor(web): unify loading states into a single consistent loader by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4287
  • chore(dev-eks): deploy gateway dev-763ed695 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4290
  • chore(dev-eks): deploy dev-763ed695 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4291
  • chore: remove the stale root .kortix dogfood project by @markokraemer in https://github.com/kortix-ai/suna/pull/4294
  • chore(dev-eks): deploy dev-b7b37eaa [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4296
  • feat(executor): oauth1 auth type for openapi/http connectors by @markokraemer in https://github.com/kortix-ai/suna/pull/4301
  • chore(dev-eks): deploy dev-e1f0bcd8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4304
  • fix(cli): unknown commands error instead of scaffolding a project named after the typo by @markokraemer in https://github.com/kortix-ai/suna/pull/4292
  • docs(specs): one Kortix token + CLI-centric platform plan by @markokraemer in https://github.com/kortix-ai/suna/pull/4295
  • fix(api): combinedAuth accepts service-account bearers, matching supabaseAuth by @markokraemer in https://github.com/kortix-ai/suna/pull/4298
  • docs(specs): AGI as API — one resource catalog projected as REST/CLI/MCP by @markokraemer in https://github.com/kortix-ai/suna/pull/4300
  • feat(cli): always-bound project UX — login binds a default project, unbound commands recover by @markokraemer in https://github.com/kortix-ai/suna/pull/4297
  • chore(dev-eks): deploy dev-e15d5235 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4307
  • feat(cli): answer session permission asks and questions from the CLI by @markokraemer in https://github.com/kortix-ai/suna/pull/4305
  • feat(cli): one-click Slack connect — kortix channels connect prints the install link by @markokraemer in https://github.com/kortix-ai/suna/pull/4302
  • fix(web): setup links render as clean CTA chips, never raw token URLs by @markokraemer in https://github.com/kortix-ai/suna/pull/4306
  • refactor: sweep kortix.toml → kortix.yaml (TOML kept only as v1 legacy) by @markokraemer in https://github.com/kortix-ai/suna/pull/4310
  • chore(dev-eks): deploy dev-c2413419 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4311
  • fix(security): resolve CodeQL high-severity alerts (ReDoS, temp-file, TOCTOU, CLI opener) by @markokraemer in https://github.com/kortix-ai/suna/pull/4313
  • chore(dev-eks): deploy gateway dev-aa10200f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4314
  • chore(dev-eks): deploy dev-aa10200f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4316
  • chore(security): gitleaks-ignore the published X OAuth1 doc test vectors by @markokraemer in https://github.com/kortix-ai/suna/pull/4315
  • fix(iam): gate ungated project endpoints on their capability leaves by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4279
  • fix(iam): members.manage routes gate on the leaf, not a project.write floor by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4275
  • chore(dev-eks): deploy dev-615075e8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4317
  • fix(iam): filter GET /detail sections by read capability, don't leak them by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4282
  • chore(dev-eks): deploy dev-c5237bfc [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4319
  • fix(snapshots): unbreak Retry build / Fix with agent, and make quota GC able to fire by @markokraemer in https://github.com/kortix-ai/suna/pull/4320
  • chore(dev-eks): deploy dev-60572652 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4321
  • fix(config): YAML (v2) manifest parity — agent-scope, trigger paths, format-aware errors by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4323
  • chore(dev-eks): deploy dev-cb059309 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4324
  • feat(web): highlight available upgrades — accent card + Recommended badge by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4318
  • feat(iam): groups + custom roles available on every tier by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4326
  • chore(dev-eks): deploy dev-3468e086 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4327
  • feat(marketplace): surface agents, commands & bundles as 1-click imports by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4322
  • feat(web): UX & functionality improvements — marketplace, review center, customize, projects/sessions by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4325
  • feat(review-center): render markdown change descriptions properly by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4329
  • fix(web): customize sections visible per read leaf + read-only-safe for all roles by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4328
  • feat(review-center): render markdown change descriptions properly by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4331
  • fix(iam): no permission-error toasts for surfaces the viewer cannot read by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4330
  • fix(web): confirm dialog before secret delete and gateway key revoke by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4332
  • fix(snapshots): bound the ppwarm cache, and alarm when GC can't keep up by @markokraemer in https://github.com/kortix-ai/suna/pull/4336
  • chore(dev-eks): deploy dev-1a0b95ad [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4337
  • docs(iam): complete administrator's guide — SSO/SAML, SCIM, roles, groups, custom roles, agents, audit by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4334
  • chore(dev-eks): deploy dev-1c40ba54 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4339
  • fix(iam-web): audit export 404 + make the guide's affordances real by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4341
  • chore(dev-eks): deploy dev-4f55e3cc [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4345

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.99...v0.9.100

July 7, 2026

Project-wide provider keys, marketplace fixes, and sharper project permissions

v0.9.99

Fixed

  • Connecting an LLM provider with "Only me" access made the key invisible to the model gateway — sessions failed with "No upstream configured" while the provider still looked connected, and flipping an existing key to "Only me" silently left the shared key active for every member. Provider API keys are now always project-wide: the per-user option is gone from the connect flow and the API rejects per-user provider keys outright.
  • The marketplace now paginates and virtualizes its listings, and installs no longer fail against a 25-second timeout.
  • The detach-role dialog no longer shows a raw translation key and now spaces the role name correctly.
  • Removed a distracting fade animation on the sidebar toggle.

New

  • File and secret access can now be restricted per role: file and secret reads moved to the editor tier, and new groups default to the member grant.
  • A warning now appears when a group's built-in grant overrides its assigned custom role.
  • The New Project modal has an account picker, so you can choose which workspace a new project lands in.

Improved

  • A smoother session-starting loader.
  • A full accuracy pass over the docs (SDK, CLI, reference, and concepts) against the current code.

What's Changed

  • chore(release): VERSION → 0.9.99 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4265
  • feat(web): account picker in the New Project modal by @markokraemer in https://github.com/kortix-ai/suna/pull/4266
  • fix(marketplace): paginate + virtualize the marketplace, fix 25s install timeout by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4257
  • revert: undo daytona→managed provider-identity rename (identity stays daytona) by @kubet in https://github.com/kortix-ai/suna/pull/4267
  • chore(dev-eks): deploy gateway dev-0fd3ce32 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4270
  • feat(iam): restrictable files/secrets (reads→editor) + least-privilege group defaults by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4268
  • chore(dev-eks): deploy dev-917433b8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4271
  • fix(llm-providers): provider API keys are always project-wide by @markokraemer in https://github.com/kortix-ai/suna/pull/4272
  • chore(dev-eks): deploy dev-f5293d97 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4274
  • fix: prod error-feed cleanup — git-cache LRU cap, name overflow, oauth uuid probes, Safari regex crash, shader guards by @markokraemer in https://github.com/kortix-ai/suna/pull/4269
  • chore(dev-eks): deploy gateway dev-02c369bd [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4276
  • chore(dev-eks): deploy dev-02c369bd [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4277

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.98...v0.9.99

July 7, 2026

Marketplace by default, People Search, SCIM provisioning, and session reliability

v0.9.98

New

  • Marketplace is on by default. Every project can now browse and install marketplace skills without a feature flag. Kortix Meet, Kortix Computer, and People Search are opt-in installs rather than part of the default set.
  • People Search. A new starter tool that searches LinkedIn profiles (backed by Apify), runs to completion without timeouts, and is billed per call.
  • Expanded skill library. A much larger set of default skills ships with every new project, and the auto-created "My First Project" now gets the full starter pack.
  • SCIM provisioning that just works. Error-free user provisioning from your IdP: invited users arrive active, PUT updates are supported, email lookups are dedup-safe, and Azure AD connector setup gets /ResourceTypes + /Schemas discovery. The SCIM setup dialog now shows the paste-ready absolute base URL.
  • SSO group auto-provisioning. An opt-in toggle creates groups (and their mappings) automatically from IdP claims on login, so directory structure flows into Kortix without manual setup. SSO and SCIM settings cards got status pills and visual group mappings.
  • Upgrades section. Projects have an Upgrades registry with a one-off prompt runner, so platform-side improvements (like a baseline refresh) can be applied to existing projects on demand.
  • Files is a standalone page with Google Drive-style colored folder tiles, out of the Customize overlay. Customize itself moves to a master-detail sidebar for agents, skills, and commands.
  • Warm prebake on push. Sandbox images warm when a commit lands — for every provider a session can use — so sessions on recently-active projects boot faster.
  • CLI: attach to a session. kortix can now attach directly to a running session's agent from the terminal.
  • Per-account concurrent-session limits. Accounts can carry a custom concurrent-session override, and hitting the limit now explains exactly what happened.
  • SDKs on npm. @kortix/sdk and @kortix/llm-catalog now publish to npm with every release, in lockstep with the platform version, joining @kortix/executor-sdk.

Improved

  • Sandboxes no longer idle for hours. An observe-idle reaper with 15-minute/5-minute TTLs, a busy probe, and a provider backstop stop stopped-but-billing dead time.
  • Agents automatically resume work when a turn is killed by a transient model-provider error, instead of stopping silently.
  • The LLM gateway no longer forwards empty completions: it retries the same model once, then fails over to the next candidate. Upstream provider errors now surface in the stream instead of hanging it.
  • The full member directory is visible to all account members (sensitive columns stay manager-only), and member counts reflect what the viewer can see. "Departments" are now "groups" throughout.
  • The PDF viewer opens at a comfortable zoom with the sidebar closed, and presentation viewers drop redundant download buttons.

Fixed

  • Change requests can no longer be empty. An agent that committed but never pushed used to produce a silent "No changes detected" change request; the push step is now enforced and empty CRs are rejected at open time.
  • Session lifecycle races. Starting a brand-new session no longer trips over its own creation (the create-vs-start race), deleting a session mid-provision can no longer resurrect it, the first prompt of a new session is no longer dropped while the agent restarts, a session page open on a stopped sandbox no longer hammers it with requests, and the create-first flow no longer bounces back to the project index.
  • The project-home composer keeps its text while navigating into the new session, and the sidebar flyout stays open while one of its menus is open.
  • Legacy daytona provider names are normalized at session create, so older projects keep working after the provider rename.
  • Suna migration pushes are now idempotent across pods and strip oversized blobs instead of failing.
  • Snapshot cache keys are scoped to in-sandbox inputs, so unrelated source changes no longer invalidate sandbox snapshots.
  • AgentMail inbox limits are handled gracefully instead of erroring the channel.
  • API and gateway origin load balancers only accept traffic from Cloudflare, closing a WAF-bypass path.
  • Gateway request logs strip NUL bytes before persisting, fixing a recurring database write error.

Internal

  • CI hardening: staging keeps its VERSION in sync on release, a duplicate migration was deduped before it could break deploys, staging QA runs behind Vercel SSO with a bypass token, the direct prod hotfix workflow is retired, and dependency/action versions are bumped across the board.

What's Changed

  • Promote main to staging for v0.9.79 by @markokraemer in https://github.com/kortix-ai/suna/pull/3866
  • Promote main → staging (v0.9.80 candidate) by @markokraemer in https://github.com/kortix-ai/suna/pull/3871
  • fix(api): handle AgentMail inbox limit errors by @markokraemer in https://github.com/kortix-ai/suna/pull/3880
  • Promote main → staging (release candidate v0.9.82) by @markokraemer in https://github.com/kortix-ai/suna/pull/3898
  • chore(slack): enable identity gate on staging by @markokraemer in https://github.com/kortix-ai/suna/pull/3913
  • Promote main to staging: account membership repair by @markokraemer in https://github.com/kortix-ai/suna/pull/3937
  • Promote main to staging: accounts me bootstrap by @markokraemer in https://github.com/kortix-ai/suna/pull/3941
  • fix(api): wait for opencode ready after first-prompt env restart by @markokraemer in https://github.com/kortix-ai/suna/pull/3992
  • fix(gateway): strip NUL bytes before persisting gateway request logs (prod 22P05) [staging] by @markokraemer in https://github.com/kortix-ai/suna/pull/4015
  • fix(api): suna-migration repo phase idempotent + pod-independent (prod hotfix) by @lillyboga in https://github.com/kortix-ai/suna/pull/4022
  • feat(sandbox): per-project sandbox-provider override (staging) by @kubet in https://github.com/kortix-ai/suna/pull/4048
  • fix(sandbox): verify opencode-config-deps bundles at bake time [staging hotfix] by @markokraemer in https://github.com/kortix-ai/suna/pull/4076
  • feat(projects): read-only platform-admin bypass on the project access gate by @markokraemer in https://github.com/kortix-ai/suna/pull/4085
  • fix(llm-gateway): fail over on empty-choices completions instead of forwarding them [staging hotfix] by @markokraemer in https://github.com/kortix-ai/suna/pull/4100
  • fix(llm-gateway): auto-retry the same candidate on an empty completion before failing over [staging hotfix] by @markokraemer in https://github.com/kortix-ai/suna/pull/4104
  • fix(llm-gateway): pin managed GLM to Z.AI host + surface in-stream upstream error frames by @markokraemer in https://github.com/kortix-ai/suna/pull/4146
  • feat(sandbox-agent): auto-resume root turns killed by transient provider errors by @markokraemer in https://github.com/kortix-ai/suna/pull/4152
  • fix: stop stopped-sandbox request storm on session page + heal staging VERSION drift by @markokraemer in https://github.com/kortix-ai/suna/pull/4158
  • fix(web): stop stopped-sandbox request storm on session page by @markokraemer in https://github.com/kortix-ai/suna/pull/4159
  • chore(release): staging VERSION → 0.9.97 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4162
  • chore(release): VERSION → 0.9.98 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4208
  • chore(release): staging VERSION → 0.9.98 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4209
  • feat(sandbox): build-on-push warm prebake (warm on commit, not just session-start) by @kubet in https://github.com/kortix-ai/suna/pull/4206
  • chore(dev-eks): deploy dev-499ebd32 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4212
  • fix(cr): make an empty change request impossible to open + harden agent CR contract by @markokraemer in https://github.com/kortix-ai/suna/pull/4207
  • feat(web): Upgrades section (registry + one-off prompt runner) + v2 prompt baseline-refresh by @markokraemer in https://github.com/kortix-ai/suna/pull/4213
  • fix(sessions): close the delete-mid-provision resurrection race by @markokraemer in https://github.com/kortix-ai/suna/pull/4211
  • feat(billing): per-account concurrent-session override + clearer limit-hit copy by @markokraemer in https://github.com/kortix-ai/suna/pull/4210
  • chore(dev-eks): deploy dev-31e33006 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4214
  • chore(deps): bump bridgecrewio/checkov-action from 12.3107.0 to 12.3112.0 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/4188
  • chore(deps): bump terraform-linters/setup-tflint from 6.2.2 to 6.3.0 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/4186
  • chore(deps): bump actions/attest-build-provenance from 4.1.0 to 4.1.1 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/4185
  • chore(deps): bump aws-actions/configure-aws-credentials from 4 to 6 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/3675
  • chore(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/3999
  • fix(sessions): normalize legacy 'daytona' provider at session-create (rename back-compat) by @kubet in https://github.com/kortix-ai/suna/pull/4215
  • chore(dev-eks): deploy dev-e2b7f82a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4216
  • chore(deps): bump postcss from 8.4.33 to 8.5.10 in /apps/web by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/4083
  • fix(infra): lock API + gateway origin ALBs to Cloudflare IP ranges by @markokraemer in https://github.com/kortix-ai/suna/pull/4121
  • Use the Kortix ASCII logo loader on main page loads by @markokraemer in https://github.com/kortix-ai/suna/pull/3972
  • content: publish AI transformation company OS by @agent-kortix in https://github.com/kortix-ai/suna/pull/3989
  • fix(api): strip oversized blobs from suna-migration repo push by @lillyboga in https://github.com/kortix-ai/suna/pull/4026
  • chore(dev-eks): deploy dev-88470e21 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4217
  • Add CLI session OpenCode attach by @agent-kortix in https://github.com/kortix-ai/suna/pull/4050
  • fix(web): enable Vercel deploys from prod branch by @markokraemer in https://github.com/kortix-ai/suna/pull/3861
  • fix(sandbox): raise auto-archive default 6h -> 12h by @markokraemer in https://github.com/kortix-ai/suna/pull/4218
  • chore(dev-eks): deploy dev-cd6a804f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4219
  • feat(starter): expand the Kortix skill library (default + marketplace) by @markokraemer in https://github.com/kortix-ai/suna/pull/3969
  • chore(dev-eks): deploy dev-6a15997a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4220
  • fix(web): give auto-created "My First Project" the full starter pack by @markokraemer in https://github.com/kortix-ai/suna/pull/4221
  • fix(web): drop presentations viewer download buttons; PDF viewer 50% zoom + sidebar closed by default by @markokraemer in https://github.com/kortix-ai/suna/pull/4223
  • feat(marketplace): enable by default; move kortix-meet/kortix-computer to opt-in by @markokraemer in https://github.com/kortix-ai/suna/pull/4222
  • chore(dev-eks): deploy dev-064f6d68 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4224
  • Promote main to staging (full dev candidate, pre-0.9.98) by @markokraemer in https://github.com/kortix-ai/suna/pull/4225
  • feat(web): Files as a standalone page (out of Customize) by @markokraemer in https://github.com/kortix-ai/suna/pull/4226
  • test(web): update customize rail test for standalone Files page by @markokraemer in https://github.com/kortix-ai/suna/pull/4227
  • fix(db): drop duplicate session-limit-override migration (unblocks staging + prod migrations) by @markokraemer in https://github.com/kortix-ai/suna/pull/4229
  • fix(sandbox): kill idle dead-time — 15m autostop, 5m trigger TTL, pre-stop busy probe, resume grace by @markokraemer in https://github.com/kortix-ai/suna/pull/4228
  • Promote main to staging: idle dead-time fix + standalone Files page by @markokraemer in https://github.com/kortix-ai/suna/pull/4231
  • fix(db): drop duplicate session-limit-override migration on main (unblocks Deploy Dev) by @markokraemer in https://github.com/kortix-ai/suna/pull/4230
  • Feat/sso auto provision groups by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4197
  • chore(dev-eks): deploy dev-933d6108 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4233
  • fix(snapshots): stop dev-only CLI/test churn from re-minting every project's sandbox runtime identity by @kubet in https://github.com/kortix-ai/suna/pull/4232
  • chore(dev-eks): deploy dev-9b5f789f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4235
  • feat(customize): master-detail sidebar for agents, skills & commands by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4234
  • fix(accounts): members count reflects caller visibility, not raw total by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4236
  • chore(dev-eks): deploy dev-e63f8e56 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4238
  • fix(scim): show the absolute SCIM base URL so it's paste-ready for the IdP by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4237
  • fix(iam): SCIM dialog overflow + SSO/SCIM settings-card polish by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4239
  • fix(sandbox): warm prebake-on-push pre-warms every provider a session can use (parity) by @kubet in https://github.com/kortix-ai/suna/pull/4242
  • chore(dev-eks): deploy dev-b692ede7 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4243
  • fix(scim): actually contain the SCIM token dialog (grid-item min-w-0) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4240
  • fix(scim): error-free Okta/Azure provisioning (invites active, PUT, dedup) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4244
  • fix(web): don't clear the project-home composer before it navigates away by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4241
  • refactor(ui): rename "department" labels to "groups" by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4246
  • chore(dev-eks): deploy dev-7613e9f9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4248
  • fix(web): keep sidebar flyout open while an anchored menu is open by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4247
  • feat(scim): /ResourceTypes + /Schemas discovery for Azure AD by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4245
  • feat(accounts): member directory visible to all members by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4249
  • chore(dev-eks): deploy dev-6c39b7c8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4250
  • Promote main to staging: SCIM/IdP provisioning, member directory, prebake parity by @markokraemer in https://github.com/kortix-ai/suna/pull/4251
  • fix(sdk): tolerate /start 404 for freshly minted sessions (create-vs-start race) by @markokraemer in https://github.com/kortix-ai/suna/pull/4252
  • Promote main to staging: SDK create-vs-start race fix by @markokraemer in https://github.com/kortix-ai/suna/pull/4255
  • fix(web): keep the instant session shell up on transient start errors and calm the session-start UI by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4253
  • feat(project-files): Google Drive-style colored folder tiles by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4254
  • fix(sessions): tolerate the create-vs-start race on fresh sessions by @lillyboga in https://github.com/kortix-ai/suna/pull/4256
  • chore(dev-eks): deploy dev-6f6a9307 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4258
  • fix(web): create-first new-session flow — no silent bounce back to the project index by @markokraemer in https://github.com/kortix-ai/suna/pull/4259
  • Promote main to staging: session-start race fixes + create-first flow + folder tiles by @markokraemer in https://github.com/kortix-ai/suna/pull/4260
  • Revert "fix(web): keep the instant session shell up on transient start errors and calm the session-start UI" by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4261
  • Promote main to staging: revert of the instant-session-shell change (#4261) by @markokraemer in https://github.com/kortix-ai/suna/pull/4262

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.97...v0.9.98

July 6, 2026

Per-account session-limit override + session delete/provision race fix

v0.9.97

This release ships two changes:

1. Per-account concurrent-session override (f162d38289) Concurrent-session caps were tier-only. Adds an operator-set per-account override (credit_accounts.max_concurrent_sessions; NULL = tier decides, a positive integer wins over the tier in both directions) and a clearer 429 message that includes the account's actual limit. Wired through session-create enforcement, trigger backpressure, and the billing account-state response.

2. Session-delete-mid-provision resurrection race fix (this promotion's second change) A session deleted while its sandbox was still provisioning could come back to life: the fire-and-forget provisioner had no status guards on its finish-of-provisioning writes, so a session deleted mid-provision could be flipped back to 'running' (and billed) after the user had already deleted it. Both finish-of-provisioning writes are now conditional on the session not having been deleted/archived in the meantime; two related hardening fixes close the same class of gap in continueSession's revival path and the stuck-session reaper sweep.

Migration: 20260706034600000_account_session_limit_override.sql

  • Adds nullable kortix.credit_accounts.max_concurrent_sessions (int)
  • Idempotent upsert seeding the internal Kortix dogfood account (3b1fc472-a90e-404f-823f-ca42f6b32e4d) with an effectively-uncapped override of 100000 This is the only migration pending between prod and staging.

Rollback: additive-only migration (ADD COLUMN IF NOT EXISTS + idempotent upsert), safe to leave in place. A bad release rolls back via Path 1 in docs/runbooks/rollback-procedure.md: revert the merge commit on prod (PR, reviewed, same gate as forward deploys) — Argo CD self-heals to the prior image tag. No down-migration is needed or defined (matches this repo's node-pg-migrate convention).

What's Changed

  • chore(release): VERSION → 0.9.97 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4163
  • fix(accounts): name unnamed accounts after their owner, not the caller by @markokraemer in https://github.com/kortix-ai/suna/pull/4166
  • chore(dev-eks): deploy dev-40a4b072 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4167
  • feat(sdk+web): perfect tool-call handling — embedded failures surfaced everywhere + dev credit-gate exemption by @markokraemer in https://github.com/kortix-ai/suna/pull/4165
  • chore(dev-eks): deploy dev-cd3a5d16 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4168
  • refactor(web): replace document/data viewers with Extend UI components by @markokraemer in https://github.com/kortix-ai/suna/pull/4157
  • chore(dev-eks): deploy gateway dev-e5b910cb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4169
  • chore(dev-eks): deploy dev-e5b910cb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4170
  • chore: retire the basejump account framework by @markokraemer in https://github.com/kortix-ai/suna/pull/4171
  • chore(dev-eks): deploy dev-46ee7395 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4172
  • feat(agents): agent-first config & authorization v2 — manifest, native-.md model, IAM, secrets v2, canonical schema by @markokraemer in https://github.com/kortix-ai/suna/pull/4164
  • chore(dev-eks): deploy gateway dev-68aef1c6 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4173
  • fix(sandbox): reap superseded per-project warm images on bake (Daytona quota) by @kubet in https://github.com/kortix-ai/suna/pull/4175
  • feat(web): sign in with SSO — route work-email domains to their SAML IdP by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4174
  • fix(iam): SSO users land in their org — parse real Supabase SAML JWT + await JIT sync by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4177
  • fix(db): reorder #4164 migrations after retire_basejump — unblock dev deploys by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4178
  • chore(dev-eks): deploy dev-73fbee99 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4179
  • fix(iam): run SAML JIT sync on all Supabase-auth paths (network + combinedAuth) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4180
  • fix(api): scope account member/invite reads to member-managers by @markokraemer in https://github.com/kortix-ai/suna/pull/4181
  • chore(dev-eks): deploy dev-06a9855d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4182
  • fix(api): name auto-provisioned accounts after the signup email by @markokraemer in https://github.com/kortix-ai/suna/pull/4183
  • chore(dev-eks): deploy dev-13084eb8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4184
  • fix(iam): read SSO group claim from user_metadata.custom_claims by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/4187
  • chore(dev-eks): deploy dev-22ee9c5a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4189
  • chore(dev-eks): deploy dev-407e5439 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4190
  • chore(dev-eks): deploy dev-409d772f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4192
  • chore(dev-eks): deploy dev-33febbf0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4193
  • chore(dev-eks): deploy dev-5c3f7abe [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4194
  • chore(dev-eks): deploy dev-2a4a25b7 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4195
  • fix(sandbox): ppwarm reap skips Platinum soft-delete tombstones by @kubet in https://github.com/kortix-ai/suna/pull/4196
  • chore(dev-eks): deploy dev-6a1f1e00 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4199
  • fix(approvals): approvals await response & auto-continue like questions; session/config allow scopes by @markokraemer in https://github.com/kortix-ai/suna/pull/4191
  • chore(dev-eks): deploy dev-eb23048a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4200
  • feat(web): v2 migration gets its own customize sidebar section + giga migration prompt by @markokraemer in https://github.com/kortix-ai/suna/pull/4202
  • refactor(web): fold connector 'sensitive' into Permissions default selector by @markokraemer in https://github.com/kortix-ai/suna/pull/4204
  • feat(provider): rename sandbox provider daytona → managed (backward-compatible) by @kubet in https://github.com/kortix-ai/suna/pull/4201
  • chore(dev-eks): deploy dev-3c22b400 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4205

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.9.96...v0.9.97

Release on GitHub
Release on GitHub
Read the full release on GitHub
Release on GitHub
Release on GitHub
Read the full release on GitHub
Release on GitHub
Read the full release on GitHub
Read the full release on GitHub
Previous
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
Next