v0.9.0
0.9.0 - 2026-09-23
Bug Fixes
- budgets: Stop a spend ceiling outliving a concurrently deleted workspace in #1538 by @peteski22 (
dc45c0e) - tools: Read the code executor the same way on every input in #1539 by @peteski22 (
9fc35f4) - guardrails: List only the guardrails a stored row can build by @dpoulopoulos (
a7a90c9) - guardrails: Regenerate the dashboard client for the validate_kwargs text in #1495 by @dpoulopoulos (
de02ea3) - guardrails: Retry a guardrail build that ran out of time by @dpoulopoulos (
181f8a8) - dashboard: Stop discard from submitting the form it discards in #1546 by @dpoulopoulos (
f574590) - catalog: Withhold a hosted model the deployment no longer advertises in #1564 by @tbille (
3919387)
Features
- guardrails: Store an organization's own guardrail definition by @dpoulopoulos (
fc397c1) - invitations: Hand admins a shareable accept link and let invitees set a password on accept in #1562 by @tbille (
d19dd96) - guardrails: Look up one built-in guardrail by name in #1459 by @dpoulopoulos (
336f9e4) - guardrails: Deny any_llm to an organization's own store by @dpoulopoulos (
8d355b2) - guardrails: Write an organization's own guardrail definition by @dpoulopoulos (
821e84e) - api: Serve an organization's guardrail definitions by @dpoulopoulos (
1389549) - guardrails: Refuse dropping a definition a mandate names by @dpoulopoulos (
425ab36) - guardrails: Let an organization mandate a guardrail it defined by @dpoulopoulos (
2e64713) - guardrails: Check a definition's stored endpoint before it is saved by @dpoulopoulos (
3bdb608) - guardrails: Read every enabled definition in one query by @dpoulopoulos (
0fb9f7d) - guardrails: Build an organization's definitions and hold them ready by @dpoulopoulos (
5bdeacd) - gateway: Prime the guardrail runner at boot and keep it current by @dpoulopoulos (
d83eee6) - guardrails: Carry a mandate's definition id to the request path by @dpoulopoulos (
bef8cb7) - guardrails: Keep the definition that serves a profile through the merge by @dpoulopoulos (
eb3b0b9) - guardrails: Answer a check with the guardrail this worker holds by @dpoulopoulos (
dbeb131) - gateway: Run a mandated definition on the request path by @dpoulopoulos (
4d8898d) - guardrails: Answer which version of a definition this worker holds by @dpoulopoulos (
a0428ec) - api: Report whether a guardrail definition is actually running by @dpoulopoulos (
8d0ac86) - api: Rebuild a guardrail definition when it is written by @dpoulopoulos (
0a2d924) - config: Size the guardrail thread pool from the deployment by @dpoulopoulos (
60bc87f) - api: Publish the organization guardrails surface by @dpoulopoulos (
37a2bc2) - dashboard: Add hooks for the built-in guardrail catalog and definitions by @dpoulopoulos (
0695b07) - dashboard: Read the checks and fields a built-in guardrail offers in #1545 by @dpoulopoulos (
11494e3) - dashboard: Keep a guardrail definition's secrets across an edit by @dpoulopoulos (
f5f1e3c) - dashboard: Add the dialog that sets up a guardrail otari runs itself by @dpoulopoulos (
3b5bf44) - dashboard: Add the dialog that says where a guardrail runs by @dpoulopoulos (
2a86206) - dashboard: Open the two guardrail dialogs from the organization card by @dpoulopoulos (
f6b59b5) - dashboard: Ask for a guardrail's JSON arguments as checkboxes by @dpoulopoulos (
22200c0) - dashboard: Call the definition action configure guardrail by @dpoulopoulos (
825f043) - dashboard: Say when an organization guardrail is not running by @dpoulopoulos (
33bbbd2) - dashboard: Mark the card's mandates whose guardrail is not running in #1547 by @dpoulopoulos (
a23303e) - dashboard: Add the organization guardrails page by @dpoulopoulos (
fba88fc) - dashboard: Say configure guardrail on the organization page in #1548 by @dpoulopoulos (
be6f82d) - guardrails: Test an organization's guardrail definition by @dpoulopoulos (
cc5d552) - dashboard: Test a configured guardrail from its row in #1550 by @dpoulopoulos (
233bada) - dashboard: Show a workspace the guardrails that apply to it in #1551 by @dpoulopoulos (
bb18e93) - Return request id and inline cost on standalone responses by @daavoo (
07f97db)
Full Changelog: v0.8.0...v0.9.0