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

September 21, 2026

Provider keys are private by default, and account roles are editable from a group

v0.13.27

Sharing a provider key with a whole project is now something you choose deliberately, and account roles can be changed from a group's member list.

New

  • Edit a person's account role from a group's member list. You no longer have to leave the group to change what someone is.

Improved

  • A new API key or ChatGPT account is private by default. The Add dialog opens with "Specific members" selected and you already on the list, so sharing a key with everyone in the project is an explicit choice rather than the default.
  • One place to pick provider keys for a session, and the choice saves.

Fixed

  • Sessions stay usable after the project's repository changes.
  • Every role assignment is checked against the owner ceiling, so an assignment cannot grant more than the person making it holds.

What's Changed

  • feat(web): pooled provider secrets default to Specific members + you by @markokraemer in https://github.com/kortix-ai/suna/pull/7458
  • Edit a person's account role from a group's member list by @markokraemer in https://github.com/kortix-ai/suna/pull/7459
  • fix(web): session provider keys save + one place to pick keys by @markokraemer in https://github.com/kortix-ai/suna/pull/7462
  • Enforce the owner ceiling on every IAM assignment write by @markokraemer in https://github.com/kortix-ai/suna/pull/7460
  • fix: keep sessions usable after repository changes by @markokraemer in https://github.com/kortix-ai/suna/pull/7463
  • chore(release): VERSION → 0.13.27 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7465
  • chore(release): staging VERSION → 0.13.27 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7466
  • fix(agent-tunnel): declare the repository so npm provenance validates by @markokraemer in https://github.com/kortix-ai/suna/pull/7467
  • test(web): 28-model-access follows the new sharing default by @markokraemer in https://github.com/kortix-ai/suna/pull/7473
  • Promote main to staging for v0.13.27 by @markokraemer in https://github.com/kortix-ai/suna/pull/7469
  • Release v0.13.27 — Provider keys are private by default, and account roles are editable from a group by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7475

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.26...v0.13.27

Release on GitHub
September 21, 2026

Turns say how they ended, a workspace chooser on the way in, and member-owned access tokens

v0.13.26

Sessions now say exactly how a turn ended, signing in lands on a workspace chooser instead of an auto-created project, and every member can mint their own access token.

New

  • A turn tells you how it ended. Every turn carries one typed outcome, so a failed turn reports the recorded cause instead of a blank row — and a turn you stopped yourself is recorded as stopped, not as a failure. GET /turn lists failed turns with the reason each one ended.
  • A workspace chooser on the way in. Signing in shows your workspaces and any pending invites rather than silently creating a project for you. With no workspaces yet, the chooser is the create form.
  • Every account member can mint and revoke their own personal access token. It no longer takes an owner.
  • Teams asks with a card. The question tool renders a real card with inputs, dropdowns and toggles behind one Submit, and replies in a group chat continue the session without a mention.

Improved

  • The model picker collapses every provider group, and the zero-retention and US-inference facts sit on one line instead of a banner.
  • An image sent to a channel never runs on a model the agent is not allowed to use; the pin is checked per message rather than trusted from the catalog.
  • Deleting a project from Settings redirects instead of leaving you on a dead page.
  • Resuming a session keeps the repository workspaces it had before.

Fixed

  • A failed turn with no named cause now says it stopped, rather than showing nothing.
  • The stale-turn sweep aborts the runtime turn, not just its card.
  • An unresolvable agent grant now fails closed for codex models instead of quietly picking a model the agent may not use.
  • An unowned conversation returns "not found" rather than "forbidden", so it cannot be used to probe what exists.
  • A form field id containing a comma is rejected.
  • An audit entry for the new account-invites route renders with a readable label.
  • Release publishing no longer depends on the npm registry: a registry failure can no longer cost a release its tag, its downloads or its changelog entry, and the release refuses to publish with missing downloads.

