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 #4264
- Promote main → staging (LLM provider keys always project-wide + batch) by @markokraemer in #4273
- chore(release): staging VERSION → 0.9.100 [skip ci] by @github-actions[bot] in #4280
- Promote main → staging: 0.9.100 release candidate by @markokraemer in #4312
- promote: snapshot quota fix + IAM capability gating → staging by @markokraemer in #4335
- chore(staging): promote main → staging (fix: prod sandbox_provider platinum enum drift) by @markokraemer in #4338
- chore(release): staging VERSION → 0.9.101 [skip ci] by @github-actions[bot] in #4346
- Staging by @kubet in #4360
- Promote main → staging: v0.9.101 release candidate by @kubet in #4363
- chore(release): staging VERSION → 0.9.102 [skip ci] by @github-actions[bot] in #4368
- Promote main → staging: release candidate (incl. slack bind-thread #4385) by @markokraemer in #4389
- chore(release): staging VERSION → 0.9.103 [skip ci] by @github-actions[bot] in #4394
- release: promote main session-identity safeguards to staging by @markokraemer in #4462
- release: complete staging health verification by @markokraemer in #4466
- chore(release): promote latest main to staging by @markokraemer in #4468
- chore(release): promote latest main to staging by @markokraemer in #4471
- chore(release): promote latest main to staging by @markokraemer in #4475
- chore(release): staging VERSION → 0.9.104 [skip ci] by @github-actions[bot] in #4478
- fix: recover prod migrations and session uploads by @markokraemer in #4482
- chore(release): staging VERSION → 0.9.105 [skip ci] by @github-actions[bot] in #4487
- chore(release): staging VERSION → 0.9.106 [skip ci] by @github-actions[bot] in #4492
- chore(release): staging VERSION → 0.9.107 [skip ci] by @github-actions[bot] in #4501
- hotfix: auto-resume a stopped box on active OpenCode access (sandbox not ready fix) by @markokraemer in #4506
- chore(release): staging VERSION → 0.9.108 [skip ci] by @github-actions[bot] in #4512
- chore(release): staging VERSION → 0.9.109 [skip ci] by @github-actions[bot] in #4520
- Promote main → staging: generic self-host + in-app git by @markokraemer in #4727
- chore(release): staging VERSION → 0.10.1 [skip ci] by @github-actions[bot] in #4734
- Promote main → staging: self-host hardening (post-v0.10.0) by @markokraemer in #4735
- chore(release): staging VERSION → 0.10.2 [skip ci] by @github-actions[bot] in #4743
- Promote main → staging: self-host wave 3 by @markokraemer in #4746
- Promote main → staging: self-host wave 3 by @markokraemer in #4747
- Promote main → staging: self-host wave (identity polish, account-creation restriction, managed-provider default fix) by @markokraemer in #4756
- chore(release): staging VERSION → 0.10.3 [skip ci] by @github-actions[bot] in #4761
- Promote main → staging: v0.10.3 release train (self-host hardening, local-docker provider, migration safety, auth refresh) by @markokraemer in #4772
- chore(release): staging VERSION → 0.10.4 [skip ci] by @github-actions[bot] in #4779
- Release candidate: managed model catalog hotfix by @markokraemer in #4784
- fix(release): restore staging managed-model gateway by @markokraemer in #4789
- chore(release): staging VERSION → 0.10.5 [skip ci] by @github-actions[bot] in #4792
- fix(infra): restore prod EKS gateway origin TLS by @markokraemer in #4795
- fix(gateway): stamp promoted release version by @markokraemer in #4798
- chore(release): staging VERSION → 0.10.7 [skip ci] by @github-actions[bot] in #4804
- Promote main → staging: v0.10.7 release train by @markokraemer in #4844
- chore(release): staging VERSION → 0.10.8 [skip ci] by @github-actions[bot] in #4850
- Promote main → staging (v0.10.8 candidate) by @markokraemer in #4852
- Promote main → staging for v0.10.8 (max_tokens, BYOK-shared, toast, pty, pipeline hardening) by @markokraemer in #4864
- chore(release): staging VERSION → 0.10.9 [skip ci] by @github-actions[bot] in #4875
- Promote to staging: Easy/Advanced session panel (#4120 + #4867) by @sutharjay1 in #4878
- Promote main → staging for v0.10.9 (self-host SSO redirect fix, gateway Argo render fix, Cloudflare Access SAML guide) by @markokraemer in #4883
- chore(release): staging VERSION → 0.10.10 [skip ci] by @github-actions[bot] in #4886
- Promote main to staging (session panel + show tool fixes) by @sutharjay1 in #4888
- chore(release): staging VERSION → 0.10.11 [skip ci] by @github-actions[bot] in #4891
- release: promote current main to staging by @markokraemer in #4912
- release: promote main to staging by @markokraemer in #4941
- chore(release): promote accessibility gate fix to staging by @markokraemer in #4947
- fix(release): align QA with staging environment by @markokraemer in #4952
- Promote release QA fixes to staging by @markokraemer in #4961
- Promote release QA fixes to staging by @markokraemer in #4963
- Promote staging secret preservation by @markokraemer in #4965
- release: promote authenticated release coverage by @markokraemer in #4967
- Promote main to staging: self-host release QA isolation by @markokraemer in #4970
- Release candidate: LLM Gateway on AI-SDK + models.dev (v0.10.11) by @markokraemer in #5014
- test(ke2e): refresh two stale flow assertions for v0.10.11 (staging) by @markokraemer in #5018
- fix(sandbox): warm-bake Chromium cache order + 30min timeout (staging) by @markokraemer in #5044
- chore(release): staging VERSION → 0.10.12 [skip ci] by @github-actions[bot] in #5047
- chore(staging): promote main → staging for v0.10.12 (sandbox ppwarm FROM-base fix) by @markokraemer in #5052
- fix(sandbox): Chromium cache-order on the base image — staging hotfix for the v0.10.11 session-boot regression by @markokraemer in #5059
- Promote main → staging (v0.10.12 candidate: opencode config fix + Chromium cache-order + gateway) by @markokraemer in #5070
- chore(release): staging VERSION → 0.10.13 [skip ci] by @github-actions[bot] in #5075
- Promote main → staging: Anthropic adaptive-thinking fix (+ gateway mapping spec) by @markokraemer in #5078
- Staging: gateway provider adapters + capability gating, IAM/SCIM identity UX, git-provider project creation by @markokraemer in #5100
- chore(release): staging VERSION → 0.10.14 [skip ci] by @github-actions[bot] in #5136
- Promote main to staging (v0.10.14 candidate) by @markokraemer in #5196
- Promote main to staging (v0.10.14 candidate, refresh) by @markokraemer in #5205
- Promote current main to staging (v0.10.14 latest candidate) by @markokraemer in #5212
- Promote latest main to staging (v0.10.14 final refresh) by @markokraemer in #5214
- Promote latest main to staging (v0.10.14 billing refresh) by @markokraemer in #5218
- Promote exact latest main to staging (v0.10.14 dev pin sync) by @markokraemer in #5221
- Promote release cutoff main to staging (v0.10.14 performance refresh) by @markokraemer in #5223
- Promote latest main to staging (v0.10.14 project page crash fix) by @markokraemer in #5226
- Promote main to staging — v0.10.14 candidate by @markokraemer in #5233
- Refresh staging with latest main — v0.10.14 final candidate by @markokraemer in #5235
- Refresh staging with final main — v0.10.14 release candidate by @markokraemer in #5239
- release: promote main to staging after QA stabilization by @markokraemer in #5246
- Promote main to staging for v0.10.14 by @markokraemer in #5258
- Promote latest main to staging for v0.10.14 by @markokraemer in #5263
- Promote session inventory authorization fix to staging by @markokraemer in #5269
- test: retry transient release gate failures by @markokraemer in #5279
- fix(git): refresh staging mirror after missing branch by @markokraemer in #5282
- test: tolerate staging release gate host transients by @markokraemer in #5287
- fix(staging): cap API database pools by @markokraemer in #5291
- fix(deps): upgrade PostCSS past CVE-2026-45623 by @markokraemer in #5298
- Promote current main to staging by @markokraemer in #5303
- Complete latest main promotion to staging by @markokraemer in #5305
- Promote final current main to staging by @markokraemer in #5309
- Promote current main to staging by @markokraemer in #5312
- release(staging): session runtime v32 fixes by @markokraemer in #5322
- fix(staging): preserve session runtime URL on restart by @markokraemer in #5325
- release: promote main to staging by @markokraemer in #5340
- fix(staging): verify v0.10.14 session release gates by @markokraemer in #5364
- Release candidate: promote latest main to staging by @markokraemer in #5365
- release(staging): promote main after session gate fixes by @markokraemer in #5372
- release(staging): include latest main pricing update by @markokraemer in #5374
- release(staging): fix distributed session limit enforcement by @markokraemer in #5379
- chore(dev-eks): deploy dev-a21799e8 [skip ci] by @github-actions[bot] in #5385
- fix(connectors): expose OAuth2 during creation by @markokraemer in #5389
- refactor(web): enforce SDK-only backend boundary by @markokraemer in #5388
- chore(dev-eks): deploy dev-ae967fdb [skip ci] by @github-actions[bot] in #5390
- chore(dev-eks): deploy dev-07f28dd0 [skip ci] by @github-actions[bot] in #5391
- fix(dev): preserve API WebSocket upgrades by @markokraemer in #5392
- chore(dev-eks): deploy gateway dev-8688b849 [skip ci] by @github-actions[bot] in #5393
- chore(dev-eks): deploy dev-8688b849 [skip ci] by @github-actions[bot] in #5394
- test(sdk): close SDK-only frontend delivery by @markokraemer in #5395
- chore(dev-eks): deploy dev-f2929a4d [skip ci] by @github-actions[bot] in #5396
- fix(llm-gateway): forward prompt cache writes by @markokraemer in #5397
- chore(dev-eks): deploy gateway dev-463d4241 [skip ci] by @github-actions[bot] in #5398
- chore(dev-eks): deploy dev-463d4241 [skip ci] by @github-actions[bot] in #5399
- Fix session history pagination scroll restoration by @markokraemer in #5400
- chore(dev-eks): deploy dev-76de546c [skip ci] by @github-actions[bot] in #5401
- fix(whitelabel): prevent zstd proxy corruption by @markokraemer in #5402
- feat(integrations): add provider-independent authentication lifecycle by @markokraemer in #5403
- chore(dev-eks): deploy dev-00bc2906 [skip ci] by @github-actions[bot] in #5404
- chore(dev-eks): deploy dev-8a124988 [skip ci] by @github-actions[bot] in #5406
- chore(db): prepare us-west-2 Supabase target by @markokraemer in #5405
- chore(dev-eks): deploy dev-dceea2ed [skip ci] by @github-actions[bot] in #5407
- fix(gateway): make managed billing exact and auditable by @markokraemer in #5408
- chore(dev-eks): deploy gateway dev-29675b2d [skip ci] by @github-actions[bot] in #5412
- fix(web): guard PoliciesPanel against missing policies field (BS 236e88fb) by @agent-kortix in #5410
- chore(dev-eks): deploy dev-29675b2d [skip ci] by @github-actions[bot] in #5413
- feat(infra): prepare US West 2 production shadow by @markokraemer in #5414
- chore(dev-eks): deploy gateway dev-e58faa6c [skip ci] by @github-actions[bot] in #5417
- feat(acp): add OpenCode-only runtime canary by @markokraemer in #5415
- chore(dev-eks): deploy dev-3a45ab55 [skip ci] by @github-actions[bot] in #5419
- fix(infra): repair US shadow deploy and reconciliation by @markokraemer in #5418
- chore(dev-eks): deploy gateway dev-f8968d3e [skip ci] by @github-actions[bot] in #5420
- chore(dev-eks): deploy dev-f8968d3e [skip ci] by @github-actions[bot] in #5421
- docs: OAuth2 lifecycle, connector auth-type enum, transport-throw retry, example 09 by @agent-kortix in #5422
- test(acp): harden deployed canary verification by @markokraemer in #5423
- chore(dev-eks): deploy dev-93f21e9c [skip ci] by @github-actions[bot] in #5424
- fix(sdk): keep ACP event streams alive by @markokraemer in #5425
- content(docs): add persistent "Get started" CTA to docs nav rail by @agent-kortix in #5426
- chore(dev-eks): deploy gateway dev-ed7d992f [skip ci] by @github-actions[bot] in #5427
- chore(dev-eks): deploy dev-ed7d992f [skip ci] by @github-actions[bot] in #5428
- test(acp): detach reconnect from Playwright routing by @markokraemer in #5429
- perf(boot): attribute and cut session-boot latency (removes Platinum's ~7s clone) by @markokraemer in #5409
- chore(dev-eks): deploy dev-3d649159 [skip ci] by @github-actions[bot] in #5430
- fix(web): restore LLM management navigation by @markokraemer in #5432
- fix(sdk): serialize ACP sends across runtime restarts by @markokraemer in #5433
- chore(dev-eks): deploy dev-aedb8c16 [skip ci] by @github-actions[bot] in #5434
- Fix false Load older messages control by @markokraemer in #5435
- chore(dev-eks): deploy dev-85ae91df [skip ci] by @github-actions[bot] in #5436
- fix(web): clarify LLM provider connection flow by @markokraemer in #5437
- Fix trigger scheduler fleet scans by @markokraemer in #5438
- fix(audit): add actor / search / date-range / resource filters to account audit log by @agent-kortix in #5383
- test(e2e): wait for REST model readiness by @markokraemer in #5440
- chore(dev-eks): deploy dev-db2519b5 [skip ci] by @github-actions[bot] in #5442
- fix(web): guard session-page .slice() against null value (BS e6d0e044) by @agent-kortix in #5439
- fix(staging): keep API router on EKS by @markokraemer in #5441
- fix: refresh webhook trigger manifests by @markokraemer in #5443
- chore(dev-eks): deploy dev-f9132a97 [skip ci] by @github-actions[bot] in #5444
- fix(web): restore compact LLM provider modal by @markokraemer in #5445
- chore(infra): prepare US East 2 production shadow by @markokraemer in #5447
- release: promote scheduler reliability fixes to staging by @markokraemer in #5446
- chore(dev-eks): deploy gateway dev-56954737 [skip ci] by @github-actions[bot] in #5449
- feat(voice): realtime voice channel on LiveKit (replaces the Recall notetaker) by @markokraemer in #5431
- fix(web): open LLM manager actions in modal by @markokraemer in #5448
- fix(web): use canonical SDK voice import by @markokraemer in #5450
- fix(db): restore voice migration order by @markokraemer in #5452
- chore(dev-eks): deploy dev-0a1ed173 [skip ci] by @github-actions[bot] in #5453
- test(migration): verify source refresh on US Auth by @markokraemer in #5454
- fix(migration): scope Node SSL mode to database runner by @markokraemer in #5455
- docs(migration): refresh US shadow evidence by @markokraemer in #5456
- docs(migration): record production autoscaling by @markokraemer in #5457
- Make the white-label ACP reference SDK-only by @markokraemer in #5458
- chore(dev-eks): deploy gateway dev-ceaa7e33 [skip ci] by @github-actions[bot] in #5459
- chore(dev-eks): deploy dev-ceaa7e33 [skip ci] by @github-actions[bot] in #5460
- release: stage scheduler reliability only by @markokraemer in #5461
- Keep ACP sessions on the current daemon snapshot by @markokraemer in #5462
- chore(dev-eks): deploy dev-aff406f3 [skip ci] by @github-actions[bot] in #5464
- Fix model provider connection UX by @markokraemer in #5463
- test(migration): gate US shadow authentication by @markokraemer in #5466
- Session chat: narrative transcript by default, full history one click away by @markokraemer in #5451
- fix(sdk): reconcile REST prompts before first event by @markokraemer in #5467
- test(migration): gate US frontend provider redirects by @markokraemer in #5468
- chore(dev-eks): deploy gateway dev-ad56e00c [skip ci] by @github-actions[bot] in #5469
- chore(release): VERSION → 0.10.16 [skip ci] by @github-actions[bot] in #5470
- chore(release): staging VERSION → 0.10.16 [skip ci] by @github-actions[bot] in #5471
- chore(dev-eks): deploy gateway dev-c26942d4 [skip ci] by @github-actions[bot] in #5472
- chore(dev-eks): deploy dev-c26942d4 [skip ci] by @github-actions[bot] in #5473
- chore(dev-eks): deploy dev-92b337bb [skip ci] by @github-actions[bot] in #5474
- feat(projects): keep one warm session ready by @markokraemer in #5475
- chore(dev-eks): deploy dev-dc6d1c0b [skip ci] by @github-actions[bot] in #5476
- fix(sdk): make ACP and REST prompt completion monotonic by @markokraemer in #5477
- chore(dev-eks): deploy dev-480a44dc [skip ci] by @github-actions[bot] in #5478
- docs(sdk): record B23 deployed completion [skip ci] by @markokraemer in #5479
- docs: meet->voice channel rename, workspace enforcement by @agent-kortix in #5482
- content(blog): correct DeepSeek output price $0.30 -> $0.28 by @agent-kortix in #5484
- test(auth): wait for hydrated login form by @markokraemer in #5485
- docs: add ACP runtime status quo handoff by @markokraemer in #5488
- fix(api): stop Sentry-capturing transient Supabase pool exhaustion (BS 721b7efe) by @agent-kortix in #5487
- chore(dev-eks): deploy dev-c9df628d [skip ci] by @github-actions[bot] in #5489
- perf(api): remove turn-stream request amplification by @markokraemer in #5490
- chore(dev-eks): deploy dev-4f46e3aa [skip ci] by @github-actions[bot] in #5492
- chore(dev-eks): deploy gateway dev-47d41d9b [skip ci] by @github-actions[bot] in #5493
- chore(dev-eks): deploy dev-69af18f3 [skip ci] by @github-actions[bot] in #5494
- perf(api): cut sandbox control-plane chatter and ambient-poll latency by @markokraemer in #5491
- chore(dev-eks): deploy dev-704b9c1b [skip ci] by @github-actions[bot] in #5497
- fix(ci): restore starter and voice checks by @markokraemer in #5498
- docs(sdk): record API latency dev proof by @markokraemer in #5495
- fix(prod): harden final US East 2 database cutover by @markokraemer in #5496
- chore(dev-eks): deploy gateway dev-fa525d30 [skip ci] by @github-actions[bot] in #5499
- chore(dev-eks): deploy dev-fa525d30 [skip ci] by @github-actions[bot] in #5501
- fix(web): pass turn run children as data prop by @markokraemer in #5500
- chore(dev-eks): deploy dev-ccdce643 [skip ci] by @github-actions[bot] in #5503
- fix(billing): reconcile lost per-seat compute windows; make request diagnostics visible in CloudWatch by @markokraemer in #5502
- chore(dev-eks): deploy dev-afe54ce9 [skip ci] by @github-actions[bot] in #5505
- fix(maintenance): fail over independently at the edge by @markokraemer in #5504
- chore(dev-eks): deploy gateway dev-b18ceaa5 [skip ci] by @github-actions[bot] in #5507
- release: add independent production maintenance failover by @markokraemer in #5506
- chore(dev-eks): deploy dev-b18ceaa5 [skip ci] by @github-actions[bot] in #5508
- chore(dev-eks): deploy dev-1097dce8 [skip ci] by @github-actions[bot] in #5510
- chore(dev-eks): deploy dev-d5bc283d [skip ci] by @github-actions[bot] in #5513
- fix(sdk): restore staging maintenance transport by @markokraemer in #5512
- fix(api): stop billing rotations on workerless pods by @markokraemer in #5515
- chore(dev-eks): deploy dev-efc0036e [skip ci] by @github-actions[bot] in #5516
- chore(dev-eks): deploy dev-e8dc428a [skip ci] by @github-actions[bot] in #5517
- chore(dev-eks): deploy dev-6a1ff05b [skip ci] by @github-actions[bot] in #5518
- fix(use2): clean recovery flow state after smoke by @markokraemer in #5519
- chore(dev-eks): deploy dev-8189da8a [skip ci] by @github-actions[bot] in #5520
- fix(secrets): scope sandbox secret injection to the agent that actually runs by @markokraemer in #5514
- chore(dev-eks): deploy dev-7d0aae0b [skip ci] by @github-actions[bot] in #5521
- docs(secrets): spec network-boundary secret delivery policy by @markokraemer in #5522
- Fix US migration smoke billing cleanup by @markokraemer in #5523
- Release US worker isolation guard to staging by @markokraemer in #5524
- Fix frontend migration smoke Auth flow cleanup by @markokraemer in #5525
- chore(dev-eks): deploy dev-43fd93cd [skip ci] by @github-actions[bot] in #5526
- chore(dev-eks): deploy dev-d7dc3622 [skip ci] by @github-actions[bot] in #5527
- chore(dev-eks): deploy dev-5051d9cb [skip ci] by @github-actions[bot] in #5528
- fix(use2): harden US shadow session readiness by @markokraemer in #5529
- chore(dev-eks): deploy dev-5c0ae97e [skip ci] by @github-actions[bot] in #5530
- test(use2): wait for selected warm agent by @markokraemer in #5531
- chore(dev-eks): deploy dev-8d6a7876 [skip ci] by @github-actions[bot] in #5532
- fix(sdk): preserve project agent selection by @markokraemer in #5533
- chore(dev-eks): deploy dev-ee45f55f [skip ci] by @github-actions[bot] in #5534
- docs(sdk): record US session readiness proof by @markokraemer in #5535
- chore(dev-eks): deploy dev-36432e59 [skip ci] by @github-actions[bot] in #5536
- ops: add US shadow reconciliation workflow by @markokraemer in #5537
- fix(ops): scope Supabase CLI prerequisite by @markokraemer in #5538
- fix(ops): use US shadow reconciliation role by @markokraemer in #5539
- fix(web): break setSessionAgentName React #185 render loop (BS 351da943) by @agent-kortix in #5540
- fix(web): guard marketing-site scrollTo against non-scrollable ref (BS a0000df8) by @agent-kortix in #5542
- fix(scheduler): dispatch cron slots exactly by @markokraemer in #5543
- chore(dev-eks): deploy gateway dev-974c699e [skip ci] by @github-actions[bot] in #5544
- chore(dev-eks): deploy dev-974c699e [skip ci] by @github-actions[bot] in #5545
- fix(scheduler): bound catalog retries after backfill by @markokraemer in #5546
- chore(dev-eks): deploy dev-1cd087aa [skip ci] by @github-actions[bot] in #5547
- release(scheduler): promote exact cron dispatch to staging by @markokraemer in #5548
- docs: trigger scheduler cadence, execution lease interval, voice opt-in, voiceTranscript by @agent-kortix in #5550
- fix(security): scope AgentMail inbox takeover delete + ownership gate (pentest 2026-07-27) by @agent-kortix in #5551
- chore(dev-eks): deploy dev-bf90f44e [skip ci] by @github-actions[bot] in #5553
- fix(security): do not expose DOTENV_PRIVATE_KEY to PR-triggered test jobs (CI-DK) by @agent-kortix in #5552
- feat: multiple connections per connector (team + personal) with a connections list by @Ino-Bagaric in #5556
- feat(web): make team-shared vs private-to-me connections unmistakable by @Ino-Bagaric in #5554
- chore(dev-eks): deploy dev-52dc62cc [skip ci] by @github-actions[bot] in #5557
- feat(kaab): required connectors — run as the user's own connection, gate if unconnected, admin roster by @Ino-Bagaric in #5366
- fix(kaab): make KORTIX_ORIGIN_REF unforgeable + document origin_ref honestly by @Ino-Bagaric in #5558
- chore(dev-eks): deploy dev-64250043 [skip ci] by @github-actions[bot] in #5560
- fix(kaab): require_connectors picks the member's default connection, skips revoked by @Ino-Bagaric in #5559
- chore(dev-eks): deploy dev-e88526c6 [skip ci] by @github-actions[bot] in #5562
- fix(kaab): re-land connectors_personal onto main (#5370 merged into its base branch, not main) by @Ino-Bagaric in #5561
- chore(dev-eks): deploy dev-170b4b14 [skip ci] by @github-actions[bot] in #5563
- fix(seo): stop garbled brand snippet — render KortixLetterField as SVG background-image by @agent-kortix in #5555
- feat(kaab): set connectors_personal from the agent-scope API (with subset pruning) by @Ino-Bagaric in #5564
- chore(dev-eks): deploy dev-f9a5d420 [skip ci] by @github-actions[bot] in #5566
- fix(kaab): agent editor could not save any project using connectors_personal by @Ino-Bagaric in #5565
- chore(dev-eks): deploy dev-55663e3b [skip ci] by @github-actions[bot] in #5568
- feat(web): per-connector 'personal' toggle in the agent editor by @Ino-Bagaric in #5567
- feat(kaab): per-end-user usage metering (origin_ref on usage_events) by @Ino-Bagaric in #5569
- feat(kaab): per-end-user concurrency cap + restore the lost account-active index by @Ino-Bagaric in #5570
- chore(dev-eks): deploy dev-7824a618 [skip ci] by @github-actions[bot] in #5571
- feat(web): per-connection IDs + tabbed connector detail by @Ino-Bagaric in #5572
- fix(permissions): surface project-rule overrides + feat(billing): per-end-user spend by @Ino-Bagaric in #5573
- chore(dev-eks): deploy dev-12da8c76 [skip ci] by @github-actions[bot] in #5575
- fix(web): drop iOS WebView WebKit-bridge messageHandlers noise (BS 5b94212b) by @agent-kortix in #5574
- fix(security): KaaB cross-end-user session access + revoked-secret re-injection by @Ino-Bagaric in #5577
- chore(dev-eks): deploy dev-f4a968f6 [skip ci] by @github-actions[bot] in #5580
- feat(permissions): per-connection tool permissions by @Ino-Bagaric in #5579
- chore(dev-eks): deploy dev-8a344cdb [skip ci] by @github-actions[bot] in #5582
- fix(test): un-dark two suites (0 → 76 tests) + Permissions discoverability by @Ino-Bagaric in #5583
- chore(dev-eks): deploy dev-25051973 [skip ci] by @github-actions[bot] in #5585
- ops: guard final US East 2 cutover by @markokraemer in #5584
- chore(release): merge latest main into staging by @markokraemer in #5588
- feat(api): rename origin_ref → end_user_ref (origin_ref kept as permanent alias) by @Ino-Bagaric in #5586
- fix(voice): keep worker bearer out of room metadata by @markokraemer in #5589
- ops: support candidate tags in US shadow by @markokraemer in #5590
- fix(cli,api): kortix ship pushes through the git proxy, not an unexportable token by @markokraemer in #5591
- chore(dev-eks): deploy dev-96c8d84a [skip ci] by @github-actions[bot] in #5596
- fix: update staging security dependencies by @markokraemer in #5595
- chore(release): reconcile latest main with staging hotfix by @markokraemer in #5593
- feat(api): change a session's model mid-flight by @Ino-Bagaric in #5592
- chore(dev-eks): deploy dev-bd3ae3c1 [skip ci] by @github-actions[bot] in #5597
- fix(test): validate every decorative landing element by @markokraemer in #5601
- fix(test): validate every decorative landing element by @markokraemer in #5602
- fix(sdk): preserve ACP message turn boundaries by @markokraemer in #5603
- fix(migration): reconcile shadow credit ledger rows by @markokraemer in #5604
- feat(whitelabel-demo): Kortix-as-a-Backend support end to end by @Ino-Bagaric in #5599
- fix: never re-queue a create whose failure was already returned to the caller by @Ino-Bagaric in #5606
- fix(migration): preserve replication backlog ownership by @markokraemer in #5607
- fix(migration): reconcile shadow credit ledger rows by @markokraemer in #5605
- chore(release): sync newest main into staging by @markokraemer in #5600
- fix: one canonical connector alias across all three grant gates by @Ino-Bagaric in #5609
- chore(dev-eks): deploy dev-a6b3fd68 [skip ci] by @github-actions[bot] in #5611
- test: prove KaaB session isolation at the list leg by @Ino-Bagaric in #5610
- chore(dev-eks): deploy dev-65c707d4 [skip ci] by @github-actions[bot] in #5613
- feat(whitelabel-demo): pick which shared connection a session runs as by @Ino-Bagaric in #5612
- fix(gateway): normalize malformed message history so strict providers accept it by @markokraemer in #5608
- chore(dev-eks): deploy gateway dev-7b77515d [skip ci] by @github-actions[bot] in #5616
- chore(release): sync latest main into staging by @markokraemer in #5615
- chore(release): sync newest main into staging by @markokraemer in #5617
- chore(dev-eks): deploy dev-7b77515d [skip ci] by @github-actions[bot] in #5618
- chore(release): sync exact current main into staging by @markokraemer in #5620
- feat(sessions): add message-based rewind for REST and ACP by @markokraemer in #5619
- chore(dev-eks): deploy dev-9e90e8ed [skip ci] by @github-actions[bot] in #5621
- chore(release): sync exact latest main into staging by @markokraemer in #5622
- Add Marketing Department project template by @lillyboga in #5578
- chore(dev-eks): deploy gateway dev-e548c6a8 [skip ci] by @github-actions[bot] in #5625
- chore(dev-eks): deploy dev-e548c6a8 [skip ci] by @github-actions[bot] in #5626
- chore(release): sync final latest main into staging by @markokraemer in #5627
- fix(release): harden US cutover readiness by @markokraemer in #5623
- chore(dev-eks): deploy gateway dev-79c208aa [skip ci] by @github-actions[bot] in #5628
- chore(release): include latest production cutover hardening by @markokraemer in #5629
- docs(sdk): record deployed session rewind proof by @markokraemer in #5630
- chore(dev-eks): deploy dev-49dc74f4 [skip ci] by @github-actions[bot] in #5632
- fix(tests): use one Playwright runtime for US smoke by @markokraemer in #5631
- chore(dev-eks): deploy gateway dev-83984378 [skip ci] by @github-actions[bot] in #5634
- chore(dev-eks): deploy dev-83984378 [skip ci] by @github-actions[bot] in #5635
- Fix ACP final idle state and add ?acp override by @markokraemer in #5636
- chore(dev-eks): deploy dev-76b4cb98 [skip ci] by @github-actions[bot] in #5637
- fix(release): pace managed repository provisioning by @markokraemer in #5638
- Heal corrupt git mirror cache entries by @lillyboga in #5641
- chore(dev-eks): deploy dev-256230d1 [skip ci] by @github-actions[bot] in #5642
- fix(release): isolate mutable IAM and session flows by @markokraemer in #5640
- Fix CodeQL secure temporary file gate by @markokraemer in #5644
- chore(dev-eks): deploy dev-022f666d [skip ci] by @github-actions[bot] in #5645
- Release candidate: promote latest main to staging by @markokraemer in #5643
- Fix release pacing unit-test environment by @markokraemer in #5646
- Release candidate: fix release pacing test environment by @markokraemer in #5647
- fix(sessions): sync runtime-generated titles by @markokraemer in #5648
- chore(dev-eks): deploy dev-b8e1e75b [skip ci] by @github-actions[bot] in #5649
- Release candidate: include latest session title synchronization by @markokraemer in #5650
- test(sessions): wait for web readiness in title sync flow by @markokraemer in #5651
- Release candidate: sync test-only session title wait by @markokraemer in #5654
- fix(worktree): stop process trees, not port listeners by @markokraemer in #5653
- fix(api): return 404 for readRepoFile git-show path-not-found (BS a8d20288) by @agent-kortix in #5652
- chore(dev-eks): deploy dev-985b7db0 [skip ci] by @github-actions[bot] in #5655
- chore(release): promote current main to staging by @markokraemer in #5656
- chore(dev-eks): deploy dev-cd5f4513 [skip ci] by @github-actions[bot] in #5659
- chore(release): promote current main to staging by @markokraemer in #5660
- test(ke2e): reuse Git fixtures and split live lanes by @markokraemer in #5658
- chore(release): promote optimized ke2e gate to staging by @markokraemer in #5661
- test(ke2e): honor gateway Retry-After by @markokraemer in #5662
- feat(runtime): add ACP CLI harness processes by @markokraemer in #5665
- chore(dev-eks): deploy gateway dev-d87349a9 [skip ci] by @github-actions[bot] in #5666
- chore(dev-eks): deploy dev-d87349a9 [skip ci] by @github-actions[bot] in #5667
- docs: connectors_personal manifest field, changeModel SDK method, auth-type enum, runtimeTransport option by @agent-kortix in #5668
- test(ke2e): bound release gate load by @markokraemer in #5669
- fix(runtime): pin Pi internal dependencies by @markokraemer in #5671
- chore(dev-eks): deploy gateway dev-1b4db8f8 [skip ci] by @github-actions[bot] in #5672
- chore(dev-eks): deploy dev-1b4db8f8 [skip ci] by @github-actions[bot] in #5674
- docs: narrow the e2e-preview-proxy failures to a harness question by @Ino-Bagaric in #5614
- fix(runtime): install Pi with npm by @markokraemer in #5675
- chore(dev-eks): deploy gateway dev-5762bcfc [skip ci] by @github-actions[bot] in #5677
- chore(dev-eks): deploy dev-5762bcfc [skip ci] by @github-actions[bot] in #5678
- feat(whitelabel-demo): show what a running session can and cannot change by @Ino-Bagaric in #5676
- chore(dev-eks): deploy gateway dev-dda51b0b [skip ci] by @github-actions[bot] in #5680
- chore(dev-eks): deploy dev-dda51b0b [skip ci] by @github-actions[bot] in #5681
- docs: the apps/api suite has no CI key — proven, and my earlier fix retracted by @Ino-Bagaric in #5682
- fix(security): session sharing was exempt from the KaaB isolation narrowing by @Ino-Bagaric in #5683
- chore(dev-eks): deploy dev-cb5bb899 [skip ci] by @github-actions[bot] in #5685
- fix(security): bind turn-question to the sandbox token's own session by @Ino-Bagaric in #5686
- chore(dev-eks): deploy dev-8bfb1096 [skip ci] by @github-actions[bot] in #5690
- fix(security): never widen an agent grant on a manifest error; canonicalize the v2 default by @Ino-Bagaric in #5687
- fix(gateway): fail over stalled model streams by @markokraemer in #5689
- chore(dev-eks): deploy gateway dev-9ac237f1 [skip ci] by @github-actions[bot] in #5692
- chore(dev-eks): deploy dev-9ac237f1 [skip ci] by @github-actions[bot] in #5693
- fix(security): redact session content on rows the caller cannot access by @Ino-Bagaric in #5688
- docs: correct the KaaB docs against the code, and document what shipped by @Ino-Bagaric in #5691
- fix(whitelabel-demo): make KaaB refusals reachable, and stop silent sends by @Ino-Bagaric in #5694
- fix(security): an agent must never resolve its own approval by @Ino-Bagaric in #5684
- chore(dev-eks): deploy dev-57e081c0 [skip ci] by @github-actions[bot] in #5696
- feat(kaab): filter the session list by end_user_ref by @Ino-Bagaric in #5697
- chore(dev-eks): deploy dev-7f51c831 [skip ci] by @github-actions[bot] in #5699
- feat(kaab): re-mint the session token grant on a mid-session agent switch by @Ino-Bagaric in #5698
- chore(dev-eks): deploy dev-fd6fa64b [skip ci] by @github-actions[bot] in #5701
- fix(kaab): revoke a session's executor tokens when its sandbox is gone by @Ino-Bagaric in #5700
- fix(ke2e): reuse managed project on staging by @markokraemer in #5702
- feat(kaab): per-end-user spend cap by @Ino-Bagaric in #5704
- chore(dev-eks): deploy dev-0f390c6c [skip ci] by @github-actions[bot] in #5706
- docs: verified baseline of secret exposure inside the sandbox by @Ino-Bagaric in #5705
- fix(ke2e): bound stale-user cleanup by @markokraemer in #5707
- perf(ke2e): query stale users directly by @markokraemer in #5711
- fix(ke2e): require strict TLS for GC database by @markokraemer in #5714
- content(blog): differentiate agi-ready-architecture manifest from introducing-kortix by @agent-kortix in #5712
- fix(ke2e): preserve claimed warm-session metadata by @markokraemer in #5716
- fix(api): preserve public-share permission status by @markokraemer in #5717
- chore(dev-eks): deploy dev-fe9c7bfe [skip ci] by @github-actions[bot] in #5718
- feat(secrets): secret delivery strategy — design + pure policy layer by @Ino-Bagaric in #5708
- fix(whitelabel-demo): refuse encoded-slash path traversal in the BFF proxy by @Ino-Bagaric in #5710
- fix(kaab): two critical regressions in my own isolation work by @Ino-Bagaric in #5715
- chore(dev-eks): deploy dev-b217ced8 [skip ci] by @github-actions[bot] in #5721
- fix(kaab): gate opencode :4096 on session visibility, not just :8000 by @Ino-Bagaric in #5722
- chore(dev-eks): deploy dev-e5e934f4 [skip ci] by @github-actions[bot] in #5723
- feat(secrets): SDS stage 1 — schema + policy layer, one shared egress-policy type by @Ino-Bagaric in #5724
- chore(dev-eks): deploy dev-ff0e36fa [skip ci] by @github-actions[bot] in #5726
- fix(sandbox-proxy): release prompt dedupe claim when delivery provably failed by @Ino-Bagaric in #5271
- chore(dev-eks): deploy dev-be05b2ca [skip ci] by @github-actions[bot] in #5727
- feat(whitelabel-demo): session scope controls, connector binding, and a testing guide by @Ino-Bagaric in #5728
- feat(sessions): generate session titles from the first prompt via the gateway by @markokraemer in #5733
- chore(dev-eks): deploy dev-5db7502b [skip ci] by @github-actions[bot] in #5734
- fix(sessions): title with the live picked model, not the stale opencode_model by @markokraemer in #5735
- chore(dev-eks): deploy dev-6b695ee4 [skip ci] by @github-actions[bot] in #5736
- fix(web): stop ambient voice transcript polling by @markokraemer in #5738
- refactor(sessions): one title path — delete the OpenCode title machinery by @markokraemer in #5739
- chore(dev-eks): deploy dev-efdb77c5 [skip ci] by @github-actions[bot] in #5740
- fix(web): remove session voice transcript tab by @markokraemer in #5742
- feat(models): per-project model enablement, gateway-enforced (backend) by @markokraemer in #5743
- chore(dev-eks): deploy gateway dev-6e0f8cf0 [skip ci] by @github-actions[bot] in #5744
- chore(dev-eks): deploy dev-6e0f8cf0 [skip ci] by @github-actions[bot] in #5745
- fix(release): block mismatched production Supabase auth by @markokraemer in #5747
- feat(models): wire the model-enablement UI to the server (Manage models + picker) by @markokraemer in #5746
- chore(dev-eks): deploy dev-d248b8ce [skip ci] by @github-actions[bot] in #5748
- feat(acp): add project-gated multi-harness runtime by @markokraemer in #5749
- chore(dev-eks): deploy gateway dev-239cda8a [skip ci] by @github-actions[bot] in #5752
- chore(dev-eks): deploy dev-239cda8a [skip ci] by @github-actions[bot] in #5753
- fix(web): restore public share links across the file and preview surfaces by @markokraemer in #5751
- chore(dev-eks): deploy dev-8e86e27d [skip ci] by @github-actions[bot] in #5754
- fix(security): close public SSH/RDP exposure on the us-east-2 ACL and prevent its return by @markokraemer in #5755
- test(ke2e): cover the public file-share branch in SESS-13 by @markokraemer in #5756
- fix(security): make the NACL admin-port audit actually run by @markokraemer in #5757
- fix(acp): refresh ingress credentials after restart by @markokraemer in #5759
- chore(dev-eks): deploy dev-35d4063c [skip ci] by @github-actions[bot] in #5761
- fix(ci): make drift detection actually run by @markokraemer in #5760
- docs(sdk): record deployed multi-harness proof by @markokraemer in #5762
- fix(ci): give drift detection the Cloudflare token it needs to plan by @markokraemer in #5763
- feat(onboarding): land every signup directly in a project, with no blocking provision by @markokraemer in #5758
- revert(session-chat): restore the pre-v0.11 transcript rendering by @markokraemer in #5764
- fix(ci): supply cloudflare_zone_id to the drift plan by @markokraemer in #5765
- fix(ci): scope drift detection to roots CI can actually plan by @markokraemer in #5766
- fix(onboarding): bind the remembered-project cookie to its owner by @markokraemer in #5767
- docs(acp): make Kortix multi-harness documentation complete by @markokraemer in #5768
- chore(dev-eks): deploy dev-3b3992fb [skip ci] by @github-actions[bot] in #5769
- refactor(infra): make Terraform the source of truth for the ECS envs by @markokraemer in #5771
- Slim the Kortix Starter to a 10-skill artifact floor by @markokraemer in #5770
- Start only the selected ACP harness and persist boot benchmarks by @markokraemer in #5772
- docs(compliance): record the open critical IaC finding on the audit role by @markokraemer in #5773
- chore(dev-eks): deploy gateway dev-81486b61 [skip ci] by @github-actions[bot] in #5775
- docs(sdk): record multi-harness docs deployment by @markokraemer in #5774
- chore(dev-eks): deploy dev-7935cd93 [skip ci] by @github-actions[bot] in #5777
- Repair marketplace tests missed by the starter slim-down by @markokraemer in #5776
- fix(infra): capture the Cloudflare zone id so plans stop proposing DNS churn by @markokraemer in #5778
- refactor(billing): make Stripe returns route-independent, delete the dead modal chain by @markokraemer in #5779
- docs(runtime): record live dev Pi latency proof by @markokraemer in #5781
- chore(security): adopt the last unmanaged IAM roles, retire the dead ones by @markokraemer in #5782
- ci: cover the ECS environments in drift detection by @markokraemer in #5783
- fix(models): one answer for "which models does this project offer" by @markokraemer in #5780
- feat(web): use harness favicons in agent selectors by @markokraemer in #5784
- chore(sdk): record BillingState in the type-surface snapshot by @markokraemer in #5786
- fix(models): never prune a managed or configured model from the default set by @markokraemer in #5785
- fix(db): restore dev migration order by @markokraemer in #5787
- chore(dev-eks): deploy dev-d55c0bb0 [skip ci] by @github-actions[bot] in #5788
- chore(dev-eks): deploy dev-16e14971 [skip ci] by @github-actions[bot] in #5789
- chore(dev-eks): deploy gateway dev-c59a9181 [skip ci] by @github-actions[bot] in #5790
- chore(dev-eks): deploy dev-c59a9181 [skip ci] by @github-actions[bot] in #5791
- docs: per-project model enablement, backend.mdx error table + wording by @agent-kortix in #5794
- feat(secrets): wire the delivery chokepoint — a denied secret never enters the sandbox by @Ino-Bagaric in #5793
- chore(dev-eks): deploy dev-ed342859 [skip ci] by @github-actions[bot] in #5796
- feat(whitelabel-demo): make every KaaB capability testable from the UI by @Ino-Bagaric in #5795
- fix(kaab): a sandbox may not enumerate other end-users' connector profiles by @Ino-Bagaric in #5797
- chore(dev-eks): deploy dev-efa9ef71 [skip ci] by @github-actions[bot] in #5799
- fix(kaab): enforce the per-end-user session cap on resume, not just create by @Ino-Bagaric in #5798
- chore(dev-eks): deploy dev-9a6a8b25 [skip ci] by @github-actions[bot] in #5800
- feat(whitelabel-demo): bottom scope bar + live API-call snippets by @Ino-Bagaric in #5801
- docs(kaab): END_USER_REF_CONFLICT is a 400, and pin it with a test by @Ino-Bagaric in #5802
- chore(dev-eks): deploy dev-47b9add5 [skip ci] by @github-actions[bot] in #5803
- fix(kaab): prove the WebSocket isolation, add the mode badge and runtime_context by @Ino-Bagaric in #5804
- chore(dev-eks): deploy dev-3998a94d [skip ci] by @github-actions[bot] in #5805
- feat(whitelabel-demo): gated import of existing account projects by @Ino-Bagaric in #5806
- feat(whitelabel-demo): syntax-highlight snippets + cover every KaaB call by @Ino-Bagaric in #5807
- feat(kaab): re-scope a running session's secrets and connector bindings by @Ino-Bagaric in #5808
- chore(dev-eks): deploy dev-51da6740 [skip ci] by @github-actions[bot] in #5809
- feat(kaab): mid-session re-scope in the demo, SDK method, and docs by @Ino-Bagaric in #5810
- fix(web): drop Safari generic SecurityError noise (BS 4 patterns, post-v0.11.0) by @agent-kortix in #5811
- fix(auth): never return sign-in to projects list by @markokraemer in #5814
- test(ke2e): cover PUT model-enablement route + regen manifest to 527 by @agent-kortix in #5792
- fix(web): make the sidebar Review pill actually open the Review inbox by @markokraemer in #5815
- fix(models): lock the default row, refresh without a reload, set the default inline by @markokraemer in #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: v0.10.14...v0.12.1