PricingDocs
Get started

Release history

October 23, 2026

Every new session runs pi, shareable responses, and a weekly changelog

v0.14.8Latest

New

  • Every new session runs pi. The pi_harness flag and runtime: opencode no longer select OpenCode. A session that already runs OpenCode keeps it. OpenCode is deprecated. (#10786)
  • Share one response. Share response, beside Copy response, publishes one finished assistant response through a public link: the response only, or the prompt and the response. Turning the link off ends anonymous access. (#10816)
  • Weekly changelog. /changelog groups what went live in production by week, and each week has its own page with every change. (#10823)
  • Agent marks. Every agent has a pixel mark on Agents cards and in agent pickers. (#10826)
  • Shopify with your own app. Connect on Shopify opens a Kortix form that takes the store and the Client ID and secret of your Shopify Dev Dashboard app. Shopify no longer issues the custom app tokens the old flow asked for. (#10825)

Improved

  • Compaction. pi compacts early enough to leave room for the model's full answer, still compacts after it retries a failed model call, and honours a project's compaction.reserveTokens again; the context meter counts reasoning tokens once. (#10835, #10845)
  • Session history. Messages that only the old transcript store held move into the session log; the daemon keeps every batch the API refuses and sends it again; capture waits for memory and runs one session at a time; the usage panel counts the whole thread. (#10827, #10837, #10829, #10793, #10791, #10783)
  • Deleted sessions are fully gone after 30 days: the conversation, every copy (model requests and responses, prompt commands, questions, notifications, share links), the stored files and the session's branch. Sessions purged before this release lose their remaining copies too. (#10831)
  • Branch cleanup. A session branch that fails to delete no longer stalls the sweep. (#10833)
  • Status page. Upstream capacity errors that a fallback model absorbs no longer open an incident. (#10795)
  • Parked sandboxes. An open tab stops polling the transcript of a sandbox that is parked. (#10820)

Fixed

  • pi permissions. A path rule holds for ./, .., @ and absolute paths. (#10787)
  • Web addresses. /dashboard opens projects; /login and /signup open sign-in; a trailing slash or another letter case redirects to the page; an unknown path answers 404 and a malformed one 400; /privacy, /terms, /imprint and /subprocessors open the legal pages; crawlers can fetch the static assets pages need; each localized page declares its locale; the Apple app-site-association file is served as JSON; the docs touch icon loads. (#10812, #10815, #10814, #10807, #10810, #10818, #10806, #10805, #10817, #10804, #10803, #10808)
  • Sandbox versions. The version feed caches one GitHub read, never names a prerelease as the latest stable version, and still answers when GitHub rejects the token. (#10809, #10811)
  • Marketplace. Paging never skips or repeats an item. (#10802)
  • Scoped tokens resolve the current project. (#10819)
  • Files. A download with a range the file cannot satisfy answers 416 with the file size, not "storage unavailable". (#10790)
  • Agent page. The dev-only layout switcher is gone. (#10813)

Security

  • Unexpected server errors no longer return internal details to the client. (#10785)
  • Shared caches never store an authenticated API response. (#10828)
  • The API and gateway serve security.txt, robots.txt and sitemap.xml. (#10824)
  • Malformed tunnel IDs, fractional gateway day windows and invalid billing pagination are refused. (#10800, #10784, #10781)
  • CodeQL and the security scan run on every push to production. (#10796)

Internal

  • Stateless sandboxes behind an operator-only flag that is off everywhere. (#10846)
  • Session-log groundwork for removing the old transcript tables, CLI installation-proof refactor, local hot-reload connection leak, quieter config-release logs, log lines that keep ids out of format strings, release and incident runbooks, and test upkeep. (#10782, #10822, #10821, #10839, #10847, #10792, #10794, #10798, #10830, #10832, #10834, #10836, #10838, #10840, #10849, #10851)

What's Changed

  • Release v0.14.8 — Every new session runs pi, shareable responses, and a weekly changelog by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10844

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.14.7...v0.14.8

Release on GitHub
October 22, 2026

Project transfer, embedded sessions, directory-guest invites and security updates

v0.14.7

New

  • Move projects between accounts. A project can be transferred to another organization or account. (#9918)
  • Default reasoning effort per project. Set it once in project settings. (#9935)
  • Run a session on your own machine with a ChatGPT subscription, through kortixd. (#9754)
  • Audit activity. See who was active in a workspace and how often, in the API, CLI and SDK. (#10604)
  • Goals page, a session Goal button and goal health, behind the goals flag. (#10600)
  • Embedded sessions. Public transcript sharing is removed; existing transcript share links are revoked. Embed the real session page instead. (#10008)

Improved

  • Billing. Usage is metered on every plan; only charging is gated. (#9929)
  • Model routing. A project's Routing chain now covers every model. (#8742)
  • Model limits. Every model reports its real context window and output limit, including custom endpoints; Codex models get their 272k window. A custom-endpoint model reads images and reasons when the endpoint supports it. (#10757, #10768)
  • Session history. A new session reads only the session log, and an old session being converted opens its history, not an empty log. (#10722, #10728)
  • Agents and connectors. A cleaner agent page and connector modal, catalogue favicons that recover from broken images, and one design for role dialogs. (#10490, #9924, #10702, #10382)
  • Mobile. Simpler session sheets and tool surfaces. (#10229)
  • Keep-alive. An open page keeps its sandbox awake for the idle window, not 2 hours. (#10026)

Fixed

  • Invites on self-hosted instances without email. A person your identity provider adds through SCIM can join even when their address is outside the provider's domain. The invite page offers Continue with single sign-on, says to ask an admin when single sign-on is not set up, and Resend lets that person accept. (#10707)
  • Routine wakes are silent: no waking notice, boot pill or boot screen. (#10716)
  • Reload keeps your project, and a sidebar click no longer opens a session's hover card. (#10720, #10721)
  • Files. Project owners can edit and commit repository text. (#10517)
  • Projects. Rename a project from the switcher. (#10523)
  • Panels. ⌘I brings back the panel it hid, also from inside the Browser preview. (#10725)
  • CLI. Remote login without a callback (its poll and approve calls get their own rate limit), service-account keys, and connectors call resolves the project like connectors ls. (#10483, #10779, #10235)
  • Sessions. Compacting a busy session no longer shows internal diagnostics; a US-region session boots where its drives live; a daemon restart drops its env-sync trust. (#10442, #10348, #10014)
  • Apps. Existing Apps move from ghcr.io/get-convex to ghcr.io/convex images. (#10353)
  • Connectors. A connector failure line is split in linear time. (#10736)
  • Desktop. The Linux AppImage builds again with electron-builder 26. (#10743)

Security

  • Dependency updates for the advisories of 2026-10-22 (Next 16.4.2, DOMPurify, Sentry, undici, Astro, Electron 42, Vitest 4, KaTeX, Caddy, Hono and others). (#10738, #10739, #10732, #10726)
  • Closed a path traversal in the presentations server. (#10729)
  • The repo-wide deploy role no longer holds prod grants; prod uses its own role. (#9329)
  • The gateway sends browser security headers, and its public health check no longer shows operational detail. (#10750, #10749)
  • Public access requests are rate-limited, device-login polling denials are uniform, and SCIM and git spec routes declare their auth. (#10753, #10773, #10755, #10754)
  • The sandbox web proxy guards egress on every port, and the web app restricts browser feature permissions. (#10752, #10751)
  • Pentest hardening: the marketplace catalog is cached and rate-limited, request bodies are capped at 64 MiB, every 401 names its auth scheme, OAuth client registration honours the requested client authentication, tighter CSP, signed release artifacts, and storage buckets no longer list their objects to signed-out callers. (#10748)
  • Session search rejects NUL bytes. (#10775)
  • A private security reporting policy. (#10756)

Internal

  • Test, CI, scanner and runbook upkeep (#10713, #10723, #10727, #10731, #10737, #10740, #10741, #10744, #10747, #10758, #10759, #10761, #10762, #10763, #10765, #10767, #10769, #10770, #10772, #10760, #10776, #7956, #10689, dependency bumps).

What's Changed

  • fix(session): a routine wake is silent: no waking notice, no boot pill, no boot screen by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10716
  • fix(white-label): the reskin mode test waits for the cold build like every other file by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10713
  • fix(web): a reload restores the kept project, and the snapshot asks for no v1 window by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10720
  • fix(web): a click on a sidebar session no longer pops its hover card (KRTX-2847) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10721
  • feat(session-log): a new session stays on the log instead of reading the v1 transcript by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10722
  • fix(invites): a directory guest can join on a self-host with no email by @markokraemer in https://github.com/kortix-ai/suna/pull/10707
  • refactor(web): unify IAM role dialogs (KRTX-3050) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10702
  • docs(learnings): a render-published instance can be replaced; follow every instance by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10723
  • build(deps): bump actions/setup-node from 4.4.0 to 7.1.0 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/10284
  • build(deps): bump github/codeql-action/upload-sarif from 4.38.3 to 4.39.0 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/10283
  • build(deps): bump github/codeql-action from 4.38.2 to 4.39.0 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/10282
  • Promote dev 065decef40 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10724
  • build(deps): bump bridgecrewio/checkov-action from 12.3128.0 to 12.3134.0 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/10281
  • build(deps): bump actions/download-artifact from 8.0.1 to 8.0.2 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/10280
  • build(deps): bump github.com/klauspost/compress from 1.18.6 to 1.18.7 in /apps/kortix-app-runtime/caddy by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/10503
  • chore(deps): bump hono from 4.13.7 to 4.13.11 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/10506
  • chore(deps): bump pypdf from 6.19.0 to 6.21.1 in /packages/starter/templates/general-knowledge-worker/skills/presentations/scripts by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/10654
  • feat(marketplace): feature CosmoBlk/email-marketing-bible by @CosmoBlk in https://github.com/kortix-ai/suna/pull/9320
  • fix(web,desktop): ⌘I brings back the panel it hid, and works from inside the Browser preview (KRTX-2944) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10725
  • fix(apps): rewrite ghcr.io/get-convex image refs in existing Apps to ghcr.io/convex by @allenabraham999 in https://github.com/kortix-ai/suna/pull/10353
  • fix(drives): a US-region session boots where its drives live by @allenabraham999 in https://github.com/kortix-ai/suna/pull/10348
  • feat(api,cli,sdk): audit activity — who was active in a workspace, and how often, in milliseconds by @markokraemer in https://github.com/kortix-ai/suna/pull/10604
  • fix(web): connector catalogue favicon fallback and broken-image recovery (KRTX-2008) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9924
  • refactor(web): delete five unused leftovers (KRTX-3042) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10689
  • fix(api): a daemon restart drops the env-sync trust for its box by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10014
  • fix(web): KRTX-2559 enable project rename from switcher by @agent-kortix in https://github.com/kortix-ai/suna/pull/10523
  • fix(deps): clear open high Dependabot and Trivy findings (electron 41, electron-builder 26, MCP server 2.3, tsgo out of the API image) by @markokraemer in https://github.com/kortix-ai/suna/pull/10726
  • chore(infra): stop reviewed IaC scan skips from opening code-scanning alerts by @markokraemer in https://github.com/kortix-ai/suna/pull/10727
  • feat(api): cap an open page's sandbox keep-alive at the idle window, not 2 h (KRTX-2451) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10026
  • feat(goals): Goals page, session Goal button and goal health, behind the goals flag by @markokraemer in https://github.com/kortix-ai/suna/pull/10600
  • fix(session-log): an old session being converted opens its history, not an empty log by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10728
  • fix(security): close the presentations-server path traversal and clear CodeQL/Hadolint/Caddy alerts by @markokraemer in https://github.com/kortix-ai/suna/pull/10729
  • fix(files): let project owners edit and commit repository text by @agent-kortix in https://github.com/kortix-ai/suna/pull/10517
  • test(spec): list FILE-14 in the Files contract (route coverage gate) by @markokraemer in https://github.com/kortix-ai/suna/pull/10731
  • fix(deps): clear open Dependabot alerts (electron 42, vitest 4, KaTeX 0.18, Caddy 2.11.7, hono 4.13.11, smol-toml 1.9) by @markokraemer in https://github.com/kortix-ai/suna/pull/10732
  • fix(cli): callback-free remote login and service-account key acceptance (KRTX-2720) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10483
  • feat(kortixd): run a session on your own machine with a ChatGPT subscription (scripts/local.ts) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9754
  • fix(gateway): make the project Routing chain a catch-all for every model by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/8742
  • feat(web): clean up the agent page and connector modal by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10490
  • fix(KRTX-2650): handle busy session compaction without internal diagnostics by @agent-kortix in https://github.com/kortix-ai/suna/pull/10442
  • feat(web,api): project default reasoning effort setting (KRTX-2356) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9935
  • feat(projects): transfer projects between organizations and accounts (KRTX-1747) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9918
  • fix(ci): strip prod grants from the repo-wide deploy role — merge after the next prod release by @markokraemer in https://github.com/kortix-ai/suna/pull/9329
  • fix(ui): split a connector failure line in linear time by @markokraemer in https://github.com/kortix-ai/suna/pull/10736
  • docs(learnings): answer "nothing saved" only when nothing is saved by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10737
  • refactor(web): KRTX-1822 dedupe permission buttons and failure lists by @agent-kortix in https://github.com/kortix-ai/suna/pull/10382
  • fix(deps): next 16.4.2, dompurify 3.4.17, @sentry/nextjs 10.76.2 (critical advisories of 2026-10-22) by @markokraemer in https://github.com/kortix-ai/suna/pull/10738
  • feat(web)!: remove public transcript sharing; embed the actual session page (KRTX-2358) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10008
  • feat(billing): meter everywhere, gate only charging (KRTX-1832) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9929
  • fix(cli): connectors call resolves the project like connectors ls (KRTX-2529) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10235
  • fix(deps): undici 6.28.1, astro 7.3.3, ip-address 10.7.4 (advisories of 2026-10-22) by @markokraemer in https://github.com/kortix-ai/suna/pull/10739
  • refactor(mobile): simplify session UI sheets and tool surfaces (KRTX-2731) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10229
  • chore(web): add eloqnt lint to catch translation errors by @amannn in https://github.com/kortix-ai/suna/pull/7956
  • test(ui): drop a dead apps/web mock from the permission buttons test by @markokraemer in https://github.com/kortix-ai/suna/pull/10740
  • fix(release): rebuild @kortix/ui styles.css and drop a stale loader-count test by @markokraemer in https://github.com/kortix-ai/suna/pull/10741
  • Promote dev 3bdad604a9 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10742
  • fix(desktop): name the Linux binary so electron-builder 26 builds the AppImage by @markokraemer in https://github.com/kortix-ai/suna/pull/10743
  • chore(release): VERSION → 0.14.7 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10745
  • chore(release): staging VERSION → 0.14.7 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10746
  • docs(learnings): create the release tag with a workflow-scoped token when dev's workflows moved by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10747
  • fix(ci): accept any sha-pinned download-artifact release in the preview pin guard (KRTX-3065) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10744
  • fix(gateway): send browser security headers (KRTX-3068) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10750
  • fix(gateway): gate detailed health responses (KRTX-3070) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10749
  • docs(security): add private reporting policy (KRTX-3078) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10756
  • fix(models): every model serves its real context window and output limit by @markokraemer in https://github.com/kortix-ai/suna/pull/10757
  • fix(kortixd): sync bun.lock with hono ^4.13.11 and take DNS out of the web-proxy port-guard test by @markokraemer in https://github.com/kortix-ai/suna/pull/10758
  • fix(api): rate-limit public access requests (KRTX-3076) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10753
  • fix(audit): label the CLI device-login routes and resync audit catalogs by @markokraemer in https://github.com/kortix-ai/suna/pull/10759
  • fix(ci): install the HCL parser in a venv; ubuntu-24.04 refuses a system pip install by @markokraemer in https://github.com/kortix-ai/suna/pull/10761
  • fix(release): clear the v0.14.7 web and ui gate failures by @markokraemer in https://github.com/kortix-ai/suna/pull/10762
  • fix(db): RLS on the audit activity tables; base-tip test waits for its claim by @markokraemer in https://github.com/kortix-ai/suna/pull/10763
  • Promote dev 0d15ced8fb to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10764
  • fix(api): break the custom-providers import cycle that failed six gateway test files by @markokraemer in https://github.com/kortix-ai/suna/pull/10765
  • Promote dev e09d7d4525 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10766
  • fix(security): restrict browser feature permissions (KRTX-3067) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10751
  • fix(ci): require review for catalog refresh (KRTX-3089) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10767
  • fix(sandbox): guard web-proxy egress on every port (KRTX-3071) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10752
  • fix(api): declare SCIM and git spec auth (KRTX-3077) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10754
  • feat(models): a custom endpoint model reads images and reasons when it can by @markokraemer in https://github.com/kortix-ai/suna/pull/10768
  • fix(api): unify device-auth polling denials (KRTX-3075) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10755
  • fix(test): audit activity rollup test passes at every wall-clock minute by @markokraemer in https://github.com/kortix-ai/suna/pull/10769
  • test(gateway): GW-1b checks the public health body #10749 left it by @markokraemer in https://github.com/kortix-ai/suna/pull/10770
  • Promote dev e5bd8cc974 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10771
  • chore(ci): pin remaining third-party actions (KRTX-3079) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10760
  • fix(ui): the custom-provider form save test runs without a DOM by @markokraemer in https://github.com/kortix-ai/suna/pull/10772
  • Promote dev 2413909699 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10774
  • fix(api): budget public auth requests before validation (KRTX-3098) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10773
  • fix(kortixd): give OpenCode an output limit when the catalog knows only the window by @markokraemer in https://github.com/kortix-ai/suna/pull/10776
  • Promote dev 4cf24ee936 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10777
  • fix(api): reject NUL session searches (KRTX-3144) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10775
  • fix: pentest hardening (availability, OAuth client auth, CSP, release signing) by @markokraemer in https://github.com/kortix-ai/suna/pull/10748
  • test(cli): AUTH-8 covers the CLI device-login routes; split their rate-limit buckets by @markokraemer in https://github.com/kortix-ai/suna/pull/10779
  • Promote dev daf71017a1 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10780
  • Release v0.14.7 — Project transfer, embedded sessions, directory-guest invites and security updates by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10730

New Contributors

  • @CosmoBlk made their first contribution in https://github.com/kortix-ai/suna/pull/9320
  • @amannn made their first contribution in https://github.com/kortix-ai/suna/pull/7956

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.14.6...v0.14.7

Read the full release on GitHub
October 22, 2026

Session log as the only history, reminder Retry, and superseded change requests

v0.14.6

New

  • Retry a failed reminder. A reminder whose last run failed shows its error and a Retry button: in the session's reminders, the project Reminders list and calendar, and with kortix reminders run <id>. A reminder that a session's agent sets now reaches its session. Before, it failed after about 13 minutes when the session belonged to another member.
  • An agent's card shows what its configuration grants.
  • A replaced change request reads "Superseded by #N" and opens its replacement.
  • A filename in a reply opens the session output it names.
  • File versions show their session's title, agent and archive instead of a session id.

Improved

  • The session log is the only saved history. Opening a session reads its log first and makes no request to the old transcript. Older web, mobile and CLI builds keep working. The "Session log" feature flag is gone, because every project uses the log.
  • Self-hosted Kortix converts old conversations into the session log by itself after this update.
  • A pi command that exits non-zero reads as a command. A failure the agent moved past is no longer red.
  • A stalled preview says so and offers Reload.
  • When a provider refuses Kortix's key, Kortix shows the error once, in the search card, and names Kortix as the cause.
  • Connector search survives Back, agent display names find their sessions, and a failed search batch shows its errors.
  • Refreshed model catalog.

Fixed

  • An accepted invite shows the new account and project at once. A declined invite leaves the sidebar at once.
  • Enter no longer submits text in the middle of a Chinese, Japanese or Korean composition.
  • A permission prompt shows the current agent's name after an agent switch.
  • The password reset page removes the used recovery code from the address bar.
  • Security: the mobile map moves to maplibre-gl 6.12.0, which fixes a critical advisory.
  • Smaller fixes: the Rooms join spinner, Capture timeline dragging, changelog links, and copying the logo.

What's Changed

  • fix(reminders): an agent's reminder reaches its session, and a failed run has Retry by @markokraemer in https://github.com/kortix-ai/suna/pull/10685
  • chore(release): staging VERSION → 0.14.6 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10686
  • chore(release): VERSION → 0.14.6 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10687
  • docs(learnings): run the contract lanes on the dev SHA before a Promote by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10688
  • fix(auth): scrub consumed recovery code from URL (KRTX-1347) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10690
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10691
  • fix(infra): make internal security group tags Drata-readable (KRTX-1649) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10692
  • fix: connector search survives Back, agent display names find their sessions, a failed search batch shows its errors (KRTX-3018, 3017, 3016) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10693
  • fix(preview): a stalled preview says so and offers Reload, and the waiting page retries inside an opaque frame (KRTX-3015) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10694
  • fix(web,ui): react-doctor health pass fixes 9 user-visible bugs by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10695
  • feat(files): versions read as their session's title, agent and archive, not a session id (KRTX-3020) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10696
  • feat(ui): a filename in a reply opens the session output it names (KRTX-3023) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10697
  • fix(router): a provider refusing Kortix's key reads as Kortix, logs an error, and shows once in the search card (KRTX-3022) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10698
  • fix(ui): put the "Reload" string in @kortix/ui's English catalog by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10699
  • feat(change-requests): a replaced change request reads "Superseded by #N" and opens its replacement (KRTX-3031) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10700
  • feat(agents): an agent's card shows what its configuration grants (KRTX-3025) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10701
  • fix(session): a pi command that exited non-zero reads as a command, and a failure the agent moved past is not red (KRTX-3021) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10703
  • feat(session-log): no path reads or writes the v1 transcript mirror by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10704
  • fix(session-log): the backfill converts restorable deleted sessions before the mirror drop by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10705
  • fix(mobile): maplibre-gl 6.12.0 for the genui map (critical GHSA-jrc7-96c5-q579) by @markokraemer in https://github.com/kortix-ai/suna/pull/10706
  • fix(sdk): a session open reads the session log first, never the v1 transcript by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10708
  • fix(release): the dev tree passes the release lanes again by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10709
  • Promote dev 78290f765d to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10710
  • fix(api): reminder routes type their Hono context; no (c: any) is left by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10711
  • fix(sdk): the session-open snapshot asks for no v1 transcript window by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10712
  • fix(mobile): bake the maplibre asset with the pinned Bun, so the byte check passes by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10715
  • Promote dev 2aabefb41d to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10717
  • revert(sdk): the session-open snapshot asks for the v1 window again (reverts #10712) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10718
  • Promote dev c2bad390bf to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10719
  • Release v0.14.6 — Session log as the only history, reminder Retry, and superseded change requests by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10714

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.14.5...v0.14.6

Read the full release on GitHub
October 22, 2026

Platinum Inference, session logs for every project, and bring-your-own S3 for Capture

v0.14.5

New

  • Kortix managed models run on Platinum Inference. The managed model list, prices, limits and reasoning levels come live from Platinum, so a model Platinum adds reaches Kortix without a release. Self-hosted and bring-your-own-key projects can add a Platinum key and call platinum/<model> directly.
  • Session logs for every project. The session log is on by default, so every project stores its conversations in it.
  • Bring your own S3 for Kortix Capture. An admin can keep an account's recordings in the account's own S3 bucket from Capture → Settings → Storage. Self-hosted Kortix can use an external S3 object store for Capture.
  • Session rows say what waits on you. The sidebar shows a question or permission, an open change request, and the sub-agents and sessions a session started.
  • Reminders glide between rows, and 30 or more reminders open in the side panel.
  • The turn-done toast offers Review for the change request the turn opened.
  • Remove a project skill from its card on the Skills page.
  • New sandboxes always run on Platinum. Sandbox templates no longer offer Daytona.
  • White-label examples: Lumen, a legal AI app on one shared Kortix project with a Team Console, and the Lumen Workspace reskin.

Improved

  • Faster LLM gateway admission: each upstream has its own circuit breaker, admission reads run in parallel, and the default model is resolved only when a request needs it.
  • Change requests that an agent opens show at turn end. An applied change request refreshes agents and Needs you.
  • Pinned sessions sit above the Sessions header.
  • Transcripts show while the sandbox is still starting.
  • Compaction stays inside the Worked section.
  • The model picker never preselects a model whose provider is not connected, and it says what to connect.
  • Marketplace add stays on the page, and search keeps its query in the URL.
  • Billing shows Plan member usage and the credit reset and expiry dates.
  • Command palette search finds "Your first chat with Kortix".
  • The session slash menu lists skills again on pi.
  • CLI: 17 commands match the API again, doctor picks an available model, and sessions rm without --project deletes exactly the named session or nothing.

Fixed

  • Security hardening: hosted APIs no longer trust the legacy Supabase signing secret, a token cannot be minted already expired or outlive the token that minted it, the sandbox daemon refuses symlinks that point outside the workspace, billing state needs billing.read, account names refuse markup, and deleting an account revokes its credentials.
  • Trigger runs close when their turn ends, and queued creates link to their run.
  • A skill created with the form shows on version 3 projects.
  • A channel's model pin is stored again.
  • Capture search reads the requested day, routing policy keeps generation defaults, and credit reads follow the account.
  • Editing a v2 agent keeps the keys the update cannot carry.
  • A missing attachment answers 404 instead of a retry. Five routes stop reporting permanent failures as temporary. A command that timed out keeps its unknown outcome.
  • A session mention in a message you just sent keeps its title.
  • Incomplete personal accounts are cleaned up when their user is deleted.
  • Many smaller fixes and cleanups across the web app, the CLI and the API.

What's Changed

  • docs(learnings): gate repository content, never the project record by @markokraemer in https://github.com/kortix-ai/suna/pull/10603
  • chore(release): VERSION → 0.14.5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10605
  • chore(release): staging VERSION → 0.14.5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10606
  • docs(learnings): run the release suite's fast tripwires before every Promote by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10607
  • fix(api): return retryable mirror contention (KRTX-2970) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10608
  • refactor(lint): decouple UI lint from the web app (KRTX-2973) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10609
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10610
  • docs(tui): correct allowlist module count (KRTX-2836) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10611
  • fix(db): reclaim incomplete personal accounts on auth deletion (KRTX-2135) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10450
  • fix(api): revoke credentials on deletion confirmation (KRTX-2919) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10587
  • fix(api): a missing attachment object answers 404, not a 503 retry (KRTX-2974) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10612
  • fix(web): local dev resolves shaders/react again (/auth answered 500) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10613
  • fix(ui): a session mention in a just-sent message keeps its title (KRTX-2858) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10614
  • fix(api): a channel's model pin is stored again, and dead code after a return fails lint (KRTX-2987) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10615
  • fix(cli): choose an available doctor model (KRTX-2985) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10616
  • fix(tools): show ignores an empty items value beside a single item by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10617
  • fix(kortixd): the session slash menu lists skills again on pi by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10618
  • fix(api): five routes stop calling permanent failures temporary and log the cause (KRTX-2977..2981) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10619
  • feat(web): marketplace add stays on the page, search keeps ?q= (KRTX-2993) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10620
  • feat(ui): turn-done toast offers Review for its change request (KRTX-2994) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10621
  • fix(api,sdk,cli): capture search reads day, routing policy keeps generation defaults, credit reads follow account_id (KRTX-2983, KRTX-2988, KRTX-2989) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10622
  • fix(cli,api): 17 CLI commands match the API again, and a v2 agent edit keeps keys the PUT cannot carry (KRTX-2990, KRTX-2991, KRTX-2992) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10624
  • fix(billing): KRTX-2082 show credit reset and expiry dates by @agent-kortix in https://github.com/kortix-ai/suna/pull/10404
  • refactor(mobile): KRTX-2440 split schedule sheets and reuse local types by @agent-kortix in https://github.com/kortix-ai/suna/pull/10581
  • fix(web): show Plan member usage (KRTX-1960) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10576
  • refactor(web): KRTX-3000 delete unreachable feature modes by @agent-kortix in https://github.com/kortix-ai/suna/pull/10629
  • test(cli): sessions rm without --project deletes exactly the named session or nothing (KRTX-2818) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10626
  • feat(web): remove a project skill from its card on the Skills page (KRTX-2821) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10630
  • fix(web): next dev runs on Turbopack and stops eating 16 GB per server by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10628
  • fix(ui): pinned sessions sit above the Sessions header, outside the list by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10623
  • docs(git): a base_ref session takes governance from the default branch (KRTX-2868) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10632
  • fix(api): a skill created with the form is registered on a kortix_version 3 project, so it surfaces (KRTX-2543) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10633
  • fix(ui): the notification host gate reads the project detail from the cache instead of observing it by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10634
  • fix(web): command palette search finds "Your first chat with Kortix" (KRTX-2476) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10636
  • fix(session): show transcripts independently of sandbox readiness (KRTX-3003) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10635
  • fix(db): public.resources RLS requires an account match on every verb (KRTX-2779) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10637
  • fix(web): drop the frameless play() NotSupportedError rejection from error reports (KRTX-2998) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10638
  • feat(ui): session rows say what waits on you and what a session started by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10631
  • refactor(marketing): KRTX-3005 dedupe primitives and delete unreachable layer by @agent-kortix in https://github.com/kortix-ai/suna/pull/10639
  • fix(triggers): close trigger runs from the turn ledger, link queued creates (KRTX-3007, KRTX-3026) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10640
  • feat(ui): reminders glide between rows, and 30+ reminders open in the side panel by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10625
  • fix(ui): agent-opened change requests show at turn end; an applied one refreshes agents and Needs you (KRTX-3009, 3010, 3012, 3019) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10641
  • fix(models): a model whose provider is not connected is never preselected; the picker says what to connect (KRTX-3011) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10642
  • fix(web): favicon status dot sits flush with the icon corner by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10627
  • refactor(web): delete obsolete marketplace helpers (KRTX-3033) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10644
  • feat(white-label): Lumen, a legal AI SaaS on one shared Kortix project, and Team Console by @markokraemer in https://github.com/kortix-ai/suna/pull/10493
  • fix(api,sandbox): tokens never mint dead or outlive their parent; kortixd refuses symlink escapes by @markokraemer in https://github.com/kortix-ai/suna/pull/10646
  • feat(sandbox): customers can no longer choose Daytona; templates show Platinum only by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10647
  • fix(session): KRTX-3034 keep compaction inside Worked by @agent-kortix in https://github.com/kortix-ai/suna/pull/10648
  • feat(white-label): restore the reskin example as Lumen Workspace (apps/white-label/reskin) by @markokraemer in https://github.com/kortix-ai/suna/pull/10649
  • feat(gateway): Platinum Inference is a provider — Kortix managed models are what Platinum offers; self-hosters bring a Platinum key by @markokraemer in https://github.com/kortix-ai/suna/pull/10643
  • docs(learnings): Platinum inference cost leak and stream stall (2026-10-21) by @markokraemer in https://github.com/kortix-ai/suna/pull/10650
  • refactor(gateway): no managed model id is hardcoded; fallbacks and retired-id moves follow Platinum's lineup by @markokraemer in https://github.com/kortix-ai/suna/pull/10652
  • refactor(web): KRTX-2907 clean up five small leftovers by @agent-kortix in https://github.com/kortix-ai/suna/pull/10653
  • fix(api): billing state needs billing.read; account names refuse markup (pentest 2026-07) by @markokraemer in https://github.com/kortix-ai/suna/pull/10655
  • fix(ui): the Platinum provider shows the Platinum square, not a sparkles placeholder by @markokraemer in https://github.com/kortix-ai/suna/pull/10656
  • docs: describe managed inference as Platinum Inference only by @markokraemer in https://github.com/kortix-ai/suna/pull/10657
  • chore(secrets): dev and staging on Supabase publishable/secret keys (pentest finding 3, step 1) by @markokraemer in https://github.com/kortix-ai/suna/pull/10658
  • chore(secrets): prod API env file on Supabase publishable/secret keys (pentest finding 3, step 2) by @markokraemer in https://github.com/kortix-ai/suna/pull/10659
  • docs(learnings): rebuild Vercel prod with deploy-prod's per-deployment env by @markokraemer in https://github.com/kortix-ai/suna/pull/10660
  • feat(cli): external S3 object store for self-host Kortix Capture by @markokraemer in https://github.com/kortix-ai/suna/pull/10661
  • fix(api): preserve unknown exec outcome after timeout (KRTX-3036) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10662
  • feat(capture): per-account storage destination (bring your own S3) — Part A (model + API) by @markokraemer in https://github.com/kortix-ai/suna/pull/10664
  • fix(secrets): Supabase legacy-key retirement on staging + hosted APIs stop trusting the HS256 secret (pentest finding 3) by @markokraemer in https://github.com/kortix-ai/suna/pull/10663
  • feat(gateway): split /admit latency into its API steps and the gateway↔API round trip by @markokraemer in https://github.com/kortix-ai/suna/pull/10665
  • feat(web): Capture Storage settings + efficiency tunables (bring your own S3) — Part B by @markokraemer in https://github.com/kortix-ai/suna/pull/10666
  • perf(gateway): circuit breaker per upstream + parallel admission reads by @markokraemer in https://github.com/kortix-ai/suna/pull/10667
  • perf(gateway): admission resolves the default model only when the route depends on it by @markokraemer in https://github.com/kortix-ai/suna/pull/10668
  • feat(session-log): session_log is on by default for every project by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10669
  • fix(release): cover the Capture storage routes and keep reminders below customize by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10670
  • chore(gateway): bench harness for load, long streams and 120k prompts (+ loop results) by @markokraemer in https://github.com/kortix-ai/suna/pull/10671
  • Promote dev ad3ab8c80e to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10672
  • fix(ui): routing fallback no longer pre-selects a hardcoded model id by @markokraemer in https://github.com/kortix-ai/suna/pull/10673
  • Promote dev 5cd8c74256 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10675
  • fix(deps): clear three CRITICAL CVEs that fail the release scan by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10676
  • fix(api): release-suite tests follow the Daytona refusal, session_log default and Platinum config by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10677
  • fix(ui): provider tests follow the Platinum Inference copy and managed catalog by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10678
  • fix(release): v0.14.5 core-db lane and CodeQL highs by @markokraemer in https://github.com/kortix-ai/suna/pull/10679
  • Promote dev be9194fc50 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10680
  • fix(deps): clear the HIGH CVEs that fail the release Trivy check by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10681
  • fix(white-label): reskin e2e setup outlasts a CPU-starved cold build in CI by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10682
  • fix(i18n): translate the Capture storage settings and clear the strict audit by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10683
  • Promote dev 8556eb7003 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10684
  • Release v0.14.5 — Platinum Inference, session logs for every project, and bring-your-own S3 for Capture by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10674

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.14.4...v0.14.5

Read the full release on GitHub
October 21, 2026

pi by default, one model path, one Drive

v0.14.4

New

  • One model path: the Kortix LLM gateway. Every project's models go through the gateway, and custom OpenAI-compatible endpoints are set up in the gateway as custom providers.
  • pi is the default agent harness. New sessions in a project start on pi unless the project turns pi_harness off. Existing sessions keep their harness. Projects with the LLM gateway off stay on OpenCode.
  • One Drive with team folders. Files lives under the gear, and kortix drive works from the CLI.
  • Triggers protect themselves. A trigger that stays at its hourly run limit for 2 hours pauses itself, sends one alert, and resumes when you set enabled: true. A new cron trigger skips a fire while its previous run is still active (overlap: allow opts out).
  • @kortix/ui is a plug-and-play UI library. The Kortix web app and the Lumen example now render the same session, workspace and settings screens from one package.
  • Preview text attachments in the app before you send them.
  • Mobile 1.5.1: iOS Liquid Glass chrome, a native glass message menu, smoother sheets and scrolling in long sessions, and an MFA focus fix.

Improved

  • Forked conversations persist and stay reachable after navigation.
  • pi tells the model today's date on every turn, leaves the session title to Kortix (the header no longer flips), and the Changes tab works on pi sessions.
  • Sessions report the model the conversation uses, not the model pinned at creation.
  • The project home sends faster, finished replies no longer stream again, and slash skills and commands show there.
  • Escape in an empty composer stops a streaming reply. The command palette opens at once, and the slash palette opens the agent picker.
  • Drive shows folders as folders and keeps fixed folders in place.
  • Connector catalogs resolve in one batch, and sub-agent links keep their sub-agent.
  • Large files open whole instead of cutting off at 50k characters.
  • Web and CLI show the same model price estimates.
  • Cron triggers show the exact next run with its timezone.
  • Trigger edits keep the comments in kortix.yaml.
  • Faster gateway log and audit reads in projects with a lot of history. Gateway budgets read a running daily total (954 ms → one key read), sign-in checks no longer make an extra auth hop, and a page load fetches its project once.
  • CLI: models lists catalog availability, sessions new streams readiness progress, chat and compact wake a stopped or provisioning session first, access grant --user uses the linked project, marketplace installs resolve short names, doctor names the turn error and explains warm-session retention, project and session URLs match the host, and channels show every state by default.

Fixed

  • Session notifications work in a fresh browser, and blocked notifications recover with a sound fallback.
  • Usage opens from account deep links, and checkout returns to the billing page of the account that paid.
  • The low-balance warning scales to the recurring grant, and a new free account no longer sees a false warning.
  • A deleted project no longer reopens from cache. Enabling a gated feature no longer leaves the page, and a lost session keeps its return path. Account deletion explains that it can be cancelled.
  • Compacting a busy session is refused with a clear message. Forking a stopped session explains what to do.
  • New project invitees get their notification. Removed avatars are erased.
  • Email confirmation is link-first, and the sign-in screen offers password sign-in.
  • The app recovers from a stale code chunk instead of failing to load.
  • Connected accounts stay on the personal identity.
  • The first session of a new project no longer lists the project setup as its own changes.
  • Session tokens can no longer leak after a session ends.
  • Expired branches are deleted without cloning their history.
  • Reminders re-arm from the time they resume.
  • Public transcripts show failed assistant turns.
  • The Agents page shows agent ids, and a direct user grant replaces the existing project role.
  • The public OpenAPI spec publishes a relative server URL.
  • Many smaller fixes across the CLI, triggers, auth and the web app.

What's Changed

  • chore(release): VERSION → 0.14.4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10351
  • chore(release): staging VERSION → 0.14.4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10352
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10354
  • fix(api): preserve YAML comments through trigger manifest edits (KRTX-2742) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10230
  • docs(learnings): reload Caddy after a Capture-version self-host update by @markokraemer in https://github.com/kortix-ai/suna/pull/10359
  • fix(api): return not found for stale subscription sync (KRTX-2882) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10355
  • feat(triggers): auto-pause — a trigger at its hourly run limit for 2 hours in a row pauses itself, alerts once, and resumes with enabled: true (KRTX-1721) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10362
  • fix(infra): monitor staging and prod SQS message age (KRTX-2509) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10356
  • fix(billing): KRTX-2754 preserve referenced legacy agent versions by @agent-kortix in https://github.com/kortix-ai/suna/pull/10357
  • perf(db): index-driven audit tool-action filter and gateway project aggregates; fix(api): change-request lookup accepts the per-project number (KRTX-2763) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10212
  • fix(api): resume create-in-chat after its question answer (KRTX-2544) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10364
  • fix(cli): report no credential source for tokenless hosts (KRTX-2755) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10358
  • feat(triggers): overlap — a fresh cron trigger skips a fire while its previous run is still active; overlap: allow opts out (KRTX-1721) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10369
  • fix(cli): report no credential source for unsigned hosts (KRTX-2756) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10360
  • fix(auth): KRTX-2840 make email confirmation link-first by @agent-kortix in https://github.com/kortix-ai/suna/pull/10365
  • fix(KRTX-1791): show failed assistant turns in public transcripts by @agent-kortix in https://github.com/kortix-ai/suna/pull/10375
  • refactor(tests): split audit request-row flows (KRTX-1799) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10372
  • fix: dogfood batch — no false Low balance on a new free account, Copy command label, friendly offline avatar toast, CLI sessions tagged cli (KRTX-2910, KRTX-2911, KRTX-2838, KRTX-2914) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10383
  • fix(KRTX-2837): erase public avatars on removal and deletion by @agent-kortix in https://github.com/kortix-ai/suna/pull/10366
  • fix(cli): KRTX-2810 use scoped preview navigation tickets by @agent-kortix in https://github.com/kortix-ai/suna/pull/10361
  • fix(cli): KRTX-2015 delete listed sessions without read preflight by @agent-kortix in https://github.com/kortix-ai/suna/pull/10400
  • fix(web): scale low-balance warning to recurring grant (KRTX-2828) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10363
  • fix(tooling): regenerate staged web artifacts (KRTX-1849) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10377
  • fix(KRTX-2059): stop ready project auto-sessions reading Starting by @agent-kortix in https://github.com/kortix-ai/suna/pull/10406
  • fix(cli): KRTX-1762 print host-correct project and session URLs by @agent-kortix in https://github.com/kortix-ai/suna/pull/10370
  • fix(api): restore isolated session-log dry passes (KRTX-2789) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10407
  • fix(api): delete expired branches without cloning history (KRTX-2141) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10403
  • fix(api): prevent late session token leaks (KRTX-2831) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10368
  • KRTX-1763: Guide safe ship recovery for seeded managed repositories by @agent-kortix in https://github.com/kortix-ai/suna/pull/10371
  • refactor(ui): consolidate Mermaid render IO and canvas zoom (KRTX-2348) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10417
  • fix(billing): KRTX-2713 return checkout to purchased account billing by @agent-kortix in https://github.com/kortix-ai/suna/pull/10374
  • fix: dogfood batch 2 — kortix init refuses without a TTY, sessions new --wait exits 1 on an already-failed turn, /settings/computers opens Connectors (KRTX-2921, KRTX-2913, KRTX-2865) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10422
  • fix(web): KRTX-1794 recover blocked notifications with inline sound fallback by @agent-kortix in https://github.com/kortix-ai/suna/pull/10379
  • fix(sessions): KRTX-1871 stop default idle warm provisioning by @agent-kortix in https://github.com/kortix-ai/suna/pull/10425
  • KRTX-1868: Let empty composer Escape stop streaming by @agent-kortix in https://github.com/kortix-ai/suna/pull/10381
  • fix(cli): access grant --user uses the linked project, marketplace install resolves short names, doctor names the turn error (KRTX-2825, KRTX-2822, KRTX-2918) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10434
  • feat(mobile): 1.5.1 — iOS Liquid Glass chrome, smoother sheets and long sessions, MFA focus fix by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10424
  • fix(docs): remove duplicated home page product name (KRTX-2611) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10435
  • fix(api): unify web and CLI model price estimates (KRTX-1927) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10385
  • fix(web): KRTX-2611 remove duplicate docs home title by @agent-kortix in https://github.com/kortix-ai/suna/pull/10440
  • fix(web): smooth project-home send and stop finished replies re-streaming (KRTX-2931, KRTX-2932) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10432
  • feat(drives): one Drive with team folders, a Files row under the gear, and kortix drive by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10419
  • fix(cli): resolve marketplace install names like show (KRTX-1947) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10387
  • fix(KRTX-1885): show an actionable stopped-session fork error by @agent-kortix in https://github.com/kortix-ai/suna/pull/10386
  • fix: KRTX-2058 show exact cron next run with timezone by @agent-kortix in https://github.com/kortix-ai/suna/pull/10444
  • fix: KRTX-2650 refuse compact on busy sessions by @agent-kortix in https://github.com/kortix-ai/suna/pull/10446
  • fix(web): enable fresh-browser session notifications (KRTX-2622) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10438
  • fix(web): KRTX-1883 surface project-home slash skills and commands by @agent-kortix in https://github.com/kortix-ai/suna/pull/10388
  • fix(web): inline password error and no hover underline on auth links by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10452
  • fix(cli): disclose doctor warm-session retention (KRTX-1973) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10390
  • fix: tokens rm refuses the CLI's own key, review submit drops a foreign sandbox session, readable "New" badge (KRTX-1842, KRTX-2864, KRTX-2750) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10455
  • fix(sessions): keep forked conversations reachable after navigation by @agent-kortix in https://github.com/kortix-ai/suna/pull/10441
  • fix(api): re-arm reminders from resume time (KRTX-1923) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10389
  • fix: notify existing project invitees (KRTX-1929) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10391
  • fix: blocked trigger Create focuses the missing signing key, tokens JSON shares an id key, auth 429 entry-step guard (KRTX-2816, KRTX-2829, KRTX-2812) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10460
  • fix(KRTX-2033): show completed session activity independently of computer status by @agent-kortix in https://github.com/kortix-ai/suna/pull/10413
  • refactor(runtime): remove unused helpers and inline wrappers (KRTX-2575) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10428
  • fix(web): KRTX-2608 clarify cancellable account deletion by @agent-kortix in https://github.com/kortix-ai/suna/pull/10439
  • fix(cli): show all channel states by default (KRTX-2619) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10437
  • fix(web): use bundled i18n catalogs (KRTX-2244) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10414
  • fix(session-log): backfill recovers stripped tool inputs and converts oversized sessions in a Worker (P3.4) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10464
  • fix(web): authorize error names --token, Reminders tabs refetch, a deleted project cannot reopen from cache (KRTX-1976, KRTX-2888, KRTX-2904) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10466
  • fix(web): open Usage from account deep links (KRTX-1959) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10392
  • fix(sessions): report conversation model instead of creation pin (KRTX-2697) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10454
  • fix(kortixd): the first session of a new project no longer lists the project setup as its own changes (KRTX-1862) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10469
  • fix(web): show oversized files whole instead of truncating at 50k chars by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10458
  • perf(api): check session access before the tombstone in member project reads (gateway logs 670 → 160 ms) by @markokraemer in https://github.com/kortix-ai/suna/pull/10465
  • perf(gateway): call the dev API inside the VPC through Cloud Map, public URL as fallback by @markokraemer in https://github.com/kortix-ai/suna/pull/10463
  • fix(web): keep connected accounts on personal identity (KRTX-2011) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10395
  • fix(mobile): native glass message menu, smoother scroll and long sessions, no local pushes to the App Store app by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10456
  • fix(session-log): guard the backfill's conversion thread with a memory check and a poison pill (P3.4) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10475
  • KRTX-2498: cover admin-delete Stripe subscription cancellation by @agent-kortix in https://github.com/kortix-ai/suna/pull/10473
  • fix(kortixd): pi tells the model today's date every turn, as OpenCode does by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10476
  • fix(sessions): persist independent conversation forks (KRTX-2806) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10421
  • feat(api): pi_harness on by default for every project by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10479
  • fix(ci): the dev gateway deploy waits for dev Terraform by @markokraemer in https://github.com/kortix-ai/suna/pull/10481
  • feat(ui): @kortix/ui is the plug-and-play Kortix UI library; apps/web and Lumen consume it by @markokraemer in https://github.com/kortix-ai/suna/pull/10480
  • fix(docs): announce the home link brand once (KRTX-1999) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10396
  • Promote dev fd04a98306 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10482
  • fix(cli): surface gateway endpoint URL (KRTX-1962) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10397
  • refactor(web): relocate panel sizing and preview policies (KRTX-1773) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10416
  • refactor(web): extract panel derivations and handoffs (KRTX-1774) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10420
  • fix(api): a local stack never deletes shared meta sandbox images (KRTX-2546) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10486
  • fix(web): KRTX-2649 open agent picker from slash palette by @agent-kortix in https://github.com/kortix-ai/suna/pull/10448
  • KRTX-1853: Preview text attachments in-app by @agent-kortix in https://github.com/kortix-ai/suna/pull/10384
  • fix(web): KRTX-2760 show gone page on first deleted-project visit by @agent-kortix in https://github.com/kortix-ai/suna/pull/10457
  • refactor(web): split customize components and shared logic (KRTX-2148) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10412
  • fix(web): KRTX-2860 explain disabled Reminders deep links by @agent-kortix in https://github.com/kortix-ai/suna/pull/10367
  • fix(KRTX-1891): make Files Show more controls readable by @agent-kortix in https://github.com/kortix-ai/suna/pull/10394
  • fix(ui): image thumbnail no longer spins forever after a cached load by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10491
  • fix(tests): green the v0.14.4 release suite on dev by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10495
  • fix(drives): show folders as folders, keep fixed folders fixed, one error per refusal by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10492
  • fix(tests): green the v0.14.4 core-db lane on dev by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10497
  • fix(web): surface marketplace plan gate (KRTX-1949) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10399
  • fix(sdk,ui): connector poll window per open, cold ?rs= links keep the sub-agent, sub-agent chats read the project roster (KRTX-2877, KRTX-2886, KRTX-2887) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10485
  • fix: Changes tab on pi sessions + readable file name in the side-panel viewer by @markokraemer in https://github.com/kortix-ai/suna/pull/10501
  • perf: KRTX-2019 batch connector catalog resolution by @agent-kortix in https://github.com/kortix-ai/suna/pull/10401
  • feat(cli): skip project wizard after CLI creation (KRTX-1488) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10498
  • fix(web): recover stale chunk failures before hydration (KRTX-2482) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10426
  • fix(web): KRTX-2493 offer password sign-in on auth entry by @agent-kortix in https://github.com/kortix-ai/suna/pull/10423
  • fix(kortixd): pi leaves the session title to Kortix, so the header no longer flips from the prompt to the title (KRTX-2567) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10502
  • fix(web): show command palette immediately while lazy chunk loads by @agent-kortix in https://github.com/kortix-ai/suna/pull/10376
  • fix(tests): green the v0.14.4 packages-rest lane after the @kortix/ui move by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10505
  • fix(web): KRTX-1839 restore account-hub pane headings by @agent-kortix in https://github.com/kortix-ai/suna/pull/10380
  • KRTX-1784: Give the mobile sidebar a visible close control by @agent-kortix in https://github.com/kortix-ai/suna/pull/10378
  • fix(ui): linear-time path regexes and CodeQL release findings by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10509
  • Promote dev 0ad9d81b54 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10511
  • fix(cli): stream session readiness progress (KRTX-1888) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10510
  • fix(kortixd): a new session token clears the dead-token breaker at once (KRTX-2545) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10512
  • fix(cli): start provisioning sessions before chat (KRTX-2042) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10402
  • fix(sdk): expected feature flag refusals do not report API errors (KRTX-2617) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10445
  • fix(KRTX-1812): neutral default organization names by @agent-kortix in https://github.com/kortix-ai/suna/pull/10508
  • perf(web): one GET /projects/:id per page load (project gate reads qk.project.summary) by @markokraemer in https://github.com/kortix-ai/suna/pull/10468
  • feat(cli): list catalog model availability (KRTX-1539) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10500
  • fix(KRTX-1863): explain single-model picker search scope by @agent-kortix in https://github.com/kortix-ai/suna/pull/10513
  • KRTX-2834: remember the chosen password sign-in method by @agent-kortix in https://github.com/kortix-ai/suna/pull/10477
  • fix(KRTX-1785): enable gated features without leaving the page by @agent-kortix in https://github.com/kortix-ai/suna/pull/10515
  • fix(KRTX-1889): fill runtime status in session detail by @agent-kortix in https://github.com/kortix-ai/suna/pull/10514
  • fix(sdk): the saved-transcript mirror sorts parts in byte order (KRTX-2897) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10516
  • perf(api): confirm JWT liveness from auth.sessions instead of a GoTrue hop by @markokraemer in https://github.com/kortix-ai/suna/pull/10467
  • perf(gateway): budget spend from a running daily total (954 ms SUM to a PK read) by @markokraemer in https://github.com/kortix-ai/suna/pull/10471
  • fix(api): the public OpenAPI spec publishes a relative server URL, not the internal origin (KRTX-2949) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10519
  • fix(web): KRTX-2939 triage sweep — preview recovery, search input, fired reminders, Apps polish by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10462
  • feat(goals): goals v1 behind a flag — kortix goals CLI, turn-end check, unattended sessions, reminders that survive a failed box by @markokraemer in https://github.com/kortix-ai/suna/pull/10314
  • fix(KRTX-2278): replace existing project role on direct user grant by @agent-kortix in https://github.com/kortix-ai/suna/pull/10411
  • feat(cli): KRTX-1465 wake stopped sessions before compacting by @agent-kortix in https://github.com/kortix-ai/suna/pull/10496
  • fix(web): KRTX-1926 show agent ids on the Agents page by @agent-kortix in https://github.com/kortix-ai/suna/pull/10520
  • fix(api): preserve session create receipts past deadline (KRTX-2066) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10405
  • fix(api): proxy refusals grant CORS only to the allowlist, and dropped upstream bodies are released (KRTX-2802, KRTX-2803) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10524
  • feat(rooms): chat rooms for agents and people with Slack-style threads; a feature flag gates every surface by @markokraemer in https://github.com/kortix-ai/suna/pull/10308
  • fix(web): preserve return path on mounted session loss (KRTX-2558) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10408
  • fix(release): green the second v0.14.4 release run on dev by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10526
  • test(flows): steps assert what their labels promise (KRTX-2850, KRTX-2851, KRTX-2852) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10525
  • fix(api): MCP CLI decisions for goals, rooms and peers by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10528
  • fix(krtx-2744): refuse stored-log, loss-report and open-question reads of a deleted session by @agent-kortix in https://github.com/kortix-ai/suna/pull/10470
  • Promote dev 6f1038a106 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10530
  • fix(web): use domain decision for approval toast (KRTX-2857) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10409
  • KRTX-2884: align Models with picker availability and expose model entitlement by @agent-kortix in https://github.com/kortix-ai/suna/pull/10418
  • fix(web): auth errors render inline under the input, not as a banner by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10540
  • fix(cli): KRTX-2002 explain private app browser access in show by @agent-kortix in https://github.com/kortix-ai/suna/pull/10537
  • fix: cost-by-project honors project_id, few-word prompts title themselves, the CLI help names no stale flag, and the test report and shard planner match reality (KRTX-2801, KRTX-2651, KRTX-2581, KRTX-2667, KRTX-2668) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10535
  • fix(KRTX-1998): show MCP URL in Connect dialog by @agent-kortix in https://github.com/kortix-ai/suna/pull/10539
  • fix(api): skip channel end relay without a recipient (KRTX-2339) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10543
  • fix(github): a repository switch through a GitHub App installation is not refused as read-only by @markokraemer in https://github.com/kortix-ai/suna/pull/10545
  • fix: one repository_disconnected state when the GitHub App loses a repo, on every surface (KRTX-2955) by @markokraemer in https://github.com/kortix-ai/suna/pull/10544
  • feat(cli): create projects without the dashboard (KRTX-2046) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10541
  • docs(learnings): repository_disconnected entry (KRTX-2955) by @markokraemer in https://github.com/kortix-ai/suna/pull/10548
  • feat(llm-gateway)!: the gateway is the only model path; custom OpenAI-compatible endpoints move into it by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10547
  • fix(db): revoke session keys on project archive (KRTX-1946) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10393
  • fix(web): one Download App design with a store QR code and current screenshots (KRTX-2692) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10553
  • fix(web): hide the founder welcome card everywhere by @markokraemer in https://github.com/kortix-ai/suna/pull/10550
  • feat(cli): expose searchable provider catalog (KRTX-2074) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10534
  • fix(web): KRTX-2000 stop polling missing sessions by @agent-kortix in https://github.com/kortix-ai/suna/pull/10536
  • fix(release): green the third v0.14.4 release run on dev by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10557
  • feat(sessions): switch a session to the fallback that answered, switch back at idle by @markokraemer in https://github.com/kortix-ai/suna/pull/10487
  • docs(repo): PR titles and bodies are written for the human reviewer by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10561
  • fix(KRTX-1932): retry invalidated in-flight mirror reads by @agent-kortix in https://github.com/kortix-ai/suna/pull/10398
  • fix(web): disable framework response header (KRTX-2366) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10415
  • fix(iam): call the project role manager consistently (KRTX-2552) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10429
  • fix(auth): KRTX-2562 stabilize server sign-out after account deletion by @agent-kortix in https://github.com/kortix-ai/suna/pull/10430
  • fix(cli): explain missing default project in session lists (KRTX-2563) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10431
  • Promote dev 57fe38f329 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10564
  • fix(web): the session fixture page marks continuing turns like the real transcript (KRTX-2596) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10549
  • fix(npm): published packages no longer carry workspace: devDependencies by @markokraemer in https://github.com/kortix-ai/suna/pull/10567
  • fix(KRTX-2504): keep internal tooling out of the agent picker by @agent-kortix in https://github.com/kortix-ai/suna/pull/10427
  • fix(api): an admin re-invite keeps the SCIM groups the invite waits on (KRTX-2329) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10558
  • docs(ui): @kortix/ui installs from npm; versions track the Kortix release by @markokraemer in https://github.com/kortix-ai/suna/pull/10571
  • fix(cli): preserve matching project links after clone (KRTX-2629) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10436
  • fix(cli): KRTX-2912 refuse chat before provisioning when no model is connected by @agent-kortix in https://github.com/kortix-ai/suna/pull/10569
  • fix(api): prune lint suppressions that no longer occur by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10573
  • fix(mobile): roomier iOS header and sheet controls, version 1.5.3 by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10572
  • fix(web): default development servers to webpack (KRTX-2751) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10453
  • fix(tests): green the fourth v0.14.4 release run on dev by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10574
  • Promote dev 4303f04236 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10575
  • fix(web): KRTX-2759 stop deleted-project request bursts by @agent-kortix in https://github.com/kortix-ai/suna/pull/10459
  • fix(tests): green the v0.14.4 packages-rest lane on dev (round 2) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10577
  • Promote dev c55d514cf7 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10578
  • fix(web): KRTX-2473 revalidate avatars after deletion by @agent-kortix in https://github.com/kortix-ai/suna/pull/10472
  • docs(learnings): dry-run kortix ship before the first ship of a new folder by @markokraemer in https://github.com/kortix-ai/suna/pull/10580
  • refactor(db): share repair clients and migration script helpers (KRTX-2533) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10474
  • fix(tooling): reject fake trunk merge commits (KRTX-2515) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10560
  • fix(secrets): show granted agents in audit views (KRTX-2813) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10478
  • refactor(web): remove unused helper re-exports (KRTX-1782) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10552
  • fix(release): green the fifth v0.14.4 release run on dev by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10583
  • fix(web): a kept project renders at once while its access read revalidates by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10584
  • Promote dev a667253747 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10585
  • fix(web): ignore synthetic non-Error rejection noise (KRTX-2948) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10488
  • docs(cli): explain sandbox credential override (KRTX-1706) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10494
  • fix(session): stream first-turn text snapshots (KRTX-2764) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10504
  • fix(tests): profile-tab container test mocks the modules it actually imports by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10586
  • feat(review): approval parameters, expiry, and bulk approve/deny by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10555
  • fix(cli): KRTX-1922 print approval commands instead of token URLs by @agent-kortix in https://github.com/kortix-ai/suna/pull/10518
  • fix(KRTX-2665): retire previous secret intake links on re-mint by @agent-kortix in https://github.com/kortix-ai/suna/pull/10449
  • fix(web): collapse denied project prefetch burst (KRTX-1930) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10521
  • fix(KRTX-1931): name current plan in CLI IAM 402 errors by @agent-kortix in https://github.com/kortix-ai/suna/pull/10522
  • fix(api): KRTX-2950 bound interactive billing request bursts by @agent-kortix in https://github.com/kortix-ai/suna/pull/10556
  • fix(KRTX-2823): uninstall installed project skills safely by @agent-kortix in https://github.com/kortix-ai/suna/pull/10527
  • KRTX-1231: drop unused legacy device token indexes by @agent-kortix in https://github.com/kortix-ai/suna/pull/10484
  • fix(cli): show doctor answer without reasoning (KRTX-1974) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10529
  • fix(gateway): a resting personal ChatGPT account falls back; holds follow the real reset by @markokraemer in https://github.com/kortix-ai/suna/pull/10588
  • fix(cli): label billing JSON credit units (KRTX-1955) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10531
  • fix(billing): KRTX-1954 land credits bookmarks on the ledger by @agent-kortix in https://github.com/kortix-ai/suna/pull/10532
  • fix(cli): name missing session-list project (KRTX-2001) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10533
  • feat(goals): hard-gate Goals behind the goals flag on every surface by @markokraemer in https://github.com/kortix-ai/suna/pull/10589
  • fix(skills): KRTX-1939 include optional body on creation by @agent-kortix in https://github.com/kortix-ai/suna/pull/10538
  • feat(flags): a flag-off feature is invisible everywhere — CLI off-box, IAM catalog, notification settings, docs by @markokraemer in https://github.com/kortix-ai/suna/pull/10590
  • test(cli): cover the goals group in the flagged leaf-help loop by @markokraemer in https://github.com/kortix-ai/suna/pull/10591
  • refactor(ui): name the shared PDF engine loader (KRTX-2231) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10542
  • fix(api): hide account existence from nonmembers (KRTX-2402) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10546
  • refactor(tui): remove unused reasoning fixture (KRTX-2522) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10551
  • refactor(shared): remove unused picked section keys (KRTX-2571) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10554
  • test(web): preserve motion exports in workspace mocks (KRTX-2403) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10559
  • fix(KRTX-1869): mark interrupted turns as stopped by @agent-kortix in https://github.com/kortix-ai/suna/pull/10563
  • fix(gateway): KRTX-2903 clarify plan access and recovery by @agent-kortix in https://github.com/kortix-ai/suna/pull/10562
  • docs(learnings): work/ for plans and open thoughts; goals + durable workflows design by @markokraemer in https://github.com/kortix-ai/suna/pull/10592
  • fix(api): use plan-eligible model defaults (KRTX-2917) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10566
  • fix(ui): keep mobile promo off desktop project loads (KRTX-2579) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10568
  • fix(cli): re-show live secrets intake links (KRTX-1904) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10570
  • fix(web): point download card to pairing (KRTX-1813) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10579
  • Promote dev 3125f74d1e to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10593
  • refactor(ui): share non-merging class composition (KRTX-2605) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10582
  • fix(db): sync the drizzle snapshot with the connector_call_status 'expired' value by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10595
  • fix(api): model-access reports the configured default; green api, flows and cli lanes by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10596
  • fix(release): green the packages-rest lane on dev (round 3) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10597
  • Promote dev ecf385f449 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10598
  • fix(api,cli): repo-less sessions read their project record; goals new works without repository access by @markokraemer in https://github.com/kortix-ai/suna/pull/10599
  • ci(release): Drata is advisory in the release gate until its finding is resolved by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10601
  • Promote dev 3e62c9a167 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10602
  • Release v0.14.4 — pi by default, one model path, one Drive by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10489

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.14.3...v0.14.4

Read the full release on GitHub
October 20, 2026

Capture on Windows, signed installers, Drive, and automation controls

v0.14.3

New

  • Pause all automations: one account switch stops every project's schedules, webhooks, app events and monitors.
  • Trigger run limits: a trigger runs at most 60 times an hour by default, with an optional daily limit, so a runaway trigger stops itself.
  • Drive in the sidebar, with a Drive page, a file viewer, upload, multi-select and file management. Session folders show Drive folders. Repo moves under Customize.
  • Recently deleted lists the sessions you can restore, and a restored session keeps its conversation.
  • Drop a file anywhere on a session page or the project home to attach it to your message.
  • Notifications have All, Needs you and Done tabs, and the bell shows when something needs you.
  • Generative UI is on by default for new sessions: the agent can answer with cards, comparisons, charts, maps and tabs. A project can turn it off in Settings.
  • Computer: every access is granted at pairing with a switch for each afterwards, a new computer starts with every access selected, "Always" is remembered, and Computer Use works on Windows without console windows.
  • The command palette (⌘K) opens Drive, Reminders and Repo.
  • Mobile reminds you when a question has waited 60 seconds for an answer, and renders generative UI like the web app.
  • Connectors v2 (experimental, per project): a catalog of vendor MCP apps signed in with OAuth that Kortix runs, app-event triggers that Kortix checks, an event inbox, and an in-place move for existing Composio and Pipedream connectors and their triggers.

Kortix Capture

  • Windows is ready for company rollout: the install command downloads the installer, waits and reports whether it worked. The macOS and Linux commands do the same.
  • Windows: the app window opens for people without admin rights, a manual MSI install never rolls back, and the app has a Windows icon.
  • App rules match what an admin types on every OS: notepad.exe also matches the packaged Windows 11 Notepad, and the inclusion policy never records an app it cannot identify. The app catalog lists common CAD apps.
  • The timeline keeps the runs of frames taken while the person is idle.
  • The player shows video for computers linked to no one.
  • Settings shows that Capture always starts at login.
  • The Kortix desktop app is no longer recorded on Windows and Linux, as on macOS.

Kortix Desktop

  • Windows installers for Kortix Desktop and Kortix Capture are signed by Kortix AI Corp.
  • Windows: the title bar blends with the app, a Kortix menu replaces the raw menu bar, and the app has a tile icon.
  • Each deployment serves its own desktop build.

Models

  • Kortix-managed models are part of paid plans. Free accounts use their connected ChatGPT subscription or their own provider keys.
  • Kimi K3 leaves the managed lineup. Sessions and defaults that used it move to DeepSeek V4.1 Flash.
  • Managed models fall back across providers in a fixed order, the default model always has a fallback, and legacy model ids get their model's fallbacks. Third-party endpoints are used only with zero data retention and only from subprocessors in effect.
  • Reasoning variants reach the model on the pi harness, and pi decides shell permissions command by command.
  • When a managed model's provider fails, the session stays on the fallback instead of retrying the failed provider on every request.
  • Model-switch notices sit above the turn's work, one row per run of identical switches.

Self-host

  • Platinum is the default sandbox provider. Daytona remains as a legacy fallback. E2B support is removed.

Fixed

  • Members of MFA accounts can open project-wide Apps. Reminders move under Customize.
  • Signed-out devices stop getting push notifications.
  • Connecting an MCP server whose URL does not answer shows the reason instead of a server error.
  • A ChatGPT login that only failed a model check is no longer marked for reconnection.
  • Plural forms and labels in 9 languages are corrected.
  • Reopening a session paints its saved conversation at once, and older tool calls keep their command.
  • A connector whose stored credential the vendor rejects is marked on the account for reconnection, and the call reports it instead of a server error.
  • Billing emails reach the owners of older accounts, and a notice without a recipient is retried.

Under the hood

  • @kortix/ui: one shared component library for the web app and SDK hosts.
  • With the session log flag on, sessions read and write only the session log; older messages and sub-agent threads come from it.
  • Faster requests: the gateway admits a request in one API round trip, the app shell loads after one auth round trip, project details and secrets no longer wait on a git fetch, member and session reads are indexed, and the session lifecycle queue has its own index.
  • Model catalog seeds refreshed. CI signing and publish fixes for Windows builds.

What's Changed

  • chore(release): staging VERSION → 0.14.3 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10253
  • chore(release): VERSION → 0.14.3 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10254
  • docs(learnings): check the CI_RUNNER_* pool before reading a red release suite by @markokraemer in https://github.com/kortix-ai/suna/pull/10255
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10256
  • feat(ui): @kortix/ui — one shared component library for apps/web, white-label, Apps and SDK hosts (+ @kortix/ui/chat) by @markokraemer in https://github.com/kortix-ai/suna/pull/10257
  • feat(web): Drive in the sidebar, Repo under Customize, agent drive mounts by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10258
  • fix(push): stop push notifications to signed-out devices by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10063
  • feat(connectors): connectors_v2 — MCP app catalog and app-event triggers on our platform, Kortix OAuth clients, event inbox by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10214
  • docs(flags): describe connectors_v2 as the MCP app catalog and Kortix-checked app events by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10259
  • feat(mobile): local reminder when a question waits unanswered for 60 s (KRTX-2138) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10065
  • feat(web): /white-label — build your own AI product on Kortix, on Platinum.dev compute by @markokraemer in https://github.com/kortix-ai/suna/pull/10250
  • fix: Reminders moves under Customize; members of MFA accounts can open project-wide Apps by @markokraemer in https://github.com/kortix-ai/suna/pull/10261
  • fix(web): model-switch notices sit above the turn's work, one row per run of identical switches by @markokraemer in https://github.com/kortix-ai/suna/pull/10262
  • feat(sessions): Recently deleted lists the sessions you can restore, and a restored session keeps its conversation (KRTX-2853) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10260
  • feat(web): a file dropped anywhere on a session page or the project home attaches to the composer (KRTX-2855) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10263
  • fix(capture): replace the dead Launch at login switch with the truth (always starts at login) by @markokraemer in https://github.com/kortix-ai/suna/pull/10265
  • feat(connectors): retire Pipedream — move connectors to Kortix MCP apps, MCP sign-in on every connect path by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10266
  • fix(connectors): one fix action on a movable Pipedream connector, accurate CLI move output by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10267
  • ci(capture): Authenticode-sign Windows binaries and MSIs via Artifact Signing (inert until configured) by @markokraemer in https://github.com/kortix-ai/suna/pull/10268
  • fix(capture): Windows install line downloads the installer, waits and reports by @markokraemer in https://github.com/kortix-ai/suna/pull/10269
  • ci(desktop): sign Windows installers with Artifact Signing (inert until configured) by @markokraemer in https://github.com/kortix-ai/suna/pull/10270
  • fix(capture): macOS and Linux install lines download the installer by @markokraemer in https://github.com/kortix-ai/suna/pull/10271
  • fix(capture): player shows video for devices linked to no one by @markokraemer in https://github.com/kortix-ai/suna/pull/10272
  • Desktop on Windows: title bar blends with the app, Kortix menu, tile app icon by @markokraemer in https://github.com/kortix-ai/suna/pull/10273
  • fix(web): a new computer starts with every access selected by @markokraemer in https://github.com/kortix-ai/suna/pull/10274
  • feat(connectors): retire Composio — move Composio connectors and their triggers to Kortix MCP apps by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10275
  • fix(pi): an agent's variant reaches the gateway as reasoning_effort by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10276
  • fix(download): each deployment serves its own desktop build (dev, staging, stable) by @markokraemer in https://github.com/kortix-ai/suna/pull/10278
  • fix(gateway): managed models try Morph direct, Zen, then OpenRouter; the default model always has its fallback; /health reports upstream capacity by @markokraemer in https://github.com/kortix-ai/suna/pull/10277
  • Computer: grant all access at pairing, a switch for each afterwards; Computer Use on Windows; no console windows; Always is remembered by @markokraemer in https://github.com/kortix-ai/suna/pull/10279
  • fix(gateway): DeepSeek V4.1 Flash and GLM-5.3-Flash try OpenCode Zen first, then Morph direct, then OpenRouter by @markokraemer in https://github.com/kortix-ai/suna/pull/10285
  • fix(gateway): OpenRouter pools = every ZDR endpoint that passed the probes, gated by subprocessor dates; Kimi K3 leaves the lineup by @markokraemer in https://github.com/kortix-ai/suna/pull/10286
  • fix(capture): Windows window opens without admin rights, manual MSI never rolls back, Windows icon by @markokraemer in https://github.com/kortix-ai/suna/pull/10287
  • Windows signing: fix Desktop signing, document the setup; Capture Windows rollout docs by @markokraemer in https://github.com/kortix-ai/suna/pull/10288
  • fix(gateway): a legacy or kortix/-prefixed model id gets its canonical model's fallback chain by @markokraemer in https://github.com/kortix-ai/suna/pull/10289
  • fix(ci): Windows signing works for Kortix Desktop and Kortix Capture by @markokraemer in https://github.com/kortix-ai/suna/pull/10292
  • fix(gateway): Morph direct first, then Zen, then OpenRouter; GLM falls back to DeepSeek; Codex falls back to both by @markokraemer in https://github.com/kortix-ai/suna/pull/10291
  • fix(ci): Desktop Windows signing config passes the schema by @markokraemer in https://github.com/kortix-ai/suna/pull/10293
  • fix(ci): Capture dev publish no longer fails when the tag cannot move by @markokraemer in https://github.com/kortix-ai/suna/pull/10294
  • feat(drive): Drive upload, selection and file-management UX, per-user Drive memory skill by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10264
  • fix(billing): billing emails reach Suna-era account owners; a notice with no recipient is retried by @markokraemer in https://github.com/kortix-ai/suna/pull/10295
  • feat(drive): session folders popover shows Drive folder tiles by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10296
  • fix(billing): Free never reaches a Kortix-managed model; only paid plans do by @markokraemer in https://github.com/kortix-ai/suna/pull/10297
  • fix(mobile): genui renders like web: cards, charts, pies, map place cards and fallbacks, block boundaries by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10298
  • feat(triggers): run limits — max_runs_per_hour (default 60) and max_runs_per_day hold a runaway trigger (KRTX-1721) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10300
  • feat(genui): Generative UI flag on by default by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10301
  • fix(billing): managed models are sold, never given — one invariant, two gates by @markokraemer in https://github.com/kortix-ai/suna/pull/10302
  • feat(notifications): All / Needs you / Done tabs and a badge-glow bell by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10303
  • feat(sdk): session log owns the history when session_log is on (P8.0a) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10305
  • feat(triggers): Pause all automations — one account switch stops every project’s schedules, webhooks, app events and monitors (KRTX-1721) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10304
  • fix(capture): one app rule on every OS (packaged Windows apps), inactive frames keep their timeline runs by @markokraemer in https://github.com/kortix-ai/suna/pull/10299
  • docs(learnings): Capture app identity and inactive frames by @markokraemer in https://github.com/kortix-ai/suna/pull/10306
  • docs(learnings): fix a recorded timestamp by @markokraemer in https://github.com/kortix-ai/suna/pull/10307
  • fix(pi): decide a bash permission command by command by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10309
  • docs(learnings): decide a shell allowlist per command by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10311
  • feat(sandbox): Platinum is the reference provider; Daytona is a legacy fallback; E2B support removed by @markokraemer in https://github.com/kortix-ai/suna/pull/10310
  • Promote dev 08a64413b3 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10313
  • feat(triggers): filter operators not, in, exists, prefix, not_prefix — a push trigger can skip its own agent's pushes (KRTX-1721) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10312
  • perf(web): the model picker no longer waits on /projects/:id/detail by @markokraemer in https://github.com/kortix-ai/suna/pull/10316
  • fix(security): linear slash trim for Drive ?path=, literal launchd label match by @markokraemer in https://github.com/kortix-ai/suna/pull/10317
  • fix(manifest): a v3 agent that names a retired connector tool gets a warning, not a failed session by @markokraemer in https://github.com/kortix-ai/suna/pull/10318
  • fix(tests): packages-api lane green for v0.14.3 (tests follow #10310, #10297, #10286) by @markokraemer in https://github.com/kortix-ai/suna/pull/10319
  • perf(web): the model picker gate no longer waits on /secrets by @markokraemer in https://github.com/kortix-ai/suna/pull/10320
  • fix(release): v0.14.3 flows — MCP sign-in 400 on unreachable server, side-effect-free ChatGPT probe, GW-MANAGED-1 after Kimi K3 retirement by @markokraemer in https://github.com/kortix-ai/suna/pull/10321
  • fix(tests): core-db lane fixtures follow Platinum default, signed-in push tokens, Morph-served default model by @markokraemer in https://github.com/kortix-ai/suna/pull/10322
  • fix(tests): packages-rest lane green for v0.14.3 — palette rows for Reminders/Repo/Drive, ICU args outside plurals, mobile parity reads @kortix/ui by @markokraemer in https://github.com/kortix-ai/suna/pull/10323
  • feat: session_log on — no v1 transcript table reads or writes (P8.0c–g, P8.1) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10324
  • chore(worktree): pnpm worktree sweep deletes build output in idle checkouts by @markokraemer in https://github.com/kortix-ai/suna/pull/10325
  • docs(learnings): disk-full Docker wedge and pnpm worktree sweep by @markokraemer in https://github.com/kortix-ai/suna/pull/10326
  • perf(gateway): hold a failed route per session, cache ChatGPT prompts, index the IAM SSO check by @markokraemer in https://github.com/kortix-ai/suna/pull/10327
  • fix(release): session-log reloads paint the kept copy at once, old stripped tool calls keep their command; journeys 10/34/50 follow the new contracts by @markokraemer in https://github.com/kortix-ai/suna/pull/10330
  • test(e2e): journey 34 sub-agent arm waits for the saved steps, opens them in place, then the full view by @markokraemer in https://github.com/kortix-ai/suna/pull/10332
  • Promote dev 72b084322c to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10334
  • fix(connectors): an upstream 401 to a stored credential is credential_rejected, marked on the account by @markokraemer in https://github.com/kortix-ai/suna/pull/10328
  • perf(db): index the lifecycle claim drain past held prompts; compare auth.users.id as uuid by @markokraemer in https://github.com/kortix-ai/suna/pull/10329
  • perf(gateway): admit a request in one API round trip instead of four by @markokraemer in https://github.com/kortix-ai/suna/pull/10331
  • perf(gateway): evaluate warn budgets at settlement, off the admission path by @markokraemer in https://github.com/kortix-ai/suna/pull/10333
  • perf(api): /detail and /secrets read the warm git mirror instead of waiting on git fetch by @markokraemer in https://github.com/kortix-ai/suna/pull/10335
  • fix(connectors): a rejected stored credential answers 424, not 500 by @markokraemer in https://github.com/kortix-ai/suna/pull/10336
  • test(release): v0.14.3 suite — Codex prompt-cache headers, trigger filter messages, getProject mock by @markokraemer in https://github.com/kortix-ai/suna/pull/10337
  • fix(tests): apps/web release-suite reds for v0.14.3 — ICU-parsed placeholder parity, Telegram row stub, stale secrets-gate pin by @markokraemer in https://github.com/kortix-ai/suna/pull/10338
  • Promote dev 02731ef7af to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10339
  • fix(tests): label the new /internal/gateway/admit route for the audit log by @markokraemer in https://github.com/kortix-ai/suna/pull/10340
  • Promote dev f1b62f57ea to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10341
  • perf(api): member read view probes the session per row (EXISTS), 627 ms -> 17 ms by @markokraemer in https://github.com/kortix-ai/suna/pull/10342
  • perf(web): one auth round trip before the app shell, not two; project home shares the sandbox list by @markokraemer in https://github.com/kortix-ai/suna/pull/10344
  • fix(api): projectReadView.where refuses project_sessions.session_id by @markokraemer in https://github.com/kortix-ai/suna/pull/10345
  • docs(audit): regenerate audit-actions.mdx for the /internal/gateway/admit label by @markokraemer in https://github.com/kortix-ai/suna/pull/10346
  • Promote dev d8a86e497d to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10347
  • perf(lifecycle): back off prompts stuck behind a head that never moves by @markokraemer in https://github.com/kortix-ai/suna/pull/10343
  • fix(web): adopt the saved-copy store before the query client is ready (spec-34 skeleton regression) by @markokraemer in https://github.com/kortix-ai/suna/pull/10349
  • Promote dev 9ae9b3b7bc to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10350
  • Release v0.14.3 — Capture on Windows, signed installers, Drive, and automation controls by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10315

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.14.2...v0.14.3

Read the full release on GitHub
October 19, 2026

Trigger run history, a bigger Free plan, and steadier sessions

v0.14.2

New

  • Trigger run history. Every trigger keeps a list of its runs with status, error and end time. You can test-fire a trigger with a payload, replay a past run, and missed cron slots are bounded.
  • More credit tiers and larger top-ups. The Free plan now includes 500 credits and the managed models.
  • DeepSeek V4.1 Flash now serves the 1017 snapshot on Morph (US region, zero data retention).
  • Subprocessor notices. The subprocessor list is published, and owners and admins of paid accounts get a 30-day email notice before a new subprocessor takes effect.
  • White-label license. A free, self-serve white-label license is published next to the repository license (WHITE-LABEL-LICENSE.md).
  • Customize › Agents lists agents first, with subagents in their own section.
  • Kortix Capture: choose an Exclusion or Inclusion policy, categories list what they cover, the cloud policy applies from the first frame, and the app has Restart and Quit.

Improved

  • Provider failures recover better: internal continuations, one terminal error row, suggestions you can act on, and a cancel you made yourself no longer shows as a model failure.
  • Model-switch errors stay in the conversation history.
  • Sign-in and password recovery by email are more reliable. Refused auth emails show an honest message, and the link buttons cool down.
  • The CLI resolves the host and the default project the same way everywhere, keeps its identity inside a delegated sandbox, routes help correctly, and reports billing in the same credit units as the wallet.
  • Connectors: the sync summary agrees with the list, policy ls shows connector rules, and the All tab lists the project's own connectors.
  • API keys: revoked gateway keys are hidden, a create cannot mint twice, and revoked personal keys can be deleted (also from the CLI).
  • /new shows the plan cap before the first failed create.
  • Phone layouts on web and mobile have accessible navigation targets.
  • Platinum images for US-region projects are built and copied in their region, so the first session after a template rebuild does not wait.
  • Sessions start faster: env-sync no longer blocks /start on the model push and no longer pushes into stopped boxes.
  • An opened App scrolls at once, and its bar is Refresh, Open, Settings and Close. App releases run on Platinum when it is configured.
  • "Open as admin" acts as the project's account.
  • Sandboxes clear known-safe caches when their disk fills up.

Fixed

  • Shared session start failures retry.
  • The auth callback logs provider errors safely.
  • Dead public share links show the unavailable page.
  • Streaming markdown keeps its blocks around fenced definitions.
  • A provision stream that closes mid-way recovers its real result; 502/503 alerts show the real reason.
  • App locales are no longer double-prefixed.
  • Onboarding promos stay dismissed and no longer stack after you exit the wizard.
  • A future key expiry shows as a countdown.
  • The agent config and model pins reject an agent name that is not declared.
  • LLM inference refuses principals that have no project (403 project_required).
  • Subscription plan resolution ignores enterprise metadata hints.
  • Many smaller fixes across web, mobile, the CLI, the whitelabel demo, the gateway and the API.

What's Changed

  • feat(triggers): run history, test-fire with a payload, replay, and a misfire bound (KRTX-1743) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10150
  • chore(release): VERSION → 0.14.2 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10151
  • chore(release): staging VERSION → 0.14.2 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10152
  • fix(snapshots): copy a new Platinum image to the session region before sessions use it by @markokraemer in https://github.com/kortix-ai/suna/pull/10157
  • feat(billing): credit tiers and top-ups to $50,000; Free gets 500 credits + managed models by @markokraemer in https://github.com/kortix-ai/suna/pull/10147
  • fix(capture): Sign in with Kortix failed: Cloudflare 403s requests without a User-Agent by @markokraemer in https://github.com/kortix-ai/suna/pull/10160
  • feat(web): agents first, subagents in their own section on Customize › Agents by @markokraemer in https://github.com/kortix-ai/suna/pull/10161
  • feat(capture): Restart and Quit; CI signs in at the real dev-api through Cloudflare; Linux job on a real VM by @markokraemer in https://github.com/kortix-ai/suna/pull/10162
  • fix(snapshots): build a us_region project's Platinum image in its region by @kubet in https://github.com/kortix-ai/suna/pull/10163
  • feat(capture): Exclusion or Inclusion policy, categories that list what they cover, cloud policy in force from the first frame by @markokraemer in https://github.com/kortix-ai/suna/pull/10168
  • perf(platinum): send a region-naming call straight to that region's control plane by @kubet in https://github.com/kortix-ai/suna/pull/10167
  • fix(capture): unblock recording after sign-in when the store has no policy; fix the docs build by @markokraemer in https://github.com/kortix-ai/suna/pull/10169
  • chore(deps): bump github/codeql-action/upload-sarif from 4.38.2 to 4.38.3 by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/9759
  • chore(deps): bump rustls from 0.23.40 to 0.23.46 in /apps/capture by @dependabot[bot] in https://github.com/kortix-ai/suna/pull/9925
  • fix(web): the outputs fold says items when the hidden rows are not files (KRTX-1779) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9385
  • fix(preview): dead public share links render the unavailable page, not JSON or a sign-in wall (KRTX-1601) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9652
  • fix(web): a mid-provision stream close recovers its true result, and 502/503 alerts show the real reason (KRTX-1754) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9817
  • fix(web): dismiss onboarding wizard on exit (KRTX-2243) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9856
  • KRTX-2283 handle shared session start failures with retry by @agent-kortix in https://github.com/kortix-ai/suna/pull/9859
  • fix(tests): recover runner-owned web exits (KRTX-2288) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9868
  • fix(api): refuse LLM inference for project-less principals — 403 project_required (KRTX-2295) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9889
  • KRTX-2360: isolate bounded and full-code highlighting by @agent-kortix in https://github.com/kortix-ai/suna/pull/9899
  • fix(web): drop the frameless wallet provider-disconnected rejection noise (KRTX-2150) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9922
  • fix(api): ignore enterprise metadata hints in subscription plan resolution (KRTX-2397) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9972
  • fix(web): don't fire the operator-only git-backend repositories call on /new (KRTX-1892) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9997
  • fix(web): never rotate the session refresh token in middleware (KRTX-2111) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10030
  • fix(web): Enter submits the auth email form during the hydration gap (KRTX-2078) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10044
  • fix(cli): hide revoked keys from tokens ls --mine (KRTX-1969) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10046
  • fix(KRTX-2573): restore harness-neutral Custom provider presentation by @agent-kortix in https://github.com/kortix-ai/suna/pull/10088
  • test(sdk): pin the upgrade-without-database guard on the saved-copy cache (KRTX-2576) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10101
  • fix(api): classify orphaned handlers after the request deadline instead of capturing them (KRTX-2583) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10102
  • test(web): pin data-turn-continues and the sizeRoom anchor filter (KRTX-2565) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10103
  • fix(api): audit contended 503 without disturbing a finalized body (KRTX-2600) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10119
  • [KRTX-2394] test(api): usage-session-costs-http stubs its #10113 directory-visibility dependency by @agent-kortix in https://github.com/kortix-ai/suna/pull/10127
  • fix(kortixd): act on in-VM rootfs pressure by wiping known-safe caches (KRTX-2593) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10121
  • fix(mobile): key the mermaid render cache on the source text, not a hash (KRTX-2462) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10125
  • fix(web): strip bare error prefixes and stacked wrappers in stripErrorWrappers (KRTX-2409) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10131
  • fix(web): handle rejections of the fire-and-forget device-cache clear (KRTX-2410) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10133
  • fix(web): the gone-project screen stops refetching a dead project (KRTX-2436) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10141
  • fix(billing): the hub Plan pane shows the wallet only when the plan can fund it (KRTX-2376) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10143
  • fix(mobile): stream the save-to-device copy instead of a whole-file heap read (KRTX-2481) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10153
  • fix(cli): reject a non-numeric --timeout on channels connect (KRTX-2508) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10154
  • fix(compliance): monitor capture-store manifest queue message age (KRTX-2509) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10156
  • docs(sdk): correct the entitlement write-path doc comments by @agent-kortix in https://github.com/kortix-ai/suna/pull/10158
  • krtx-2671-runtime-lost: stamp the removal intent before erasure removes a parked box by @agent-kortix in https://github.com/kortix-ai/suna/pull/10159
  • fix(db): resolve the migration gate's trunk ref from the remote's default branch (KRTX-2532) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10164
  • fix(session): show model-switch errors in conversation history (KRTX-2685) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10165
  • fix(markdown): preserve streaming blocks around fenced definitions (KRTX-2480) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10166
  • fix(web): render a future key expiry as its countdown, not as a fresh stamp by @agent-kortix in https://github.com/kortix-ai/suna/pull/9648
  • fix(web): classify the Firefox dead-object external-scope error as browser noise (KRTX-522) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10016
  • fix(web): drop the spoofed WebGL getParameter Illegal-invocation noise (KRTX-2465) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10022
  • docs(learnings): the PR-evidence Review lines are bare lines; the handoff null assignee needs run_query_or_mutation by @agent-kortix in https://github.com/kortix-ai/suna/pull/10155
  • fix(gateway): trace refused requests in usage and logs (KRTX-1749) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9973
  • fix(capture): recording resumes right after sign-in when the policy check completes by @markokraemer in https://github.com/kortix-ai/suna/pull/10176
  • feat(models): DeepSeek V4.1 Flash serves the 1017 snapshot on Morph (US, ZDR) by @markokraemer in https://github.com/kortix-ai/suna/pull/10177
  • fix(web): render each locale's design-system Don't heading from its own clause (KRTX-2281) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9841
  • fix(mobile): show PDF library load failures (KRTX-2471) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10171
  • fix(whitelabel): respect persisted session sharing (KRTX-2643) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10183
  • fix(tests): clean up workflow fixture directories (KRTX-2674) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10184
  • docs(api): keep account-only gateway refusals store-only (KRTX-2631) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10179
  • fix(whitelabel): retain non-text user message parts (KRTX-2644) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10186
  • fix(starter): deny unsupported PTY workdir permission prompts (KRTX-2625) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10180
  • fix(manifest): match nonblank schema checks to validator (KRTX-2539) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10172
  • fix(web): mark SEO navbar as titlebar owner (KRTX-2282) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9870
  • fix(starter): propagate template walk errors (KRTX-2626) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10181
  • fix(whitelabel): escape upstream path control bytes (KRTX-2646) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10182
  • refactor(tests): share exit-aware git helper (KRTX-2675) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10187
  • fix(tokens): delete revoked personal keys from CLI (KRTX-2561) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10188
  • fix(web): keep the use-case toc on the section the reader is in (KRTX-2371) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10106
  • fix(session): don't present an intentional cancel as a model failure (KRTX-2572) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10109
  • KRTX-2645: Guard call-snippet clipboard copy by @agent-kortix in https://github.com/kortix-ai/suna/pull/10189
  • fix(infra): use the live staging preview origin (KRTX-2691) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10190
  • fix(web): stop double-prefixing app locales (KRTX-2595) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10185
  • fix(api): sample pre-stop abort misses as info, keep warn for unexpected failures (KRTX-2724) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10195
  • fix(cli): align billing JSON credit units with wallet (KRTX-2717) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10192
  • fix(api): env-sync stops pushing into dead boxes and stops blocking /start on the model push (KRTX-2725) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10196
  • fix(cli): resolve host and default-project identity consistently (KRTX-2701) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10193
  • fix(api): session-list poll can no longer throw a body-disturbed TypeError (KRTX-2736) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10197
  • fix(api): tolerate expected stopped-runtime states in transcript mirror and inbox reads (KRTX-2723) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10201
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10204
  • fix(api): journal and CR-merge contended responses set Retry-After inline (KRTX-2737) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10202
  • fix(api): throttle session-gate refusal warns; typed session_token_revoked body (KRTX-2369, KRTX-2728) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10205
  • fix(cli): persisted identity state survives the delegated sandbox env (KRTX-2702) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10198
  • fix(web): drop CookieYes banner.js consent-banner errors as third-party noise (KRTX-2739) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10208
  • fix: api-key lifecycle — hide revoked gateway keys, single-mint create guard, delete revoked personal keys (KRTX-2721) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10209
  • refactor(web,sdk): fold dead exports, split mega-components, localize diagram captions (KRTX-1992) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9928
  • fix(web): persist onboarding promo dismissals and stop the promo stacking on a wizard exit (KRTX-2715) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10199
  • fix(auth): email sign-in and recovery correctness (KRTX-2703) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10194
  • fix(web): name the signup confirmation email on the link step (KRTX-2195) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10203
  • fix: disclose secret intake delivery scope (KRTX-2411) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10170
  • fix(web): show the plan cap on /new before the first failed create (KRTX-2716) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10210
  • fix(session): provider failure recovery — internal continuations, one terminal error row, actionable suggestions, silent-turn clock (KRTX-2708) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10213
  • fix(api): reject agent config and model pins on an undeclared agent name (KRTX-2711) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10211
  • fix(manifest-schema): accept normalized enum values (KRTX-2538) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10173
  • fix(api): fail closed on an unknown database result shape in abandonSandboxTurn (KRTX-2771) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10215
  • fix(dev): stop owned laptop child processes on exit (KRTX-2690) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10191
  • fix(infra): capture-store tags scanner-readable — literal-keyed maps (KRTX-1649) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10217
  • test(api): restore the KRTX-470 last-opened detached-stamp enforcer deleted by #10058 by @agent-kortix in https://github.com/kortix-ai/suna/pull/10219
  • fix(api): emit build_succeeded once per provider-transition drive (KRTX-2767) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10223
  • refactor(sdk): simplify turn + attachment streaming internals (KRTX-2730) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10224
  • feat(legal): automated subprocessor notices: list, 30-day email to paid accounts, audit evidence, compliance skill by @markokraemer in https://github.com/kortix-ai/suna/pull/10216
  • fix(cli): accurate help routing — leading global flags, help topics, token usage, marketplace hints, policy help (KRTX-2710) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10221
  • refactor(tests): split and dedupe the tests-harness seams (KRTX-2666) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10226
  • fix(web): open the project shell's account menu on the signed-in identity, title the Settings dialog honestly (KRTX-2718) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10227
  • fix(web): delete the dead workspace palette row (KRTX-2587) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10225
  • fix(cli): webhook-secret 409 names the scope fix; add output signs the webhook (KRTX-2719) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10220
  • fix(web/mobile): accessible navigation targets on phone viewports (KRTX-2714) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10231
  • fix(api): lean participant roster and overlapped presence writes (KRTX-2727) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10232
  • refactor(mobile): dead surface, splits and dedupes in shared components (KRTX-2732) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10234
  • fix(connectors): sync summary agrees with the list, policy ls shows connector rules, All tab lists the project's own connectors (KRTX-2706) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10233
  • fix(api): stamp per-sandbox in-flight count on proxied request logs (KRTX-471) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10228
  • show refused auth email sends honestly and cool the link buttons down (KRTX-2704) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10206
  • feat(brand): kit.css — the UI primitives as portable k-* classes for HTML outside apps/web by @markokraemer in https://github.com/kortix-ai/suna/pull/10236
  • feat(brand): kit.css field primitives — k-input, k-field, k-check by @markokraemer in https://github.com/kortix-ai/suna/pull/10239
  • fix(tests): green the contract lanes for v0.14.2 by @markokraemer in https://github.com/kortix-ai/suna/pull/10237
  • Promote dev 894bcb1e90 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10240
  • feat(gateway): spend by source splits out workers (worker_sessions, worker_cost) by @markokraemer in https://github.com/kortix-ai/suna/pull/10241
  • docs(license): free white-label license; one requirement: Platinum as exclusive compute by @markokraemer in https://github.com/kortix-ai/suna/pull/10238
  • revert: feat(gateway): spend by source splits out workers (#10241) by @markokraemer in https://github.com/kortix-ai/suna/pull/10243
  • fix(apps): App releases take Platinum when configured; Convex images move to ghcr.io/convex by @markokraemer in https://github.com/kortix-ai/suna/pull/10244
  • fix(web): an opened App scrolls at once; its bar is Refresh, Open, Settings, Close by @markokraemer in https://github.com/kortix-ai/suna/pull/10245
  • fix(admin): Open as admin acts as the project's account by @markokraemer in https://github.com/kortix-ai/suna/pull/10246
  • fix: release-suite fallout for v0.14.2 (callback log injection, TOK-3, preview anchor) by @markokraemer in https://github.com/kortix-ai/suna/pull/10247
  • Promote dev abff5867ec to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10248
  • fix(iam): act-as may run every agent of the account it acts as by @markokraemer in https://github.com/kortix-ai/suna/pull/10249
  • fix(tests): admin-bypass retirement (#10246) and App bar (#10245) fallout by @markokraemer in https://github.com/kortix-ai/suna/pull/10251
  • Promote dev c405b5cfbd to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10252
  • Release v0.14.2 — Trigger run history, a bigger Free plan, and steadier sessions by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10242

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.14.1...v0.14.2

Read the full release on GitHub
October 17, 2026

Apps work again from older CLIs, members see only their own work, and Capture include lists

v0.14.1

New

  • Kortix Capture records only the apps and websites you include: an organization policy plus a per-computer list.
  • kortix.yaml version 3 agents can opt in to the project repository.

Fixed

  • kortix apps works again from CLI versions before 0.14.0. Since 0.14.0 every Apps command from an older CLI answered "Apps is not enabled for this project".
  • A plain member reads and sees only their own work: their own sessions, costs and directory entry. Owners and admins are unchanged.
  • The Usage cost summary no longer fails on a gateway row with an empty provider.
  • A correct two-factor code opens the app at once instead of asking again.
  • Loading older messages keeps you where you were reading.
  • A session's side panel comes back open when you return to the session.
  • Review moves under Customize. Members without the rights see no Review entry and no empty Apps row.
  • The account hub drops the floating "Back to Customize" pill.
  • Connectors drop the "User-managed" badge: a per-person connector shows ✓ or Needs setup.
  • An older agent daemon no longer receives a governance it cannot read.
  • Sales lead emails go out from production only.
  • Connector MCP sync uses a bound project secret, and adding a connector keeps kortix.yaml intact.

Under the hood

  • The session-log backfill keeps its progress in the database, so it resumes when the API leader moves and skips oversized sessions.
  • The retired project.customize.* permissions leave the catalog.
  • Model catalog refresh; staging and dev deploy fixes.

What's Changed

  • chore(release): staging VERSION → 0.14.1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10099
  • chore(release): VERSION → 0.14.1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10100
  • fix(config-releases): withhold a governance from an old daemon together with its etag by @markokraemer in https://github.com/kortix-ai/suna/pull/10104
  • Promote dev 98e2a42c46 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10105
  • fix(connectors): drop the "User-managed" badge; per-person connectors show ✓ or Needs setup by @markokraemer in https://github.com/kortix-ai/suna/pull/10108
  • fix(api): session-log backfill resumes across leaders, skips oversized sessions, survives a lease flap by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10107
  • docs(learnings): run a project's own self-checks before merging a layout move by @markokraemer in https://github.com/kortix-ai/suna/pull/10111
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10112
  • fix(iam): a plain member sees nobody else in the directory by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10113
  • fix(web): a correct two-factor code opens the app at once instead of asking again (KRTX-2641) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10114
  • Promote dev e8bff15d1e to staging by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10115
  • fix(web): loading older messages leaves the reader where they were reading (KRTX-2652) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10116
  • fix(web): the account hub drops the floating Back to Customize pill (KRTX-2653) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10117
  • fix(web): a session's side panel comes back open when you return to it (KRTX-2661) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10118
  • fix(apps): CLIs before v0.14.0 can run kortix apps again by @markokraemer in https://github.com/kortix-ai/suna/pull/10122
  • learnings: keep serving a removed response field while released clients read it by @markokraemer in https://github.com/kortix-ai/suna/pull/10123
  • fix(web): Review moves under Customize; members without rights see no Review or empty Apps row by @markokraemer in https://github.com/kortix-ai/suna/pull/10124
  • Promote dev 007ecc3961 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10126
  • fix(ci): Deploy Staging logs in to Docker Hub before it inspects the staging images by @markokraemer in https://github.com/kortix-ai/suna/pull/10128
  • fix(api): sales lead emails go out from prod only; test runs stop mailing sales by @markokraemer in https://github.com/kortix-ai/suna/pull/10129
  • Promote dev 9a4f5ce733 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10130
  • feat(manifest): kortix_version 3 agents opt in to the project repository by @markokraemer in https://github.com/kortix-ai/suna/pull/10132
  • fix(iam): a plain member reads and sees only their own work; the IAM leaf is the only gate (API, web, mobile) by @markokraemer in https://github.com/kortix-ai/suna/pull/10136
  • fix(ci): dev API sign job installs envsubst before the cosign installer by @markokraemer in https://github.com/kortix-ai/suna/pull/10137
  • feat(capture): record only included apps and websites (org policy + per computer) by @markokraemer in https://github.com/kortix-ai/suna/pull/10134
  • fix(api): Usage cost summary no longer 500s on a gateway row with an empty provider by @markokraemer in https://github.com/kortix-ai/suna/pull/10138
  • fix(tests): four red tests that blocked the v0.14.1 release suite by @markokraemer in https://github.com/kortix-ai/suna/pull/10139
  • Promote dev 46108d5487 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10140
  • docs(learnings): the 2026-10-17 leader-worker outage ended at 12:25:51Z by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10142
  • learnings: guard a third-party action's shell tools on the runner (#10137) by @markokraemer in https://github.com/kortix-ai/suna/pull/10144
  • fix(tests): i18n audit finding and secret-grant manifest bytes block v0.14.1 by @markokraemer in https://github.com/kortix-ai/suna/pull/10146
  • fix(connectors): MCP sync uses a bound project secret; connectors add keeps kortix.yaml intact by @markokraemer in https://github.com/kortix-ai/suna/pull/10145
  • fix(api): release-suite fallout of #10136 (UUID literal, six stale IAM tests) by @markokraemer in https://github.com/kortix-ai/suna/pull/10148
  • Promote dev de0641969c to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10149
  • Release v0.14.1 — Apps work again from older CLIs, plus session and access fixes by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10135

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.14.0...v0.14.1

Read the full release on GitHub
October 16, 2026

Credits plan, Enterprise features, restorable sessions and generative UI

v0.14.0

New

  • One credits plan. Every account is on Free or Credits, with top-ups on either. Balances and usage read in credits everywhere; prices you pay stay in your currency. Raising your plan applies at once; lowering it takes effect at the next renewal, with a preview before you confirm.
  • Enterprise is a feature layer. SSO, SCIM, roles and groups, audit and branding come with an Enterprise license or a self-serve demo. Trials are gone. Admins can now manage billing.
  • Restorable sessions. A deleted session can be restored for 30 days, with Undo on web and kortix sessions restore. A session that lost its computer continues on a new one from its saved conversation, including images and files.
  • Pin and archive sessions to keep your list in order.
  • Generative UI. Agents can answer with visual blocks: cards, comparisons, photo steps, product cards, maps and figures, on web and mobile.
  • Themes. Kortix palettes plus 39 interface themes, with a live preview in the command palette.
  • Kortix Apps are generally available, and open in the session browser. Add any site as an external App by its URL, framed in Kortix. The App detail sheet, menu and connect dialog are rebuilt.
  • Kortix Capture, a desktop recorder for your account, with its own area on the web.
  • MCP servers connect from their URL in one step, with one-click OAuth sign-in. New MCP and Computer settings pages.
  • kortix.yaml version 3 is available as an opt-in: the project registers skills, tools and commands, and each agent enables what it uses. New projects still start on version 2, and nothing upgrades on its own. kortix migrate converts a project when you choose to.
  • Desktop: the Dock and taskbar icon counts finished turns you have not seen, and right-click shows the platform menu.

Improved

  • Toasts and notifications are redesigned and say what happened, under the right session.
  • The Customize and Models pages are redesigned; Slack and Teams have new connect flows.
  • pi sessions: codemode is on by default, images work on the computer, and summaries and compaction are steadier.
  • A session opens on its own model on web and mobile, and returning to a session tab no longer redraws the transcript.
  • A draft keeps its attached files across a session switch and a reload; a typed follow-up keeps Send during a turn.
  • Slash commands sent mid-turn wait for the agent to finish; @file and @agent mentions reach the agent on the first message.
  • A running compaction no longer opens on a blank page; its rows sit with the turn.
  • Project members with limited access see only the Customize tabs they can manage.

Fixed

  • The first renewal after checkout is no longer skipped.
  • Only the person who prompted a run, the owner or a manager can stop it, and everyone sees who stopped it.
  • Another person prompting a private session no longer runs with their own personal accounts.
  • A deleted session's transcript, prompts and config now return not found, like the session.
  • Shared sessions render their messages the same way the session does.
  • An idle computer no longer sticks in starting after an update, and a prompt sent while a config change applies reaches the agent.
  • Large agent configs boot; database connections retry when they never establish.
  • New computer images warm up the agent runtime again, so a fresh session starts faster.
  • Many smaller fixes across web, mobile, desktop, the CLI and connectors.

What's Changed

  • feat(api): a converted session log becomes native at its first journal write (P3.3) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9790
  • fix(web): KRTX-1771 show and announce copy feedback by @agent-kortix in https://github.com/kortix-ai/suna/pull/9741
  • fix(gateway): a budget meter shows the spend the gate counts for the budget's own period, and when it resets (KRTX-1725) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9789
  • feat(sessions): a deleted session is restorable for 30 days, with Undo on web and kortix sessions restore (KRTX-1734) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9792
  • fix(auth): default the return sign-in to the email-link path (KRTX-1653) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9773
  • feat(kortixd): the boot restores a session from its log when the native store is missing or behind (P6.4) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9794
  • test(e2e): journey 49 reads the new account back after the API answers by @markokraemer in https://github.com/kortix-ai/suna/pull/9795
  • refactor(web): keep turn bookkeeping exports private (KRTX-1709) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9732
  • feat(sdk): pi sessions read the session log (v2) like OpenCode ones (P5.2d) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9797
  • test(deps): verify the CodeMirror singleton pin holds on dev (KRTX-1650) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9763
  • test(config-releases): CFG-16 expects the snapshot or a git fetch, never the checkout by @markokraemer in https://github.com/kortix-ai/suna/pull/9799
  • feat(web): redesign the Customize pages and the Models page tabs by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9801
  • fix(kortixd): a relaunched daemon reaps the OpenCode a killed daemon left on its port (P2.9) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9802
  • fix(web): dev's test suite is green again (audit route list, 2 hardcoded strings, 5 ja/zh plurals) by @markokraemer in https://github.com/kortix-ai/suna/pull/9803
  • fix(session): the opened "Worked for" fold reads like the agent's narration, one named line per run of work by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9774
  • docs(learnings): strip credentials before an agent saves an API response by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9805
  • test: session-log tests run on v2 data; no web host file imports a v1 session type (P5.7) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9809
  • test(kortixd): adapters declare tested harness versions; a guard fails on an unvetted bump (P6.5) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9810
  • test(config-releases): CFG-16's second release may come from a git fetch too by @markokraemer in https://github.com/kortix-ai/suna/pull/9812
  • fix(api): surface Slack file-download failures and retry transient ones (KRTX-1658) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9787
  • feat(web): a tool from another harness renders by its session-log kind (P5.3) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9815
  • fix(auth): persist sign-in email failures (KRTX-1689) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9711
  • KRTX-2199: Keep demo qualifier on failed submission by @agent-kortix in https://github.com/kortix-ai/suna/pull/9710
  • fix(cli): store the sessions new --prompt verbatim; ship the worker contract as initial_context (KRTX-1547) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9618
  • fix(web): the 404 page owns its document title during client-side navigation (KRTX-1767) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9798
  • fix(kortixd): scrape_webpage waits out Firecrawl's timeout envelope; slow scrapes no longer fail at 35s (KRTX-2073) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9816
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9820
  • fix(members): one offboarding sequence revokes a leaver's computer accounts and pauses their reminders (KRTX-1722) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9793
  • fix(secrets): a stored value Kortix cannot decrypt reads as undecryptable everywhere, with its remedy (KRTX-1719) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9821
  • fix(api): wake retries a host-saturated Platinum start instead of parking the session by @markokraemer in https://github.com/kortix-ai/suna/pull/9823
  • fix(release): promote approves the release PR's own gate run; rerun-once covers an approved attempt 2 by @markokraemer in https://github.com/kortix-ai/suna/pull/9824
  • chore(release): VERSION → 0.13.58 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9826
  • chore(release): staging VERSION → 0.13.58 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9827
  • docs(learnings): watch admin-grant-funded enterprise account balance before zero by @markokraemer in https://github.com/kortix-ai/suna/pull/9829
  • fix(api): suppress the daemon not-ready 503 on the session-abort completion line (KRTX-2277) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9822
  • fix(approvals): Approve and Deny show only to a viewer who can resolve the call; others see who decides (KRTX-1724) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9825
  • fix(self-host): an auto-confirmed email is unproven: no invite claim, SCIM match or add-by-email (KRTX-1715) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9828
  • fix(sessions): a turn cut short by a provider stop or a runtime restart gets its work back exactly once (KRTX-1732) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9830
  • test(e2e): journey 30 seeds ChatGPT logins the local API can decrypt (KRTX-1719) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9833
  • test(e2e): dev green again — journeys follow the provider sheet, named work lines, send-code and undecryptable secrets by @markokraemer in https://github.com/kortix-ai/suna/pull/9832
  • fix(web): sandbox empty-state New opens create mode, not stale edit (KRTX-2176) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9673
  • feat(web): the transcript shows a partial restore, a harness switch, hidden messages and full texts (P5.6) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9835
  • fix(kortixd): pi session log carries reasoning tokens, titles and a child context time; a manual compaction reaches the log at once (P2.10, P2.12) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9836
  • fix(api): memoize the session-list poll ETag — a poll burst no longer queues its own DB ops (KRTX-468) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9506
  • perf(connectors): read the projects and connectors rows once per /call (KRTX-2050) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9482
  • Stopped session no longer dead-ends: the tab wakes it when the human returns by @agent-kortix in https://github.com/kortix-ai/suna/pull/9682
  • fix(web): step-up dialog — add Set up authenticator for members with no second factor by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9838
  • refactor(web): review polish for KRTX-1587 Send now by @agent-kortix in https://github.com/kortix-ai/suna/pull/9677
  • fix(sessions): a session list page holds only sessions its viewer may open, and a delete keeps the list order (KRTX-2316) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9837
  • fix(sessions): a session id is read by id: GET /v1/sessions/:id, and the SDK and mobile use it (KRTX-2316) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9839
  • fix(review): the review counters read GET /review/summary, and the inbox and change-request lists are paged (KRTX-2316) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9842
  • docs(agents): web tsc baseline is 103 errors on dev; the bar is relative to dev by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9844
  • feat(genui): generative UI blocks for agent answers on web and mobile by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9502
  • feat(sessions): remove stateless sessions, boot modes and persistent machines by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9846
  • docs(learnings): keep a withdrawn field in a strict request schema as an inert key by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9847
  • fix(deps): regenerate pnpm-lock.yaml so frozen installs pass again by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9849
  • fix(web): localize the session filter menu's Teams section row (KRTX-2175) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9653
  • feat(api): the retention purge treats an account closure the deletion worker left open as the end of the subscription (D6b) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9850
  • feat(api): the API image runs Bun 1.4.3, the Bun of the test lanes by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9848
  • perf(tests): flows stop waiting on the 60 s git mirror; kortixd tests run 4 at a time by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9852
  • fix(web): refuse read-only SQLite mutations before they execute (KRTX-2229) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9818
  • feat(kortixd): pi drops another model's reasoning from requests and summaries; restore keeps same-model reasoning (P7.3, P7.2) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9855
  • chore: block two competitor names in commits; delete a dead comparison icon by @markokraemer in https://github.com/kortix-ai/suna/pull/9857
  • fix(sdk): session-log types copy carries P7.3's reasoning comment (drift test red on dev) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9858
  • docs(learnings): an api-contract session-log edit runs the SDK session-log tests by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9860
  • feat(session-log): switch preflight reports what a harness switch loses; kortixd keeps harness history across a switch (P7.1) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9862
  • fix(web): a file dropped outside a drop zone no longer replaces the page by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9863
  • fix(sessions): an app restart and a Sessions page reload show the kept session lists at once (KRTX-261) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9864
  • fix(sessions): a session open reads its saved history once, on web and mobile (KRTX-189) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9865
  • fix(kortixd): a release whose bun.lock is older than the image's cache still installs its tool deps by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9869
  • fix(cli): resolve named host identity for accounts (KRTX-2289) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9866
  • feat(manifest): agents..workspace.project_repository decides the session checkout by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9872
  • feat(starter): the starter kortix.yaml shows agents..workspace by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9873
  • perf(config-releases): build each base tip's release on push; pi boots from S3 with no API call by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9874
  • feat(mobile): the mobile session thread renders the session log; SDK block readers and v2 paging order (P5.4) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9875
  • chore(terraform): move the DCF-99 backup plan to eu-west-2; drop the us-west-2 state leftovers by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9871
  • fix(terraform): let the account delete the backup key alias and cancel its deletion by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9876
  • perf(config-releases): one upstream tip check per project per interval, shared by every box by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9880
  • fix(web): /settings/api-keys opens the Personal access keys tab (KRTX-2291) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9878
  • feat(web): ⌘V outside a text field pastes into the composer by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9881
  • fix(apps): volumes tell the truth and a database never splits on scale by @markokraemer in https://github.com/kortix-ai/suna/pull/9883
  • fix(web): account settings and the confirm dialog's default buttons speak the viewer's language (KRTX-2326, KRTX-2327) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9882
  • fix(web,sdk,cli,mobile): session-log P5 follow-ups: sub-agent loads, earlier-messages control, full-text plan, CLI provisional under ext by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9887
  • perf(kortixd): pi loads a release's ./ extensions by native import, not jiti by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9888
  • fix(cli): preserve the origin in logout recovery hints (KRTX-2323) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9879
  • feat(kortixd): pi 1.2.0; summaries drop reasoning upstream, 3 more provider errors retry by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9890
  • feat(llm-gateway): the gateway image runs Bun 1.4.3, the Bun of the test lanes by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9891
  • fix(session-log): answer 429 when another batch holds the session's lock, not a 25 s wait (KRTX-2344) by @markokraemer in https://github.com/kortix-ai/suna/pull/9892
  • docs(learnings): never let a request wait on a lock an abandoned request may hold (KRTX-2344) by @markokraemer in https://github.com/kortix-ai/suna/pull/9893
  • fix(cli): use saved default for unlinked ship (KRTX-2324) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9886
  • fix(pi): a new message dismisses an open question, so no session wedges behind it by @markokraemer in https://github.com/kortix-ai/suna/pull/9900
  • fix(web,sdk): zero the prod frontend Better Stack error groups by @markokraemer in https://github.com/kortix-ai/suna/pull/9901
  • feat(web): link pages on the auth frame, share page redesign, mobile app intro, Terms on /legal, toolbar button groups by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9903
  • fix(api): a compaction marks its /summarize turn durable on both harnesses (P2.11) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9905
  • feat(web): interface themes — Kortix palettes plus 39 terminal themes, product routes only by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9904
  • fix(api): release a trigger session's question at once; nobody can answer it by @markokraemer in https://github.com/kortix-ai/suna/pull/9908
  • fix(config-releases): an agent without the project repository loads its project tools by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9909
  • fix(sdk,web,cli): context modal no longer crashes with 20+ sub-agents; rows load in view; CLI prints failed-call errors by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9910
  • fix(auth): KRTX-2337 return 429 for rate-limited send-code by @agent-kortix in https://github.com/kortix-ai/suna/pull/9885
  • fix(api,kortixd): an idle box no longer sits in starting after a daemon deploy; the tick stops racing its own swap by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9907
  • fix(kortixd): no tool-load warning while no project tree is served; learnings entry for #9909 by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9913
  • feat(kortixd,api): session-log restore keeps tool-input key order, stops context-record growth, and imports OpenCode threads at once (P6 follow-ups) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9917
  • fix(api): a failed regional template copy boots the session in the home region by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9916
  • feat(billing): credits-only — one credits plan from $50, top-up bonus, 5.5% model fee, no legacy plans by @markokraemer in https://github.com/kortix-ai/suna/pull/9814
  • feat(capture): Kortix Capture — account-tenant platform, Capture Intelligence (episodes, workflows, skills), data API, web area, desktop service by @markokraemer in https://github.com/kortix-ai/suna/pull/9008
  • fix(auth): bound reset-link requests and keep send errors visible (KRTX-2251) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9877
  • fix(tests): attest only the source the run started on by @markokraemer in https://github.com/kortix-ai/suna/pull/9931
  • feat(billing): one plan system — Enterprise contracts, dated trials, admins manage billing by @markokraemer in https://github.com/kortix-ai/suna/pull/9930
  • fix(db): backfill-safe sign-off on the billing data migration; migration lint in the packages lane by @markokraemer in https://github.com/kortix-ai/suna/pull/9932
  • fix(sdk): dedupe permission replies and answer the runtime's already-answered 404 (KRTX-2190) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9933
  • fix(api): report ready Automatic sandbox health (KRTX-2346) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9895
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9936
  • fix(web): resolve workspace document file links against the document's directory (KRTX-2226) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9819
  • fix(web): treat WebKit masked-extension URLs as browser-extension noise (KRTX-1828) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9911
  • test(e2e): journeys close the mobile-app promo and get Enterprise from a trial (dev browser lanes red since #9903 and #9930) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9937
  • fix(web): the SSO edit dialog keeps what the admin typed when the provider refetches (KRTX-2401) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9938
  • fix(web): the sandboxes migrations hint is translated and plural-aware; the debug tools page drops a dead toggle (KRTX-2383, KRTX-2384) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9939
  • fix(web): audit quick filters work in every language, and the secret titles are translated (KRTX-2399, KRTX-2400) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9940
  • fix(connectors): give shellless agents the legacy connector tools (KRTX-2354) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9902
  • fix(gateway): a gateway API key records a used-up shared ChatGPT account (KRTX-2417) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9941
  • fix(web): KRTX-2284 guard stale game-of-life logo loads by @agent-kortix in https://github.com/kortix-ai/suna/pull/9861
  • feat(sessions): pin a session to the top or archive it out of your list (KRTX-2418) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9942
  • fix(teams): drop the "Task complete" title from finished reply cards by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9944
  • fix(sdk,web,api): every sub-agent row in session usage reads its runtime messages; one turn's sub-agents are all saved by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9943
  • fix(web): parseListing trims trailing slashes in linear time; fallback test strips tags without a regex (CodeQL) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9947
  • Promote dev fbc93ddda2 to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/9945
  • fix(tests): shard table lists 52-session-pin-archive; drop 3 unused symbols CodeQL flagged by @markokraemer in https://github.com/kortix-ai/suna/pull/9950
  • feat(sessions): continue a lost session on a new computer from its saved conversation (KRTX-2419) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9949
  • Promote dev fbc93ddda2 + CodeQL fix to staging by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9948
  • fix(billing): KRTX-2405 remove Link phone gate from hosted Checkout by @agent-kortix in https://github.com/kortix-ai/suna/pull/9946
  • fix(tests): two release-gate flows hold on deployed staging (SESS-51, SESS-24) by @markokraemer in https://github.com/kortix-ai/suna/pull/9954
  • hotfix(tests): SESS-51 expects the removal-pending 409 only on the local profile by @markokraemer in https://github.com/kortix-ai/suna/pull/9953
  • fix(apps): full-window app previews (KRTX-2357) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9952
  • feat(apps): Apps is generally available — remove the apps feature-flag gate (KRTX-2355) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9934
  • fix(sessions): only the prompter, owner or a manager can stop a run, and everyone sees who stopped it by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9956
  • fix(web): a signed-out session stops rendering protected pages (KRTX-2387) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9955
  • docs(learnings): guard a provider-unreachable flow step on the local target by @markokraemer in https://github.com/kortix-ai/suna/pull/9957
  • feat(web,mobile): redesign toasts, session and trigger notifications by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9961
  • fix(web): Skip for now closes the onboarding wizard, and the mobile app promo waits for onboarding (KRTX-2378, KRTX-2396) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9963
  • fix(worktree): search past busy slots and never reuse a registered slot by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9965
  • fix(tests): repair the two apps/api unit files #9949 turned red (KRTX-2429) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9964
  • feat(web): rebuild the App detail sheet, menu, connect dialog and machines by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9966
  • fix(api): a deleted session's transcript, prompts and config read 404, as the session does (KRTX-2275) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9967
  • feat(pi): codemode on by default; a script's tool calls pass the permission policy by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9958
  • fix(billing): no Most popular badge on the credit tiers by @markokraemer in https://github.com/kortix-ai/suna/pull/9969
  • fix(web): forced billing refreshes debounce per QueryClient and account, so one account no longer cancels another's (KRTX-2414) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9970
  • test(e2e): journey 27 picks the theme from the Appearance combobox (#9904) by @markokraemer in https://github.com/kortix-ai/suna/pull/9971
  • fix(web): session toasts say what happened, under the right session by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9976
  • fix(tests): journeys 40, 34, 30 and 23 follow the shipped session and share behavior by @markokraemer in https://github.com/kortix-ai/suna/pull/9975
  • feat(billing): Enterprise is a feature layer — a trial lends features, not the plan by @markokraemer in https://github.com/kortix-ai/suna/pull/9978
  • fix(kortixd,api): a prompt sent during a config convergence reaches the live OpenCode; a provider-edge refusal is retried by @markokraemer in https://github.com/kortix-ai/suna/pull/9980
  • feat(session-log): the journal stores attachment bytes, so a restore on a fresh box keeps images and files (P2.13) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9977
  • feat(web): Slack and Teams connect heroes, BYO wizards, avatar and checkbox refresh by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9982
  • feat(genui): visual answers with photo steps, product cards, maps, and figures by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9962
  • feat(billing): BYOK fee — first $1,000/month of list-price usage free, then 5% by @markokraemer in https://github.com/kortix-ai/suna/pull/9984
  • feat(api): dev turns session_log_restore on for every project; a deployment default decides it by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9986
  • feat(billing): BYOK fee is an entitlement, on by default, switchable per account by @markokraemer in https://github.com/kortix-ai/suna/pull/9987
  • fix(api,kortixd): a compiled agent config over 128 KiB boots, and no daemon is handed one it cannot hold by @markokraemer in https://github.com/kortix-ai/suna/pull/9988
  • fix(tests,web,mobile): green dev — pricing smoke, spec 26 fee, Capture fixture, i18n audit, codemode coverage by @markokraemer in https://github.com/kortix-ai/suna/pull/9983
  • fix(connectors): classify transient Composio provider failures as a retryable 503 (KRTX-2424) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9991
  • feat(web): MCP and Computer settings pages by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9992
  • fix(web): paste tiles render for blank-line pastes, trim, matched Copy; queued row actions menu by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9993
  • refactor(billing): Enterprise is a feature layer (off | demo | licensed); trials removed by @markokraemer in https://github.com/kortix-ai/suna/pull/9999
  • fix(mobile): sync the Teams mark's fill form with the refreshed web icon (KRTX-2454) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9994
  • feat(manifest): kortix.yaml v3 is canonical: the project registers, each agent enables by @markokraemer in https://github.com/kortix-ai/suna/pull/10000
  • fix(kortixd): an OpenCode v3 session whose agent its ref does not declare runs default_agent by @markokraemer in https://github.com/kortix-ai/suna/pull/10002
  • fix(cli): kortix migrate converts split manifests, folder-only agents and the whole harness folder by @markokraemer in https://github.com/kortix-ai/suna/pull/10003
  • docs(learnings): prove a harness config change in a real session on both harnesses by @markokraemer in https://github.com/kortix-ai/suna/pull/10004
  • feat(billing): credits everywhere for what you hold or spend; instant upgrade, scheduled downgrade with preview; fix skipped first renewal by @markokraemer in https://github.com/kortix-ai/suna/pull/10007
  • fix(web): route the two hardcoded UI strings through the i18n catalog (KRTX-2430) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9974
  • fix(cli): show the gateway URL when minting or listing gateway keys (KRTX-1750) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9990
  • chore(web): align the checkbox disabled cursor reason with the file's own wording (KRTX-2455) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10006
  • test(shared): make the codemode fixture's denied-call error match the sandbox (KRTX-2449) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9989
  • docs(web): anchor the KRTX-2292 iOS WebView stack-overflow fingerprints on the noise rule (KRTX-2292) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9919
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10011
  • test(sdk): sweep the script family's failure phrasing too (KRTX-2450) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9998
  • perf(api): memoize share-subject + app access-grant reads per request (KRTX-2341) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10001
  • test: attest the green packages lane at dev (KRTX-2456; hero snapshot fix landed via #9974) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9996
  • fix(api): classify an in-flight sandbox state transition as a typed 409, not a 500 (KRTX-2028) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9920
  • fix(llm-gateway): drop gpt-5.5 from the Codex lineup (KRTX-2445) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9981
  • fix(web): map the session-log blob routes in the audit route registry (KRTX-2457) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10005
  • test(apps): pin OR semantics of multi-group App access (KRTX-2352) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9923
  • fix(api): another person prompting a private session no longer runs with their own personal accounts (KRTX-2517) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10012
  • fix(connectors): one Slack entry across install paths (KRTX-2353) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9921
  • fix(api): answer a non-uuid review item id like a miss, not a 500 (KRTX-2442) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10013
  • feat(desktop): count finished turns you have not seen on the Dock and taskbar icon (KRTX-2520) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10015
  • fix(web): stop settings:computer palette row from answering "apps" (KRTX-2475) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10010
  • fix: export the conversation of a sleeping session from its saved copy (KRTX-2525) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10021
  • fix(sdk,web): announce a turn that ends after you leave its session page (KRTX-2524) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10020
  • fix(db): guard postgres.js nextWrite against a socket closed mid-write (KRTX-2511) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10019
  • KRTX-2026: db lane grants session_replication_role to postgres at lane start by @agent-kortix in https://github.com/kortix-ai/suna/pull/10017
  • fix(web): theme picker announces the applied theme, neutral check-your-email copy, German shortcut term, project settings URL (KRTX-2468, KRTX-2516, KRTX-2470, KRTX-2491) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10025
  • fix(db): retry a statement whose connection never established (KRTX-2510) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10023
  • fix(api): purge a project's connector rows when the project is purged (KRTX-1907) by @agent-kortix in https://github.com/kortix-ai/suna/pull/10018
  • feat(web): preview a theme while it is highlighted in the command palette by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10027
  • fix(sdk): returning to a session tab no longer re-reads and redraws the transcript (KRTX-2541) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10028
  • fix(web): hold a slash command sent mid-turn and run it when the agent finishes (KRTX-2464) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10029
  • feat(web): add the Jellybeans Light theme and keep the user bubble visible on light themes by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10031
  • fix(test): refuse a suite-wide pnpm test on a developer Mac by @markokraemer in https://github.com/kortix-ai/suna/pull/10032
  • fix(web): CSV viewer download uses the viewer's file name (KRTX-2230) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9840
  • fix(manifest): make kortix.yaml v3 opt-in again; new projects start on v2, no v3 upgrade offer by @markokraemer in https://github.com/kortix-ai/suna/pull/10034
  • fix(web): /download/capture never redirects to the internal host; dev serves the dev channel by @markokraemer in https://github.com/kortix-ai/suna/pull/10035
  • fix(web): an unresolved command chip can no longer carry attachments out as a prompt (KRTX-1903) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9995
  • fix(kortixd): pi relays the /summarize turn under its compaction id; the id-less durable rule goes by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10033
  • fix(web): cancel game-of-life resize on unmount (KRTX-2280) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9854
  • fix(web): add an MCP server from its URL in one step, Only you by default (KRTX-2185) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10039
  • fix(llm-gateway): move a stale ChatGPT default off a model ChatGPT refuses by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10040
  • feat(sessions): /workspace on a Platinum volume behind the workspace_volume flag by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10047
  • fix: clear the staging promotion scanners (gitleaks, Trivy, squawk, Checkov, Drata, CodeQL) by @markokraemer in https://github.com/kortix-ai/suna/pull/10042
  • feat(session-log): cap the restore at 24 MiB; over it the box boots with the D3 note alone by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10043
  • fix(web): @file and @agent mentions reach the agent on a chat's first message and in slash commands (KRTX-2553) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10049
  • fix(tests): e2e Enterprise fixture uses the demo; Apps specs drop the retired flag gate by @markokraemer in https://github.com/kortix-ai/suna/pull/10038
  • fix(desktop): right-click shows the platform menu: spelling, edit, link and image (KRTX-2555) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10051
  • fix(kortixd): pi sees images on a box (embedded photon wasm, prompt images inline) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10048
  • test(ci): packages lane 18.5 -> 6.9 min: four parallel lanes, no real-clock waits in unit tests, balanced shards by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10054
  • fix(web): mobile app intro shows the current App Store shot and the official store badges by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10055
  • fix(share): render a shared session's messages as the session does by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10052
  • fix(sessions): web and mobile open a session on its own model by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10056
  • fix(web): a typed follow-up keeps Send during a turn, and one bad file no longer blocks a drop (KRTX-2556, KRTX-2557) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10057
  • Testing reset: one tree, one run — no Tests on push to dev, no attestations, 9 money-path browser specs, 220 low-value test files deleted by @markokraemer in https://github.com/kortix-ai/suna/pull/10058
  • fix(connectors): MCP OAuth sign-in completes (Basic auth sends no body client_id); hide the empty shared account; no 404 toast on remove (KRTX-2185) by @markokraemer in https://github.com/kortix-ai/suna/pull/10053
  • feat(web): open Kortix Apps in the session browser (KRTX-2441) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10045
  • docs(project): v3 slash commands are declared in kortix.yaml and enabled per agent by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10060
  • fix(web): config fallback chip shows an amber badge, a two-step timeline and the full error by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10062
  • test(api): session-log blob slot tests hold Storage instead of a fixed delay by @markokraemer in https://github.com/kortix-ai/suna/pull/10037
  • fix(sdk): a new session no longer shows under Pinned in the sidebar by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10059
  • fix(web): a draft keeps its attached files across a session switch and a reload by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10064
  • fix(api): a lost session's /start answers from the row instead of re-checking the provider every call (KRTX-2566) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/10066
  • fix(sdk): a compaction inside a turn renders where it happened, not at the bottom by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10067
  • fix: staging gate round 2 — v2 starter fallout of #10034 (image warm-up), i18n order, React Compiler test lint, hot-path capture race by @markokraemer in https://github.com/kortix-ai/suna/pull/10050
  • fix(api): stop re-reporting an already-parked lost runtime on every /start poll by @agent-kortix in https://github.com/kortix-ai/suna/pull/10070
  • fix(web): limited project members see only the Customize tabs they can manage by @sutharjay1 in https://github.com/kortix-ai/suna/pull/10068
  • fix(web): a running compaction no longer opens on a blank page; its rows sit with the turn by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10072
  • revert(tools): remove the MCP-era connector meta-tools; connectors are the kortix CLI only by @markokraemer in https://github.com/kortix-ai/suna/pull/10073
  • ci(capture): sign and notarize the macOS pkg; stable refuses an unsigned one by @markokraemer in https://github.com/kortix-ai/suna/pull/10074
  • Promote dev 802123a7bf to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/10069
  • Test latency: one Promote dispatch, one release suite as the only gate; tsgo, pnpm check, Mac guard, faster CodeQL by @markokraemer in https://github.com/kortix-ai/suna/pull/10075
  • Promote dev c28c0c9726 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10076
  • feat(capture): compile in the update signing public key by @markokraemer in https://github.com/kortix-ai/suna/pull/10077
  • feat(connectors): Install uses the app's own MCP server when sign-in is one click; CLI OAuth callback says Connected (KRTX-2185) by @markokraemer in https://github.com/kortix-ai/suna/pull/10078
  • revert(sessions): remove /workspace on a Platinum volume (#10047) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/10079
  • fix(ci): Promote finds the Deploy Staging run; find_run's optional sha no longer trips set -u by @markokraemer in https://github.com/kortix-ai/suna/pull/10080
  • Promote dev 550441d62f to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10081
  • feat(capture): choose the Kortix API address in the app by @markokraemer in https://github.com/kortix-ai/suna/pull/10082
  • Dev green: fix the last red tests, fake clocks, no quarantine, staging App origin, mcp-sign-in-check audit label by @markokraemer in https://github.com/kortix-ai/suna/pull/10084
  • docs(audit): regenerate the audit action reference (mcp_sign_in.check) by @markokraemer in https://github.com/kortix-ai/suna/pull/10085
  • Promote dev 3771bb37e4 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10086
  • fix(manifest): a v2 manifest with imports keeps skills, commands and extensions out of the merge by @markokraemer in https://github.com/kortix-ai/suna/pull/10087
  • fix(permissions): the most specific rule wins on both harnesses, whatever the key order by @markokraemer in https://github.com/kortix-ai/suna/pull/10089
  • feat(apps): external Apps — add any site by URL, framed in Kortix by @markokraemer in https://github.com/kortix-ai/suna/pull/10090
  • docs(learnings): gate every new manifest key on kortix_version (near-miss #10087) by @markokraemer in https://github.com/kortix-ai/suna/pull/10091
  • fix(tests): billing journey drives the credits tier dropdown, not the retired preset radiogroup by @markokraemer in https://github.com/kortix-ai/suna/pull/10092
  • Promote dev 3619f16275 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10093
  • fix: clear the v0.14.0 release gate — kortixd bundles permission-rules, spec flow-id parse, billing subscribe on the ladder, connector Settings tab scope by @markokraemer in https://github.com/kortix-ai/suna/pull/10094
  • Promote dev 39d8f39cb0 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10095
  • fix(tests): billing journey reads Renews for an active plan and tops up a current preset by @markokraemer in https://github.com/kortix-ai/suna/pull/10096
  • Promote dev 403b502060 to staging by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10097
  • Release v0.14.0 — Credits plan, Enterprise features, restorable sessions and generative UI by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/10083

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.57...v0.14.0

Read the full release on GitHub
October 14, 2026

Big folders in Files, a sidebar you arrange, and redesigned account settings

v0.13.57

New

  • Files handles big folders. A folder with thousands of files loads in pages with Load more, and Find a file now searches file contents as well as names.
  • Arrange your project sidebar. Choose and order the items in the project sidebar. The layout is saved on your account, so it follows you to every browser.
  • Send now on queued messages. Each message waiting in the queue has its own Send now, so you can push one ahead without clearing the rest.
  • Know how long your sandbox stays on. The composer tells you how long the sandbox stays running while you are in the session.
  • Mobile settings drill down into each section, and a mobile invitee lands directly in the project they were invited to.
  • Backend cards show a live preview of their Dashboard tab.
  • Quick Entry on desktop. Start a session from any app with a global shortcut.
  • Spreadsheet previews in the Repo page, read straight from git.
  • Redesigned account settings. Sections are grouped under General, Access and Billing; inviting, granting access, creating tokens and registering apps open in a side sheet next to the page; new avatars.

Improved

  • An agent's question docked on the composer collapses to one line, so it no longer covers the conversation.
  • The reminders calendar stays readable on busy projects.
  • Sidebar, settings and count badges are more consistent across web and mobile.
  • Long Slack turns are no longer stopped at 30 minutes.
  • Sending a prompt is faster: it no longer waits for config updates, environment loading or model catalog repair to finish first.
  • Warm sessions no longer appear in the sidebar list.
  • A session whose agent asked you a question shows Needs you until you answer, and the question closes when the wait ends.
  • A plain member sees only the members and groups they share access with.
  • Web and mobile show only the trigger, review, settings and top-up controls your role allows.
  • A connector whose first sync fails or needs a sign-in opens on its page with the next step ready.
  • Content of a deleted session is now removed 30 days after the deletion, and its files 7 days after that.
  • Groundwork for the new session history: long session texts are stored as attachments, and tool results render from the new session log where it is turned on.
  • Sandboxes and CI run Bun 1.4.3.

Fixed

  • A personal access token can now approve gated connector calls.
  • Changing only the expiry of someone's account access now saves.
  • An App whose machine failed to start recovers on its own the next time it wakes.
  • A failed autosave on repository settings or a workspace rename no longer retries forever.
  • Web Push and the inbox follow the same MFA rule as the rest of your access.
  • On mobile, the drawer closes as soon as you navigate.
  • The Files New menu offers only actions that work, and sharing never suggests yourself.
  • Turning Volumes on never makes an organization stateless, and every server agrees on the Volumes setting right after a change.
  • A pi project's local ./ package loads from the config release and restarts pi when it changes.
  • Malformed account IDs and stray characters in session logs return a clear 4xx error instead of a server error.
  • The composer's stacked layers line up at full width.
  • kortix sessions wait-for exits non-zero when the turn fails, and the CLI prints a preview URL on the host the deployment serves.
  • A prompt sent without an agent runs under the session's agent.
  • An App can give its readers access to the Apps it uses, and the App header shows which App you are in.
  • SSO-only workspaces end the sign-ins they refuse and refuse personal access tokens; mobile sends an SSO-enforced email to SSO.
  • Deleting an account stays blocked when its status check fails.
  • Session screens show their labels in your language.
  • Starting, restarting and repairing a session's box no longer race each other.
  • Apps with volumes deploy without naming a provider, and account commands follow the project link.
  • Logging out of the CLI keeps the registered host, and kortix connectors confirms a revocation before it reports success.
  • Volumes and Stateless sessions are per-project settings.
  • Mobile session lists keep loading past empty pages, and the audit log's Session filter accepts a pasted id.
  • The agent tunnel records that it is offline even when it is stopped right after starting.

Behind the scenes

  • Every merge to dev now runs the full test suite, and releases promote only a tested commit.
  • Database migrations commit one file at a time, which removes the deadlock that stalled the v0.13.54 deploy.
  • Each Terraform environment keeps its state in its own region, and the security alert hub moved to eu-west-2.
  • Unused infrastructure stacks were removed.
  • Security fixes from an external penetration test, and row-level security on every internal table.
  • Staging now runs on the same infrastructure shape as production, so release checks see what production sees.

What's Changed

  • docs(learnings): a per-build provider template needs a bounded reaper, not a predecessor prune by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9617
  • fix(cli): sessions wait-for exits non-zero on a failed turn (KRTX-1560) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9616
  • feat(api): session-log text over 256 kB lives in session-attachments (P2.3) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9622
  • fix(db): migrate up commits each migration file on its own (v0.13.54 prod deploy deadlock) by @markokraemer in https://github.com/kortix-ai/suna/pull/9627
  • feat(web): tool renderers read session-log blocks; the SDK serves a fromV1 view when v2 is off (P5.1) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9628
  • test(e2e): journey 23 reads the proposed account name at Continue by @markokraemer in https://github.com/kortix-ai/suna/pull/9629
  • fix(boot-mode): Volumes on never makes an organization stateless by @allenabraham999 in https://github.com/kortix-ai/suna/pull/9621
  • fix(files): New menu offers only what works; sharing never lists yourself by @allenabraham999 in https://github.com/kortix-ai/suna/pull/9630
  • fix(web): close the mobile drawer when the navigation commits (KRTX-1591) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9623
  • feat(api): name pool-queue saturation on the slow completion line (KRTX-1571) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9633
  • fix(volumes): every API instance agrees on the Volumes policy right after a flip by @allenabraham999 in https://github.com/kortix-ai/suna/pull/9635
  • refactor(api): split http-broker.ts into errors, substitution, gate and transport (KRTX-1594) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9631
  • fix(infra): prod API keeps the live 200%/100% rolling overlap; AWS refuses maximum_percent <= 100 with AZ rebalancing on by @markokraemer in https://github.com/kortix-ai/suna/pull/9636
  • refactor(channels): split install-store into per-platform install modules (KRTX-1593) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9638
  • chore(release): staging VERSION → 0.13.57 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9640
  • chore(release): VERSION → 0.13.57 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9641
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9642
  • test(api): seed the volumes policy row the drive routes read fresh (KRTX-2165) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9643
  • test(web): pin the drawer docs link's deliberate document load (KRTX-1592) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9632
  • test(api): interleave the session-log-blobs perf reads so both p50s share machine conditions (KRTX-2158) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9639
  • refactor(api): flatten openUpstream into framing, write and response helpers (KRTX-1597) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9647
  • fix(notifications): Web Push and the inbox follow the access MFA rule; super admins pass it (KRTX-1742) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9650
  • fix(session-log): live puts keep each open call's v1 residual; kortixd puts on a tool status or metadata-key change (P4.7) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9658
  • feat(api): the transcript capture also writes the session log for a box without a journal (P2.7) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9659
  • fix(web): load the en catalog from the app bundle, no network round-trip (KRTX-1614) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9654
  • fix(api): split missing-header and non-Bearer-scheme 401s (KRTX-2168) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9651
  • fix(api): the journal marker needs content; the v1 window serves the mirror when the log is behind it (P2.7b) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9661
  • fix(web): failed autosave no longer refires forever on repo settings and workspace rename (KRTX-2156) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9657
  • fix(apps): a machine whose box failed to start is recovered in place on wake by @markokraemer in https://github.com/kortix-ai/suna/pull/9663
  • chore(infra): remove the destroyed us-west-2 dev and staging stacks by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9664
  • feat(session): collapse the docked agent question to one line (KRTX-2182) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9666
  • fix(web): composer stack layers are full width and square under a visible strip by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9669
  • feat(web): per-row Send now on queued chat messages (KRTX-1587) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9662
  • feat(web): customizable project sidebar nav by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9671
  • fix(api): sanitize lone UTF-16 surrogates out of session-log journal batches; malformed account ids answer 4xx, never 500 (KRTX-211) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9670
  • feat(web): a backend card shows its Dashboard tab's live preview by @markokraemer in https://github.com/kortix-ai/suna/pull/9672
  • feat(sessions): the composer says how long the sandbox stays on while you are here (KRTX-1729) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9674
  • chore(infra): remove the abandoned us-east-2 prod shadow by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9675
  • feat(api): retention purge for the session log, the v1 mirror and session-attachments (P2.8) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9676
  • feat(web): calm the reminders calendar on busy projects by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9667
  • feat(files): big folders load in pages with Load more, and Find a file searches contents (KRTX-1723) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9678
  • fix(web): remove the confetti from the project home heading by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9679
  • chore(infra): move the security alert hub from us-west-2 to eu-west-2 by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9680
  • fix(api): long Slack turns are no longer aborted at 30 minutes by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9681
  • fix(pi): a ./ pi package loads from the config release and restarts pi when it changes by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9684
  • feat(infra): eu-west-2 Terraform state bucket (step 1 of the per-region state move) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9685
  • feat(web): sidebar, settings and count polish; settings drill-down on mobile by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9687
  • feat(invites): a mobile invitee lands in the invited project, and every host lands through one SDK rule (KRTX-1731) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9688
  • fix(web): the sidebar layout is saved on the account, not only in the browser by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9689
  • feat(infra): every Terraform root keeps its state in its own region (step 2 of the per-region state move) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9693
  • chore(infra): commit the state-move scripts; the release flow runs them once for staging and prod by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9696
  • feat(sdk): block turn layer over the session log; fromV1 live mode keeps an in-context reply with an open call streaming (P5.2b) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9697
  • fix(dev): repair dev — revert #9654 (journey 34), Files journey 42 paging, transcript-capture timeout by @markokraemer in https://github.com/kortix-ai/suna/pull/9699
  • Release latency: test every dev merge, promote green SHAs, trustworthy gate, safer deploys by @markokraemer in https://github.com/kortix-ai/suna/pull/9626
  • fix(web): persist expiry-only account access edits (KRTX-2187) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9698
  • Merge staging back into dev so promotions fast-forward; agent-tunnel SIGTERM race by @markokraemer in https://github.com/kortix-ai/suna/pull/9702
  • fix(api): let a personal PAT resolve gated connector-call approvals (KRTX-1921) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9700
  • fix(infra): deny-old-keys backs up into a fresh temp dir (CodeQL high on #9703); release skill: promotions against squash-only dev by @markokraemer in https://github.com/kortix-ai/suna/pull/9705
  • fix(web): Sessions surfaces read their labels from the i18n catalog (KRTX-2188) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9692
  • chore(catalog): refresh model seeds by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9708
  • fix(cli): print the preview URL on the host the deployment serves (KRTX-1909) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9704
  • fix(sso): SSO-only ends the sign-ins it refuses, a PAT is refused, and mobile sends an enforced email to SSO (KRTX-1716) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9709
  • fix(web): the delete-account gate fails closed on a failed status check (KRTX-2177) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9691
  • fix(worktree): bridge fresh sandbox launch environment (KRTX-2189) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9707
  • fix(api): store NUL and lone-surrogate strings in the session log (KRTX-2178) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9690
  • Promote dev ec3f312e12 to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/9706
  • feat(api): session-log restore claim for a fresh box (P6.1) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9714
  • fix(api): warm sessions stay out of the visible sidebar list by @agent-kortix in https://github.com/kortix-ai/suna/pull/9695
  • fix(kortixd): pi tool parts name the model's call id, so v2 live puts keep their call_id at turn end (P4.8) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9717
  • fix(api): the restore route answers on the API image's Bun 1.2 (P6.1 fix-forward) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9720
  • feat(web): the action panel, the context modal and the turn rows read session-log blocks (P5.2) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9721
  • fix(files): Repo page previews spreadsheets from git; runtime errors drop the opencode-sdk label by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9722
  • feat(api): backfill worker that gives mirror-only sessions their session log (P3.1) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9725
  • feat(infra): us-east-1 Terraform state bucket for the vps-demo root by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9727
  • feat(kortixd): pi restore step writes a session log into pi's native store (P6.2) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9729
  • perf(sessions): a prompt no longer waits for config convergence, env resolve, pi catalog repair or CLI /start by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9730
  • feat(api): session-log backfill infers pi from the root id, validates every log, counts round-trip mismatches (P3.2) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9731
  • fix(api): the sandbox-proxy trigger-session override asks the canonical action (KRTX-1619) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9726
  • feat(worktree): --db gives a worktree its own database in the primary Supabase by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9734
  • fix(session-log): the view comparison ignores tool-input key order by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9736
  • perf(tests): pnpm test runs only what the diff affects and reuses green lane groups by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9735
  • feat(kortixd): OpenCode restore step writes a session log into opencode.db (P6.3) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9739
  • fix(tests): the attestation's scratch index keeps git's racy-entry check by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9740
  • fix(apps): a reader an App admits gets tokens for the Apps it uses (via_app_id); the App header shows the App by @markokraemer in https://github.com/kortix-ai/suna/pull/9742
  • feat(desktop): Quick Entry — start a session from any app with a global shortcut by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9649
  • fix(api,sdk): a prompt without an agent runs under the session's agent; sdk credentialHeader, quiet session-sync, readonly useChatTurns by @markokraemer in https://github.com/kortix-ai/suna/pull/9744
  • Promote dev 5c4b381706 to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/9747
  • fix(security): close the 2026-10-13 pentest findings at the origin by @markokraemer in https://github.com/kortix-ai/suna/pull/9749
  • test(web): a chat-identity connect retries after the MFA step-up (KRTX-940) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9748
  • feat(web): the transcript and session chat render session-log block turns (P5.2c) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9751
  • fix(cli): KRTX-1761 keep registered host on logout by @agent-kortix in https://github.com/kortix-ai/suna/pull/9737
  • feat(account-hub): account settings redesign, Avatar v2, hub split sheet by @sutharjay1 in https://github.com/kortix-ai/suna/pull/9750
  • fix(api): one owner per box start — restart waits out a live wake, repair claims its run, Platinum start joins in-flight starts by @markokraemer in https://github.com/kortix-ai/suna/pull/9752
  • fix(connectors): a first sync that fails or needs a sign-in lands on the connector page with the next step open (KRTX-2185) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9753
  • fix(infra): empty the dev and staging VPC default security groups (Drata test 233) by @markokraemer in https://github.com/kortix-ai/suna/pull/9756
  • chore(tests): drop the pre-push test attestation gate; the author picks the tests by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9758
  • Staging runs like prod (no Spot), the gate reruns itself, the edge retries a dropped GET; SESS-18 test fix by @markokraemer in https://github.com/kortix-ai/suna/pull/9764
  • fix(api): commit-push names the upstream failure by @markokraemer in https://github.com/kortix-ai/suna/pull/9765
  • fix(feature-flags): Volumes and Stateless sessions are per-project flags, not organization-wide by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9755
  • feat(cli,tui): sessions log reads the session log; CLI, TUI and whitelabel render session-log blocks (P5.5) by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9767
  • fix(boot): config and workspace providers boot independently; boot timeline reports config only by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9770
  • fix(sessions): mobile lists read past empty pages, and the audit Session filter searches and takes a pasted id (KRTX-1727) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9769
  • feat(iam): a plain member sees only the members and groups they share access with by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9771
  • fix(apps,cli): Apps with volumes deploy on Platinum without --provider; account commands follow the project link; App copy says machine by @markokraemer in https://github.com/kortix-ai/suna/pull/9775
  • chore(secrets): rotate the Platinum API keys by @markokraemer in https://github.com/kortix-ai/suna/pull/9776
  • fix(api): GET …/log serves a session-bound PAT under the transcript route's gate by @DimitrijeGlibic in https://github.com/kortix-ai/suna/pull/9778
  • fix(sessions): a stored question closes when the wait ends, and a waiting session reads Needs you on web and mobile (KRTX-1739) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9772
  • fix(permissions): web and mobile offer only the trigger, review, settings and top-up controls the API allows (KRTX-1720) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9779
  • fix(dev): account-hub i18n audit and journey 22 after #9750 by @markokraemer in https://github.com/kortix-ai/suna/pull/9780
  • fix(db): close stored agent questions the KRTX-1739 rules prove stale (KRTX-1739) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/9781
  • test(e2e): journey 27 follows the #9750 hub titlebar (no search button) by @markokraemer in https://github.com/kortix-ai/suna/pull/9783
  • fix(cli): verify connector revocation before reporting success (KRTX-1664) by @agent-kortix in https://github.com/kortix-ai/suna/pull/9712
  • feat(admin): remove the Boot modes page by @allenabraham999 in https://github.com/kortix-ai/suna/pull/9784
  • fix(web): linear trailing-slash trim and caret-ANSI strip (CodeQL ReDoS) by @markokraemer in https://github.com/kortix-ai/suna/pull/9786
  • Promote dev d888f389ea to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/9791
  • Hotfix: v0.13.57 release-gate tests (CFG-16, journey 49) by @markokraemer in https://github.com/kortix-ai/suna/pull/9806
  • Hotfix: v0.13.57 release-gate test CFG-16 step 2 by @markokraemer in https://github.com/kortix-ai/suna/pull/9813
  • Release v0.13.57 — Big folders in Files, a sidebar you arrange, and redesigned account settings by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/9715

Full Changelog: https://github.com/kortix-ai/suna/compare/v0.13.56...v0.13.57

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

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