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 27, 2026

A reliable admin accounts list and faster connector resolution

v0.13.36

The admin accounts list loads reliably, and sessions resolve their connectors faster.

Fixed

  • The admin console's account list uses an index and no longer times out. A slow query now returns a clear error instead of raw database text.

Improved

  • Sessions resolve their connectors in one batched lookup, and Composio discovery serves cached results while it refreshes.

What's Changed

  • perf(api): batch the session scope connector resolution; stale-while-revalidate Composio discovery by @markokraemer in https://github.com/kortix-ai/suna/pull/7801
  • fix(admin): index the accounts-list join, typed 503 on its statement_timeout by @markokraemer in https://github.com/kortix-ai/suna/pull/7800
  • Promote main acf813fc7c to staging (v0.13.36) by @markokraemer in https://github.com/kortix-ai/suna/pull/7813
  • Release v0.13.36 — A reliable admin accounts list and faster connector resolution by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7816

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.35...v0.13.36

Release on GitHub
September 27, 2026

Audit events are never lost, and stuck session starts stop retrying

v0.13.35

Audit events are never lost under load, stuck session starts stop retrying forever, and the app is faster.

Fixed

  • Audit events that hit database lock contention are retried with backoff instead of being dropped.
  • A session start whose repository clone fails now stops after its retry limit instead of retrying forever.

Improved

  • Faster page loads and API responses: cached git reads, fewer browser preflight requests, fewer repeated queries, and smaller payloads.

What's Changed

  • chore(release): VERSION → 0.13.35 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7798
  • chore(release): staging VERSION → 0.13.35 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7799
  • perf: latency sweep — git read cache, edge CORS preflights, N+1s, payloads, waterfalls by @markokraemer in https://github.com/kortix-ai/suna/pull/7796
  • fix(audit): requeue contended writes instead of dropping them by @markokraemer in https://github.com/kortix-ai/suna/pull/7805
  • fix(api): create_session drain finalizes a throw instead of retrying forever by @markokraemer in https://github.com/kortix-ai/suna/pull/7803
  • Promote main eed7a41d3c to staging (v0.13.35) by @markokraemer in https://github.com/kortix-ai/suna/pull/7809
  • Release v0.13.35 — Audit events are never lost, and stuck session starts stop retrying by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7810

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.34...v0.13.35

September 27, 2026

Share connector accounts, mobile push notifications, and pi.dev packages

v0.13.34

Share connector accounts with groups and people, mobile push notifications, and pi.dev packages for pi sessions.

New

  • Share connector accounts with specific groups, specific people, or everyone in the project. Anything can also be granted to everyone in a project.
  • Mobile push notifications when a turn completes, fails, asks a question, or needs a permission, even while the app is closed. Transcripts can also be shared as a public link from mobile.
  • pi.dev packages. pi sessions can load any extension from pi.dev, per project, per agent, or for every session.
  • Claude Code on the gateway. Claude Code works fully against /v1/messages, and ChatGPT models work from a gateway key.

Fixed

  • A long run whose first prompt has not loaded yet still reads in order.
  • A sandbox's binaries update at a turn boundary instead of waiting for a restart.
  • A restart failure is no longer reported as a lost computer before the provider is asked, and a removed parked box is recovered first.
  • A parked session stays stopped under passive traffic, and the app stops polling a parked or unreachable sandbox.
  • Unconfigured sessions use the project's shared ChatGPT accounts.
  • Bring-your-own Anthropic-compatible providers respect their configured base URL.
  • A session name set at creation is kept.
  • The session audit view loads without 25-second timeouts.
  • Interleaved text in streamed Anthropic responses opens its own content block.
  • An invalid Composio toolkit returns a clear error instead of a server error.
  • Tool output is parsed in linear time on web, mobile and the SDK.
  • Several browser errors no longer surface as app errors.
  • Project routes always run authentication before the route handler.
  • Mobile Review merges work and feel instant, with change-request cards in sessions.
  • Historical session dates and activity ordering are restored for migrated sessions.
  • The web app no longer hits React error #467 while loading translations.

