Fixed
- The LLM gateway no longer returns a blank, empty reply when a model provider silently produces nothing (a rare but real upstream failure mode). It now retries the same provider a few times, then fails over to another configured provider if one is available, before ever giving up — so a transient provider hiccup resolves invisibly instead of showing up as an empty response.
- The gateway strips stray NUL bytes from request/response logs before saving them, avoiding an occasional database error that could drop a log entry.
- Fixed a case where the first message of a new session could fail right after an environment restart, instead of waiting for the runtime to come back up.
- Made the internal migration step idempotent so it no longer depends on which pod happens to run it.
- Narrowed an account-membership repair path to be safer and more precise.
Improved
- Platform admins get read-only access to the project access gate for support/investigation, without full write access.
- Projects can now override which sandbox provider they use on a per-project basis.
- Slack identity verification is now enabled on staging, matching production.
- Handle AgentMail inbox-limit errors gracefully instead of surfacing a raw failure.
What's Changed
- chore(release): VERSION → 0.9.93 [skip ci] by @github-actions[bot] in #4081
- chore(dev-eks): deploy dev-d0f1947e [skip ci] by @github-actions[bot] in #4082
- chore: resolve high dependency alerts by @markokraemer in #4061
- fix(web): render footer copyright symbol by @agent-kortix in #4049
- fix(reaper): stop the maintenance loop from silently wedging forever by @markokraemer in #4086
- chore(dev-eks): deploy dev-17242f9c [skip ci] by @github-actions[bot] in #4087
- fix(sandbox-agent): fail fast when opencode is wedged instead of hanging forever by @markokraemer in #4088
- fix(mobile): stub node
readlinebuiltin in Metro resolver by @sutharjay1 in #4084 - fix(sessions): stuck-session restart bug + manual restart fallback by @markokraemer in #4089
- chore(dev-eks): deploy dev-09168b83 [skip ci] by @github-actions[bot] in #4090
- Cold-only Platinum sandboxes — remove stateful/warm-fork machinery (Kortix-side) by @kubet in #4091
- IAM: department sharing for connectors/secrets + unify secret access on one model by @Ino-Bagaric in #4039
- chore(dev-eks): deploy dev-26e551c7 [skip ci] by @github-actions[bot] in #4092
- chore(admin): remove the dead warm-fork sessions toggle (leftover from #4091) by @kubet in #4095
- chore(dev-eks): deploy dev-79f08e8a [skip ci] by @github-actions[bot] in #4096
- feat(sessions): add manual stop action (API + SDK + UI) by @markokraemer in #4097
- chore(dev-eks): deploy dev-092738be [skip ci] by @github-actions[bot] in #4098
- fix(llm-gateway): fail over on empty-choices completions instead of forwarding them by @markokraemer in #4099
- chore(dev-eks): deploy gateway dev-d23ca769 [skip ci] by @github-actions[bot] in #4101
- chore(dev-eks): deploy dev-d23ca769 [skip ci] by @github-actions[bot] in #4102
- fix(llm-gateway): auto-retry the same candidate on an empty completion before failing over by @markokraemer in #4103
- chore(dev-eks): deploy gateway dev-ff62e6d9 [skip ci] by @github-actions[bot] in #4105
- chore(dev-eks): deploy dev-ff62e6d9 [skip ci] by @github-actions[bot] in #4106
- Extend entitlement gating to custom RBAC and audit access by @markokraemer in #4107
- chore(dev-eks): deploy dev-64f62763 [skip ci] by @github-actions[bot] in #4108
Full Changelog: v0.9.92...v0.9.93