What's Changed

  • ci(tests): stop gating every PR on the local suite; one workflow, opt-in by label by @markokraemer in https://github.com/kortix-ai/suna/pull/7415
  • fix(channels): a pasted image runs the turn on a model that can see it by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7438
  • fix(channels): pick a vision model by image modality, not the attachment flag by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7439
  • fix(channels): pin an image turn's model explicitly; add Teams forms by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7440
  • fix(models): retire DeepSeek V4 Pro by @markokraemer in https://github.com/kortix-ai/suna/pull/7437
  • Reconcile account identities across SSO sign-ins by @markokraemer in https://github.com/kortix-ai/suna/pull/7431
  • ci(tests): cap each lane at 20 min, not 60; fix preview lifecycle docs by @markokraemer in https://github.com/kortix-ai/suna/pull/7443
  • docs: bring every internal doc and skill in line with the new CI gates by @markokraemer in https://github.com/kortix-ai/suna/pull/7446
  • fix(deploy-prod): stop gating the release record on npm; guard its assets by @markokraemer in https://github.com/kortix-ai/suna/pull/7448
  • fix(managed-git): say when a token silently overrides the App, and log GitHub's reason by @markokraemer in https://github.com/kortix-ai/suna/pull/7444
  • feat(teams): proactive posting, and the last of the image-path defects by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7441
  • Resume sessions from a previous repository workspace by @markokraemer in https://github.com/kortix-ai/suna/pull/7450
  • fix(web): redirect after deleting a project from Settings by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7447
  • Promote main to staging for v0.13.26 by @markokraemer in https://github.com/kortix-ai/suna/pull/7453
  • fix(session): a failed turn always says why it stopped by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7449
  • Model picker: collapsible Kortix group; ZDR + US-based providers line by @markokraemer in https://github.com/kortix-ai/suna/pull/7451
  • Workspace chooser: pending invites on the landing door, no auto-created project by @markokraemer in https://github.com/kortix-ai/suna/pull/7454
  • Let every account member mint and revoke their own personal access token by @markokraemer in https://github.com/kortix-ai/suna/pull/7455
  • fix(web): register GET /v1/account-invites in the audit route registry by @markokraemer in https://github.com/kortix-ai/suna/pull/7457
  • Promote main to staging for v0.13.26 by @markokraemer in https://github.com/kortix-ai/suna/pull/7456
  • Release v0.13.26 — Turns say how they ended, a workspace chooser on the way in, and member-owned access tokens by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7461

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.25...v0.13.26

September 21, 2026

Kortix in Microsoft Teams and in your terminal, split manifests, and correct compute metering

v0.13.25

Kortix now runs in Microsoft Teams and in your terminal, a kortix.yaml can be split across files, every managed model accepts images, and sandbox compute is metered correctly on free and trial accounts.

New

  • Kortix in the terminal (experimental). kortix tui opens a full terminal client: sidebar with accounts, projects and grouped sessions; session transcript with tool cards and interactive prompts; a composer with a command palette and model, effort and agent pickers; Files, Review, Apps and Customize screens; an embedded terminal; and opencode attach mode. It installs its own binary on first run, so the CLI stays small.
  • Microsoft Teams. Run an agent from a channel, a group chat, or a direct message. Thread replies continue the same session without a new mention. Files work both ways: inline images reach the agent, and results upload to the team drive with a link back. Join policies (open, owner-approval, owner-only) match Slack, with an Approve/Deny card and /policy. When a tenant has several projects and nothing is bound yet, Teams asks which project to use and replays the message you already sent. The agent's markdown renders as card elements — headings, tables, bold, monospace code — with step source citations.
  • Split a kortix.yaml across files. An imports: list pulls agents, connectors and triggers in from other files, and every connector and agent records which file declared it. The CLI, the manifest reference and the scheduling docs all understand it.
  • Replace a project's repository. Point an existing project at a different repository, authorized per repository rather than per account.
  • Every managed Kortix model now accepts images. The lineup moved to the Morph catalog with Kimi K3 and GLM Flash, plus text-only DeepSeek V4 Pro. Text-only models are hidden rather than offered and then refused.
  • Model pricing and data handling are visible before you pick. The model manager shows each managed model's modalities, its zero-retention status, and which connected account pays. Regional options cover US-only and EU inference, with the retention terms stated.

