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
/uicomposes 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 --newprints 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