github kortix-ai/suna v0.14.13
v0.14.13 — Your own Claude subscription, My Kortix teams, and clearer session costs

latest release: dev-latest
3 hours ago

Your own Claude subscription, My Kortix teams, and clearer session costs

New

  • Run Claude models on your own Claude Pro or Max subscription. Sign in under Models → Providers → Anthropic, like ChatGPT; the account is private to you until you share it, and the gateway keeps the token out of the sandbox (#11283, #11322, #11324, #11335, #11349).
  • My Kortix runs agents, teams and workflows while you chat, remembers you, reuses its agents, and follows up on its own (#11240, #11255, #11332).
  • Agent pages, Project administration, My Kortix, a unified Triggers list and Goals bring work into one place (#10877).
  • Upload files of any size to Drive from the web, CLI and API (#11249).
  • Add HTML comments and drawn feedback to artifacts, with more reliable document loading (#11196; drawing feedback commit bb8eba3).
  • Session usage shows the cost of the session and the sessions it spawned (#11251).
  • Background subagents report back to their parent session (#11230).
  • The terminal UI shows one session at a time; every action is a slash command, and /ui composes the layout (#11250).

Improved

  • Scheduled jobs run on their own worker service instead of on the web servers, so a busy job no longer slows requests or scales the API (#11367, #11382).
  • A prompt shows in the session the moment it is accepted, under one id (#11259).
  • Session titles recover from a failed model, spawned sessions show live, and the agent list card matches the agents line (#11266).
  • Mobile and desktop download pages show the shipped apps rather than mockups; mobile is prepared for its next 1.5.4 store build (#11209, #11244).
  • Dev sessions and new Files use us-east, with safe file moves between regions (#11213).
  • New sessions and prompts avoid refetching large repositories (#11234).
  • One unversioned kortix.yaml supports older formats and deprecated keys; edits keep the YAML map order (#11236, #11305).
  • The CLI, SDK and web read the session log directly; the CLI removes sessions connect (#11243, #11263, #11273).
  • The SDK answers, compacts, runs commands and stops through session-log actions; box log reads return whole pages and show queued prompts (#11238, #11247).
  • A release ships a desktop update only when the desktop app changed (#11265).

Fixed

  • Escape in the chat input no longer stops a turn accidentally; press Escape three times to stop (#11210).
  • Session usage lookups avoid timeouts, and model usage loads in roughly 0.1 seconds rather than up to 25 seconds on long sessions (#11197, #11219).
  • A long Claude turn no longer reads as a full context and compacts early (#11369).
  • Toasts stay on the session and project on screen (#11328).
  • My Kortix keeps a follow-up set with generic text, sets a follow-up without text after one refusal, checks in before your deadline, saves each fact once, and has the same desktop and tools as every session (#11262, #11344, #11347, #11351, #11361).
  • A finished background agent shows as a tool row with a glyph (#11272).
  • Lumen threads read the session log on current computers (#11270).
  • Apps no longer show the manual "Add an App by URL" button (#11359).
  • Mobile: Continue with Google lists your accounts in the browser, and workflow details open (#11319, #11380).
  • Sign-in shows its welcome once; Terms change notices no longer email every user (#11217, #11220).
  • A region move reports a drive deleted mid-run instead of stopping (#11222).
  • Session-wide permission approval survives a closed tab, and compact no longer depends on OpenCode routes (#11221).
  • The Desktop panel appears only on computers with a desktop; sleeping computers no longer add a notice above the composer (#11223, #11231).
  • Reopening the session panel restores its artifact, with a centered header (#11227).
  • Dev retains chunks from the last five web builds so open tabs survive deployments (#11228).
  • My Kortix sessions no longer wait for a meta image build (#11241).
  • CLI chat --new prints the reply that ends the first turn (#11245).
  • Manifest healing preserves untouched lines, tool headers explain loading, and web/API edits preserve comments (#11253, #11254).
  • Memory saves tolerate missing name, type or body; ask My Kortix about memory rather than opening a separate screen (#11256, #11258).
  • The hosted MCP CLI matches the current commands (#11264).
  • Japanese and Chinese plurals and every locale catalog are complete (#11373, #11384, #11388, #11405).

Security

  • The API rejects malformed JWT signatures (#11336).
  • Remove vulnerable minimatch and glob releases and repair the scanner and daemon audit findings (#11386, #11389, #11395).
  • Trivy carries the documented decode-uri-component exception consistently (commit 359828a).

Internal

  • Remove unused OpenCode daemon code and route session lifecycle, repair, question release and transcripts through Kortix routes (#11218, #11235, #11239).
  • Serve session-log actions and live status from the box (#11232).
  • Bake shared defaults into every Kortix image (#11233).
  • Batch carried merge ancestry checks (#11301).
  • Frozen pnpm installs work again after the Claude Agent SDK was added; the daemon installs with its pinned Bun (#11286, #11398, #11402).
  • Keep release-suite tests aligned with the shipped product (#11191, #11226, #11252, and the KRTX test fixes).
  • Run dev gateway parity and :dev promotion when Terraform is skipped (#11248).
  • Document retained Next.js chunks, last-ready image fallbacks, safe secret reads in zsh, and Claude Code usage per call (#11229, #11242, #11246, #11371).

What's Changed

  • feat(web): /mobile and /desktop show the shipped apps, not drawn mockups by @markokraemer in #11209
  • feat!: agent pages, Project admin, My Kortix, one Triggers list, Goals by @markokraemer in #10877
  • fix(session): one Escape in the chat input no longer stops the turn; Esc ×3 does by @markokraemer in #11210
  • fix(security): Trivy carries the documented decode-uri-component exception too by @DimitrijeGlibic in #11212
  • feat(drives): dev sessions and new Files run in us-east; Files move between regions safely by @DimitrijeGlibic in #11213
  • test(channels): the Telegram webhook parity table expects each event's sequence by @DimitrijeGlibic in #11214
  • refactor(kortixd): delete the OpenCode-only daemon code no pi box uses by @DimitrijeGlibic in #11218
  • fix(db): prevent session usage lookup timeouts (KRTX-2754) by @agent-kortix in #11197
  • fix(api): session model usage loads in ~0.1 s instead of up to 25 s on long sessions by @DimitrijeGlibic in #11219
  • Artifact comments: HTML anchors and reliable Doc loading by @Ino-Bagaric in #11196
  • fix(auth): the sign-in screen says "Welcome to Kortix CompanyOS" once by @markokraemer in #11217
  • fix(legal): stop emailing the Terms change notice to every user by @markokraemer in #11220
  • fix(drives): a region-move run reports a drive deleted mid-run instead of stopping by @DimitrijeGlibic in #11222
  • fix(pi,sdk): "Allow all for this session" holds after the tab closes; compact works without OpenCode routes by @DimitrijeGlibic in #11221
  • fix(web): the Desktop panel appears only on a computer that has a desktop by @markokraemer in #11223
  • chore(release): staging VERSION → 0.14.13 [skip ci] by @github-actions[bot] in #11224
  • chore(release): VERSION → 0.14.13 [skip ci] by @github-actions[bot] in #11225
  • test(cli): expect the triggers help to name merged change requests by @markokraemer in #11226
  • fix(artifacts): the session panel comes back with its artifact; header centered by @markokraemer in #11227
  • fix(web): dev keeps the last 5 builds' chunks so open tabs survive a deploy by @markokraemer in #11228
  • docs(learnings): a self-hosted Next.js image must carry earlier builds' chunks by @markokraemer in #11229
  • fix(session): a sleeping computer is silent; no "computer is asleep" line over the composer by @markokraemer in #11231
  • refactor(sandbox): every Kortix image bakes the same defaults from one place by @markokraemer in #11233
  • perf(sessions): new sessions and prompts stop refetching large git repos by @DimitrijeGlibic in #11234
  • refactor(api): the session lifecycle reaches the box only over Kortix routes by @DimitrijeGlibic in #11235
  • feat(kortixd): the box serves session-log actions and live status (step 1 of removing the OpenCode format) by @DimitrijeGlibic in #11232
  • feat(sdk): the SDK answers, compacts, runs commands and stops through the session-log action routes by @DimitrijeGlibic in #11238
  • refactor(api): the API stops reading OpenCode box routes for repair, question release and transcripts by @DimitrijeGlibic in #11239
  • feat(artifacts): draw feedback for agents (KRTX-3667) by @Ino-Bagaric in #11237
  • fix(api): a My Kortix session never waits for the meta image build by @markokraemer in #11241
  • docs(learnings): every image a session boots needs a last-ready fallback by @markokraemer in #11242
  • refactor(cli)!: read only the session log; drop sessions connect by @DimitrijeGlibic in #11243
  • chore(mobile): version 1.5.4 for the next store build by @DimitrijeGlibic in #11244
  • fix(cli): chat --new prints the reply that ends the first turn by @DimitrijeGlibic in #11245
  • feat!: one kortix.yaml with no version; older formats and deprecated keys keep working by @markokraemer in #11236
  • feat(pi,api): background subagents report back to their parent session by @markokraemer in #11230
  • docs(learnings): never pass a secret read through a pipe in zsh by @DimitrijeGlibic in #11246
  • feat(kortixd): box log reads answer whole pages and show queued prompts by @DimitrijeGlibic in #11247
  • fix(ci): the dev gateway parity check and :dev promotion run when Terraform is skipped by @markokraemer in #11248
  • feat(drives): upload files of any size to Drive from web, CLI and API by @markokraemer in #11249
  • feat(my-kortix): My Kortix runs agents, teams and workflows while you chat by @markokraemer in #11240
  • test(web): prove the kortix.yaml doc guard catches staleness (KRTX-3734) by @agent-kortix in #11252
  • feat(sessions): session usage shows the dollar cost of the session and every session it spawned by @markokraemer in #11251
  • fix(manifest): a healing write changes only the lines it rewrites; tool headers say how tools load by @markokraemer in #11253
  • fix(api): a kortix.yaml edit from the web or API keeps every comment by @markokraemer in #11254
  • feat(my-kortix): remembers you, reuses its agents, quieter agents UI by @markokraemer in #11255
  • fix(my-kortix): a memory save missing its name, type or body still saves by @markokraemer in #11256
  • fix(my-kortix): My Kortix memory has no screen; you ask My Kortix about it by @markokraemer in #11258
  • Promote dev b44f638 to staging by @github-actions[bot] in #11260
  • feat(sessions): a prompt shows from the moment it is accepted, under one id by @markokraemer in #11259
  • feat(tui): one session on screen, every action a slash command, layout you compose with /ui by @markokraemer in #11250
  • fix(my-kortix): one memory save per fact; an identical save writes nothing by @markokraemer in #11262
  • feat(sdk): the web reads only the session log from a box that serves it by @DimitrijeGlibic in #11263
  • fix(desktop): a release ships a desktop update only when the desktop app changed by @markokraemer in #11265
  • fix(sessions): titles recover from a failed model, spawned sessions show live, and the agent list card reads like the agents line by @markokraemer in #11266
  • fix(lumen): threads read the session log on current boxes by @DimitrijeGlibic in #11270
  • feat(sandbox): project agents operate desktop apps with agent-desktop by @markokraemer in #11271
  • fix(ui): a finished background agent shows as a tool row with a glyph, not an emoji by @markokraemer in #11272
  • fix(mcp): align hosted CLI with current commands (KRTX-3741) by @agent-kortix in #11264
  • test(api): preserve project exports in boot tests (KRTX-3742) by @agent-kortix in #11268
  • fix(release): cherry-pick verified MCP and bootstrap corrections by @agent-kortix in #11276
  • feat(api): the API reads a current box's session log, not its OpenCode routes by @DimitrijeGlibic in #11273
  • docs(web): regenerate the stale audit-actions reference doc (KRTX-3743) by @agent-kortix in #11275
  • fix(skills): remove committed diff3 conflict marker from brand decisions (KRTX-3744) by @agent-kortix in #11274
  • fix(api): share screenshot key UUID validation (KRTX-3745) by @agent-kortix in #11277
  • fix(api): stage screenshot UUID validation repair (KRTX-3745) by @agent-kortix in #11279
  • fix(ui): KRTX-3746 restore release package build with consistent shared import by @agent-kortix in #11267
  • fix(staging): carry verified UI package build fix #11267 by @agent-kortix in #11280
  • feat: run Claude models on your own Claude subscription, through Claude Code by @markokraemer in #11283
  • fix(deps): every frozen pnpm install on dev works again after the Claude Agent SDK was added by @markokraemer in #11286
  • test(kortixd): a kortixd dependency missing from pnpm-lock.yaml fails a test, not a dev deploy by @markokraemer in #11287
  • test(api): isolate no-volume region fixtures (KRTX-3751) by @agent-kortix in #11285
  • test(cli): follow current session and agent contracts (KRTX-3752) by @agent-kortix in #11284
  • test(release): cherry-pick verified CLI contracts (KRTX-3752) by @agent-kortix in #11289
  • test(api): stage no-volume region fixtures (KRTX-3751) by @agent-kortix in #11290
  • fix(api): qualify peer idle-notice correlation (KRTX-3756) by @agent-kortix in #11294
  • fix(staging): qualify peer idle-notice correlation (KRTX-3756) by @agent-kortix in #11296
  • docs(web): regenerate the stale audit-actions doc at commit time (KRTX-3758) by @agent-kortix in #11297
  • fix(ui): unify shared agent-name import (KRTX-3749) by @agent-kortix in #11281
  • test(api): isolate deletion screenshot cleanup (KRTX-3755) by @agent-kortix in #11300
  • fix(ui): carry verified vendor import fix to frozen staging by @agent-kortix in #11302
  • test(release): cherry-pick deletion fixture fix (KRTX-3755) by @agent-kortix in #11303
  • fix(api): batch carried merge ancestry checks (KRTX-3761) by @agent-kortix in #11301
  • test(api): repair Telegram governance fixtures (KRTX-3762) by @agent-kortix in #11298
  • test(staging): carry deletion cleanup fixture KRTX-3755 by @agent-kortix in #11304
  • test(release): carry Telegram governance fixtures to staging by @agent-kortix in #11306
  • fix(manifest): preserve edited YAML map order (KRTX-3763) by @agent-kortix in #11305
  • fix(staging): preserve YAML map order (KRTX-3763) by @agent-kortix in #11307
  • test(api): support session attention fixture (KRTX-3764) by @agent-kortix in #11310
  • test(release): cherry-pick session attention fixture (KRTX-3764) by @agent-kortix in #11312
  • test(release): KRTX-3764 stage session attention fixture by @agent-kortix in #11314
  • docs(release): regenerate frozen candidate audit reference by @agent-kortix in #11311
  • test(staging): carry session attention fixture KRTX-3764 by @agent-kortix in #11313
  • fix(mobile): Continue with Google lists the accounts in the browser by @sutharjay1 in #11319
  • refactor(mobile): remove small leftovers (KRTX-3657) by @agent-kortix in #11318
  • fix(mobile): Continue with Google lists the accounts in the browser by @sutharjay1 in #11320
  • revert(sandbox): project-agent images no longer ship agent-desktop by @markokraemer in #11321
  • fix(claude): sign in with Claude under Providers → Anthropic, like ChatGPT, and the sign-in survives an API deploy by @markokraemer in #11322
  • test(flows): follow current release contracts (KRTX-3769) by @agent-kortix in #11315
  • fix(claude): a pasted Claude sign-in code connects instead of timing out by @markokraemer in #11324
  • KRTX-3769: carry verified release flow contracts to frozen staging by @agent-kortix in #11325
  • test(api): restore route and spec coverage (KRTX-3774) by @agent-kortix in #11316
  • fix(web): toasts stay on the session and project on screen by @sutharjay1 in #11328
  • feat(claude): Claude accounts work like ChatGPT accounts, and the gateway keeps the token by @markokraemer in #11335
  • KRTX-3774: carry route coverage repair to frozen staging by @agent-kortix in #11330
  • fix(api): reject malformed JWT signatures (KRTX-3779) by @agent-kortix in #11336
  • docs(apps): require design skill for builders (KRTX-3783) by @agent-kortix in #11338
  • feat(my-kortix): follows up on its own; workflows never block and resume by @markokraemer in #11332
  • KRTX-3786: distinguish session drive-sync audit upload label by @agent-kortix in #11334
  • test(api-contract): restore memory count fixture (KRTX-3784) by @agent-kortix in #11340
  • KRTX-3786: stage distinct drive-sync audit upload title by @agent-kortix in #11342
  • fix(my-kortix): it checks in before your deadline when you relay replies by @markokraemer in #11344
  • test(flows): KRTX-3789 select repository worker for git journeys by @agent-kortix in #11323
  • fix(my-kortix): a follow-up without text is refused once, then set, instead of failing 3 times by @markokraemer in #11347
  • fix(models): Claude models appear once a Claude account is usable, and the picker drops its ChatGPT promo row by @markokraemer in #11349
  • test(sessions): align v1 schema rejection (KRTX-3792) by @agent-kortix in #11333
  • fix(my-kortix): a follow-up set with the generic text is kept, not removed and retried by @markokraemer in #11351
  • KRTX-3789: carry git smoke worker fixture to staging by @agent-kortix in #11352
  • KRTX-3792: carry session schema contract repair to staging by @agent-kortix in #11350
  • test: carry memory fixture release repair (KRTX-3784) by @agent-kortix in #11353
  • KRTX-3791 test(ui): follow shipped My Kortix and Triggers contracts by @agent-kortix in #11348
  • KRTX-3794: fix(sdk): restore release memory narration coverage by @agent-kortix in #11345
  • KRTX-3798: repair memory layer count fixture by @agent-kortix in #11346
  • KRTX-3794 KRTX-3791: backport memory narration and UI contracts to staging by @agent-kortix in #11356
  • test(session-log): align capability expectations (KRTX-3799) by @agent-kortix in #11331
  • fix(web): remove the manual "Add an App by URL" button from Apps by @markokraemer in #11359
  • KRTX-3799: backport session capability contracts to staging by @agent-kortix in #11360
  • fix(my-kortix): My Kortix's computer has the same desktop and tools as every session by @markokraemer in #11361
  • test(api-contract): snapshot shipped status event (KRTX-3805) by @agent-kortix in #11363
  • KRTX-3805: carry exact status schema snapshot to staging by @agent-kortix in #11365
  • KRTX-3806: restore platform team and workflow renderer fixtures by @agent-kortix in #11357
  • test(api): restore 93 lost sandbox-proxy census tests (KRTX-3800) by @agent-kortix in #11364
  • KRTX-3806: carry renderer fixture repair to frozen staging by @agent-kortix in #11366
  • fix(kortixd): a long Claude turn no longer reads as a full context and compacts early by @markokraemer in #11369
  • KRTX-3809: fix(ui): restore release stylesheet consistency by @agent-kortix in #11358
  • docs(learnings): read Claude Code usage per API call by @markokraemer in #11371
  • test(api-contract): align session-log fixtures (KRTX-3808) by @agent-kortix in #11368
  • KRTX-3809: carry stylesheet repair to frozen staging by @agent-kortix in #11372
  • KRTX-3809: regenerate frozen staging stylesheet by @agent-kortix in #11374
  • test(secrets): stabilize pool fixtures (KRTX-3804) by @agent-kortix in #11354
  • test(artifacts): disable flag in ART-1 fixture (KRTX-3802) by @agent-kortix in #11337
  • feat(api): scheduled jobs run on a worker service, off the web servers by @DimitrijeGlibic in #11367
  • test: carry artifact and pool fixtures to frozen staging (KRTX-3802 KRTX-3804) by @agent-kortix in #11376
  • fix(mobile): register workflow details (KRTX-3807) by @agent-kortix in #11380
  • KRTX-3807: carry mobile workflow renderer to staging by @agent-kortix in #11381
  • KRTX-3802 KRTX-3804: backport explicit flow fixtures to staging by @agent-kortix in #11378
  • KRTX-3813: fix(ui): restore release module dependency boundaries by @agent-kortix in #11379
  • fix(i18n): remove unreachable Chinese plurals (KRTX-3814) by @agent-kortix in #11384
  • fix(deploy): a worker roll from 0 tasks starts only the new revision by @DimitrijeGlibic in #11382
  • KRTX-3814: stage verified Chinese plural release repair by @agent-kortix in #11385
  • KRTX-3813: carry UI module boundary repair to frozen staging by @agent-kortix in #11383
  • fix(security): harden frozen-release source findings (KRTX-3816) by @agent-kortix in #11386
  • KRTX-3816: carry verified source security repair to frozen staging by @agent-kortix in #11387
  • fix(deps): KRTX-3820 remove vulnerable minimatch and glob releases by @agent-kortix in #11389
  • KRTX-3820: carry verified advisory consumer migrations to frozen staging by @agent-kortix in #11391
  • fix(api): KRTX-3821 include minimatch compatibility workspace in Docker contexts by @agent-kortix in #11392
  • KRTX-3821: stage verified API Docker workspace repair by @agent-kortix in #11394
  • fix(security): KRTX-3825 repair scanner and daemon audit blockers by @agent-kortix in #11395
  • KRTX-3825: stage verified independent advisory repairs by @agent-kortix in #11396
  • fix(build): restore pinned Bun daemon install (KRTX-3831) by @agent-kortix in #11398
  • KRTX-3828: stage workspace test guard regression repair by @agent-kortix in #11399
  • fix(packages): route minimatch-compat test script through the test-guard (KRTX-3828) by @agent-kortix in #11397
  • fix(build): stage pinned Bun lockfile repair (KRTX-3831) by @agent-kortix in #11400
  • fix(build): carry pinned Bun lockfile repair onto frozen staging by @agent-kortix in #11401
  • fix(web): repair locale catalog parity and ICU (KRTX-3811) by @agent-kortix in #11373
  • fix(web): localize strict source findings (KRTX-3818) by @agent-kortix in #11388
  • fix(test): run pinned daemon install in CI (KRTX-3831) by @agent-kortix in #11402
  • fix(release): dev passes the v0.14.13 release checks by @DimitrijeGlibic in #11405
  • Promote dev e29414b to staging by @github-actions[bot] in #11406
  • fix(api): the arm64 API image installs the arm64 Claude Code binary by @DimitrijeGlibic in #11407
  • Promote dev f1638cd to staging by @github-actions[bot] in #11408
  • test(kortixd): the mid-turn session-log test waits for the second step by @DimitrijeGlibic in #11409
  • fix(security): clear the v0.14.13 Hadolint and CodeQL findings by @DimitrijeGlibic in #11410
  • Promote dev 81ed9f2 to staging by @github-actions[bot] in #11411
  • Release v0.14.13 — Your own Claude subscription, My Kortix teams, and clearer session costs by @github-actions[bot] in #11261

Full Changelog: v0.14.12...v0.14.13

Don't miss a new suna release

NewReleases is sending notifications on new releases.