What's Changed

  • system-skills: connector account ownership — shared slots must be authorized as the project identity by @agent-kortix in https://github.com/kortix-ai/suna/pull/7527
  • fix(api): session-create 500 stops leaking the raw insert error (KRTX-237) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7714
  • fix(audit) KRTX-211: index session-scoped audit read; kill 25s statement-timeout 503s by @agent-kortix in https://github.com/kortix-ai/suna/pull/7680
  • fix(api): keep a parked session stopped under passive proxy traffic (KRTX-378) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7734
  • fix(api): persist a create-supplied session name as the explicit override (KRTX-388) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7733
  • fix(api): cache projection etag after the durable store write (KRTX-218) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7723
  • fix(runtime): recover a removed parked box before reporting runtime_lost (KRTX-225) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7696
  • fix(api): answer 422, not a paged 500, for an invalid Composio toolkit slug (KRTX-212) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7729
  • Fix FE ApiError: Failed to commit agent config on a repository-policy push rejection (KRTX-236) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7711
  • fix(sdk): observe the session-sync read timeout when a loader throws synchronously (KRTX-384) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7732
  • fix(sdk): stop self-heal polls on a parked or unreachable sandbox (KRTX-269) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7722
  • fix(llm-gateway): open a fresh content block for interleaved text (KRTX-340) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7726
  • fix(web): stop Sentry paging on React #419 from Next.js 404/redirect recoveries (KRTX-230) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7707
  • fix(api): keep repository push stderr out of policy logs by @markokraemer in https://github.com/kortix-ai/suna/pull/7742
  • fix(gateway): unconfigured sessions use project-shared ChatGPT accounts by @markokraemer in https://github.com/kortix-ai/suna/pull/7737
  • fix(sandbox): attribute memory pressure and bound API test workers by @markokraemer in https://github.com/kortix-ai/suna/pull/7731
  • fix(web): de-noise React error #412 (Connection closed.) RSC flight close — KRTX-240 by @agent-kortix in https://github.com/kortix-ai/suna/pull/7716
  • Fix FE RangeError: Maximum call stack size exceeded (KRTX-235) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7712
  • fix(sdk,web,mobile): a long run whose prompt is not loaded reads in order by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7738
  • fix(apps): a switched-off hosting provider showed "starting" forever instead of asking for a redeploy by @markokraemer in https://github.com/kortix-ai/suna/pull/7180
  • fix(release-gate): v0.13.29 browser failures — spec 21 preflight + Owner facet, spec 28 duplicate tile title by @markokraemer in https://github.com/kortix-ai/suna/pull/7517
  • docs(learnings): port 15 rules from stale learnings PRs by @markokraemer in https://github.com/kortix-ai/suna/pull/7740
  • build(deps): bump github/codeql-action from 4.37.7 to 4.37.8 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/6858
  • build(deps): bump bridgecrewio/checkov-action from 12.3117.0 to 12.3119.0 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/6856
  • chore(deps-dev): bump mermaid from 11.15.0 to 11.16.1 in /apps/mobile by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/7518
  • chore(deps): bump pypdf from 6.15.0 to 6.16.1 in /packages/starter/templates/general-knowledge-worker/.kortix/opencode/skills/presentations/scripts by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/7090
  • chore(deps): bump hono from 4.12.27 to 4.13.7 in /.deepsec by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/7188
  • fix(db): retry a busy migration advisory lock before failing deploy by @markokraemer in https://github.com/kortix-ai/suna/pull/7743
  • chore(agents): ponytail on by default as agent-agnostic skills; every CLAUDE.md symlinks AGENTS.md by @markokraemer in https://github.com/kortix-ai/suna/pull/7744
  • fix(security): read tool output in linear time on web, mobile, and the SDK by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7581
  • fix(api): de-noise transient git-mirror 503 from frontend Sentry (KRTX-231) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7708
  • Revert mobile mermaid bump: it broke pnpm frozen-lockfile on main by @markokraemer in https://github.com/kortix-ai/suna/pull/7749
  • ci(dependabot): run the Tests lanes on npm dependency PRs by @markokraemer in https://github.com/kortix-ai/suna/pull/7751
  • fix(api): respect catalog api base URL for anthropic-transport BYOK providers by @markokraemer in https://github.com/kortix-ai/suna/pull/7745
  • fix(agent-tunnel): handle non-JSON responses in TunnelClient gracefully by @markokraemer in https://github.com/kortix-ai/suna/pull/7746
  • fix(api): never call a restart failure a lost computer without asking the provider by @markokraemer in https://github.com/kortix-ai/suna/pull/7747
  • docs: support any Serper.dev-compatible endpoint by @markokraemer in https://github.com/kortix-ai/suna/pull/7752
  • docs(learnings): a failed migration gate skips the API deploy while the frontend still ships by @markokraemer in https://github.com/kortix-ai/suna/pull/7753
  • docs(preview): document the preview environment flow by @markokraemer in https://github.com/kortix-ai/suna/pull/7755
  • Revert "docs: support any Serper.dev-compatible endpoint" by @markokraemer in https://github.com/kortix-ai/suna/pull/7762
  • feat(mobile): push notifications, public transcript share, and mobile triage fixes by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7688
  • Revert #7180: app wake provider check fails the public-proxy integration suite by @markokraemer in https://github.com/kortix-ai/suna/pull/7764
  • feat(runtime-assets): converge binaries at a turn boundary, and make the secrets gate one predicate by @markokraemer in https://github.com/kortix-ai/suna/pull/7703
  • feat(pi): pi.dev packages per project, per agent and system-wide, pre-built and loaded by pi's own extension loader by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/7353
  • fix(llm-gateway): Claude Code on /v1/messages, incl. ChatGPT models from a gateway key by @markokraemer in https://github.com/kortix-ai/suna/pull/7741
  • fix(mobile): push public-link confirms inside the share sheet by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7769
  • feat: share connector accounts with groups, people, or everyone — and grant anything to everyone in the project by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/7665
  • fix(tests): FILE-8 waits for the session's remote branch to publish by @markokraemer in https://github.com/kortix-ai/suna/pull/7766
  • fix(tests): give the CFG-11/CFG-12 fixture's hello.ts a real tool shape by @markokraemer in https://github.com/kortix-ai/suna/pull/7767
  • chore(deps): bump github/codeql-action from 4.37.8 to 4.38.1 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/7754
  • chore(deps): bump github/codeql-action/upload-sarif from 4.37.7 to 4.38.1 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/7758
  • chore(deps): bump anchore/sbom-action from 0.24.0 to 0.24.2 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/7756
  • chore(deps): bump hadolint/hadolint-action from 3.4.0 to 3.5.0 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/7759
  • chore(release): staging VERSION → 0.13.34 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7771
  • chore(release): VERSION → 0.13.34 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7772
  • Promote main 180e5dc29e to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/7773
  • fix: PROJ-38 401->403 auth-order regression + missing audit title translations by @markokraemer in https://github.com/kortix-ai/suna/pull/7774
  • Promote main fa790194ee to staging (v0.13.34, includes #7774 auth-order fix) by @markokraemer in https://github.com/kortix-ai/suna/pull/7775
  • ci: queued dev deploys, serving-based rolls, Live-on-dev and early preview comments by @markokraemer in https://github.com/kortix-ai/suna/pull/7763
  • fix(mobile): make Review merges work and feel instant, add session CR cards by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7777
  • fix(admin): typed 503 for the analytics ledger timeout (KRTX-423) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7770
  • fix(web): always call use() for the i18n catalog to avoid React #467 by @agent-kortix in https://github.com/kortix-ai/suna/pull/7768
  • Restore historical Suna session dates and activity ordering by @markokraemer in https://github.com/kortix-ai/suna/pull/7231
  • refactor: apps/web reads the SDK's diagnostics store and managed storage by @markokraemer in https://github.com/kortix-ai/suna/pull/7644
  • CI reads every credential from AWS Secrets Manager; GitHub stores none by @markokraemer in https://github.com/kortix-ai/suna/pull/7591
  • refactor(wire-id): one wrap-aware wire message-id implementation by @markokraemer in https://github.com/kortix-ai/suna/pull/7652
  • Promote main 381c7e53be to staging (v0.13.34 latest) by @markokraemer in https://github.com/kortix-ai/suna/pull/7784
  • perf: Customize loads instantly — server caches, warm git mirror, background prefetch by @markokraemer in https://github.com/kortix-ai/suna/pull/7781
  • fix(iam): CONN-28 — never cache empty object-grant map for connection narrowing by @markokraemer in https://github.com/kortix-ai/suna/pull/7794
  • Promote main 7ca9f7d630 to staging (v0.13.34 + #7794) by @markokraemer in https://github.com/kortix-ai/suna/pull/7795
  • Release v0.13.34 — Share connector accounts, mobile push notifications, and pi.dev packages by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7788

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.33...v0.13.34

September 26, 2026

Everything from v0.13.32, plus steadier sessions and grouped outputs

v0.13.33

This release restores everything from v0.13.32, which was rolled back, and adds fixes for live transcripts, sleeping sessions, the file viewer and connectors.

New

  • Grouped outputs. When the agent shows several results in a row, such as two screenshots, the session renders one tabbed card instead of a card per result.
  • Managed model routes. Each Kortix-managed model routes through its own provider route, and the model picker shows the price for each route.
  • Wake failures are explained. When a sandbox fails to wake, the session page shows the failure and when it retries.

Fixed

  • A live session's transcript recovers when a turn ends even if the working signal was missed.
  • A session idle for more than a day wakes again, and a failed start is recovered instead of reported lost.
  • A config update never interrupts the turn it finds running.
  • Kortix owns the kortix and opencode binaries inside a managed sandbox, so a box cannot end up on a version Kortix cannot heal.
  • The file viewer reloads when the explorer switches between the live workspace and the saved copy.
  • X and other Composio toolkits with their own OAuth connect again, and the Connected tab stays current.
  • Git pushes on branch commits retry a transient failure.
  • Audit writes for one session no longer queue behind each other.
  • A requested Stop keeps its reason in the turn history.
  • Several browser errors from extensions, GPU drivers, closed parent windows and tab discards no longer surface as app errors.

What's Changed

  • feat(session): group consecutive show calls into one carousel card by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7685
  • ci(staging): turn on the config releases operator switch by @markokraemer in https://github.com/kortix-ai/suna/pull/7691
  • test(sandbox): isolate config-release state in env route suite by @markokraemer in https://github.com/kortix-ai/suna/pull/7695
  • test(api): seed IAM HTTP suites with a local git upstream by @markokraemer in https://github.com/kortix-ai/suna/pull/7669
  • chore(release): staging VERSION → 0.13.33 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7704
  • chore(release): VERSION → 0.13.33 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7705
  • docs(learnings): two rules from the v0.13.32 release by @markokraemer in https://github.com/kortix-ai/suna/pull/7706
  • fix(config-releases): serve a former archive from the store when a repository replacement outruns the mirror (CFG-7) by @markokraemer in https://github.com/kortix-ai/suna/pull/7701
  • fix(api): retry transient git push failures on branch commits (KRTX-238) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7713
  • fix(tests): derive lifecycle claim time from current clock by @markokraemer in https://github.com/kortix-ai/suna/pull/7720
  • fix(web): guard PDF copy shortcut against keydown with no key (KRTX-233) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7710
  • fix(session): stop paging on browser tab discards (KRTX-239) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7717
  • Fix FE TypeError: can't access property "removeEventListener", window.parent is null (KRTX-242) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7719
  • fix(web): suppress stack-bearing OperationError popErrorScope GPU noise (KRTX-228) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7702
  • fix(web): ignore injected wallet-provider redefine browser noise (KRTX-272) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7718
  • fix(web): remount the file viewer when the explorer swaps its source (KRTX-241) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7715
  • docs(learnings): redact external signal text by allowlist before agents write it by @markokraemer in https://github.com/kortix-ai/suna/pull/7690
  • fix(platinum): archived sessions wake, and a failed start is recovered instead of reported lost by @kubet in https://github.com/kortix-ai/suna/pull/7668
  • refactor(api): one access guard for model-defaults writes by @markokraemer in https://github.com/kortix-ai/suna/pull/7667
  • docs(sdk): fix broken AGENTS.md link in GETTING-STARTED.md by @feizhuzheng in https://github.com/kortix-ai/suna/pull/7106
  • fix(audit): serialize same-session audit writes in-process to end the ingest/queue convoy (KRTX-229) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7725
  • fix(i18n): pin default catalog conflict style by @markokraemer in https://github.com/kortix-ai/suna/pull/7697
  • fix(tests): read landing accessibility artwork in one DOM snapshot by @markokraemer in https://github.com/kortix-ai/suna/pull/7622
  • refactor(api): remove unreferenced exports and stale sandbox env module by @markokraemer in https://github.com/kortix-ai/suna/pull/7727
  • refactor(cli): share argument grammar and preserve command output by @markokraemer in https://github.com/kortix-ai/suna/pull/7730
  • Show sandbox wake failure and retry timing by @markokraemer in https://github.com/kortix-ai/suna/pull/7724
  • fix(connectors): connect X (and 46 other own-OAuth toolkits); keep the Connected tab fresh by @kubet in https://github.com/kortix-ai/suna/pull/7736
  • Fix stale session transcripts after missed activity signals by @markokraemer in https://github.com/kortix-ai/suna/pull/7721
  • fix(tests): daemon config-release state must not leak across test files by @markokraemer in https://github.com/kortix-ai/suna/pull/7694
  • fix(sandbox): the platform owns the binaries inside a managed box by @markokraemer in https://github.com/kortix-ai/suna/pull/7698
  • A convergence never kills the turn it finds, and never leaves the row it opened by @markokraemer in https://github.com/kortix-ai/suna/pull/7699
  • refactor(web): classify browser noise through one rule table by @markokraemer in https://github.com/kortix-ai/suna/pull/7692
  • Route Morph per managed model and keep GLM on US ZDR pool by @markokraemer in https://github.com/kortix-ai/suna/pull/7693
  • fix(api): never rewrite a requested-stop mark with an unidentified cause (KRTX-254) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7728
  • Promote main 9583ddb1cc to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/7739
  • Release v0.13.33 — Everything from v0.13.32, plus steadier sessions and grouped outputs by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7760

New Contributors

  • @feizhuzheng made their first contribution in https://github.com/kortix-ai/suna/pull/7106

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.32...v0.13.33

September 25, 2026

Your own keys in Slack, Teams and the CLI, and sessions that open instantly

v0.13.32

Your own model keys and ChatGPT subscription now work in Slack, Teams and the CLI, saved sessions open instantly, and a single Stop can no longer break a session.

New

  • Your own keys and ChatGPT everywhere. Models you reach through your own API keys, keys shared with you, project keys, and ChatGPT subscriptions are available in Teams, Slack and the CLI, not only the web picker.
  • Members bring their own ChatGPT subscription, without needing permission to manage project secrets.
  • Saved sessions open on their conversation. Opening an existing session shows skeleton rows shaped like that session while it loads, instead of the full-screen boot screen.
  • Command palette. ⌘K opens instantly at a fixed position, and search can copy your account, project and session IDs.
  • Connect cards name the app they connect, and render as cards even when an agent writes them in a table.
  • Mobile: dictation in the composer, labelled queue controls with undo, and + only attaches.
  • SSO domain verification. An enterprise account verifies its email domain with a DNS TXT record before SSO is enforced for it. Existing SSO setups keep working.

Fixed

  • One Stop during a session's first turn no longer makes every later turn end immediately, and a Stop during start-up releases the held prompt.
  • A healthy Slack run is no longer closed as idle after 30 minutes of quiet work.
  • A saved secret that is not granted to the session's agent is now reported as "not granted to this agent" instead of silently missing, and an agent session can sync its own secrets.
  • In web terminals on custom Debian templates, Kortix tools stay on PATH and secrets load in login shells.
  • An open file viewer refreshes when the agent edits the file.
  • A turn that fails mid-stream shows one readable line naming the model, with details folded away.
  • Streaming from OpenAI-compatible models that omit event separators no longer fails to parse.
  • The web app detects the end of a turn reliably.

Security

  • Markdown, embedded frames, credential routing, share links and analytics are hardened.
  • SDK token, transport, preview-credential and file-write paths are hardened.
  • Connector requests are checked against private-network egress rules, and connector sync is atomic.
  • Gateway usage settles exactly once per request.
  • SSO emails are trusted only on verified domains, and access-control writes are scoped to their account.
  • Billing wallet functions move to a private database schema.

What's Changed

  • Connector egress checks, atomic connector sync, and idempotent gateway settlement by @markokraemer in https://github.com/kortix-ai/suna/pull/7618
  • Gateway: one Dispatch module runs the attempt plan (fallback chains, streaming retries) by @markokraemer in https://github.com/kortix-ai/suna/pull/7620
  • chore(release): VERSION → 0.13.32 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7625
  • chore(release): staging VERSION → 0.13.32 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7626
  • refactor(api): one status-transition module for session lifecycle; split engine.ts by @markokraemer in https://github.com/kortix-ai/suna/pull/7621
  • fix(tests): keep ke2e principal tokens valid past 1 h; stop fixtures when their flow attempt ends by @markokraemer in https://github.com/kortix-ai/suna/pull/7627
  • refactor(api): split numbered project route files by domain by @markokraemer in https://github.com/kortix-ai/suna/pull/7623
  • fix(sdk): token, transport, preview-credential and file-write hardening by @markokraemer in https://github.com/kortix-ai/suna/pull/7610
  • refactor(billing): one wallet module for every credit movement by @markokraemer in https://github.com/kortix-ai/suna/pull/7624
  • fix(preview): reclaim session sandboxes with their host by @markokraemer in https://github.com/kortix-ai/suna/pull/7569
  • fix(tests): SCOPE-6 uses the Git proxy on deployed targets by @markokraemer in https://github.com/kortix-ai/suna/pull/7628
  • fix(web): harden markdown, frames, credential routing, share links and analytics by @markokraemer in https://github.com/kortix-ai/suna/pull/7617
  • fix(identity): trust SSO emails only on verified domains; scope IAM writes to the account by @markokraemer in https://github.com/kortix-ai/suna/pull/7615
  • refactor(web): one markdown trust policy and one file preview policy by @markokraemer in https://github.com/kortix-ai/suna/pull/7629
  • refactor(api): session lifecycle wave 2 — status writers on the transition module, fenced command lease by @markokraemer in https://github.com/kortix-ai/suna/pull/7632
  • fix(sandbox): slack CLI surfaces the structured denial message, not "HTTP 403: true" by @agent-kortix in https://github.com/kortix-ai/suna/pull/7634
  • refactor(db): private wallet schema, idempotency-key uniqueness, kortix.ts schema contract by @markokraemer in https://github.com/kortix-ai/suna/pull/7631
  • fix(db): build baseline indexes and constraints missing on prod; verify-live-schema checks them by @markokraemer in https://github.com/kortix-ai/suna/pull/7635
  • test(ci): run the PostgreSQL-backed suites in the core lane, one fresh database per file by @markokraemer in https://github.com/kortix-ai/suna/pull/7636
  • fix(db): migrate status reads the ledger read-only, never the migration runner by @markokraemer in https://github.com/kortix-ai/suna/pull/7637
  • perf(db): index compute-session and grant-rotation lookups; one pending deletion request per account; re-register nightly schedules by @markokraemer in https://github.com/kortix-ai/suna/pull/7638
  • feat: models on your own keys and ChatGPT in Teams, Slack and the CLI by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7593
  • feat: open a saved session on skeleton rows, not the boot screen by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7640
  • fix(secrets): a session selects only the pooled keys it can use when it runs by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7639
  • feat(providers): members bring their own ChatGPT subscription by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7641
  • refactor(channels): one chat-channel core for Slack, Teams and email by @markokraemer in https://github.com/kortix-ai/suna/pull/7633
  • refactor(cli): remove unreachable commands and share arg-error helpers by @markokraemer in https://github.com/kortix-ai/suna/pull/7647
  • refactor(db): one catalog reader for the schema gates; un-quarantine ledger-repair suite by @markokraemer in https://github.com/kortix-ai/suna/pull/7648
  • feat(web): each saved session opens on its own skeleton rows, with one pulse moving down them by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7656
  • fix(sandbox): keep Kortix tools on PATH and load secrets in terminal login shells by @markokraemer in https://github.com/kortix-ai/suna/pull/7654
  • fix(sandbox): one Stop can no longer break every later turn in a session by @markokraemer in https://github.com/kortix-ai/suna/pull/7655
  • refactor(api): one helper per request primitive, with a tripwire by @markokraemer in https://github.com/kortix-ai/suna/pull/7650
  • fix(sandbox): a Stop releases the prompt the warm-up gate is holding by @markokraemer in https://github.com/kortix-ai/suna/pull/7664
  • feat(chat): name the app on connect link cards and lift them out of tables by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7660
  • feat(mobile): dictation, labelled queue controls with undo, and + only attaches by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7661
  • fix(channel-cli): downloads and teams conversations surface the API's denial message by @markokraemer in https://github.com/kortix-ai/suna/pull/7643
  • refactor(api): one module answers which pooled keys a session may use by @markokraemer in https://github.com/kortix-ai/suna/pull/7653
  • refactor(api): one module decides connector connection mutation by @markokraemer in https://github.com/kortix-ai/suna/pull/7645
  • refactor(web): delete unimported web modules by @markokraemer in https://github.com/kortix-ai/suna/pull/7646
  • test(billing, llm-gateway): cut the api-billing-gateway suites over to their owners by @markokraemer in https://github.com/kortix-ai/suna/pull/7662
  • Sessions run the base branch's current config from a read-only copy; /workspace is never written by @markokraemer in https://github.com/kortix-ai/suna/pull/7403
  • fix: say 'not granted to this agent' instead of silently withholding a saved secret by @markokraemer in https://github.com/kortix-ai/suna/pull/7659
  • feat(web): command palette opens instantly above centre, and search can copy your IDs by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7675
  • fix(slack,sandbox): stop killing live runs as idle by @markokraemer in https://github.com/kortix-ai/suna/pull/7670
  • fix(tests): make main green after connect link cards (#7660) by @markokraemer in https://github.com/kortix-ai/suna/pull/7676
  • refactor(mobile): delete 125 modules no app route reaches by @markokraemer in https://github.com/kortix-ai/suna/pull/7649
  • fix(api): let an agent session sync its own secrets by @markokraemer in https://github.com/kortix-ai/suna/pull/7677
  • fix(db): local invalid-index repair checks index builds in its own database only by @markokraemer in https://github.com/kortix-ai/suna/pull/7678
  • test(session-lifecycle): prune the session lifecycle test surface to its keepers by @markokraemer in https://github.com/kortix-ai/suna/pull/7663
  • test(kortixd): one keeper per contract at its owner boundary; test-only seams deleted by @markokraemer in https://github.com/kortix-ai/suna/pull/7673
  • fix(session): render failed turns as a checkpoint row with folded details by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7671
  • fix(web): refresh open file viewers when the agent turn ends by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7674
  • refactor(sdk): route-contract tripwire, retired endpoints, one transport module by @markokraemer in https://github.com/kortix-ai/suna/pull/7630
  • refactor(oauth): one hashing scheme for OAuth tokens by @markokraemer in https://github.com/kortix-ai/suna/pull/7666
  • fix(sdk): detect turn end against the status before the event by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7682
  • fix(gateway): repair missing OpenAI SSE event boundaries by @markokraemer in https://github.com/kortix-ai/suna/pull/7679
  • docs(contributing): one PR loop with an agent-browser demo video; skills in .agents/skills; learnings as an episodic ledger; docs/ removed by @markokraemer in https://github.com/kortix-ai/suna/pull/7672
  • fix(web): scale inline code with the heading it sits in by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7684
  • docs(learnings): a green preview deploy job is not a tested preview by @markokraemer in https://github.com/kortix-ai/suna/pull/7683
  • Promote main 92d4bcb6a9 to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/7686
  • Release v0.13.32 — Your own keys in Slack, Teams and the CLI, and sessions that open instantly by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7687

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.31...v0.13.32

September 24, 2026

A readable audit log, agents as their own principal, and a much lighter web app

v0.13.31

The audit log now reads as plain events instead of raw routes, agents act as their own principal by default, the mobile app gets a large revamp, and the marketing site ships far less JavaScript.

New

  • An audit log you can read. Every entry shows a readable title instead of a raw route, in all nine languages. Every API route and event now has a label, and kortix audit ls prints the same titles in the terminal.
  • More outcomes are audited: sandbox-provider transitions, App deployments, branch cleanup (one entry per deleted remote branch), and an expired tunnel permission. Background jobs run each tick as a named worker, so their work is attributable.
  • Agents act as their own principal by default. An agent has its own identity and permissions rather than borrowing the person who started it.
  • Apps are a per-agent resource in both the editor and the CLI.
  • Reply to several passages at once with inline quote blocks.
  • GPT-6 Sol and GPT-6 Luna are available through a connected ChatGPT subscription.

Improved

  • The marketing pages are static and ship about 80% less JavaScript, and opening a session is faster.
  • Mobile: onboarding, drafts, a reworked drawer header, connectors, a "Needs you" view, session chrome, the browser toolbar, plan rings and sheet contrast.
  • Desktop: native window controls, sidebar and settings alignment, the collapsed sidebar accepts clicks again, and the Customize sidebar toggle stays clickable.
  • File attachments now go through OpenAPI and HTTP connectors.
  • Kortix-managed models route through Morph first, with a confirmed-US, zero-retention failover when it is unavailable.
  • Mobile: attachments upload through the shared SDK, a session starts optimistically, and there is a Members page.

Fixed

  • Creating a session no longer fails with a server error when a transient git-mirror fetch fails; it retries instead.
  • A trigger or channel prompt no longer freezes the mobile app.
  • A request that changes nothing no longer records a change in the audit log, and a rate-limited request no longer stores the path it was refused on.
  • A git push no longer shares its upstream connection with another push.
  • OpenAI and Anthropic models are never presented as Kortix-managed.
  • Quote splitting trims newlines in one pass.
  • A git request that cannot get its repository credential now fails with a clear, retryable error instead of a misleading "repository not found", and a brief credential failure is retried before anyone sees it.
  • Session turns no longer render out of order after prompts sent from the CLI.
  • On the desktop app, Back is clickable again on sign-in, /projects, /new and onboarding, and the window can still be dragged from those pages.
  • The shader wallpaper compiles again; its uniform names used a form GPUs reject.
  • When memory runs out because of files held in RAM, the memory guard now names them instead of reporting only that the turn stopped.
  • An agent merging its own change request no longer gets a false "changes agents or triggers" refusal right after a push; the check reads the current branches.
  • An App's Access list shows an agent grant right after it is saved.

Security

  • Session routes, public shares and proxy edges check access through one shared rule set, and server-managed session metadata can no longer be set by clients.
  • Chat-channel webhooks are scoped to their verified project and workspace.
  • Credit is granted only for settled payments.
  • Tighter database grants for Supabase client roles; 57 unused legacy database functions are removed.
  • Private sandbox ingress, token hashing, and proxy-aware IP rate limits.

What's Changed

  • test(agp): give the grant wait a deployed-target budget by @markokraemer in https://github.com/kortix-ai/suna/pull/7541
  • fix(sdk,cli): retry a stalled/failed DELETE so sessions rm cannot hang past its caller's window by @agent-kortix in https://github.com/kortix-ai/suna/pull/7542
  • fix(git-proxy): accept shallow pushes in the receive-pack command parser by @agent-kortix in https://github.com/kortix-ai/suna/pull/7544
  • Saved history works while the sandbox is off — on web, SDK and CLI, attachments included by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7546
  • feat(teams): finish the Teams integration — questions, images, and the rest by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7545
  • fix(api): retry transient git-mirror clone failures instead of 500 by @agent-kortix in https://github.com/kortix-ai/suna/pull/7551
  • fix(web): reflect ChatGPT disconnect immediately by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7535
  • chore(release): staging VERSION → 0.13.31 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7555
  • chore(release): VERSION → 0.13.31 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7556
  • fix(kortixd): resume a short S3 snapshot download with a Range request by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/7399
  • perf(sessions): stop making a prompt wait on round trips it does not need by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/7430
  • fix(security): a pathological tag no longer freezes the mobile app by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7549
  • fix(security): user message tags parse in linear time on web and mobile by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7554
  • fix(web): restore catalog key order and merge catalogs key by key by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7550
  • fix(web): restore starter-prompt catalog order after the principal rename by @markokraemer in https://github.com/kortix-ai/suna/pull/7543
  • feat(audit): every inbound request is audited, at one boundary by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7548
  • fix(web): setup links render cleanly while their message streams by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7547
  • feat(session): inline quote blocks for replying to many passages by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7560
  • Connector connections: show who each account is authorized as, rename labels, fix already-connected links by @markokraemer in https://github.com/kortix-ai/suna/pull/7557
  • Mobile: session chrome, browser toolbar, plan rings, sheet contrast, 1.4.0 by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7533
  • fix(desktop): no screen is a soft lock — Go menu history and one default Back by @markokraemer in https://github.com/kortix-ai/suna/pull/7243
  • fix(desktop): harden native window behavior by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7526
  • Mobile: onboarding, drafts, drawer header, project switcher fix, Needs you, connectors by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7564
  • fix(app): restore web settings exit alignment by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7567
  • fix(api): retry transient warm git-mirror fetch instead of 500 by @agent-kortix in https://github.com/kortix-ai/suna/pull/7570
  • release: retry transient warm git-mirror fetch (KX-HOURLY session-create 500) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7572
  • feat(models): Claude Opus 5.5, GPT-6 Sol and GPT-6 Luna by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7561
  • fix(security): the last super-linear parsers on the mobile user-message path by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7574
  • feat(audit): background jobs run as named workers and audit the changes they make by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7575
  • chore(web): refresh stale docs content timestamps by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7576
  • fix(tests,git-proxy): no bare 400 after a push; a push never shares its upstream connection by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7577
  • test(api): parse, not regex, in the codemod pins and the route-table guard by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7578
  • fix(tests): the settings exit journey pins the macOS platform by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7579
  • feat(audit): every route has a readable label by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7580
  • feat(agents): Apps are a per-agent resource in the editor and CLI by @markokraemer in https://github.com/kortix-ai/suna/pull/7559
  • fix(models): OpenAI and Anthropic models are never Kortix-managed by @markokraemer in https://github.com/kortix-ai/suna/pull/7583
  • fix(web): scope maintenance Edge Config key per environment, keep it off the request path by @markokraemer in https://github.com/kortix-ai/suna/pull/7565
  • feat(iam): agents act as their own principal by default by @markokraemer in https://github.com/kortix-ai/suna/pull/7563
  • fix: restore "essential" — the sandbox image has not built since 05:42Z by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7582
  • fix(connectors): send file attachments through OpenAPI/HTTP connectors by @markokraemer in https://github.com/kortix-ai/suna/pull/7585
  • perf(web): make kortix.com fast — static marketing, 60% less JS, faster session open by @markokraemer in https://github.com/kortix-ai/suna/pull/7566
  • chore: back-merge staging into main to unblock the promote by @markokraemer in https://github.com/kortix-ai/suna/pull/7587
  • Promote main to staging for v0.13.31 by @markokraemer in https://github.com/kortix-ai/suna/pull/7588
  • Managed models: Morph first, ZDR OpenRouter pool failover, Kortix-only identity by @markokraemer in https://github.com/kortix-ai/suna/pull/7589
  • fix(desktop): restore collapsed titlebar drag points by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7568
  • fix(git-proxy): never forward a git request without its credential by @markokraemer in https://github.com/kortix-ai/suna/pull/7592
  • fix(web): shader wallpaper uniforms no longer use reserved GLSL names by @markokraemer in https://github.com/kortix-ai/suna/pull/7595
  • fix(kortixd): the memory guard names RAM-backed files when they fill the box by @markokraemer in https://github.com/kortix-ai/suna/pull/7598
  • fix(tests): press Mod+, only after the project shell has mounted by @markokraemer in https://github.com/kortix-ai/suna/pull/7596
  • Mobile: attachments through the SDK upload, optimistic session start, Members page by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7600
  • fix: session turns render out of order after CLI prompts (wire-id clock) by @markokraemer in https://github.com/kortix-ai/suna/pull/7597
  • fix(desktop): the full-band drag strip no longer takes Back's click by @markokraemer in https://github.com/kortix-ai/suna/pull/7601
  • Promote main to staging for v0.13.31 by @markokraemer in https://github.com/kortix-ai/suna/pull/7599
  • fix(db): revoke privileged grants from Supabase client roles by @markokraemer in https://github.com/kortix-ai/suna/pull/7603
  • chore(web): drop real id prefixes from error-noise comments by @markokraemer in https://github.com/kortix-ai/suna/pull/7605
  • chore(db): drop unused legacy public functions by @markokraemer in https://github.com/kortix-ai/suna/pull/7607
  • fix(billing): grant credit only for settled payments; bound account-lock holders by @markokraemer in https://github.com/kortix-ai/suna/pull/7608
  • fix(api): private Platinum ingress, image-sized metering, token hashing, proxy-aware IP limits, lifecycle convergence by @markokraemer in https://github.com/kortix-ai/suna/pull/7611
  • fix(channels): scope chat webhooks to their verified project and workspace by @markokraemer in https://github.com/kortix-ai/suna/pull/7614
  • fix(api): one session guard for session routes, shares, and proxy edges by @markokraemer in https://github.com/kortix-ai/suna/pull/7613
  • fix(tests): wait for PostgREST to load the migrated schema before flows run by @markokraemer in https://github.com/kortix-ai/suna/pull/7616
  • fix(change-requests): governance guard reads fresh refs, never a false refusal by @markokraemer in https://github.com/kortix-ai/suna/pull/7609
  • fix(apps): App agents list reads the grant it was just given by @markokraemer in https://github.com/kortix-ai/suna/pull/7612
  • Promote main 971b2f630d to staging (v0.13.31 re-cut) by @markokraemer in https://github.com/kortix-ai/suna/pull/7619
  • Release v0.13.31 — A readable audit log, agents as their own principal, and a much lighter web app by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7604

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.30...v0.13.31

September 23, 2026

Agents as principals, Teams complete, and saved history without a sandbox

v0.13.30

New

  • Agents act as their own principal. An agent session now acts as the agent, on behalf of the person who started it, and every audit event records both. The kortix_cli permission scope is now kortix_permissions.
  • Microsoft Teams is complete. Agent questions, images, and the remaining Teams flows now work like Slack.
  • Saved history works while the sandbox is off. Session transcripts and their attachments load on web, SDK, and CLI without waking the sandbox.
  • Mermaid previews. .mmd and .mermaid files render as diagrams in the file viewer.
  • Mobile app revamp. New primitives, a project stack, and session chat parity with web. Session logic is now shared through @kortix/sdk.

Improved

  • Download is a visible primary action in the file viewers.
  • Session layout: a centered session column, sub-agent tree lines, neutral queued-message bubbles, tighter connector intake spacing, and a working send from project home.
  • Sandbox memory guard: a turn stops only on real memory pressure, and every stop says why.

Fixed

  • Slack: in a workspace with more than one Kortix Slack app, an app no longer answers replies in another project's thread, so the right bot replies again.
  • BYOK billing: sessions on your own provider key are never charged Kortix credits, and usage is attributed correctly.
  • CLI: kortix sessions rm retries a stalled delete instead of hanging.
  • Git: shallow pushes are accepted.
  • Usage descriptions are fully localized.
  • Internal: the Pi raw event envelope carries its own id; commit hooks block customer data and work in older worktrees; release-gate test fixes.

What's Changed

  • chore: never commit customer data; guard it on commit and push by @markokraemer in https://github.com/kortix-ai/suna/pull/7512
  • fix(hooks): blocked-terms guard works in worktrees cut before it by @markokraemer in https://github.com/kortix-ai/suna/pull/7515
  • pi: the raw event envelope must carry its own id by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7514
  • Mobile revamp: primitives, project stack, session chat parity; shared session logic in @kortix/sdk by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4372
  • chore(release): VERSION → 0.13.30 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7520
  • chore(release): staging VERSION → 0.13.30 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7521
  • fix(web): sub-agent tree lines, centered session column, project-home send by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7522
  • fix(web): sub-agent tree lines, centered session column, project-home send by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7523
  • fix(web): neutral queued bubbles, connector intake spacing by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7524
  • fix(web): neutral queued bubbles, connector intake spacing by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7525
  • Fix BYOK billing attribution by @markokraemer in https://github.com/kortix-ai/suna/pull/7519
  • fix: complete Usage description localization by @markokraemer in https://github.com/kortix-ai/suna/pull/7532
  • fix: never charge Kortix credits for BYOK by @markokraemer in https://github.com/kortix-ai/suna/pull/7531
  • fix(slack): a BYO app ignores thread replies it does not own by @kubet in https://github.com/kortix-ai/suna/pull/7530
  • feat(web): preview .mmd and .mermaid files as rendered diagrams by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7528
  • fix(sandbox): turns stop only on real memory pressure, and every stop says why by @markokraemer in https://github.com/kortix-ai/suna/pull/7529
  • fix: match the session inventory GET response by @markokraemer in https://github.com/kortix-ai/suna/pull/7538
  • fix: match the session inventory GET response by @markokraemer in https://github.com/kortix-ai/suna/pull/7539
  • feat(iam): agents act as their own principal; kortix_cli → kortix_permissions by @markokraemer in https://github.com/kortix-ai/suna/pull/7507
  • fix(web): make Download a visible primary action in file viewers by @sutharjay1 in https://github.com/kortix-ai/suna/pull/7536
  • Promote main to staging for v0.13.30 (conflicts resolved) by @kubet in https://github.com/kortix-ai/suna/pull/7552
  • Release v0.13.30 — Agents as principals, Teams complete, and saved history without a sandbox by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7553

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.29...v0.13.30

September 22, 2026

Admins can open every session, a project home that sends, and history that fills in on wake

v0.13.29

Owners can let admins open every session in their account, sending a message from the project home no longer freezes the box, and a woken session fills in its saved history.

New

  • Let owners and admins open every session. An owner can turn on an account policy that gives owners and admins access to every session in the account. It is off by default, only an owner can change it, and every session opened this way is recorded in the audit log.
  • See who owns each session. The Sessions page shows each session's owner and filters by owner and by access.

Improved

  • Sending from the project home sends the message instead of freezing the input, and the composer stays in one place through the send.
  • A session that wakes fills in its saved history.
  • The waiting indicator stops while a turn is waiting on you.
  • When a session cannot start, the reason is shown instead of a generic error.

Fixed

  • Creating a project during a GitHub rate limit now tells you to retry and when, instead of failing.
  • Rebuilding a sandbox image that is still in use explains why it cannot proceed.
  • Restarting or starting a session no longer erases what another in-flight request recorded about it.
  • Session-access audit entries are translated.

What's Changed

  • test(preview): assert the Platinum-only preview contract (fixes red Terraform CI) by @markokraemer in https://github.com/kortix-ai/suna/pull/7504
  • feat(iam): owner-controlled policy that lets admins open every session by @markokraemer in https://github.com/kortix-ai/suna/pull/7490
  • chore(release): VERSION → 0.13.29 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7509
  • chore(release): staging VERSION → 0.13.29 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7510
  • fix(sdk): starting a session no longer breaks other sessions' composer by @markokraemer in https://github.com/kortix-ai/suna/pull/7508
  • fix: make the PR preview test gate green (COST-3, SESS-9 race, browser 27/30) by @markokraemer in https://github.com/kortix-ai/suna/pull/7491
  • Saved history backfills on wake, and a benchmark of what it is worth by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7502
  • fix(session): stop three loading states that lie — the endless waiting row, the frozen send, and the preview comment by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7506
  • fix(sdk): surface concrete runtime-failure reason in ensureReady() (KX-HOURLY probe attribution) by @agent-kortix in https://github.com/kortix-ai/suna/pull/7513
  • Promote main to staging for v0.13.29 by @markokraemer in https://github.com/kortix-ai/suna/pull/7511
  • Release v0.13.29 — Admins can open every session, a project home that sends, and history that fills in on wake by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7516

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.28...v0.13.29

September 22, 2026

A Slack-style project selector, Stop from Slack and Teams, and a git access fix

v0.13.28

Projects open on a Slack-style selector, you can stop a running agent straight from Slack or Teams, long sessions load and stop faster, and a git access gap for account members is closed.

Security

  • An account member could push to a project's main branch they had no rights to. The git proxy checked a personal token against the member's account role instead of their project role. It now checks the project role.

New

  • Pick a project from a Slack-style selector. /projects lists your projects and opens them in place.
  • Stop a run from Slack or Teams. The live card has a Stop button, and Teams also gets /stop. /status in Teams shows the current run and links to it.
  • Bring your own Teams bot with a three-step setup wizard.
  • Review decisions carry a reason. Request changes in Slack or Teams and say what should change.
  • Answer questions in Teams directly. The question card answers what was actually asked, and a tapped answer keeps the question it answered.

Improved

  • Long sessions finish a turn and stop faster: ending a turn and pressing Stop no longer re-read or re-write the whole conversation.
  • Saved history keeps loading older messages while the sandbox is down.
  • Members see only what they can change: session settings, the model picker and the sandbox notice no longer show account-level controls they cannot use.
  • Members can open the Sessions page.
  • The notice about a project's previous repository is a dismissible card with one clear update action, in plain language.

Fixed

  • A turn that ends by asking you something is no longer reported as "Task complete" in Slack or Teams, and neither is a review still waiting on you.
  • A run you stopped on purpose no longer shows as "Run failed" in Teams.
  • A failed start is reported as a failure rather than going quiet.
  • A Teams review decision requires access to the project.
  • The Teams agent picker offers only agents you may run.
  • Teams cards no longer show Slack-style formatting.
  • A Teams conversation always shows its name, never a raw id.
  • kortix sessions reads a stopped session's saved transcript.

What's Changed

  • feat(teams): a guided bring-your-own-bot wizard, and what testing it surfaced by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7468
  • feat(teams): say what went wrong at session start, and let a run be stopped by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7474
  • chore(release): staging VERSION → 0.13.28 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7477
  • chore(release): VERSION → 0.13.28 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7478
  • fix(ci): wait for the Supabase ports to be released, and name the holder by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7476
  • feat(session): dismissible previous-repository card with 'Update to latest' by @markokraemer in https://github.com/kortix-ai/suna/pull/7481
  • fix(teams): Slack's dialect in Teams cards, and a question card that ignored the question by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7485
  • ci(preview): previews run on Platinum only — host and every session by @markokraemer in https://github.com/kortix-ai/suna/pull/7482
  • fix(teams): a review decision now requires access to the project by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7487
  • fix(channels): the last two cards that said "Task complete" when nothing completed by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7486
  • feat(slack): a Stop button on the live run by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7489
  • test(gh-17): keep http-backend's stderr so the next 400 names its cause by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7488
  • feat(web): Slack-style project selector + member-state fixes by @markokraemer in https://github.com/kortix-ai/suna/pull/7484
  • test(ci): read the Supabase ports where the inner start fails by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7492
  • feat: saved session history you can read past its newest window by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7483
  • feat(slack): Request changes can say what should change by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7494
  • fix(channels): stop telling the agent the question tool is disabled by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7493
  • fix(ci): check a port with a bind, not with ss -l by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7495
  • docs(learnings): an unlabelled PR into main skips every test lane by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7496
  • fix(teams): the question tool hangs a Teams turn — stop recommending it by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7498
  • docs(learnings): check the path that unblocks, and ship the prompt last by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7499
  • Saved session history reaches the CLI and survives the pi runtime by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/7500
  • fix(git-proxy): check the project role for same-account personal tokens by @markokraemer in https://github.com/kortix-ai/suna/pull/7497
  • Promote main to staging for v0.13.28 by @markokraemer in https://github.com/kortix-ai/suna/pull/7503
  • Release v0.13.28 — A Slack-style project selector, Stop from Slack and Teams, and a git access fix by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/7505

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

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