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
  • Release history
  • Use Cases
  • Brand

Connect

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

Release history

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

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

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

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