github kortix-ai/suna v0.13.42
v0.13.42 — Connect your own computer from the desktop app, Teams at Slack parity, and saved history that is always on.

latest release: dev-latest
3 hours ago

Connect your own computer from the desktop app, Teams at Slack parity, and saved history that is always on.

New

  • Local mode: connect your computer from the desktop app. Each computer is a connector account with access approval, and the tunnel keeps running in the background while the app is closed.
  • Microsoft Teams reaches Slack parity: direct messages, a connected note, a home tab, message actions, edit and delete, /unbind, /status buttons, /sessions, the full agent picker, review cards, and call-to-action links as buttons.
  • Saved session history is always on, and a reload shows the newer saved copy.
  • Mobile: an empty session opens on its composer, messages queue while the computer wakes, and sub-agents show their saved steps.
  • A redesigned Create a project page. New accounts get their name during onboarding, not from the email address.
  • Sessions list as a tree that shows who started each run, with server-side search.
  • Copy a session ID or link from the session menu.

Improved

  • The desktop app reopens your last project on launch, the same as the web.
  • Connect-computer approval is a dialog you can close.
  • A ChatGPT login the provider refuses is refreshed, and the message says who can reconnect it.
  • Session overrides open while their catalog loads; Save commits what is ready.
  • An agent-created session saves its transcript at every turn end.
  • Audit ingest answers within the request deadline.
  • Transcript reads and gateway resolution do less work per request.
  • MCP list_projects returns the caller's project role.

Fixed

  • Prompt attachment imports keep the sender's access.
  • Computer access and machine states return 4xx errors, not 500.
  • Repository previews in channels show only public repositories.
  • The Composio Microsoft Teams app is hidden; Teams is a native channel.
  • The public health endpoint no longer exposes internal deployment details.
  • A malformed preview cookie is refused, and playground budget denials are typed.

