Releases
v0.1.0
Compare
Sorry, something went wrong.
No results found
0.1.0 - 2026-06-25
Bug Fixes
Add root path bootstrap for migrated test suite by @tbille (742ee21 )
Fix preserve existing Vary header values in #10 by @tbille (c9700dd )
Satisfy lint in platform mode tests and config by @tbille (49c2fbb )
Default to platform mode when token is set by @tbille (3aea381 )
Resolve mypy type errors and regenerate OpenAPI spec by @tbille (85469ad )
chat: Map stream-creation errors to 502 + narrow route for mypy by @agpituk (b7078ec )
streaming: Bake X-Otari-Request-ID into StreamingResponse headers by @agpituk (100a1d3 )
api: Normalise naive datetimes from SQLite before tz-aware comparison by @agpituk (8705c11 )
chat: Duck-type tool_call detection in MCP loop by @agpituk (bdab428 )
Address Copilot review feedback on PR #63 by @agpituk (6145a7a )
Use requested n as fallback for image count in cost calculation by @tbille (cf09b00 )
Address Copilot review feedback on audio endpoints by @tbille (ba98380 )
Address Copilot review feedback on PR #65 by @agpituk (8855127 )
demo: Auto-start a llamafile via $LLAMAFILE_BIN, no home-dir guessing by @agpituk (bb6a6a1 )
demo: Handle empty model id from /v1/models and fix HF recipe URL by @agpituk (af8af69 )
chat,sandbox: Address tbille review on PR #65 by @agpituk (1a001c8 )
deps: Use git source for any-llm-sdk instead of local path by @tbille (ba848ba )
Import BatchRequestCounts from canonical module to satisfy mypy attr-defined check by @tbille (6fc7934 )
Inject provider field into all batch endpoint responses by @tbille (d54e86f )
Revert AGENTS.md to main branch version by @tbille (ec0c21d )
deps: Use any-llm-sdk from PyPI instead of git branch source by @tbille (fcfa511 )
Address Copilot review feedback on batch endpoints by @tbille (8e33cc0 )
Address review feedback on PR #52 by @tbille (ce5d7c9 )
mypy: Resolve type errors for moderation types and amoderation import by @tbille (ac4c01a )
Avoid name redefinition in moderation type shim by @tbille (f291039 )
Address Copilot review feedback on rerank endpoint by @tbille (6102855 )
Use direct arerank import now that SDK exports it by @tbille (99bce51 )
chat: Align mcp-servers resolver status semantics with credentials resolver by @agpituk (e047521 )
web-search: Address copilot review on PR #72 by @agpituk (64cd537 )
web-search: Silence init errors for unused searxng engines by @agpituk (c20f170 )
Add missing type annotations for mypy strict mode by @tbille (040f26a )
Address Copilot review feedback on model discovery by @tbille (7af6773 )
Address remaining Copilot review comments on model discovery by @tbille (ab2829d )
chat: Align streaming tool-mode dispatch with tool_mode predicate by @agpituk (934f471 )
routes: Address Copilot review on PR 1 by @agpituk (615b5c3 )
messages: Map streaming backend-unreachable errors to 502 by @agpituk (a61fda3 )
messages: Address Copilot review on PR 2 by @agpituk (c154aaf )
responses: Map streaming backend-unreachable errors to 502 by @agpituk (34f89a0 )
responses: Address Copilot review on PR 3 by @agpituk (3fc34b6 )
platform: Address Copilot review on PR 4 by @agpituk (c3ab2e0 )
messages,responses: Streaming provider errors → HTTP error + regen OpenAPI spec by @agpituk (1e3273f )
tools: Typecheck + address Copilot review on PR 86 by @agpituk (f9442e7 )
budget: Close cross-user IDOR, overspend race, and unmetered-usage bypasses by @khaledosman (9b0abbe )
ci: Typecheck async-generator aclose + regenerate openapi spec by @khaledosman (69fc2f9 )
review: Address PR review on budget fix by @khaledosman (5e17af0 )
review: Harden against negative/zero budget inputs + log estimated cost by @khaledosman (360bbfa )
guardrails: Address Copilot review by @agpituk (d134663 )
demo: Repair guardrails demo_flow /validate formatter by @agpituk (c2d7dc9 )
messages: Address review on count_tokens endpoint by @khaledosman (691ac52 )
bootstrap: Keep bootstrap API key on a single log line in #131 by @njbrake (dcf2b00 )
budget: Refund the reservation on streaming pre-commit provider errors in #129 by @njbrake (b0ee34e )
deploy: Dispatch to renamed otari-ai platform repo in #141 by @njbrake (8823fea )
sdk-codegen: Type response schemas in serialization mode so reasoning is a string in #145 by @njbrake (55d80f2 )
files: Bill vision side-calls, harden delete + retention docs by @khaledosman (d849cfe )
files: Address review (bare-string Responses input, vision token cap, epoch skew) by @khaledosman (34e642f )
docker: Keep python 3.14, bump onnxruntime instead of downgrading in #159 by @njbrake (a83442a )
codegen: Name free-form-object union arrays so Go generates valid syntax in #166 by @njbrake (ea973fe )
codegen: Map bare empty-schema union members to FreeFormObject in #180 by @njbrake (69af27e )
usage: Treat 402 from the usage-report endpoint as non-retryable by @khaledosman (3f9c767 )
fallback: Treat 404/405/409/410 as retryable so model-unavailable falls through by @agpituk (670165d )
fallback: Report each failed attempt when the whole chain is exhausted by @agpituk (039ce8c )
fallback: Log dropped inline usage-report failures; drop em dashes in #174 by @khaledosman (14610be )
fallback: Report each failed attempt when a streaming chain is exhausted by @agpituk (98be421 )
fallback: Don't block cancellation or leak the backend stack on all-failed stream in #176 by @khaledosman (ed0978b )
fallback: Bound the inline usage-report flush; dedupe all-failed test by @khaledosman (419e19b )
Features
Extract gateway runtime into standalone service repo by @tbille (522fe09 )
Add platform mode startup gating and API surface by @tbille (68e9538 )
Integrate platform resolve and async usage reporting by @tbille (c491bba )
gateway: Add enable_docs config to disable FastAPI docs endpoints by @tbille (786dc75 )
asyncio: Convert DB layer to async, add budget strategies and log writer by @tbille (3e593b6 )
pricing: Add effective_at to model_pricing for historical price tracking by @tbille (e1d69b9 )
gateway: Add GET /v1/usage bulk endpoint with time range filters by @tbille (139fef9 )
Add POST /v1/responses endpoint for OpenAI Responses API by @tbille (b9b0e59 )
gateway: Rename API_KEY_HEADER from X-AnyLLM-Key to AnyLLM-Key by @peteski22 (a006df8 )
gateway: Accept legacy X-AnyLLM-Key header for back-compat by @tbille (a6f00e6 )
chat: Walk multi-attempt resolve responses with retry on transient errors by @agpituk (08e4370 )
streaming: First-chunk gate for routing-policy fallback (v1.1) by @agpituk (24e39fe )
chat: MCP tool-use loop with streaming support by @agpituk (850be4c )
chat: URL safety, content-block rendering, hardened error handling by @agpituk (5724cba )
Add POST /v1/images/generations endpoint by @tbille (f99061b )
Add POST /v1/audio/transcriptions and /v1/audio/speech endpoints by @tbille (6749d47 )
chat: Code execution via sandbox container with multi-keyword detection by @agpituk (0df1f89 )
chat: Resolve workspace-scoped MCP server ids in platform mode by @agpituk (fe8bbf1 )
chat: Hoist user_token + narrow type guard for platform resolve by @agpituk (3cfbf8a )
chat: Web_search tool via SearXNG-compatible backend with content extraction by @agpituk (07c14c0 )
Auto-discover models from configured providers for /v1/models by @tbille (0c95f3b )
chat: Pre-lock-in fallback for tool-loop requests by @agpituk (b4866ce )
messages: MCP / sandbox / web_search on /v1/messages by @agpituk (1fa3e47 )
messages: Wire on_first_response into anthropic_tool_loop by @agpituk (65ce24a )
responses: MCP / sandbox / web_search on /v1/responses by @agpituk (92b9aa1 )
responses: Wire on_first_response into responses_tool_loop by @agpituk (a8bfe78 )
platform: Platform-mode routing for /v1/messages and /v1/responses by @agpituk (4cc54f8 )
tools: Explicit otari_* gateway tool shapes (BREAKING) by @agpituk (259a267 )
demo: --brave flag for the web-search demo by @agpituk (b67b413 )
guardrails: Request-level guardrails across all endpoints by @agpituk (41bb2a9 )
guardrails: Default to PIGuard via encoderfile, monitor mode by @agpituk (16632cd )
Add CodeRabbit configuration in #110 by @njbrake (f52cdd1 )
messages: Add /v1/messages/count_tokens for Claude Code support by @khaledosman (2664e11 )
Add PR template and enforcement workflow in #123 by @njbrake (690996c )
sdk-codegen: Emit the rust core as an inlined src/_client module in #136 by @njbrake (aca95e3 )
sdk-codegen: Coordinate SDK releases with stamped spec version and staleness alert in #137 by @njbrake (3996758 )
web-search: Per-workspace web-search policy via platform resolve in #144 by @agpituk (a2fc5c8 )
files: File uploads + document understanding for local models by @khaledosman (56ba31e )
api: Derive request schemas from any-llm Params to stop param drift in #160 by @njbrake (d3948a1 )
web-search: Forward X-Gateway-Token to the search backend in #164 by @agpituk (2ec9053 )
Generate the changelog and release notes from commits with git-cliff in #162 by @njbrake (c2d3eb2 )
codegen: Type the image-generation response from any-llm ImagesResponse in #178 by @njbrake (90f4523 )
sandbox: Forward caller token to the sandbox backend as Bearer auth in #182 by @agpituk (a74c8bf )
usage: Forward provider cached-token counts in usage reports in #196 by @tbille (1b6a80e )
gateway: Classify upstream provider errors into specific safe responses in #197 by @khaledosman (01df970 )
deploy: Add Deploy on Railway template scaffold and button in #210 by @njbrake (528c9be )
config: Support full provider/pricing config via environment in #211 by @njbrake (022a8dc )
pricing: Add genai-prices default pricing fallback in #201 by @njbrake (9880f58 )
Other
Performance
Security
New Contributors
You can’t perform that action at this time.