Improved

  • Session transcripts stay complete. A session accepts messages while its transcript history starts the runtime, so you are not waiting on a sandbox to type.
  • Attachments are stored before the sandbox starts, so a file sent with the first message is still there when the agent reads it. Older sessions recover attachments that previous versions could not read back.
  • Teams replies post faster: the live card goes up before identity resolution, and the webhook acknowledges before dispatch.
  • Provider keys keep your draft while saving, and the provider list collapses to a count so the managed set stays in view.
  • Group and member pages stay current after a directory update, and attaching a group to a project now grants its agents.
  • Deployments report why a rollout failed instead of only that it timed out, and a container starts faster.

Fixed

  • Sandbox compute is metered on free and trial accounts. It was not, so usage on those accounts went unbilled.
  • Starting a session, sending a prompt and waking an App no longer debit a cent each. Those actions placed a charge they should never have placed.
  • Adding a tool authorizes the project's account, not the clicker's. The connection was being created as a private one owned by whoever clicked, so nobody else — and no scheduled run — could use it, while the UI reported it connected.
  • A prompt sent before the model catalog finished loading was dropped. It is now held and sent.
  • The model picker spun forever for every project member, and for a project with no id.
  • A sent message came back as the project-home draft.
  • The session sidebar reordered itself while you were reading it.
  • An idle session's Files panel showed a permanent spinner instead of its files.
  • The Teams source filter crashed the project page.
  • Removing an attachment whose upload was still starting left it behind for a day and counted against the attachment limit.
  • Sessions resumed after a pause no longer fail on stale provider credentials.
  • Repository controls stay visible and readable at the minimum window size, and the replacement flow is fully translated.
  • Teams session titles, sidebar entries and channel cards no longer show raw <at> mention markup.
  • A Teams turn that died mid-flight no longer wedges the conversation.
  • Bot tokens are sent only to Bot Framework attachment hosts, and a team-drive upload is authorized against the conversation it belongs to.
  • An out-of-range attachment part now reports "not found" instead of "not active", so a caller can tell a permanent error from a temporary one.
  • An emptied imported collection stays an empty list rather than becoming an empty object.
  • projects upgrade in the CLI now prompts with the same wording as the dashboard.
September 18, 2026

The pi agent harness, behind a per-project flag

v0.13.24

New

  • A second agent harness, behind a flag. pi (pi-agent-core) now runs in-process in the sandbox alongside OpenCode, selected per project by the pi_harness feature flag. It implements abort-after-tool so Quick Queue can stop a turn at a tool boundary, and it enforces the same per-pattern permission rules OpenCode applies. Off unless a project opts in, so nothing changes for existing projects.

Improved

  • The pi_harness setting reads correctly in all nine languages.
  • Internal: the sandbox daemon's timing budgets now tolerate a slow machine during a process respawn, so a correct restart is no longer reported as a failure.

Fixed

  • Restored the load-balancer response-time alarms required by the Drata DCF-86 control.

What's Changed

  • feat(kortixd): pi harness — pi-agent-core in-process as a second HarnessDefinition by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/7332
  • chore(release): staging VERSION → 0.13.24 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7371
  • chore(release): VERSION → 0.13.24 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7372
  • fix(drata-294): add ALB TargetResponseTime alarms (DCF-86 system monitoring) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7328
  • test(kortixd): budget the first-ready waits for a real respawn on a loaded runner by @markokraemer in https://github.com/kortix-ai/suna/pull/7376
  • chore(staging): bring staging to main (pi harness behind a flag, 14 commits) by @markokraemer in https://github.com/kortix-ai/suna/pull/7375
  • Release v0.13.24 — The pi agent harness, behind a per-project flag by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7377

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.23...v0.13.24