What's Changed

  • fix(api): preserve transient git cause through grant remint (KRTX-215) by @agent-kortix in #8161
  • fix(api): return typed playground budget denial (KRTX-214) by @agent-kortix in #8163
  • fix(api): refuse malformed preview cookie (KRTX-332) by @agent-kortix in #8166
  • feat(local-mode): connect your computer from the desktop app — accounts, access approval, forever-on tunnel by @markokraemer in #8168
  • fix(connectors): computer access and machine states are 4xx, not 500 by @markokraemer in #8169
  • fix(ci): green main after local mode (desktop smoke bun, schema index test) by @markokraemer in #8170
  • docs(learnings): relay close codes, build-tool deps; enforce bun in desktop build jobs by @markokraemer in #8171
  • chore(release): staging VERSION → 0.13.42 [skip ci] by @github-actions[bot] in #8173
  • chore(release): VERSION → 0.13.42 [skip ci] by @github-actions[bot] in #8174
  • refactor(web): collapse the six toast factories onto one render helper (KRTX-661) by @agent-kortix in #8126
  • refactor(web): delete unused InputGroupText and InputGroupTextarea (KRTX-663) by @agent-kortix in #8149
  • refactor(web): delete the unused LazyModal from modal.tsx (KRTX-659) by @agent-kortix in #8132
  • refactor(api): extract relay stream helpers (KRTX-288) by @agent-kortix in #8175
  • fix(sessions): an agent-created session saves its transcript at every turn end by @Ino-Bagaric in #8177
  • fix(connectors): hide the Composio Microsoft Teams app; Teams is a native channel by @Ino-Bagaric in #8176
  • feat(teams): show call-to-action links as buttons in answer cards by @Ino-Bagaric in #8178
  • Promote main 1465473 (fully green) to staging by @Ino-Bagaric in #8180
  • docs(repo): add the canonical design-reference table to agent files (KRTX-73) by @agent-kortix in #8181
  • fix(gateway): refresh a ChatGPT login the provider refuses, and say who reconnects it by @Ino-Bagaric in #8182
  • feat(mobile): empty sessions open on the composer, messages queue while the computer wakes, sub-agents paint saved steps by @Ino-Bagaric in #7982
  • feat(teams): Slack-parity cards — /status buttons, /sessions, full agent picker, review kinds by @Ino-Bagaric in #8185
  • fix(api): key-reconcile finds supervised daemon; start warn deduped (KRTX-696) by @agent-kortix in #8183
  • refactor(api): extract relay hop loop and response builder (KRTX-289) by @agent-kortix in #8184
  • fix(web): session overrides open while their catalog loads; Save commits what is ready by @Ino-Bagaric in #8179
  • fix(api): stop counting the parked-sandbox 503 as route 5xx (KRTX-397) by @agent-kortix in #8186
  • refactor(api): split the CLI agent-token e2e into harness and matrix modules (KRTX-351) by @agent-kortix in #8187
  • feat(teams): close the remaining Slack gaps — DMs, connected note, home, message action, edit/delete, /unbind by @Ino-Bagaric in #8191
  • feat(sessions): saved history is always on, and a reload shows the newer saved copy by @Ino-Bagaric in #8189
  • fix(web): label and translate the 3 audit routes main added without them by @Ino-Bagaric in #8193
  • refactor(api): split index.ts into app assembly, error handlers, bootstrap and dispatch modules (KRTX-347) by @agent-kortix in #8188
  • Promote main 19b2c15 to staging by @Ino-Bagaric in #8194
  • fix(channels): show repo previews only for public repos, and name Kortix-hosted repos plainly by @Ino-Bagaric in #8199
  • fix(mcp): list_projects returns the caller's project role by @markokraemer in #8205
  • test(web): pin session context modal metric math behind characterization tests (KRTX-406) by @agent-kortix in #8190
  • refactor(web): split pty-terminal's attach lifecycle into a connection hook (KRTX-460) by @agent-kortix in #8196
  • config-releases: remove the CONFIG_RELEASES_ENABLED env switch; the project flag is the only gate by @markokraemer in #7780
  • fix(api): race each audit-ingest chunk against the request deadline (KRTX-522) by @agent-kortix in #8198
  • refactor(web): split session-layout panel sizing and header switcher out (KRTX-459) by @agent-kortix in #8200
  • fix(api): one warn line per mid-turn stop episode, not one per reaper pass (KRTX-474) by @agent-kortix in #8201
  • refactor(web): flatten discoverPrefixViaFileApi cache merge into rememberPrefix (KRTX-480) by @agent-kortix in #8202
  • refactor(shared): add the shared html-text and safe-url modules (KRTX-367) by @agent-kortix in #8203
  • fix(web): never mark the workspace refresh skipped on reload (KRTX-698) by @agent-kortix in #8204
  • fix(api): attribute provider ingress time and log the proxy give-up timeline (KRTX-471) by @agent-kortix in #8206
  • chore(mobile): release 1.4.2 by @sutharjay1 in #8209
  • refactor(web): delete dead audit-poll hooks in session-audit-shared (KRTX-481) by @agent-kortix in #8208
  • feat(api): log the Server-Timing stage breakdown on the slow and failed tail (KRTX-468) by @agent-kortix in #8195
  • fix(api): one bounded sandbox endpoint resolution per transcript read (KRTX-386) by @agent-kortix in #8212
  • refactor(web): remove dead model connection gate (KRTX-482) by @agent-kortix in #8215
  • test(api): cover slow-request timing completion logs (KRTX-532) by @agent-kortix in #8211
  • perf(api): avoid duplicate project lookup in gateway resolution (KRTX-586) by @agent-kortix in #8216
  • refactor(shared): switch web and mobile to shared sanitizer (KRTX-368) by @agent-kortix in #8217
  • refactor(web): extract instant-session send orchestration (KRTX-458) by @agent-kortix in #8218
  • chore(sandbox): attribute slow daemon requests (KRTX-472) by @agent-kortix in #8220
  • fix(api): hide deployment metadata from public health (KRTX-732) by @agent-kortix in #8221
  • fix(api): bound project reads during audit contention (KRTX-470) by @agent-kortix in #8222
  • refactor(web): isolate auto-scroll physics (KRTX-706) by @agent-kortix in #8223
  • refactor(web): remove unused delete-operation store (KRTX-708) by @agent-kortix in #8224
  • refactor(web): isolate session token metrics (KRTX-728) by @agent-kortix in #8225
  • feat(web): show a subsession's parent as a header breadcrumb by @sutharjay1 in #8207
  • refactor(web): remove unused account settings modal state (KRTX-719) by @agent-kortix in #8226
  • refactor(shared): add tool registry lookup resolver (KRTX-748) by @agent-kortix in #8228
  • fix(api): normalize prompt attachment MIME metadata (KRTX-778) by @agent-kortix in #8229
  • fix(api): validate required headless auth bodies (KRTX-741) by @agent-kortix in #8230
  • refactor(web): remove unused legacy status hooks (KRTX-713) by @agent-kortix in #8232
  • fix(web): add Back button to the Review Center detail page by @sutharjay1 in #8250
  • fix(api): retry transient provider stops (KRTX-520) by @agent-kortix in #8219
  • refactor(web): remove unused connector hook and duplicate steps (KRTX-709) by @agent-kortix in #8234
  • refactor(tools): share host registry lookup (KRTX-750) by @agent-kortix in #8235
  • refactor(web): remove unused phone factor hooks (KRTX-724) by @agent-kortix in #8236
  • test(mobile): pin project screen connect and stack behavior (KRTX-762) by @agent-kortix in #8239
  • fix(edge): hide backend routing headers (KRTX-780) by @agent-kortix in #8240
  • fix(mobile): model pick persistence, native text selection, release 1.4.3 by @sutharjay1 in #8244
  • refactor(web): remove dead billing exports and deduplicate mutations (KRTX-710) by @agent-kortix in #8241
  • refactor(web): isolate sub-session context aggregation (KRTX-729) by @agent-kortix in #8242
  • refactor(web): collapse panel state patches (KRTX-712) by @agent-kortix in #8245
  • fix(web): repair main after 20e6b14 (KRTX-732) by @agent-kortix in #8247
  • refactor(web): split burst row renderers and share trigger chrome (KRTX-380) by @agent-kortix in #8248
  • fix(mcp): harden the hosted MCP server end to end — security, OAuth, protocol, tools, docs by @markokraemer in #8251
  • fix(api): repair main after 58555ae (KRTX-470) by @agent-kortix in #8255
  • Harness-agnostic project layout: agents/, skills/, memory/, harnesses/opencode/ + agents..file by @DimitrijeGlibic in #7681
  • fix(sdk): poll /start no faster than the server can make progress (KRTX-385) by @agent-kortix in #8197
  • fix(gateway): OpenCode Go works end to end; BYOK providers show their real name and logo by @markokraemer in #8261
  • feat(sessions): record who started each run; list sessions as a tree with server-side search (KRTX-639) by @markokraemer in #8258
  • fix(web): consent page names the real error; learnings: connected apps never mint durable credentials by @markokraemer in #8262
  • refactor(mobile): extract project session connect hook (KRTX-763) by @agent-kortix in #8260
  • fix(web): pluralize the spawned-sessions toggle label (KRTX-639 follow-up) by @markokraemer in #8266
  • fix(web): repair main after a51d9be (KRTX-458) by @agent-kortix in #8254
  • fix(api): repair main after 0a62a6b (KRTX-778) by @agent-kortix in #8264
  • fix(api): answer prompts released after Stop in one turn by @sutharjay1 in #8231
  • fix(web): repair main after b2b14ee (KRTX-368) by @agent-kortix in #8252
  • refactor(web): delete dead admin barrel, stress-test hook and orphan shims (KRTX-707) by @agent-kortix in #8257
  • refactor(web): delete dead billing hooks (KRTX-711) by @agent-kortix in #8263
  • fix(pi): OpenCode decoupling W1 — pi enforces permission, write rule and skills grant; shell env, default agent, gateway gate, email tools, approval push by @DimitrijeGlibic in #8027
  • test(web): reconcile send assertions with main (KRTX-472) by @agent-kortix in #8256
  • fix(api): repair main after 111927b (KRTX-470) by @agent-kortix in #8267
  • refactor(web): replace composer-editor ref mirrors with one useLatestRef hook (KRTX-381) by @agent-kortix in #8269
  • fix(api): repair main after cc8d4fe (KRTX-763) by @agent-kortix in #8270
  • fix(runtime): never relaunch a box under a live turn; stop OpenCode retrying provider 4xx by @markokraemer in #8273
  • fix(api): avoid warning on vanished transcript files (KRTX-798) by @agent-kortix in #8271
  • refactor(web): delete unimported subscription compat hooks (KRTX-714) by @agent-kortix in #8274
  • fix(platinum): only Kortix wakes a session box; a dead daemon is relaunched, never parked by @markokraemer in #8277
  • feat(web): copy session ID and link from the session menu (KRTX-801) by @sutharjay1 in #8281
  • refactor(web): delete dead withRestrictionCheck wrapper and alias export (KRTX-725) by @agent-kortix in #8275
  • fix(api): repair main after 7e1bbfc (KRTX-368) by @agent-kortix in #8280
  • refactor(web): consolidate scoped session filter selectors and toggles (KRTX-715) by @agent-kortix in #8282
  • fix(api): repair main after 5203c66 (KRTX-707) by @agent-kortix in #8283
  • fix(api): repair main after fbb00f4 (KRTX-711) by @agent-kortix in #8284
  • refactor: OpenCode decoupling W2 — delete dead routes, hooks, aliases and renderers (C1–C7) by @DimitrijeGlibic in #8021
  • feat(web): redesign /new and name new accounts at onboarding (KRTX-638) by @sutharjay1 in #8286
  • refactor(web): consolidate preference setters (KRTX-718) by @agent-kortix in #8285
  • fix(tests): green main for the v0.13.42 promotion (artifact default_agent, MCP job shell, mobile --isolate) by @markokraemer in #8278
  • fix(desktop): reopen the last project on launch, same as web by @markokraemer in #8290
  • fix(api): retain principal access for prompt attachment imports (KRTX-806) by @agent-kortix in #8289
  • fix(desktop): make the connect-computer approval a closable dialog by @markokraemer in #8293
  • refactor(web): delete dead useLeadingDebouncedCallback and unused barrel re-exports (KRTX-720) by @agent-kortix in #8295
  • refactor(web): delete dead presentation viewer compat hooks (KRTX-722) by @agent-kortix in #8296
  • fix: green main for the v0.13.42 promotion (opencode_archive contract, /new Log out tests, design-system i18n) by @markokraemer in #8292
  • Promote main 601cb9b to staging (v0.13.42) by @markokraemer in #8297
  • v0.13.42 — Connect your own computer from the desktop app, Teams at Slack parity, and saved history that is always on. by @github-actions[bot] in #8300

Full Changelog: v0.13.41...v0.13.42

Don't miss a new suna release

NewReleases is sending notifications on new releases.