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,/statusbuttons,/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_projectsreturns 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