September 17, 2026

Per-call connector accounts, no more guessed account, and a sign-out fix

v0.13.23

New

  • Choose which account a connector runs as, per call. A connection now carries the accounts you may run it as, and the account is chosen when the connector is called rather than pinned to the whole session. The connector catalog, the SDK and the CLI all report the available accounts and the pinned default, and connectors/describe shows accounts instead of only tool counts.
  • An ambiguous connector call is refused, not guessed. When several accounts are reachable and none is named or pinned as default, the call is denied with account_required instead of silently picking one — no more mail sent from the wrong mailbox.
  • Choosing a connector account is discoverable in the CLI rather than a dead end.

Improved

  • A connector you have your own accounts for reads as connected, not "needs setup", and the admin connector list now agrees with what each caller can actually reach.
  • Connector accounts are per connection instead of a connector-level strategy, and connections the old strategy flag made unreachable are revoked.
  • The sandbox daemon's internals were reorganised behind explicit service boundaries, with its HTTP controllers separated from its adapters.

Fixed

  • A failed identity check no longer signs you out. A failed getUser round trip used to end the browser session; it no longer does, and the new-connection screen offers Upgrade when you are at the project cap.
  • Connector authorization: finalizing a connection that the whole project can use now requires the connections-manage capability, matching the gate the connect step already applied. Previously a role with connector-write but not connections-manage could complete a project-wide shared connection.
  • Auto-created connections no longer claim to be the default, and the CLI's account column no longer truncates away the pinned-default marker.
  • Stale connector banner copy and a dead connector detail shell removed; the account list renders for every direct provider.

What's Changed

  • fix(auth): a failed getUser round trip no longer signs the browser out; /new offers Upgrade at the project cap by @markokraemer in https://github.com/kortix-ai/suna/pull/7352
  • refactor(connectors): credentials are a call-time choice — one access rule, no session gate, no strategy flag by @markokraemer in https://github.com/kortix-ai/suna/pull/7326
  • refactor(kortixd): introduce internal harness service boundaries by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/7220
  • test(api): wait for the second lifecycle drain instead of a 200 ms margin by @markokraemer in https://github.com/kortix-ai/suna/pull/7357
  • fix(connectors): account-aware modal header, dead ConnectorDetail shell removed, reconcile re-activates a revoked account by @markokraemer in https://github.com/kortix-ai/suna/pull/7360
  • fix(build): quick-queue snapshot uses a reverse scan, unbreaking API typecheck on main by @markokraemer in https://github.com/kortix-ai/suna/pull/7368
  • fix(security): connect/finalize gates a project-owned account on connections.manage by @markokraemer in https://github.com/kortix-ai/suna/pull/7366
  • chore(staging): bring staging to main (connector-creds, git-connection-logout, 48 commits) by @markokraemer in https://github.com/kortix-ai/suna/pull/7356
  • Release v0.13.23 — Per-call connector accounts, no more guessed account, and a sign-out fix by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7370

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.22...v0.13.23

September 17, 2026

Private provider key pools, print whole conversations, and Entra SCIM fixes

v0.13.22

New

  • Private provider key pools. Bring several keys for one provider, keep them private or share them with named members, and let each session hold its own key. Sessions fail over to the next key and report the earliest retry time when a pool is exhausted. Gemini and ChatGPT keys pool too, and pooled keys are managed in Models. Pool access is bound to the session owner, and a pool is checked against the model you actually picked.
  • Print a whole conversation. Cmd+P prints the full session as a clean document — every message, not one clipped screen of the app.
  • Queued prompts you can see and edit. Queued messages show in a list above the composer. Press Up to edit the last one, and Resume picks the queue back up.
  • Microsoft Teams install reports what happened. One-click install publishes in the background, lands on Channels with a real status, and offers a retry with the actual reason when publishing fails.
  • Astra is available as a ChatGPT subscription model.

