github kortix-ai/suna v0.14.7
v0.14.7 — Project transfer, embedded sessions, directory-guest invites and security updates

one hour ago

New

  • Move projects between accounts. A project can be transferred to another organization or account. (#9918)
  • Default reasoning effort per project. Set it once in project settings. (#9935)
  • Run a session on your own machine with a ChatGPT subscription, through kortixd. (#9754)
  • Audit activity. See who was active in a workspace and how often, in the API, CLI and SDK. (#10604)
  • Goals page, a session Goal button and goal health, behind the goals flag. (#10600)
  • Embedded sessions. Public transcript sharing is removed; existing transcript share links are revoked. Embed the real session page instead. (#10008)

Improved

  • Billing. Usage is metered on every plan; only charging is gated. (#9929)
  • Model routing. A project's Routing chain now covers every model. (#8742)
  • Model limits. Every model reports its real context window and output limit, including custom endpoints; Codex models get their 272k window. A custom-endpoint model reads images and reasons when the endpoint supports it. (#10757, #10768)
  • Session history. A new session reads only the session log, and an old session being converted opens its history, not an empty log. (#10722, #10728)
  • Agents and connectors. A cleaner agent page and connector modal, catalogue favicons that recover from broken images, and one design for role dialogs. (#10490, #9924, #10702, #10382)
  • Mobile. Simpler session sheets and tool surfaces. (#10229)
  • Keep-alive. An open page keeps its sandbox awake for the idle window, not 2 hours. (#10026)

Fixed

  • Invites on self-hosted instances without email. A person your identity provider adds through SCIM can join even when their address is outside the provider's domain. The invite page offers Continue with single sign-on, says to ask an admin when single sign-on is not set up, and Resend lets that person accept. (#10707)
  • Routine wakes are silent: no waking notice, boot pill or boot screen. (#10716)
  • Reload keeps your project, and a sidebar click no longer opens a session's hover card. (#10720, #10721)
  • Files. Project owners can edit and commit repository text. (#10517)
  • Projects. Rename a project from the switcher. (#10523)
  • Panels. ⌘I brings back the panel it hid, also from inside the Browser preview. (#10725)
  • CLI. Remote login without a callback (its poll and approve calls get their own rate limit), service-account keys, and connectors call resolves the project like connectors ls. (#10483, #10779, #10235)
  • Sessions. Compacting a busy session no longer shows internal diagnostics; a US-region session boots where its drives live; a daemon restart drops its env-sync trust. (#10442, #10348, #10014)
  • Apps. Existing Apps move from ghcr.io/get-convex to ghcr.io/convex images. (#10353)
  • Connectors. A connector failure line is split in linear time. (#10736)
  • Desktop. The Linux AppImage builds again with electron-builder 26. (#10743)

Security

  • Dependency updates for the advisories of 2026-10-22 (Next 16.4.2, DOMPurify, Sentry, undici, Astro, Electron 42, Vitest 4, KaTeX, Caddy, Hono and others). (#10738, #10739, #10732, #10726)
  • Closed a path traversal in the presentations server. (#10729)
  • The repo-wide deploy role no longer holds prod grants; prod uses its own role. (#9329)
  • The gateway sends browser security headers, and its public health check no longer shows operational detail. (#10750, #10749)
  • Public access requests are rate-limited, device-login polling denials are uniform, and SCIM and git spec routes declare their auth. (#10753, #10773, #10755, #10754)
  • The sandbox web proxy guards egress on every port, and the web app restricts browser feature permissions. (#10752, #10751)
  • Pentest hardening: the marketplace catalog is cached and rate-limited, request bodies are capped at 64 MiB, every 401 names its auth scheme, OAuth client registration honours the requested client authentication, tighter CSP, signed release artifacts, and storage buckets no longer list their objects to signed-out callers. (#10748)
  • Session search rejects NUL bytes. (#10775)
  • A private security reporting policy. (#10756)

Internal

What's Changed

  • fix(session): a routine wake is silent: no waking notice, no boot pill, no boot screen by @Ino-Bagaric in #10716
  • fix(white-label): the reskin mode test waits for the cold build like every other file by @Ino-Bagaric in #10713
  • fix(web): a reload restores the kept project, and the snapshot asks for no v1 window by @DimitrijeGlibic in #10720
  • fix(web): a click on a sidebar session no longer pops its hover card (KRTX-2847) by @Ino-Bagaric in #10721
  • feat(session-log): a new session stays on the log instead of reading the v1 transcript by @DimitrijeGlibic in #10722
  • fix(invites): a directory guest can join on a self-host with no email by @markokraemer in #10707
  • refactor(web): unify IAM role dialogs (KRTX-3050) by @agent-kortix in #10702
  • docs(learnings): a render-published instance can be replaced; follow every instance by @DimitrijeGlibic in #10723
  • build(deps): bump actions/setup-node from 4.4.0 to 7.1.0 by @dependabot[bot] in #10284
  • build(deps): bump github/codeql-action/upload-sarif from 4.38.3 to 4.39.0 by @dependabot[bot] in #10283
  • build(deps): bump github/codeql-action from 4.38.2 to 4.39.0 by @dependabot[bot] in #10282
  • Promote dev 065dece to staging by @github-actions[bot] in #10724
  • build(deps): bump bridgecrewio/checkov-action from 12.3128.0 to 12.3134.0 by @dependabot[bot] in #10281
  • build(deps): bump actions/download-artifact from 8.0.1 to 8.0.2 by @dependabot[bot] in #10280
  • build(deps): bump github.com/klauspost/compress from 1.18.6 to 1.18.7 in /apps/kortix-app-runtime/caddy by @dependabot[bot] in #10503
  • chore(deps): bump hono from 4.13.7 to 4.13.11 by @dependabot[bot] in #10506
  • chore(deps): bump pypdf from 6.19.0 to 6.21.1 in /packages/starter/templates/general-knowledge-worker/skills/presentations/scripts by @dependabot[bot] in #10654
  • feat(marketplace): feature CosmoBlk/email-marketing-bible by @CosmoBlk in #9320
  • fix(web,desktop): ⌘I brings back the panel it hid, and works from inside the Browser preview (KRTX-2944) by @Ino-Bagaric in #10725
  • fix(apps): rewrite ghcr.io/get-convex image refs in existing Apps to ghcr.io/convex by @allenabraham999 in #10353
  • fix(drives): a US-region session boots where its drives live by @allenabraham999 in #10348
  • feat(api,cli,sdk): audit activity — who was active in a workspace, and how often, in milliseconds by @markokraemer in #10604
  • fix(web): connector catalogue favicon fallback and broken-image recovery (KRTX-2008) by @agent-kortix in #9924
  • refactor(web): delete five unused leftovers (KRTX-3042) by @agent-kortix in #10689
  • fix(api): a daemon restart drops the env-sync trust for its box by @Ino-Bagaric in #10014
  • fix(web): KRTX-2559 enable project rename from switcher by @agent-kortix in #10523
  • fix(deps): clear open high Dependabot and Trivy findings (electron 41, electron-builder 26, MCP server 2.3, tsgo out of the API image) by @markokraemer in #10726
  • chore(infra): stop reviewed IaC scan skips from opening code-scanning alerts by @markokraemer in #10727
  • feat(api): cap an open page's sandbox keep-alive at the idle window, not 2 h (KRTX-2451) by @agent-kortix in #10026
  • feat(goals): Goals page, session Goal button and goal health, behind the goals flag by @markokraemer in #10600
  • fix(session-log): an old session being converted opens its history, not an empty log by @DimitrijeGlibic in #10728
  • fix(security): close the presentations-server path traversal and clear CodeQL/Hadolint/Caddy alerts by @markokraemer in #10729
  • fix(files): let project owners edit and commit repository text by @agent-kortix in #10517
  • test(spec): list FILE-14 in the Files contract (route coverage gate) by @markokraemer in #10731
  • fix(deps): clear open Dependabot alerts (electron 42, vitest 4, KaTeX 0.18, Caddy 2.11.7, hono 4.13.11, smol-toml 1.9) by @markokraemer in #10732
  • fix(cli): callback-free remote login and service-account key acceptance (KRTX-2720) by @agent-kortix in #10483
  • feat(kortixd): run a session on your own machine with a ChatGPT subscription (scripts/local.ts) by @DimitrijeGlibic in #9754
  • fix(gateway): make the project Routing chain a catch-all for every model by @DimitrijeGlibic in #8742
  • feat(web): clean up the agent page and connector modal by @sutharjay1 in #10490
  • fix(KRTX-2650): handle busy session compaction without internal diagnostics by @agent-kortix in #10442
  • feat(web,api): project default reasoning effort setting (KRTX-2356) by @agent-kortix in #9935
  • feat(projects): transfer projects between organizations and accounts (KRTX-1747) by @agent-kortix in #9918
  • fix(ci): strip prod grants from the repo-wide deploy role — merge after the next prod release by @markokraemer in #9329
  • fix(ui): split a connector failure line in linear time by @markokraemer in #10736
  • docs(learnings): answer "nothing saved" only when nothing is saved by @DimitrijeGlibic in #10737
  • refactor(web): KRTX-1822 dedupe permission buttons and failure lists by @agent-kortix in #10382
  • fix(deps): next 16.4.2, dompurify 3.4.17, @sentry/nextjs 10.76.2 (critical advisories of 2026-10-22) by @markokraemer in #10738
  • feat(web)!: remove public transcript sharing; embed the actual session page (KRTX-2358) by @agent-kortix in #10008
  • feat(billing): meter everywhere, gate only charging (KRTX-1832) by @agent-kortix in #9929
  • fix(cli): connectors call resolves the project like connectors ls (KRTX-2529) by @agent-kortix in #10235
  • fix(deps): undici 6.28.1, astro 7.3.3, ip-address 10.7.4 (advisories of 2026-10-22) by @markokraemer in #10739
  • refactor(mobile): simplify session UI sheets and tool surfaces (KRTX-2731) by @agent-kortix in #10229
  • chore(web): add eloqnt lint to catch translation errors by @amannn in #7956
  • test(ui): drop a dead apps/web mock from the permission buttons test by @markokraemer in #10740
  • fix(release): rebuild @kortix/ui styles.css and drop a stale loader-count test by @markokraemer in #10741
  • Promote dev 3bdad60 to staging by @github-actions[bot] in #10742
  • fix(desktop): name the Linux binary so electron-builder 26 builds the AppImage by @markokraemer in #10743
  • chore(release): VERSION → 0.14.7 [skip ci] by @github-actions[bot] in #10745
  • chore(release): staging VERSION → 0.14.7 [skip ci] by @github-actions[bot] in #10746
  • docs(learnings): create the release tag with a workflow-scoped token when dev's workflows moved by @DimitrijeGlibic in #10747
  • fix(ci): accept any sha-pinned download-artifact release in the preview pin guard (KRTX-3065) by @agent-kortix in #10744
  • fix(gateway): send browser security headers (KRTX-3068) by @agent-kortix in #10750
  • fix(gateway): gate detailed health responses (KRTX-3070) by @agent-kortix in #10749
  • docs(security): add private reporting policy (KRTX-3078) by @agent-kortix in #10756
  • fix(models): every model serves its real context window and output limit by @markokraemer in #10757
  • fix(kortixd): sync bun.lock with hono ^4.13.11 and take DNS out of the web-proxy port-guard test by @markokraemer in #10758
  • fix(api): rate-limit public access requests (KRTX-3076) by @agent-kortix in #10753
  • fix(audit): label the CLI device-login routes and resync audit catalogs by @markokraemer in #10759
  • fix(ci): install the HCL parser in a venv; ubuntu-24.04 refuses a system pip install by @markokraemer in #10761
  • fix(release): clear the v0.14.7 web and ui gate failures by @markokraemer in #10762
  • fix(db): RLS on the audit activity tables; base-tip test waits for its claim by @markokraemer in #10763
  • Promote dev 0d15ced to staging by @github-actions[bot] in #10764
  • fix(api): break the custom-providers import cycle that failed six gateway test files by @markokraemer in #10765
  • Promote dev e09d7d4 to staging by @github-actions[bot] in #10766
  • fix(security): restrict browser feature permissions (KRTX-3067) by @agent-kortix in #10751
  • fix(ci): require review for catalog refresh (KRTX-3089) by @agent-kortix in #10767
  • fix(sandbox): guard web-proxy egress on every port (KRTX-3071) by @agent-kortix in #10752
  • fix(api): declare SCIM and git spec auth (KRTX-3077) by @agent-kortix in #10754
  • feat(models): a custom endpoint model reads images and reasons when it can by @markokraemer in #10768
  • fix(api): unify device-auth polling denials (KRTX-3075) by @agent-kortix in #10755
  • fix(test): audit activity rollup test passes at every wall-clock minute by @markokraemer in #10769
  • test(gateway): GW-1b checks the public health body #10749 left it by @markokraemer in #10770
  • Promote dev e5bd8cc to staging by @github-actions[bot] in #10771
  • chore(ci): pin remaining third-party actions (KRTX-3079) by @agent-kortix in #10760
  • fix(ui): the custom-provider form save test runs without a DOM by @markokraemer in #10772
  • Promote dev 2413909 to staging by @github-actions[bot] in #10774
  • fix(api): budget public auth requests before validation (KRTX-3098) by @agent-kortix in #10773
  • fix(kortixd): give OpenCode an output limit when the catalog knows only the window by @markokraemer in #10776
  • Promote dev 4cf24ee to staging by @github-actions[bot] in #10777
  • fix(api): reject NUL session searches (KRTX-3144) by @agent-kortix in #10775
  • fix: pentest hardening (availability, OAuth client auth, CSP, release signing) by @markokraemer in #10748
  • test(cli): AUTH-8 covers the CLI device-login routes; split their rate-limit buckets by @markokraemer in #10779
  • Promote dev daf7101 to staging by @github-actions[bot] in #10780
  • Release v0.14.7 — Project transfer, embedded sessions, directory-guest invites and security updates by @github-actions[bot] in #10730

New Contributors

Full Changelog: v0.14.6...v0.14.7

Don't miss a new suna release

NewReleases is sending notifications on new releases.