github kortix-ai/suna v0.13.57
v0.13.57 — Big folders in Files, a sidebar you arrange, and redesigned account settings

latest release: dev-latest
5 hours ago

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

Full Changelog: v0.13.56...v0.13.57

Don't miss a new suna release

NewReleases is sending notifications on new releases.