Improved

  • Faster project boot. New sessions fetch the project from storage instead of cloning it, and start sooner.
  • Faster session lists. A project's session list is now a page, not the whole inventory.
  • Menus open instantly — menus, popovers, tooltips and the command palette no longer wait to appear.
  • Smaller sandbox images, which start faster.
  • Git connections are organized per account, with one instance backend and an identity that cannot drift. Verifying with GitHub no longer signs you out, and the new-connection screen always has a way out.

Fixed

  • Microsoft Entra directory sync. Patches apply atomically, large directories paginate, groups survive while a user is inactive or a sign-in session is stale, deactivation and single-member removal behave correctly, and users resolve across the whole directory.
  • The gateway retries a slow internal call instead of answering "Gateway unavailable".
  • Composer drafts survive session startup, and opening session settings no longer closes itself while the composer takes focus.
  • One session lifecycle drain at a time per API task, so queued work is not claimed twice.
  • Session attachments are more reliable, and model prices show correctly in the ChatGPT picker.
  • Security hardening across session cursors, webhook signing keys, and the remaining high-severity scanner findings.
  • Database migrations apply cleanly on staging and production.

What's Changed

  • fix(teams): one-click install publishes in the background, records its outcome, and shows it by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7341
  • fix(api): run one session lifecycle drain at a time per API task by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7343
  • fix(api): run one session lifecycle drain at a time per API task (staging) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7344
  • fix(git): verify-with-GitHub no longer signs out; /new is a git account manager with a way out by @markokraemer in https://github.com/kortix-ai/suna/pull/7330
  • chore(release): staging VERSION → 0.13.22 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7347
  • chore(release): VERSION → 0.13.22 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7348
  • Default pooled provider connections to project access by @markokraemer in https://github.com/kortix-ai/suna/pull/7345
  • chore(staging): bring staging to main (resolve the diverged double-shipped hotfixes) by @markokraemer in https://github.com/kortix-ai/suna/pull/7351
  • Release v0.13.22 — Private provider key pools, print whole conversations, and Entra SCIM fixes by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7355

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.21...v0.13.22

September 17, 2026

Print whole conversations, private provider pools, and Entra SCIM fixes

v0.13.21

New

  • Print a whole conversation. Cmd+P prints the full session as a clean document — every message, not one clipped screen of the app.
  • Queued prompts you can see and edit. Queued messages show in a list above the composer. Press Up to edit the last one, and Resume picks the queue back up reliably.
  • Private provider connection pools. Bring several keys for one provider, keep them private or share them with named members, and let a session hold its own key. Sessions fail over to the next key and report the earliest retry time when a pool is exhausted. Gemini and ChatGPT keys pool too, and pooled keys are managed in Models.
  • Astra is available as a ChatGPT subscription model.

Improved

  • Faster project boot. New sessions fetch the project from storage instead of cloning it, and start sooner.
  • Faster session lists. A project's session list is now a page, not the whole inventory.
  • Menus open instantly. Menus, popovers, tooltips and the command palette no longer wait to appear.
  • Smaller sandbox images, which start faster.
  • Git connections are now organized per account, with one instance backend and an identity that cannot drift.

Fixed

  • Microsoft Entra directory sync. Patches apply atomically, large directories paginate, groups survive while a user is inactive or a sign-in session is stale, deactivation and single-member removal behave correctly, and users resolve across the whole directory.
  • The gateway retries a slow internal call instead of answering "Gateway unavailable".
  • Composer drafts survive session startup, and opening session settings no longer closes itself while the composer takes focus.
  • Session attachments are more reliable.
  • Model prices show correctly in the ChatGPT picker.
  • Security hardening across session cursors, webhook signing keys, and the remaining high-severity scanner findings.
  • Database migrations now apply cleanly on staging and production.

