Skip to content

v0.14.0

Choose a tag to compare

@otari-bot otari-bot released this 01 Oct 13:04
6342462

0.14.0 - 2026-10-01

Bug Fixes

  • files: Record an upload before its bytes are written in #1756 by @peteski22 (64930e4)
  • files: Record a produced file before its bytes are written in #1757 by @peteski22 (3394947)
  • web: Render clickable radio controls in filter rail by @claude (269ca52)
  • dashboard: Keep RadioVisual private to RadioGroup by @daavoo (95474ea)
  • dashboard: Build RadioGroup options from RadioField and RadioButton in #1576 by @daavoo (b0e0052)
  • ci: Give the SDK regeneration PR a conventional-commit subject in #1733 by @peteski22 (8bf18fd)
  • sandbox: Stop handing the caller's token to the control plane in #1739 by @peteski22 (2cdbb53)
  • BREAKING: tools: Apply a workspace's web search limits as a ceiling in hybrid in #1787 by @peteski22 (68e8544)
  • hook: Show a judge gate the files a change adds in #1800 by @agpituk (c4fc6a2)
  • inference: Count request-shaping headers toward an idempotency key's request by @claude (2e487fa)
  • inference: Renew an idempotency claim while its request runs by @claude (5e5c301)
  • inference: Free a running idempotency claim only when its lease lapses by @claude (8a8b4b9)
  • inference: Keep an idempotency claim alive after any renewal error by @peteski22 (4759a42)
  • inference: Refuse an unknown or blocked user before an idempotent replay by @peteski22 (451139e)
  • inference: Back off exponentially while a retry waits for its key by @peteski22 (3c009d5)
  • inference: Time idempotency leases by the database clock by @peteski22 (0e55c3e)
  • inference: Keep sweeping idempotency records while the header is off by @peteski22 (42721db)
  • inference: Keep renewing an idempotency claim until its response is stored by @peteski22 (efafbd5)
  • inference: Retry a failed idempotency renewal before the lease runs out by @peteski22 (680dbdd)
  • inference: Never let an idempotency store error fail a paid response by @peteski22 (57db096)
  • inference: Read the database clock when asked, not at transaction start by @peteski22 (5a7bc35)
  • inference: Bound each idempotency sweep and keep replicas apart by @peteski22 (a07fc33)
  • inference: Drain every expired idempotency record in each sweep by @peteski22 (0bf1b5f)
  • inference: Count routing headers toward an idempotent request by @peteski22 (dbdb6ee)
  • inference: Count every value of a repeated header toward an idempotent request by @peteski22 (3688f32)
  • inference: Repeat the guardrail verdict on an idempotent replay by @peteski22 (5d72c16)
  • inference: Pass on a request's cancellation while its claim renewal stops by @peteski22 (ace57ab)
  • inference: Take over only an idempotency claim that is unchanged since it was read in #1771 by @peteski22 (8e11b9c)
  • gateway: Turn in-product feedback off by default until the intake delivers in #1810 by @jigjigjig (12b62d2)
  • files: Make a copy again when the provider dropped it early in #1830 by @peteski22 (fb6f167)

Features

  • inference: Honor Idempotency-Key on non-streaming completions by @claude (90f2986)
  • inference: Encrypt stored idempotent responses with OTARI_SECRET_KEY by @claude (1592fea)
  • inference: Answer a retry of a running idempotent request with 409 at once by @peteski22 (928575c)
  • hook: Compose user-level guardrails from ~/.otari in #1804 by @peteski22 (a80e0b2)
  • BREAKING: files: Give the provider's own code execution the files a request attaches in #1666 by @peteski22 (4b80994)

Maintenance

Performance

  • inference: Delete expired idempotency records in bounded batches by @peteski22 (b2a36fe)

New Contributors

Full Changelog: v0.13.0...v0.14.0