Connector-aware sessions, project icons, and sandbox reliability
v0.12.1
New
- Sessions can require connectors up front: select a connector for a session before it is connected, and when a prompt needs a connector that is not connected yet, the session pauses with a connect card instead of failing.
- Project icons: pick an emoji or a named glyph for each project.
- When an app preview stops or fails to load, you can send it straight to the agent to fix.
- Markdown files with frontmatter now render their metadata.
Improved
- The project session list was rebuilt as a cleaner everyday list.
- Model management shows which models are enabled for a project, and the Manage models tab counts them correctly.
- Error screens include one-click copy so you can report exactly what went wrong.
- The sidebar merges the Kortix mark and project switcher into one control, with layout and hover fixes.
- Sandbox capacity problems surface clear retry diagnostics instead of failing silently.
Fixed
- New signups land directly in their project instead of the project list.
- E2B sandboxes: template builds route through the self-host domain, concurrent builds settle correctly, build uploads stream reliably, and permanent sandbox removal is bounded.
- The file viewer no longer errors when a file is missing from the repo.
- Self-hosted installs can configure the API memory ceiling.
- Console noise from Android WebView is filtered out of session logs.
- Release pipeline: a stalled dark-region replica can no longer hold back a release, which had left recent releases without their published notes.
What's Changed
- chore(release): staging VERSION → 0.9.99 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4264
- Promote main → staging (LLM provider keys always project-wide + batch) by @markokraemer in https://github.com/kortix-ai/suna/pull/4273
- chore(release): staging VERSION → 0.9.100 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4280
- Promote main → staging: 0.9.100 release candidate by @markokraemer in https://github.com/kortix-ai/suna/pull/4312
- promote: snapshot quota fix + IAM capability gating → staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4335
- chore(staging): promote main → staging (fix: prod sandbox_provider platinum enum drift) by @markokraemer in https://github.com/kortix-ai/suna/pull/4338
- chore(release): staging VERSION → 0.9.101 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4346
- Staging by @kubet in https://github.com/kortix-ai/suna/pull/4360
- Promote main → staging: v0.9.101 release candidate by @kubet in https://github.com/kortix-ai/suna/pull/4363
- chore(release): staging VERSION → 0.9.102 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4368
- Promote main → staging: release candidate (incl. slack bind-thread #4385) by @markokraemer in https://github.com/kortix-ai/suna/pull/4389
- chore(release): staging VERSION → 0.9.103 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4394
- release: promote main session-identity safeguards to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4462
- release: complete staging health verification by @markokraemer in https://github.com/kortix-ai/suna/pull/4466
- chore(release): promote latest main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4468
- chore(release): promote latest main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4471
- chore(release): promote latest main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4475
- chore(release): staging VERSION → 0.9.104 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4478
- fix: recover prod migrations and session uploads by @markokraemer in https://github.com/kortix-ai/suna/pull/4482
- chore(release): staging VERSION → 0.9.105 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4487
- chore(release): staging VERSION → 0.9.106 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4492
- chore(release): staging VERSION → 0.9.107 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4501
- hotfix: auto-resume a stopped box on active OpenCode access (sandbox not ready fix) by @markokraemer in https://github.com/kortix-ai/suna/pull/4506
- chore(release): staging VERSION → 0.9.108 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4512
- chore(release): staging VERSION → 0.9.109 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4520
- Promote main → staging: generic self-host + in-app git by @markokraemer in https://github.com/kortix-ai/suna/pull/4727
- chore(release): staging VERSION → 0.10.1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4734
- Promote main → staging: self-host hardening (post-v0.10.0) by @markokraemer in https://github.com/kortix-ai/suna/pull/4735
- chore(release): staging VERSION → 0.10.2 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4743
- Promote main → staging: self-host wave 3 by @markokraemer in https://github.com/kortix-ai/suna/pull/4746
- Promote main → staging: self-host wave 3 by @markokraemer in https://github.com/kortix-ai/suna/pull/4747
- Promote main → staging: self-host wave (identity polish, account-creation restriction, managed-provider default fix) by @markokraemer in https://github.com/kortix-ai/suna/pull/4756
- chore(release): staging VERSION → 0.10.3 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4761
- Promote main → staging: v0.10.3 release train (self-host hardening, local-docker provider, migration safety, auth refresh) by @markokraemer in https://github.com/kortix-ai/suna/pull/4772
- chore(release): staging VERSION → 0.10.4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4779
- Release candidate: managed model catalog hotfix by @markokraemer in https://github.com/kortix-ai/suna/pull/4784
- fix(release): restore staging managed-model gateway by @markokraemer in https://github.com/kortix-ai/suna/pull/4789
- chore(release): staging VERSION → 0.10.5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4792
- fix(infra): restore prod EKS gateway origin TLS by @markokraemer in https://github.com/kortix-ai/suna/pull/4795
- fix(gateway): stamp promoted release version by @markokraemer in https://github.com/kortix-ai/suna/pull/4798
- chore(release): staging VERSION → 0.10.7 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4804
- Promote main → staging: v0.10.7 release train by @markokraemer in https://github.com/kortix-ai/suna/pull/4844
- chore(release): staging VERSION → 0.10.8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4850
- Promote main → staging (v0.10.8 candidate) by @markokraemer in https://github.com/kortix-ai/suna/pull/4852
- Promote main → staging for v0.10.8 (max_tokens, BYOK-shared, toast, pty, pipeline hardening) by @markokraemer in https://github.com/kortix-ai/suna/pull/4864
- chore(release): staging VERSION → 0.10.9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4875
- Promote to staging: Easy/Advanced session panel (#4120 + #4867) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4878
- Promote main → staging for v0.10.9 (self-host SSO redirect fix, gateway Argo render fix, Cloudflare Access SAML guide) by @markokraemer in https://github.com/kortix-ai/suna/pull/4883
- chore(release): staging VERSION → 0.10.10 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4886
- Promote main to staging (session panel + show tool fixes) by @sutharjay1 in https://github.com/kortix-ai/suna/pull/4888
- chore(release): staging VERSION → 0.10.11 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/4891
- release: promote current main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4912
- release: promote main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4941
- chore(release): promote accessibility gate fix to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4947
- fix(release): align QA with staging environment by @markokraemer in https://github.com/kortix-ai/suna/pull/4952
- Promote release QA fixes to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4961
- Promote release QA fixes to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/4963
- Promote staging secret preservation by @markokraemer in https://github.com/kortix-ai/suna/pull/4965
- release: promote authenticated release coverage by @markokraemer in https://github.com/kortix-ai/suna/pull/4967
- Promote main to staging: self-host release QA isolation by @markokraemer in https://github.com/kortix-ai/suna/pull/4970
- Release candidate: LLM Gateway on AI-SDK + models.dev (v0.10.11) by @markokraemer in https://github.com/kortix-ai/suna/pull/5014
- test(ke2e): refresh two stale flow assertions for v0.10.11 (staging) by @markokraemer in https://github.com/kortix-ai/suna/pull/5018
- fix(sandbox): warm-bake Chromium cache order + 30min timeout (staging) by @markokraemer in https://github.com/kortix-ai/suna/pull/5044
- chore(release): staging VERSION → 0.10.12 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5047
- chore(staging): promote main → staging for v0.10.12 (sandbox ppwarm FROM-base fix) by @markokraemer in https://github.com/kortix-ai/suna/pull/5052
- fix(sandbox): Chromium cache-order on the base image — staging hotfix for the v0.10.11 session-boot regression by @markokraemer in https://github.com/kortix-ai/suna/pull/5059
- Promote main → staging (v0.10.12 candidate: opencode config fix + Chromium cache-order + gateway) by @markokraemer in https://github.com/kortix-ai/suna/pull/5070
- chore(release): staging VERSION → 0.10.13 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5075
- Promote main → staging: Anthropic adaptive-thinking fix (+ gateway mapping spec) by @markokraemer in https://github.com/kortix-ai/suna/pull/5078
- Staging: gateway provider adapters + capability gating, IAM/SCIM identity UX, git-provider project creation by @markokraemer in https://github.com/kortix-ai/suna/pull/5100
- chore(release): staging VERSION → 0.10.14 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5136
- Promote main to staging (v0.10.14 candidate) by @markokraemer in https://github.com/kortix-ai/suna/pull/5196
- Promote main to staging (v0.10.14 candidate, refresh) by @markokraemer in https://github.com/kortix-ai/suna/pull/5205
- Promote current main to staging (v0.10.14 latest candidate) by @markokraemer in https://github.com/kortix-ai/suna/pull/5212
- Promote latest main to staging (v0.10.14 final refresh) by @markokraemer in https://github.com/kortix-ai/suna/pull/5214
- Promote latest main to staging (v0.10.14 billing refresh) by @markokraemer in https://github.com/kortix-ai/suna/pull/5218
- Promote exact latest main to staging (v0.10.14 dev pin sync) by @markokraemer in https://github.com/kortix-ai/suna/pull/5221
- Promote release cutoff main to staging (v0.10.14 performance refresh) by @markokraemer in https://github.com/kortix-ai/suna/pull/5223
- Promote latest main to staging (v0.10.14 project page crash fix) by @markokraemer in https://github.com/kortix-ai/suna/pull/5226
- Promote main to staging — v0.10.14 candidate by @markokraemer in https://github.com/kortix-ai/suna/pull/5233
- Refresh staging with latest main — v0.10.14 final candidate by @markokraemer in https://github.com/kortix-ai/suna/pull/5235
- Refresh staging with final main — v0.10.14 release candidate by @markokraemer in https://github.com/kortix-ai/suna/pull/5239
- release: promote main to staging after QA stabilization by @markokraemer in https://github.com/kortix-ai/suna/pull/5246
- Promote main to staging for v0.10.14 by @markokraemer in https://github.com/kortix-ai/suna/pull/5258
- Promote latest main to staging for v0.10.14 by @markokraemer in https://github.com/kortix-ai/suna/pull/5263
- Promote session inventory authorization fix to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5269
- test: retry transient release gate failures by @markokraemer in https://github.com/kortix-ai/suna/pull/5279
- fix(git): refresh staging mirror after missing branch by @markokraemer in https://github.com/kortix-ai/suna/pull/5282
- test: tolerate staging release gate host transients by @markokraemer in https://github.com/kortix-ai/suna/pull/5287
- fix(staging): cap API database pools by @markokraemer in https://github.com/kortix-ai/suna/pull/5291
- fix(deps): upgrade PostCSS past CVE-2026-45623 by @markokraemer in https://github.com/kortix-ai/suna/pull/5298
- Promote current main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5303
- Complete latest main promotion to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5305
- Promote final current main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5309
- Promote current main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5312
- release(staging): session runtime v32 fixes by @markokraemer in https://github.com/kortix-ai/suna/pull/5322
- fix(staging): preserve session runtime URL on restart by @markokraemer in https://github.com/kortix-ai/suna/pull/5325
- release: promote main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5340
- fix(staging): verify v0.10.14 session release gates by @markokraemer in https://github.com/kortix-ai/suna/pull/5364
- Release candidate: promote latest main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5365
- release(staging): promote main after session gate fixes by @markokraemer in https://github.com/kortix-ai/suna/pull/5372
- release(staging): include latest main pricing update by @markokraemer in https://github.com/kortix-ai/suna/pull/5374
- release(staging): fix distributed session limit enforcement by @markokraemer in https://github.com/kortix-ai/suna/pull/5379
- chore(dev-eks): deploy dev-a21799e8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5385
- fix(connectors): expose OAuth2 during creation by @markokraemer in https://github.com/kortix-ai/suna/pull/5389
- refactor(web): enforce SDK-only backend boundary by @markokraemer in https://github.com/kortix-ai/suna/pull/5388
- chore(dev-eks): deploy dev-ae967fdb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5390
- chore(dev-eks): deploy dev-07f28dd0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5391
- fix(dev): preserve API WebSocket upgrades by @markokraemer in https://github.com/kortix-ai/suna/pull/5392
- chore(dev-eks): deploy gateway dev-8688b849 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5393
- chore(dev-eks): deploy dev-8688b849 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5394
- test(sdk): close SDK-only frontend delivery by @markokraemer in https://github.com/kortix-ai/suna/pull/5395
- chore(dev-eks): deploy dev-f2929a4d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5396
- fix(llm-gateway): forward prompt cache writes by @markokraemer in https://github.com/kortix-ai/suna/pull/5397
- chore(dev-eks): deploy gateway dev-463d4241 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5398
- chore(dev-eks): deploy dev-463d4241 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5399
- Fix session history pagination scroll restoration by @markokraemer in https://github.com/kortix-ai/suna/pull/5400
- chore(dev-eks): deploy dev-76de546c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5401
- fix(whitelabel): prevent zstd proxy corruption by @markokraemer in https://github.com/kortix-ai/suna/pull/5402
- feat(integrations): add provider-independent authentication lifecycle by @markokraemer in https://github.com/kortix-ai/suna/pull/5403
- chore(dev-eks): deploy dev-00bc2906 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5404
- chore(dev-eks): deploy dev-8a124988 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5406
- chore(db): prepare us-west-2 Supabase target by @markokraemer in https://github.com/kortix-ai/suna/pull/5405
- chore(dev-eks): deploy dev-dceea2ed [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5407
- fix(gateway): make managed billing exact and auditable by @markokraemer in https://github.com/kortix-ai/suna/pull/5408
- chore(dev-eks): deploy gateway dev-29675b2d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5412
- fix(web): guard PoliciesPanel against missing policies field (BS 236e88fb) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5410
- chore(dev-eks): deploy dev-29675b2d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5413
- feat(infra): prepare US West 2 production shadow by @markokraemer in https://github.com/kortix-ai/suna/pull/5414
- chore(dev-eks): deploy gateway dev-e58faa6c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5417
- feat(acp): add OpenCode-only runtime canary by @markokraemer in https://github.com/kortix-ai/suna/pull/5415
- chore(dev-eks): deploy dev-3a45ab55 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5419
- fix(infra): repair US shadow deploy and reconciliation by @markokraemer in https://github.com/kortix-ai/suna/pull/5418
- chore(dev-eks): deploy gateway dev-f8968d3e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5420
- chore(dev-eks): deploy dev-f8968d3e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5421
- docs: OAuth2 lifecycle, connector auth-type enum, transport-throw retry, example 09 by @agent-kortix in https://github.com/kortix-ai/suna/pull/5422
- test(acp): harden deployed canary verification by @markokraemer in https://github.com/kortix-ai/suna/pull/5423
- chore(dev-eks): deploy dev-93f21e9c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5424
- fix(sdk): keep ACP event streams alive by @markokraemer in https://github.com/kortix-ai/suna/pull/5425
- content(docs): add persistent "Get started" CTA to docs nav rail by @agent-kortix in https://github.com/kortix-ai/suna/pull/5426
- chore(dev-eks): deploy gateway dev-ed7d992f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5427
- chore(dev-eks): deploy dev-ed7d992f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5428
- test(acp): detach reconnect from Playwright routing by @markokraemer in https://github.com/kortix-ai/suna/pull/5429
- perf(boot): attribute and cut session-boot latency (removes Platinum's ~7s clone) by @markokraemer in https://github.com/kortix-ai/suna/pull/5409
- chore(dev-eks): deploy dev-3d649159 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5430
- fix(web): restore LLM management navigation by @markokraemer in https://github.com/kortix-ai/suna/pull/5432
- fix(sdk): serialize ACP sends across runtime restarts by @markokraemer in https://github.com/kortix-ai/suna/pull/5433
- chore(dev-eks): deploy dev-aedb8c16 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5434
- Fix false Load older messages control by @markokraemer in https://github.com/kortix-ai/suna/pull/5435
- chore(dev-eks): deploy dev-85ae91df [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5436
- fix(web): clarify LLM provider connection flow by @markokraemer in https://github.com/kortix-ai/suna/pull/5437
- Fix trigger scheduler fleet scans by @markokraemer in https://github.com/kortix-ai/suna/pull/5438
- fix(audit): add actor / search / date-range / resource filters to account audit log by @agent-kortix in https://github.com/kortix-ai/suna/pull/5383
- test(e2e): wait for REST model readiness by @markokraemer in https://github.com/kortix-ai/suna/pull/5440
- chore(dev-eks): deploy dev-db2519b5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5442
- fix(web): guard session-page .slice() against null value (BS e6d0e044) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5439
- fix(staging): keep API router on EKS by @markokraemer in https://github.com/kortix-ai/suna/pull/5441
- fix: refresh webhook trigger manifests by @markokraemer in https://github.com/kortix-ai/suna/pull/5443
- chore(dev-eks): deploy dev-f9132a97 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5444
- fix(web): restore compact LLM provider modal by @markokraemer in https://github.com/kortix-ai/suna/pull/5445
- chore(infra): prepare US East 2 production shadow by @markokraemer in https://github.com/kortix-ai/suna/pull/5447
- release: promote scheduler reliability fixes to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5446
- chore(dev-eks): deploy gateway dev-56954737 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5449
- feat(voice): realtime voice channel on LiveKit (replaces the Recall notetaker) by @markokraemer in https://github.com/kortix-ai/suna/pull/5431
- fix(web): open LLM manager actions in modal by @markokraemer in https://github.com/kortix-ai/suna/pull/5448
- fix(web): use canonical SDK voice import by @markokraemer in https://github.com/kortix-ai/suna/pull/5450
- fix(db): restore voice migration order by @markokraemer in https://github.com/kortix-ai/suna/pull/5452
- chore(dev-eks): deploy dev-0a1ed173 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5453
- test(migration): verify source refresh on US Auth by @markokraemer in https://github.com/kortix-ai/suna/pull/5454
- fix(migration): scope Node SSL mode to database runner by @markokraemer in https://github.com/kortix-ai/suna/pull/5455
- docs(migration): refresh US shadow evidence by @markokraemer in https://github.com/kortix-ai/suna/pull/5456
- docs(migration): record production autoscaling by @markokraemer in https://github.com/kortix-ai/suna/pull/5457
- Make the white-label ACP reference SDK-only by @markokraemer in https://github.com/kortix-ai/suna/pull/5458
- chore(dev-eks): deploy gateway dev-ceaa7e33 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5459
- chore(dev-eks): deploy dev-ceaa7e33 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5460
- release: stage scheduler reliability only by @markokraemer in https://github.com/kortix-ai/suna/pull/5461
- Keep ACP sessions on the current daemon snapshot by @markokraemer in https://github.com/kortix-ai/suna/pull/5462
- chore(dev-eks): deploy dev-aff406f3 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5464
- Fix model provider connection UX by @markokraemer in https://github.com/kortix-ai/suna/pull/5463
- test(migration): gate US shadow authentication by @markokraemer in https://github.com/kortix-ai/suna/pull/5466
- Session chat: narrative transcript by default, full history one click away by @markokraemer in https://github.com/kortix-ai/suna/pull/5451
- fix(sdk): reconcile REST prompts before first event by @markokraemer in https://github.com/kortix-ai/suna/pull/5467
- test(migration): gate US frontend provider redirects by @markokraemer in https://github.com/kortix-ai/suna/pull/5468
- chore(dev-eks): deploy gateway dev-ad56e00c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5469
- chore(release): VERSION → 0.10.16 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5470
- chore(release): staging VERSION → 0.10.16 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5471
- chore(dev-eks): deploy gateway dev-c26942d4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5472
- chore(dev-eks): deploy dev-c26942d4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5473
- chore(dev-eks): deploy dev-92b337bb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5474
- feat(projects): keep one warm session ready by @markokraemer in https://github.com/kortix-ai/suna/pull/5475
- chore(dev-eks): deploy dev-dc6d1c0b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5476
- fix(sdk): make ACP and REST prompt completion monotonic by @markokraemer in https://github.com/kortix-ai/suna/pull/5477
- chore(dev-eks): deploy dev-480a44dc [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5478
- docs(sdk): record B23 deployed completion [skip ci] by @markokraemer in https://github.com/kortix-ai/suna/pull/5479
- docs: meet->voice channel rename, workspace enforcement by @agent-kortix in https://github.com/kortix-ai/suna/pull/5482
- content(blog): correct DeepSeek output price $0.30 -> $0.28 by @agent-kortix in https://github.com/kortix-ai/suna/pull/5484
- test(auth): wait for hydrated login form by @markokraemer in https://github.com/kortix-ai/suna/pull/5485
- docs: add ACP runtime status quo handoff by @markokraemer in https://github.com/kortix-ai/suna/pull/5488
- fix(api): stop Sentry-capturing transient Supabase pool exhaustion (BS 721b7efe) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5487
- chore(dev-eks): deploy dev-c9df628d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5489
- perf(api): remove turn-stream request amplification by @markokraemer in https://github.com/kortix-ai/suna/pull/5490
- chore(dev-eks): deploy dev-4f46e3aa [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5492
- chore(dev-eks): deploy gateway dev-47d41d9b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5493
- chore(dev-eks): deploy dev-69af18f3 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5494
- perf(api): cut sandbox control-plane chatter and ambient-poll latency by @markokraemer in https://github.com/kortix-ai/suna/pull/5491
- chore(dev-eks): deploy dev-704b9c1b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5497
- fix(ci): restore starter and voice checks by @markokraemer in https://github.com/kortix-ai/suna/pull/5498
- docs(sdk): record API latency dev proof by @markokraemer in https://github.com/kortix-ai/suna/pull/5495
- fix(prod): harden final US East 2 database cutover by @markokraemer in https://github.com/kortix-ai/suna/pull/5496
- chore(dev-eks): deploy gateway dev-fa525d30 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5499
- chore(dev-eks): deploy dev-fa525d30 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5501
- fix(web): pass turn run children as data prop by @markokraemer in https://github.com/kortix-ai/suna/pull/5500
- chore(dev-eks): deploy dev-ccdce643 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5503
- fix(billing): reconcile lost per-seat compute windows; make request diagnostics visible in CloudWatch by @markokraemer in https://github.com/kortix-ai/suna/pull/5502
- chore(dev-eks): deploy dev-afe54ce9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5505
- fix(maintenance): fail over independently at the edge by @markokraemer in https://github.com/kortix-ai/suna/pull/5504
- chore(dev-eks): deploy gateway dev-b18ceaa5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5507
- release: add independent production maintenance failover by @markokraemer in https://github.com/kortix-ai/suna/pull/5506
- chore(dev-eks): deploy dev-b18ceaa5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5508
- chore(dev-eks): deploy dev-1097dce8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5510
- chore(dev-eks): deploy dev-d5bc283d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5513
- fix(sdk): restore staging maintenance transport by @markokraemer in https://github.com/kortix-ai/suna/pull/5512
- fix(api): stop billing rotations on workerless pods by @markokraemer in https://github.com/kortix-ai/suna/pull/5515
- chore(dev-eks): deploy dev-efc0036e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5516
- chore(dev-eks): deploy dev-e8dc428a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5517
- chore(dev-eks): deploy dev-6a1ff05b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5518
- fix(use2): clean recovery flow state after smoke by @markokraemer in https://github.com/kortix-ai/suna/pull/5519
- chore(dev-eks): deploy dev-8189da8a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5520
- fix(secrets): scope sandbox secret injection to the agent that actually runs by @markokraemer in https://github.com/kortix-ai/suna/pull/5514
- chore(dev-eks): deploy dev-7d0aae0b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5521
- docs(secrets): spec network-boundary secret delivery policy by @markokraemer in https://github.com/kortix-ai/suna/pull/5522
- Fix US migration smoke billing cleanup by @markokraemer in https://github.com/kortix-ai/suna/pull/5523
- Release US worker isolation guard to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5524
- Fix frontend migration smoke Auth flow cleanup by @markokraemer in https://github.com/kortix-ai/suna/pull/5525
- chore(dev-eks): deploy dev-43fd93cd [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5526
- chore(dev-eks): deploy dev-d7dc3622 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5527
- chore(dev-eks): deploy dev-5051d9cb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5528
- fix(use2): harden US shadow session readiness by @markokraemer in https://github.com/kortix-ai/suna/pull/5529
- chore(dev-eks): deploy dev-5c0ae97e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5530
- test(use2): wait for selected warm agent by @markokraemer in https://github.com/kortix-ai/suna/pull/5531
- chore(dev-eks): deploy dev-8d6a7876 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5532
- fix(sdk): preserve project agent selection by @markokraemer in https://github.com/kortix-ai/suna/pull/5533
- chore(dev-eks): deploy dev-ee45f55f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5534
- docs(sdk): record US session readiness proof by @markokraemer in https://github.com/kortix-ai/suna/pull/5535
- chore(dev-eks): deploy dev-36432e59 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5536
- ops: add US shadow reconciliation workflow by @markokraemer in https://github.com/kortix-ai/suna/pull/5537
- fix(ops): scope Supabase CLI prerequisite by @markokraemer in https://github.com/kortix-ai/suna/pull/5538
- fix(ops): use US shadow reconciliation role by @markokraemer in https://github.com/kortix-ai/suna/pull/5539
- fix(web): break setSessionAgentName React #185 render loop (BS 351da943) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5540
- fix(web): guard marketing-site scrollTo against non-scrollable ref (BS a0000df8) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5542
- fix(scheduler): dispatch cron slots exactly by @markokraemer in https://github.com/kortix-ai/suna/pull/5543
- chore(dev-eks): deploy gateway dev-974c699e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5544
- chore(dev-eks): deploy dev-974c699e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5545
- fix(scheduler): bound catalog retries after backfill by @markokraemer in https://github.com/kortix-ai/suna/pull/5546
- chore(dev-eks): deploy dev-1cd087aa [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5547
- release(scheduler): promote exact cron dispatch to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5548
- docs: trigger scheduler cadence, execution lease interval, voice opt-in, voiceTranscript by @agent-kortix in https://github.com/kortix-ai/suna/pull/5550
- fix(security): scope AgentMail inbox takeover delete + ownership gate (pentest 2026-07-27) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5551
- chore(dev-eks): deploy dev-bf90f44e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5553
- fix(security): do not expose DOTENV_PRIVATE_KEY to PR-triggered test jobs (CI-DK) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5552
- feat: multiple connections per connector (team + personal) with a connections list by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5556
- feat(web): make team-shared vs private-to-me connections unmistakable by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5554
- chore(dev-eks): deploy dev-52dc62cc [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5557
- feat(kaab): required connectors — run as the user's own connection, gate if unconnected, admin roster by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5366
- fix(kaab): make KORTIX_ORIGIN_REF unforgeable + document origin_ref honestly by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5558
- chore(dev-eks): deploy dev-64250043 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5560
- fix(kaab): require_connectors picks the member's default connection, skips revoked by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5559
- chore(dev-eks): deploy dev-e88526c6 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5562
- fix(kaab): re-land connectors_personal onto main (#5370 merged into its base branch, not main) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5561
- chore(dev-eks): deploy dev-170b4b14 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5563
- fix(seo): stop garbled brand snippet — render KortixLetterField as SVG background-image by @agent-kortix in https://github.com/kortix-ai/suna/pull/5555
- feat(kaab): set connectors_personal from the agent-scope API (with subset pruning) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5564
- chore(dev-eks): deploy dev-f9a5d420 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5566
- fix(kaab): agent editor could not save any project using connectors_personal by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5565
- chore(dev-eks): deploy dev-55663e3b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5568
- feat(web): per-connector 'personal' toggle in the agent editor by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5567
- feat(kaab): per-end-user usage metering (origin_ref on usage_events) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5569
- feat(kaab): per-end-user concurrency cap + restore the lost account-active index by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5570
- chore(dev-eks): deploy dev-7824a618 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5571
- feat(web): per-connection IDs + tabbed connector detail by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5572
- fix(permissions): surface project-rule overrides + feat(billing): per-end-user spend by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5573
- chore(dev-eks): deploy dev-12da8c76 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5575
- fix(web): drop iOS WebView WebKit-bridge messageHandlers noise (BS 5b94212b) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5574
- fix(security): KaaB cross-end-user session access + revoked-secret re-injection by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5577
- chore(dev-eks): deploy dev-f4a968f6 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5580
- feat(permissions): per-connection tool permissions by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5579
- chore(dev-eks): deploy dev-8a344cdb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5582
- fix(test): un-dark two suites (0 → 76 tests) + Permissions discoverability by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5583
- chore(dev-eks): deploy dev-25051973 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5585
- ops: guard final US East 2 cutover by @markokraemer in https://github.com/kortix-ai/suna/pull/5584
- chore(release): merge latest main into staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5588
- feat(api): rename origin_ref → end_user_ref (origin_ref kept as permanent alias) by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5586
- fix(voice): keep worker bearer out of room metadata by @markokraemer in https://github.com/kortix-ai/suna/pull/5589
- ops: support candidate tags in US shadow by @markokraemer in https://github.com/kortix-ai/suna/pull/5590
- fix(cli,api): kortix ship pushes through the git proxy, not an unexportable token by @markokraemer in https://github.com/kortix-ai/suna/pull/5591
- chore(dev-eks): deploy dev-96c8d84a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5596
- fix: update staging security dependencies by @markokraemer in https://github.com/kortix-ai/suna/pull/5595
- chore(release): reconcile latest main with staging hotfix by @markokraemer in https://github.com/kortix-ai/suna/pull/5593
- feat(api): change a session's model mid-flight by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5592
- chore(dev-eks): deploy dev-bd3ae3c1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5597
- fix(test): validate every decorative landing element by @markokraemer in https://github.com/kortix-ai/suna/pull/5601
- fix(test): validate every decorative landing element by @markokraemer in https://github.com/kortix-ai/suna/pull/5602
- fix(sdk): preserve ACP message turn boundaries by @markokraemer in https://github.com/kortix-ai/suna/pull/5603
- fix(migration): reconcile shadow credit ledger rows by @markokraemer in https://github.com/kortix-ai/suna/pull/5604
- feat(whitelabel-demo): Kortix-as-a-Backend support end to end by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5599
- fix: never re-queue a create whose failure was already returned to the caller by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5606
- fix(migration): preserve replication backlog ownership by @markokraemer in https://github.com/kortix-ai/suna/pull/5607
- fix(migration): reconcile shadow credit ledger rows by @markokraemer in https://github.com/kortix-ai/suna/pull/5605
- chore(release): sync newest main into staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5600
- fix: one canonical connector alias across all three grant gates by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5609
- chore(dev-eks): deploy dev-a6b3fd68 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5611
- test: prove KaaB session isolation at the list leg by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5610
- chore(dev-eks): deploy dev-65c707d4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5613
- feat(whitelabel-demo): pick which shared connection a session runs as by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5612
- fix(gateway): normalize malformed message history so strict providers accept it by @markokraemer in https://github.com/kortix-ai/suna/pull/5608
- chore(dev-eks): deploy gateway dev-7b77515d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5616
- chore(release): sync latest main into staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5615
- chore(release): sync newest main into staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5617
- chore(dev-eks): deploy dev-7b77515d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5618
- chore(release): sync exact current main into staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5620
- feat(sessions): add message-based rewind for REST and ACP by @markokraemer in https://github.com/kortix-ai/suna/pull/5619
- chore(dev-eks): deploy dev-9e90e8ed [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5621
- chore(release): sync exact latest main into staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5622
- Add Marketing Department project template by @lillyboga in https://github.com/kortix-ai/suna/pull/5578
- chore(dev-eks): deploy gateway dev-e548c6a8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5625
- chore(dev-eks): deploy dev-e548c6a8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5626
- chore(release): sync final latest main into staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5627
- fix(release): harden US cutover readiness by @markokraemer in https://github.com/kortix-ai/suna/pull/5623
- chore(dev-eks): deploy gateway dev-79c208aa [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5628
- chore(release): include latest production cutover hardening by @markokraemer in https://github.com/kortix-ai/suna/pull/5629
- docs(sdk): record deployed session rewind proof by @markokraemer in https://github.com/kortix-ai/suna/pull/5630
- chore(dev-eks): deploy dev-49dc74f4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5632
- fix(tests): use one Playwright runtime for US smoke by @markokraemer in https://github.com/kortix-ai/suna/pull/5631
- chore(dev-eks): deploy gateway dev-83984378 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5634
- chore(dev-eks): deploy dev-83984378 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5635
- Fix ACP final idle state and add ?acp override by @markokraemer in https://github.com/kortix-ai/suna/pull/5636
- chore(dev-eks): deploy dev-76b4cb98 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5637
- fix(release): pace managed repository provisioning by @markokraemer in https://github.com/kortix-ai/suna/pull/5638
- Heal corrupt git mirror cache entries by @lillyboga in https://github.com/kortix-ai/suna/pull/5641
- chore(dev-eks): deploy dev-256230d1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5642
- fix(release): isolate mutable IAM and session flows by @markokraemer in https://github.com/kortix-ai/suna/pull/5640
- Fix CodeQL secure temporary file gate by @markokraemer in https://github.com/kortix-ai/suna/pull/5644
- chore(dev-eks): deploy dev-022f666d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5645
- Release candidate: promote latest main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5643
- Fix release pacing unit-test environment by @markokraemer in https://github.com/kortix-ai/suna/pull/5646
- Release candidate: fix release pacing test environment by @markokraemer in https://github.com/kortix-ai/suna/pull/5647
- fix(sessions): sync runtime-generated titles by @markokraemer in https://github.com/kortix-ai/suna/pull/5648
- chore(dev-eks): deploy dev-b8e1e75b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5649
- Release candidate: include latest session title synchronization by @markokraemer in https://github.com/kortix-ai/suna/pull/5650
- test(sessions): wait for web readiness in title sync flow by @markokraemer in https://github.com/kortix-ai/suna/pull/5651
- Release candidate: sync test-only session title wait by @markokraemer in https://github.com/kortix-ai/suna/pull/5654
- fix(worktree): stop process trees, not port listeners by @markokraemer in https://github.com/kortix-ai/suna/pull/5653
- fix(api): return 404 for readRepoFile git-show path-not-found (BS a8d20288) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5652
- chore(dev-eks): deploy dev-985b7db0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5655
- chore(release): promote current main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5656
- chore(dev-eks): deploy dev-cd5f4513 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5659
- chore(release): promote current main to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5660
- test(ke2e): reuse Git fixtures and split live lanes by @markokraemer in https://github.com/kortix-ai/suna/pull/5658
- chore(release): promote optimized ke2e gate to staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5661
- test(ke2e): honor gateway Retry-After by @markokraemer in https://github.com/kortix-ai/suna/pull/5662
- feat(runtime): add ACP CLI harness processes by @markokraemer in https://github.com/kortix-ai/suna/pull/5665
- chore(dev-eks): deploy gateway dev-d87349a9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5666
- chore(dev-eks): deploy dev-d87349a9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5667
- docs: connectors_personal manifest field, changeModel SDK method, auth-type enum, runtimeTransport option by @agent-kortix in https://github.com/kortix-ai/suna/pull/5668
- test(ke2e): bound release gate load by @markokraemer in https://github.com/kortix-ai/suna/pull/5669
- fix(runtime): pin Pi internal dependencies by @markokraemer in https://github.com/kortix-ai/suna/pull/5671
- chore(dev-eks): deploy gateway dev-1b4db8f8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5672
- chore(dev-eks): deploy dev-1b4db8f8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5674
- docs: narrow the e2e-preview-proxy failures to a harness question by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5614
- fix(runtime): install Pi with npm by @markokraemer in https://github.com/kortix-ai/suna/pull/5675
- chore(dev-eks): deploy gateway dev-5762bcfc [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5677
- chore(dev-eks): deploy dev-5762bcfc [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5678
- feat(whitelabel-demo): show what a running session can and cannot change by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5676
- chore(dev-eks): deploy gateway dev-dda51b0b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5680
- chore(dev-eks): deploy dev-dda51b0b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5681
- docs: the apps/api suite has no CI key — proven, and my earlier fix retracted by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5682
- fix(security): session sharing was exempt from the KaaB isolation narrowing by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5683
- chore(dev-eks): deploy dev-cb5bb899 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5685
- fix(security): bind turn-question to the sandbox token's own session by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5686
- chore(dev-eks): deploy dev-8bfb1096 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5690
- fix(security): never widen an agent grant on a manifest error; canonicalize the v2 default by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5687
- fix(gateway): fail over stalled model streams by @markokraemer in https://github.com/kortix-ai/suna/pull/5689
- chore(dev-eks): deploy gateway dev-9ac237f1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5692
- chore(dev-eks): deploy dev-9ac237f1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5693
- fix(security): redact session content on rows the caller cannot access by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5688
- docs: correct the KaaB docs against the code, and document what shipped by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5691
- fix(whitelabel-demo): make KaaB refusals reachable, and stop silent sends by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5694
- fix(security): an agent must never resolve its own approval by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5684
- chore(dev-eks): deploy dev-57e081c0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5696
- feat(kaab): filter the session list by end_user_ref by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5697
- chore(dev-eks): deploy dev-7f51c831 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5699
- feat(kaab): re-mint the session token grant on a mid-session agent switch by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5698
- chore(dev-eks): deploy dev-fd6fa64b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5701
- fix(kaab): revoke a session's executor tokens when its sandbox is gone by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5700
- fix(ke2e): reuse managed project on staging by @markokraemer in https://github.com/kortix-ai/suna/pull/5702
- feat(kaab): per-end-user spend cap by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5704
- chore(dev-eks): deploy dev-0f390c6c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5706
- docs: verified baseline of secret exposure inside the sandbox by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5705
- fix(ke2e): bound stale-user cleanup by @markokraemer in https://github.com/kortix-ai/suna/pull/5707
- perf(ke2e): query stale users directly by @markokraemer in https://github.com/kortix-ai/suna/pull/5711
- fix(ke2e): require strict TLS for GC database by @markokraemer in https://github.com/kortix-ai/suna/pull/5714
- content(blog): differentiate agi-ready-architecture manifest from introducing-kortix by @agent-kortix in https://github.com/kortix-ai/suna/pull/5712
- fix(ke2e): preserve claimed warm-session metadata by @markokraemer in https://github.com/kortix-ai/suna/pull/5716
- fix(api): preserve public-share permission status by @markokraemer in https://github.com/kortix-ai/suna/pull/5717
- chore(dev-eks): deploy dev-fe9c7bfe [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5718
- feat(secrets): secret delivery strategy — design + pure policy layer by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5708
- fix(whitelabel-demo): refuse encoded-slash path traversal in the BFF proxy by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5710
- fix(kaab): two critical regressions in my own isolation work by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5715
- chore(dev-eks): deploy dev-b217ced8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5721
- fix(kaab): gate opencode :4096 on session visibility, not just :8000 by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5722
- chore(dev-eks): deploy dev-e5e934f4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5723
- feat(secrets): SDS stage 1 — schema + policy layer, one shared egress-policy type by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5724
- chore(dev-eks): deploy dev-ff0e36fa [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5726
- fix(sandbox-proxy): release prompt dedupe claim when delivery provably failed by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5271
- chore(dev-eks): deploy dev-be05b2ca [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5727
- feat(whitelabel-demo): session scope controls, connector binding, and a testing guide by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5728
- feat(sessions): generate session titles from the first prompt via the gateway by @markokraemer in https://github.com/kortix-ai/suna/pull/5733
- chore(dev-eks): deploy dev-5db7502b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5734
- fix(sessions): title with the live picked model, not the stale opencode_model by @markokraemer in https://github.com/kortix-ai/suna/pull/5735
- chore(dev-eks): deploy dev-6b695ee4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5736
- fix(web): stop ambient voice transcript polling by @markokraemer in https://github.com/kortix-ai/suna/pull/5738
- refactor(sessions): one title path — delete the OpenCode title machinery by @markokraemer in https://github.com/kortix-ai/suna/pull/5739
- chore(dev-eks): deploy dev-efdb77c5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5740
- fix(web): remove session voice transcript tab by @markokraemer in https://github.com/kortix-ai/suna/pull/5742
- feat(models): per-project model enablement, gateway-enforced (backend) by @markokraemer in https://github.com/kortix-ai/suna/pull/5743
- chore(dev-eks): deploy gateway dev-6e0f8cf0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5744
- chore(dev-eks): deploy dev-6e0f8cf0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5745
- fix(release): block mismatched production Supabase auth by @markokraemer in https://github.com/kortix-ai/suna/pull/5747
- feat(models): wire the model-enablement UI to the server (Manage models + picker) by @markokraemer in https://github.com/kortix-ai/suna/pull/5746
- chore(dev-eks): deploy dev-d248b8ce [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5748
- feat(acp): add project-gated multi-harness runtime by @markokraemer in https://github.com/kortix-ai/suna/pull/5749
- chore(dev-eks): deploy gateway dev-239cda8a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5752
- chore(dev-eks): deploy dev-239cda8a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5753
- fix(web): restore public share links across the file and preview surfaces by @markokraemer in https://github.com/kortix-ai/suna/pull/5751
- chore(dev-eks): deploy dev-8e86e27d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5754
- fix(security): close public SSH/RDP exposure on the us-east-2 ACL and prevent its return by @markokraemer in https://github.com/kortix-ai/suna/pull/5755
- test(ke2e): cover the public file-share branch in SESS-13 by @markokraemer in https://github.com/kortix-ai/suna/pull/5756
- fix(security): make the NACL admin-port audit actually run by @markokraemer in https://github.com/kortix-ai/suna/pull/5757
- fix(acp): refresh ingress credentials after restart by @markokraemer in https://github.com/kortix-ai/suna/pull/5759
- chore(dev-eks): deploy dev-35d4063c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5761
- fix(ci): make drift detection actually run by @markokraemer in https://github.com/kortix-ai/suna/pull/5760
- docs(sdk): record deployed multi-harness proof by @markokraemer in https://github.com/kortix-ai/suna/pull/5762
- fix(ci): give drift detection the Cloudflare token it needs to plan by @markokraemer in https://github.com/kortix-ai/suna/pull/5763
- feat(onboarding): land every signup directly in a project, with no blocking provision by @markokraemer in https://github.com/kortix-ai/suna/pull/5758
- revert(session-chat): restore the pre-v0.11 transcript rendering by @markokraemer in https://github.com/kortix-ai/suna/pull/5764
- fix(ci): supply cloudflare_zone_id to the drift plan by @markokraemer in https://github.com/kortix-ai/suna/pull/5765
- fix(ci): scope drift detection to roots CI can actually plan by @markokraemer in https://github.com/kortix-ai/suna/pull/5766
- fix(onboarding): bind the remembered-project cookie to its owner by @markokraemer in https://github.com/kortix-ai/suna/pull/5767
- docs(acp): make Kortix multi-harness documentation complete by @markokraemer in https://github.com/kortix-ai/suna/pull/5768
- chore(dev-eks): deploy dev-3b3992fb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5769
- refactor(infra): make Terraform the source of truth for the ECS envs by @markokraemer in https://github.com/kortix-ai/suna/pull/5771
- Slim the Kortix Starter to a 10-skill artifact floor by @markokraemer in https://github.com/kortix-ai/suna/pull/5770
- Start only the selected ACP harness and persist boot benchmarks by @markokraemer in https://github.com/kortix-ai/suna/pull/5772
- docs(compliance): record the open critical IaC finding on the audit role by @markokraemer in https://github.com/kortix-ai/suna/pull/5773
- chore(dev-eks): deploy gateway dev-81486b61 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5775
- docs(sdk): record multi-harness docs deployment by @markokraemer in https://github.com/kortix-ai/suna/pull/5774
- chore(dev-eks): deploy dev-7935cd93 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5777
- Repair marketplace tests missed by the starter slim-down by @markokraemer in https://github.com/kortix-ai/suna/pull/5776
- fix(infra): capture the Cloudflare zone id so plans stop proposing DNS churn by @markokraemer in https://github.com/kortix-ai/suna/pull/5778
- refactor(billing): make Stripe returns route-independent, delete the dead modal chain by @markokraemer in https://github.com/kortix-ai/suna/pull/5779
- docs(runtime): record live dev Pi latency proof by @markokraemer in https://github.com/kortix-ai/suna/pull/5781
- chore(security): adopt the last unmanaged IAM roles, retire the dead ones by @markokraemer in https://github.com/kortix-ai/suna/pull/5782
- ci: cover the ECS environments in drift detection by @markokraemer in https://github.com/kortix-ai/suna/pull/5783
- fix(models): one answer for "which models does this project offer" by @markokraemer in https://github.com/kortix-ai/suna/pull/5780
- feat(web): use harness favicons in agent selectors by @markokraemer in https://github.com/kortix-ai/suna/pull/5784
- chore(sdk): record BillingState in the type-surface snapshot by @markokraemer in https://github.com/kortix-ai/suna/pull/5786
- fix(models): never prune a managed or configured model from the default set by @markokraemer in https://github.com/kortix-ai/suna/pull/5785
- fix(db): restore dev migration order by @markokraemer in https://github.com/kortix-ai/suna/pull/5787
- chore(dev-eks): deploy dev-d55c0bb0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5788
- chore(dev-eks): deploy dev-16e14971 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5789
- chore(dev-eks): deploy gateway dev-c59a9181 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5790
- chore(dev-eks): deploy dev-c59a9181 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5791
- docs: per-project model enablement, backend.mdx error table + wording by @agent-kortix in https://github.com/kortix-ai/suna/pull/5794
- feat(secrets): wire the delivery chokepoint — a denied secret never enters the sandbox by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5793
- chore(dev-eks): deploy dev-ed342859 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5796
- feat(whitelabel-demo): make every KaaB capability testable from the UI by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5795
- fix(kaab): a sandbox may not enumerate other end-users' connector profiles by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5797
- chore(dev-eks): deploy dev-efa9ef71 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5799
- fix(kaab): enforce the per-end-user session cap on resume, not just create by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5798
- chore(dev-eks): deploy dev-9a6a8b25 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5800
- feat(whitelabel-demo): bottom scope bar + live API-call snippets by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5801
- docs(kaab): END_USER_REF_CONFLICT is a 400, and pin it with a test by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5802
- chore(dev-eks): deploy dev-47b9add5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5803
- fix(kaab): prove the WebSocket isolation, add the mode badge and runtime_context by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5804
- chore(dev-eks): deploy dev-3998a94d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5805
- feat(whitelabel-demo): gated import of existing account projects by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5806
- feat(whitelabel-demo): syntax-highlight snippets + cover every KaaB call by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5807
- feat(kaab): re-scope a running session's secrets and connector bindings by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5808
- chore(dev-eks): deploy dev-51da6740 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5809
- feat(kaab): mid-session re-scope in the demo, SDK method, and docs by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5810
- fix(web): drop Safari generic SecurityError noise (BS 4 patterns, post-v0.11.0) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5811
- fix(auth): never return sign-in to projects list by @markokraemer in https://github.com/kortix-ai/suna/pull/5814
- test(ke2e): cover PUT model-enablement route + regen manifest to 527 by @agent-kortix in https://github.com/kortix-ai/suna/pull/5792
- fix(web): make the sidebar Review pill actually open the Review inbox by @markokraemer in https://github.com/kortix-ai/suna/pull/5815
- fix(models): lock the default row, refresh without a reload, set the default inline by @markokraemer in https://github.com/kortix-ai/suna/pull/5813
- fix(web): order reused sessions by last activity by @markokraemer in https://github.com/kortix-ai/suna/pull/5816
- chore(dev-eks): deploy dev-61910424 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5817
- docs(perf): preserve session-start evidence and stateful target by @markokraemer in https://github.com/kortix-ai/suna/pull/5818
- fix(auth): never send a signup to a project it cannot open by @markokraemer in https://github.com/kortix-ai/suna/pull/5819
- fix(whitelabel-demo): actually let the scope bar re-scope this session by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5820
- feat(acp): add complete multi-harness starter and auth UX by @markokraemer in https://github.com/kortix-ai/suna/pull/5821
- chore(dev-eks): deploy dev-452948e8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5824
- docs(perf): record Platinum repository-image A/B by @markokraemer in https://github.com/kortix-ai/suna/pull/5822
- chore(dev-eks): deploy gateway dev-22e9259b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5826
- fix(whitelabel-demo): call the re-scope hook unconditionally by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5825
- chore(dev-eks): deploy dev-22e9259b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5827
- chore(dev-eks): deploy gateway dev-d703d0e9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5828
- chore(dev-eks): deploy dev-d703d0e9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5830
- fix(whitelabel-demo): un-gate the scope editors that 'changeable' switched off by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5829
- fix(acp): exempt harness turns from request deadline by @markokraemer in https://github.com/kortix-ai/suna/pull/5831
- chore(dev-eks): deploy dev-dfa2070d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5832
- fix(sessions): converge every session-start path on server-side titling by @markokraemer in https://github.com/kortix-ai/suna/pull/5834
- chore(dev-eks): deploy dev-41d62c4f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5836
- fix(web): stop the project sidebar flickering on cold load by @markokraemer in https://github.com/kortix-ai/suna/pull/5835
- fix: reject terminal soft-rate completions by @markokraemer in https://github.com/kortix-ai/suna/pull/5840
- fix(session): paint the transcript from cache instead of waiting on a VM by @markokraemer in https://github.com/kortix-ai/suna/pull/5837
- Recover conflicted changes with an agent by @markokraemer in https://github.com/kortix-ai/suna/pull/5839
- chore(dev-eks): deploy gateway dev-ae00d2ac [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5841
- chore(dev-eks): deploy dev-ae00d2ac [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5843
- feat(projects): make the default starter multi-harness by @markokraemer in https://github.com/kortix-ai/suna/pull/5842
- chore(dev-eks): deploy dev-a7038f49 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5844
- fix(sdk): isolate preassigned OpenCode session state by @markokraemer in https://github.com/kortix-ai/suna/pull/5846
- chore(dev-eks): deploy dev-7a7bb4f1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5847
- fix(sdk): honor inherited OpenCode session defaults by @markokraemer in https://github.com/kortix-ai/suna/pull/5848
- chore(dev-eks): deploy dev-d6979ad9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5849
- docs(sdk): record inherited session delivery by @markokraemer in https://github.com/kortix-ai/suna/pull/5850
- chore(dev-eks): deploy dev-9a226118 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5851
- fix(web): show triggers as active when they are active by @markokraemer in https://github.com/kortix-ai/suna/pull/5853
- fix(gateway): require zero usage for soft rate limits by @markokraemer in https://github.com/kortix-ai/suna/pull/5852
- chore(dev-eks): deploy gateway dev-0c27d730 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5854
- chore(dev-eks): deploy dev-0c27d730 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5856
- refactor(session): load older history by scrolling, not by clicking by @markokraemer in https://github.com/kortix-ai/suna/pull/5855
- ci(api): actually run the kortix-api suite on pull requests by @markokraemer in https://github.com/kortix-ai/suna/pull/5838
- fix(sandbox): derive the sandbox alert from live provider state, not the build log by @markokraemer in https://github.com/kortix-ai/suna/pull/5858
- chore(dev-eks): deploy dev-1949db07 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5860
- fix(session): stop a session with history opening on the empty new-session shell by @markokraemer in https://github.com/kortix-ai/suna/pull/5857
- fix(executor): accept canonical dotted tool references by @markokraemer in https://github.com/kortix-ai/suna/pull/5859
- chore(dev-eks): deploy dev-31391b4b [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5861
- test(api): stop partial module mocks from killing whole test files by @markokraemer in https://github.com/kortix-ai/suna/pull/5863
- chore(dev-eks): deploy dev-d6413c2f [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5865
- feat(executor): make approvals answerable and enforce policy on arguments by @markokraemer in https://github.com/kortix-ai/suna/pull/5862
- fix(snapshots): attest sandbox CLI artifacts by @markokraemer in https://github.com/kortix-ai/suna/pull/5867
- chore(dev-eks): deploy gateway dev-4bc30619 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5868
- fix(sandbox): bound sandbox lifetime — delete three self-granted vetoes, add one column the box cannot forge by @markokraemer in https://github.com/kortix-ai/suna/pull/5845
- test(api): retarget slash-command + manifest tests at the shipped design by @markokraemer in https://github.com/kortix-ai/suna/pull/5864
- fix(billing): one credit debit function, no floor bypass for unpaid subs, seat allowance not seat price by @markokraemer in https://github.com/kortix-ai/suna/pull/5869
- feat: add connector profile authorization and session costs by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5872
- fix: repair dev migration order by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5873
- chore(dev-eks): deploy dev-95c1e0ea [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5874
- fix: refresh session governance before provisioning by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5878
- chore(dev-eks): deploy dev-37ce0d58 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5879
- fix(api): fail closed for required connector profiles by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5882
- chore(dev-eks): deploy dev-3f4fe600 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5883
- perf(web): make the project Files route open instantly instead of after 5–6s by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5881
- fix(api): support agent scope for version 3 manifests by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5884
- chore(dev-eks): deploy dev-c88c94ea [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5885
- Migrate icon library to Phosphor icons by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5386
- chore(dev-eks): deploy gateway dev-98e5fd0a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5886
- chore(dev-eks): deploy dev-98e5fd0a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5887
- fix(whitelabel): use project connection terminology by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5888
- fix(web): make sidebar docking instant instead of a 200ms layout morph by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5890
- content(blog): expand beyond-the-chat-box -- add unique section + outbound links by @agent-kortix in https://github.com/kortix-ai/suna/pull/5889
- fix(whitelabel): preserve session list shape in mock by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5891
- chore(connectors): align project connection terminology by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5892
- chore(dev-eks): deploy dev-536cccf1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5893
- fix: suppress wallet-extension inpage.js 'No error message' noise (pattern 61949432...) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5894
- fix: restore OpenCode REST + kortix.yaml v2 as the default runtime, and a session-runtime bug bash by @markokraemer in https://github.com/kortix-ai/suna/pull/5870
- chore(dev-eks): deploy gateway dev-890095d6 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5895
- chore(dev-eks): deploy dev-29bac7e1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5897
- Restore CLI SDK and API contract CI gates by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5899
- chore(dev-eks): deploy dev-2cfff1e4 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5900
- feat(web): generate connector profile slugs from names by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5896
- Remove ACP and multi-harness runtime; restore OpenCode REST by @markokraemer in https://github.com/kortix-ai/suna/pull/5901
- chore(dev-eks): deploy gateway dev-5dc989f9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5902
- Fix ACP removal migration ordering by @markokraemer in https://github.com/kortix-ai/suna/pull/5903
- chore(dev-eks): deploy gateway dev-e4052cca [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5904
- chore(dev-eks): deploy dev-e4052cca [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5905
- Serve Roobert from one variable font and fix monospace alignment by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5898
- fix(cli): don't force https on private hosts — self-host reaches its API over container names and LAN addresses by @Leonxu6 in https://github.com/kortix-ai/suna/pull/5876
- chore(dev-eks): deploy dev-b5ab22b0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5907
- fix(web): break the async import cycle between file-source and the project-files barrel by @Leonxu6 in https://github.com/kortix-ai/suna/pull/5880
- fix(sdk): keep the session boot poll running while the tab is in the background by @Leonxu6 in https://github.com/kortix-ai/suna/pull/5875
- chore(dev-eks): deploy dev-72797256 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5909
- feat(teams): Teams is a per-project experimental feature, not a server env var by @markokraemer in https://github.com/kortix-ai/suna/pull/5908
- chore(dev-eks): deploy dev-1647c2ee [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5910
- fix(web): in-product CLI install command targets the deployment, not kortix.com by @Leonxu6 in https://github.com/kortix-ai/suna/pull/5877
- refactor(web): Easy panel fit & session info by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5906
- feat(web): /a1o — standalone die that rolls the Kortix stack by @markokraemer in https://github.com/kortix-ai/suna/pull/5911
- chore(dev-eks): deploy gateway dev-b631bd9a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5912
- chore(dev-eks): deploy dev-b631bd9a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5913
- fix(api): gracefully skip broken sandbox templates instead of failing the full listing by @agent-kortix in https://github.com/kortix-ai/suna/pull/5915
- chore(dev-eks): deploy dev-d5f531f9 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5916
- fix: suppress injectedScript.bundle.js sendMessage noise from browser extensions by @agent-kortix in https://github.com/kortix-ai/suna/pull/5914
- Marketing site rebuild, and a sweep of claims that were not true by @markokraemer in https://github.com/kortix-ai/suna/pull/5917
- test(ke2e): cover audit actor/resource/date-range/search/cursor/limit filters by @agent-kortix in https://github.com/kortix-ai/suna/pull/5481
- test(ke2e): prove project-scoped PAT cross-project WRITE boundary (TOK-5) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5349
- Product showcase in both themes, and 2.76 MiB lighter by @markokraemer in https://github.com/kortix-ai/suna/pull/5919
- Preserve hydrated session content after runtime lookup misses by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5920
- Improve session access scope selection by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5921
- fix(connectors): lock the authorization owner after creation by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5922
- feat(connectors): read-only authorization owner instead of a dead select by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5924
- feat(audit): centralize reconstructable system activity by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5925
- chore(dev-eks): deploy dev-9b82d8f1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5926
- fix(gateway): Bedrock adaptive thinking + region-prefix normalization by @markokraemer in https://github.com/kortix-ai/suna/pull/5927
- fix: all managed models group under Kortix in the picker, not Anthropic/DeepSeek by @agent-kortix in https://github.com/kortix-ai/suna/pull/5918
- feat(web): add a public /download page by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5923
- chore(dev-eks): deploy gateway dev-be2690a5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5930
- chore(dev-eks): deploy dev-be2690a5 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5931
- Improve audit event labels and details by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5928
- fix(tests): drop leftover public routines in db-reset so re-apply matches a fresh DB by @markokraemer in https://github.com/kortix-ai/suna/pull/5933
- revert(models): remove server-side per-project model enablement by @markokraemer in https://github.com/kortix-ai/suna/pull/5932
- chore(dev-eks): deploy gateway dev-6c168ee2 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5936
- chore(dev-eks): deploy dev-6c168ee2 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5937
- chore(dev-eks): deploy gateway dev-58065906 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5938
- chore(dev-eks): deploy dev-58065906 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5939
- KaaB: prompt to connect a required connector instead of failing blind by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5935
- chore(dev-eks): deploy dev-b1b33ff8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5943
- Reorder the user menu, make Theme a submenu, drop the destructive dropdown variant by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5941
- Allow agent switches within one session by @markokraemer in https://github.com/kortix-ai/suna/pull/5946
- chore(dev-eks): deploy dev-5606d63a [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5947
- fix(db,ke2e): unblock the v0.12.0 release gate — credit grant 42501 + database-only session fixture by @markokraemer in https://github.com/kortix-ai/suna/pull/5948
- chore(dev-eks): deploy dev-1fff69b1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5951
- fix(ke2e): AUD-5 360s budget; COVD-1 manifest-read retry by @markokraemer in https://github.com/kortix-ai/suna/pull/5953
- KaaB: gate mid-session prompts on required connectors, and let one be required before it is connected by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5956
- chore(dev-eks): deploy dev-ad13cc9c [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5957
- Render the connector refusal as a card under the message, not a pill + a self-opening modal by @Ino-Bagaric in https://github.com/kortix-ai/suna/pull/5961
- chore(dev-eks): deploy dev-00d53cd1 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5962
- fix(web): Manage-models tab shows "0 of N" — pass useModelStore the opts it needs by @markokraemer in https://github.com/kortix-ai/suna/pull/5963
- fix(api): use E2B_DOMAIN for template APIs by @markokraemer in https://github.com/kortix-ai/suna/pull/5964
- chore(dev-eks): deploy dev-1f6ae707 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5965
- fix(api): unblock self-host E2B snapshot builds by @markokraemer in https://github.com/kortix-ai/suna/pull/5966
- chore(dev-eks): deploy gateway dev-cf578eb0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5967
- chore(dev-eks): deploy dev-cf578eb0 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5968
- docs: remove reverted per-project model enablement section by @agent-kortix in https://github.com/kortix-ai/suna/pull/5969
- fix(api): catch RepoFileNotFoundError in files/content route (BS 5b40ec1a) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5971
- fix(web): filter Android WebView postEvent setTimeout-captured noise (BS f50ed590) by @agent-kortix in https://github.com/kortix-ai/suna/pull/5972
- fix(sandboxes): handle provider capacity safely by @markokraemer in https://github.com/kortix-ai/suna/pull/5973
- chore(dev-eks): deploy dev-5c118dfa [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5975
- fix(web): post-auth signups land in their project, never on /projects by @markokraemer in https://github.com/kortix-ai/suna/pull/5976
- chore(dev-eks): deploy dev-67cd196e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5978
- fix(sandbox): preserve capacity retry diagnostics by @markokraemer in https://github.com/kortix-ai/suna/pull/5977
- Project icons: pick an emoji or a named glyph by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5970
- chore(dev-eks): deploy gateway dev-f7f38ab8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5979
- chore(dev-eks): deploy dev-f7f38ab8 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5980
- fix(web): restore sidebar switcher width by @markokraemer in https://github.com/kortix-ai/suna/pull/5982
- fix(e2b): bound permanent sandbox removal by @markokraemer in https://github.com/kortix-ai/suna/pull/5981
- chore(dev-eks): deploy dev-b530dbdb [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5983
- fix(self-host): make API memory ceiling configurable by @markokraemer in https://github.com/kortix-ai/suna/pull/5984
- chore(dev-eks): deploy dev-5f503dc3 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5985
- feat(web): send-to-agent affordance for stopped apps by @agent-kortix in https://github.com/kortix-ai/suna/pull/5987
- fix(web): move send-to-agent into the AppPreview "Couldn't load" error state by @agent-kortix in https://github.com/kortix-ai/suna/pull/5988
- feat(web): rebuild the project session list as an everyday list by @sutharjay1 in https://github.com/kortix-ai/suna/pull/5989
- fix(release): dark US shadow region no longer gates release artifacts by @markokraemer in https://github.com/kortix-ai/suna/pull/5992
- fix(channels): bind email sessions to configured agents by @markokraemer in https://github.com/kortix-ai/suna/pull/5995
- fix(sessions): fail fast on provider capacity by @markokraemer in https://github.com/kortix-ai/suna/pull/5993
- chore(dev-eks): deploy dev-b3d0fd64 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/5996
- fix(release): un-gate the shadow region with valid workflow syntax by @markokraemer in https://github.com/kortix-ai/suna/pull/5998
- fix(email): enable Executor MCP for channel sessions by @markokraemer in https://github.com/kortix-ai/suna/pull/6000
- chore(dev-eks): deploy dev-17db263e [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/6002
- fix(web): filter Supabase TOKEN_EXPIRED frameless promise rejection noise (BS 63b0cde7) by @agent-kortix in https://github.com/kortix-ai/suna/pull/6003
- fix(secrets): make session writes visible to agents by @markokraemer in https://github.com/kortix-ai/suna/pull/6005
- chore(dev-eks): deploy dev-5775ca7d [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/6006
- fix(sessions): recover from sandbox provider failures by @markokraemer in https://github.com/kortix-ai/suna/pull/6008
- chore(dev-eks): deploy dev-98a32526 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/6009
- fix(email): require one canonical sender mailbox by @markokraemer in https://github.com/kortix-ai/suna/pull/6007
- chore(dev-eks): deploy dev-1e0426d2 [skip ci] by @github-actions[bot] in https://github.com/kortix-ai/suna/pull/6010
New Contributors
- @Leonxu6 made their first contribution in https://github.com/kortix-ai/suna/pull/5876
Full Changelog: https://github.com/kortix-ai/suna/compare/v0.10.14...v0.12.1