What's Changed

  • feat(sandbox): bake rg, fd, bat, jq, fzf and a shell tool floor into every image by @markokraemer in https://github.com/kortix-ai/suna/pull/7264
  • refactor(sandbox): remove the fast cold boot image, its flag, and the experiments it gated by @markokraemer in https://github.com/kortix-ai/suna/pull/7268
  • test(release): dismiss the welcome card before Save in the repository-access journey by @markokraemer in https://github.com/kortix-ai/suna/pull/7276
  • fix(cli): connectors apps searches the Composio toolkit catalog by @markokraemer in https://github.com/kortix-ai/suna/pull/7277
  • feat(project-snapshot): S3 boot acquires the project 3.5× faster than Git (307 vs 1,078 ms) and boots 0.8 s sooner — presign at create, no HEAD on the boot path, kortixd gated on OpenCode's "server listening" by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/7242
  • fix: restore terminal recovery and keep message retries in their session by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7267
  • fix(usage): show zero cost for ChatGPT subscriptions by @markokraemer in https://github.com/kortix-ai/suna/pull/7278
  • chore(release): VERSION → 0.13.19 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7285
  • fix: refresh terminal provider credentials after sandbox resume by @markokraemer in https://github.com/kortix-ai/suna/pull/7286
  • fix(session): isolate optional connector failures and preserve prompt queue controls by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7265
  • chore(release): VERSION → 0.13.20 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7290
  • chore(release): staging VERSION → 0.13.20 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7291
  • fix(session): a queued prompt survives an unreachable runtime instead of being dead-lettered in 5 minutes by @markokraemer in https://github.com/kortix-ai/suna/pull/7289
  • chore(release): back-merge staging into main (resolved) by @markokraemer in https://github.com/kortix-ai/suna/pull/7294
  • chore(release): back-merge v0.13.18 release-gate fixes into main by @markokraemer in https://github.com/kortix-ai/suna/pull/7282
  • fix(sandbox): an image over the provider's snapshot ceiling is a permanent, user-fixable state — not "try again" by @markokraemer in https://github.com/kortix-ai/suna/pull/7293
  • feat(providers): reuse personal connections and subscription pools across projects by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7295
  • feat(providers): connect personal subscriptions and API keys across projects by @markokraemer in https://github.com/kortix-ai/suna/pull/7234
  • Fix Azure SCIM ingress, deactivation, and group synchronization by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7297
  • fix(web): pin every @tiptap package to 3.27.1 by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7300
  • infra(dev): enable S3 Transfer Acceleration for project snapshots by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/7299
  • Fix Azure SSO and SCIM lifecycle, membership, and profile synchronization by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7298
  • fix: harden session attachments by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7148
  • Fix SCIM sync for populated Entra default profile mappings by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7302
  • perf(web): open menus, popovers, tooltips and the command palette instantly by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7301
  • fix(security): clear the high-severity CodeQL and Trivy findings blocking the staging promote by @markokraemer in https://github.com/kortix-ai/suna/pull/7306
  • perf(sandbox): set modes at COPY time — a chmod/chown RUN was duplicating 290 MB into every image by @markokraemer in https://github.com/kortix-ai/suna/pull/7309
  • fix(security): the three remaining high CodeQL findings, and the prompt-delivery incident learnings by @markokraemer in https://github.com/kortix-ai/suna/pull/7310
  • perf(sessions): the project session list is a keyset page, not the whole inventory by @markokraemer in https://github.com/kortix-ai/suna/pull/7308
  • fix(security): a webhook signing key must never come from Math.random by @markokraemer in https://github.com/kortix-ai/suna/pull/7312
  • perf(sessions): the project session list is a keyset page, not the whole inventory by @markokraemer in https://github.com/kortix-ai/suna/pull/7314
  • fix(dev): load the baked Supabase images, and stop starting the two nothing uses by @markokraemer in https://github.com/kortix-ai/suna/pull/7313
  • Revert provider connection pooling and restore inline provider setup by @markokraemer in https://github.com/kortix-ai/suna/pull/7311
  • Merge staging into main: reconcile #7308/#7314 and repair the learnings register by @markokraemer in https://github.com/kortix-ai/suna/pull/7317
  • chore(release): VERSION → 0.13.21 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7322
  • chore(release): staging VERSION → 0.13.21 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7323
  • fix(models): restore ChatGPT picker reference prices by @markokraemer in https://github.com/kortix-ai/suna/pull/7320
  • release: main → staging (prompt-delivery fix + 22 commits) by @markokraemer in https://github.com/kortix-ai/suna/pull/7292
  • test(ci): fail the build on a committed git conflict marker by @markokraemer in https://github.com/kortix-ai/suna/pull/7318
  • fix(app): separate send and composer queue placement by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7304
  • fix(security): pin the GCM tag and nonce lengths when opening a session cursor by @markokraemer in https://github.com/kortix-ai/suna/pull/7315
  • refactor(git): one instance backend, account connections, env-immutable identity by @markokraemer in https://github.com/kortix-ai/suna/pull/7321
  • fix(gateway): retry a slow control-plane call instead of serving "Gateway unavailable" by @markokraemer in https://github.com/kortix-ai/suna/pull/7325
  • feat(session): Cmd+P prints the whole conversation as a document by @markokraemer in https://github.com/kortix-ai/suna/pull/7329
  • Allow explicitly granted agent sessions to self merge CRs by @markokraemer in https://github.com/kortix-ai/suna/pull/7324
  • Promote main to staging by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7333
  • fix(db): release the early-applied keyset index so staging and prod can migrate by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7334
  • Promote main to staging (migration order fix) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7335
  • Add feature-flagged provider secret resources and session pools by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7331
  • Pooled provider connections with per-user ChatGPT accounts by @markokraemer in https://github.com/kortix-ai/suna/pull/7319
  • fix(api): copy the early-applied migration repair into the API image by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7338
  • fix(api): copy the early-applied migration repair into the API image (staging) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7339
  • Release candidate: main → staging (0.13.21) by @markokraemer in https://github.com/kortix-ai/suna/pull/7340
  • Release v0.13.21 — Print whole conversations, Entra SCIM fixes, and faster project boot by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7336

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.20...v0.13.21

September 16, 2026

Faster session lists in large projects

v0.13.20

Fixed

  • Projects with thousands of sessions no longer slow the app down. The session list now loads one page at a time — 50 sessions, with a Load more control — instead of returning every session on every refresh. On a project with 12,617 sessions that is a 46 KB response instead of about 11 MB, and the sidebar was refreshing it every five seconds.
  • Opening, sharing, stopping, restarting or renaming a session now works however old the session is. These controls used to look the session up in the full list, so once a project grew past the first page the controls could quietly disappear.

Improved

  • Date grouping (Today, This week, Older), filters and search work as before, applied to the sessions you have loaded.
  • A new database index serves the paged list, so a request no longer sorts every session in the project.

Security

  • The pagination cursor is encrypted and tied to both the project and the person viewing it. It cannot reveal a session they are not allowed to open, and it cannot be reused by anyone else.

What's Changed

  • Release v0.13.20 — Faster session lists in large projects by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7316

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.19...v0.13.20

September 16, 2026

Reliable terminal connections after sandbox resume

v0.13.19
  • Fix terminal connections that fail after a sandbox resumes because its provider credentials have changed.
  • Refresh rejected provider credentials once for reads and discard stale credentials after a failed WebSocket handshake.
  • Preserve application redirects and sandbox authentication errors. Do not replay writes when provider authentication fails.

What's Changed

  • chore(release): staging VERSION → 0.13.19 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7284
  • fix: release provider credential recovery after sandbox resume by @markokraemer in https://github.com/kortix-ai/suna/pull/7287
  • Release v0.13.19 — Reliable terminal connections after sandbox resume by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7288

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.18...v0.13.19

September 16, 2026

Sessions keep their own agent, and explicit repository access

v0.13.18

Fixed

  • Terminal opens on a stopped workspace. Opening Terminal requests a wake even before the first shell exists. Connection retries have a deadline and preserve shell output.
  • Session switches keep message retries in the right workspace. Missing conversations stop repeated 404 or 410 requests without clearing cached history.
  • Sessions keep their own agent. A session could be switched to an agent from a different project after a prompt that named no agent, which removed its access to connectors and the Kortix CLI. Every session now always runs as its own agent, and a session that was affected recovers on its next message.
  • The first message on the home screen no longer gets stuck in the composer after a slow start.
  • Project pages load cleanly. The project home shows the Kortix mark while it loads instead of a flashing placeholder.
  • Session history is saved before a session stops, and responses from the in-sandbox model proxy are no longer returned in a corrupted encoding.
  • Admin project list shows each project's own session counts.
  • Customize settings show what you saved. After saving an agent or connector setting, a reload could show the previous value for up to a minute.

Improved

  • Connector activity uses consistent names. Connector calls appear as connector calls.
  • Repository access is explicit. Agents now declare whether a session gets the project's files, replacing the older workspace modes. Older API clients keep reading restricted manifests correctly.
  • Previews route correctly and set up shared sandboxes in isolation.
  • Release checks are more reliable: preview environments use their own database, confirm the running runtime, and wait for completed agent artifacts before asserting on them. They also verify cold terminal wake and session-switch routing, allocate sufficient preview frontend memory, and check Docker readiness.

What's Changed

  • chore(release): VERSION → 0.13.16 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7249
  • chore(release): VERSION → 0.13.17 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7253
  • Replace workspace modes with explicit repository access by @markokraemer in https://github.com/kortix-ai/suna/pull/7240
  • fix(preview): a legacy HS256 session opens preview origins again by @markokraemer in https://github.com/kortix-ai/suna/pull/7258
  • fix(web): a timed-out first prompt no longer stays in the home composer by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7254
  • fix(web): project home loading paints the Kortix mark, not a skeleton by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7263
  • fix(api): session tokens no longer adopt another project's agent by @markokraemer in https://github.com/kortix-ai/suna/pull/7262
  • Release candidate: main 3e7d039e97 → staging by @markokraemer in https://github.com/kortix-ai/suna/pull/7266
  • chore(release): VERSION → 0.13.18 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7269
  • chore(release): staging VERSION → 0.13.18 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7270
  • hotfix(staging): editor manifest reads are fresh on every replica; release setup polls retry transport errors by @markokraemer in https://github.com/kortix-ai/suna/pull/7273
  • fix(web): connector tool calls say "connector", not "app" by @markokraemer in https://github.com/kortix-ai/suna/pull/7272
  • fix(api): Customize editor reads show the committed manifest on every replica by @markokraemer in https://github.com/kortix-ai/suna/pull/7274
  • hotfix(staging): dismiss the welcome card before Save in the repository-access journey by @markokraemer in https://github.com/kortix-ai/suna/pull/7275
  • fix: release terminal recovery and session-bound message retries by @markokraemer in https://github.com/kortix-ai/suna/pull/7279
  • hotfix(staging): GW-ACCESS-1 accepts the upstream 503 for an unknown model on deployed targets by @markokraemer in https://github.com/kortix-ai/suna/pull/7280
  • Release v0.13.18 — Sessions keep their own agent, and explicit repository access by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7271

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.17...v0.13.18

Release on GitHub
Release on GitHub
Release on GitHub
Release on GitHub
Release on GitHub
Read the full release on GitHub
Release on GitHub
Release on GitHub
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