Repository navigation
Releases
Releases · zwldarren/llm-proxy
v0.5.4
0.5.4 (2026-11-05)
Features
- billing: price peak/off-peak windows and service tiers (ADR-0053) (7cbc431)
- console: build the dialog, sheet and tab shells once, and close the a11y audit (1f70d99)
- console: give each team member one labeled actions menu (8c74112)
- console: let a passkey satisfy the second factor (ADR-0049) (a9bafa4)
- console: make the models.dev sync one review surface and one write (b2e5ff3)
- images: accept GPT Image 2.6 GIF and SVG output on generations (3d25c20)
- opencode: default to the v2 lane roots and honor Goose/Amp sessions (ADR-0055, ADR-0056) (6be883b)
- provider-selection: pin each conversation to one provider by default (ADR-0054) (a28d835)
Bug Fixes
- frontend: restore Web Storage in the vitest environment (22766f4)
Documentation
- rewrite the README and publish a Simplified Chinese docs site (d190cef)
v0.5.3
0.5.3 (2026-10-31)
Features
- auth: rebuild the vestibule and validate the instance sign-in form (684c62f)
- console-auth: make console sign-in invite-only and passwordless (ADR-0049) (80a594e)
- frontend: rebuild sign-in and the account workspace around the new auth (ADR-0049) (6dfc0e9)
- opencode: pin conversations to a stable upstream session id (ae03ea4)
- settings: make instance settings admin-only and give preferences an account tab (c674df2)
Bug Fixes
- console: contain a render crash instead of blanking the console (aae511b)
- docker: drop stale frontend/patches COPY (637e7c4)
- security: mask tracing credentials in the read shape (63e1311)
- tracing: let LangSmith store the run and keep passthrough output (cccbf8e)
- tracing: render the passthrough body through the bounded renderer (2015920)
- web-search: stop the SearXNG input offering results the schema rejects (6904784)
Documentation
- console-auth: document invites, passkeys, 2FA, OIDC and password reset (39264f8)
v0.5.2
0.5.2 (2026-10-26)
Features
- providers: add Ollama speech endpoint compatibility (4fd5bc3)
- tracing: export traces to OTLP collectors and LangSmith (ddd5d9d)
- tracing: expose the Langfuse content mode in the dashboard (c339faa)
Bug Fixes
- auth: bind credentials to account state and make each guess cost (c525e4e)
- close three edge cases on the request and cleanup paths (c7e9cff)
- deps: bound decompression and MCP session slots (2f1de23)
- logs: keep secrets, and client widths, out of the log pipeline (0b1a9d0)
- providers: keep provider API keys encrypted at rest (0f6335f)
- security: close the second-axis review of the hardening series (d91271d)
- ssrf: refuse internal hosts for user-supplied endpoints (da73352)
- startup: initialize encryption before the fail-fast config load (1b5e29b)
- streaming: keep model text out of the frame framing (2fc367f)
- team: align member management with documented behavior (20ae853)
- tracing: export Langfuse content by default again (32f8061)
- web-search: treat empty options as enable-with-defaults on every wire (b25dbce)
- ws: charge every socket turn what HTTP charges (c60cb33)
Performance Improvements
- cut request-path CPU in middleware and background writers (b196f59)
Documentation
v0.5.1
0.5.1 (2026-10-23)
Features
- logs: record fallbacks and reported zeros as queryable log facts (3b362fe)
- observability: one observation per request, projected to each sink (e49c1a2)
- rerank: a retrieval protocol, and a provider that speaks its own dialect (ADR-0040, ADR-0041) (8507e40)
- tracing: trace every request type with its own Langfuse content (605dc43)
Bug Fixes
- cohere: read the double-typed ApiMeta counters as counts (d4b19bf)
- frontend: keep LogsView's lazy children out of the test's imports (dbaca80)
- logging: keep the reason a provider failed when bodies are off (f084677)
- openresponses: carry cache_write_tokens in every usage payload (a78e2da)
- openresponses: carry every detail counter into the terminal snapshot (52e6ec9)
- openresponses: fold every provider's usage shape into the terminal snapshot (01d7c31)
- openresponses: hold the terminal snapshot until the trailing usage lands (26c5c66)
- rerank: carry relevant_spans back and keep document objects open (9a3cbe9)
Documentation
- openresponses: correct the access_programs rationale (68512c6)
v0.5.0
0.5.0 (2026-10-20)
⚠ BREAKING CHANGES
- auth: one key gate owns the auth sequence
- streaming: one segment accumulator owns canonical block assembly
Features
- gemini: gate request shapes on the model family, cache what the wire cannot carry (ADR-0039) (bde5fca)
- minimax: speak MiniMax's vocabulary on every wire (fd45080)
- providers: add OpenCode gateway adapters with per-model dialect routing (24bb8cd)
- routing: a fallback ladder, a corpus export, a cost-quality readout (e673eee)
- routing: warm experience store, ask-shaped classifier input, label flywheel (e060776)
- tools: a hosted tool is a dialect fact, not a function (ADR-0038) (7775d82)
Bug Fixes
- address open-code-review findings from the routing/streaming/auth work (552ff65)
- anthropic: clamp the wire onto the official Messages shapes (2df34ae)
- streaming: take the 499 verdict before the stop token can forge it (420754b)
Code Refactoring
v0.4.1
v0.4.0
0.4.0 (2026-10-11)
⚠ BREAKING CHANGES
- python: adopt 3.15 idioms — PEP 810 lazy imports, frozendict, sentinel
- routing:
not_low_anchornow defaults to False and an unset gate no longer consults every turn; console and docs carry the same posture. - security: deployments that relied on the always-on API-key IP lockout lose it on upgrade. Public instances must enable Settings -> Security -> API Key IP Lockout.
Features
- health: report which store actually holds the rate-limit windows (c49c466)
- routing: drop the embedding signal (Signal C) and its ML stack (c8ab589)
- routing: repair the ensemble, close the judge gate, bar verdict consumption (c212846)
- routing: ship the not_low_anchor judge gate and the clarified tier rubric (50efb71)
- upgrade to Python 3.15 and adopt 3.15 language features (1315d00)
Bug Fixes
- address the second review pass on the merged refactor series (20216eb)
- billing: bill every web-search continuation hop (046cb73)
- ci: drop removed smart-routing extra; use python:3.15-rc-slim image (597419b)
- config: address review findings on the server settings registry (dff1859)
- docker: skip dev group in production image (aa47cb0)
- observability: keep the provider-info search count monotonic (5bafaec)
- observability: reach the Langfuse generation across the streaming task boundary (d153521)
- ollama: report tool_calls when the model produced them (ab186e9)
- ratelimit: give every bucket its own window and harden the limiter (18a0992)
- ratelimit: make the Redis check-and-record one atomic script (7e5542c)
- release: bump the published OpenAPI version with the release (497eb6d)
- security: make "disable rate limiting" cover every auth-path throttle (85f8d4b)
- streaming: keep the transformer module importable on its own (442282d)
- streaming: tell a clean close at stream end from an abandonment (a75a4f9)
- usage: repair the facts the seam's first review found lost (c1f9cc5)
- web-search: attribute streamed searches to the request's user (5f81f7f)
Documentation
- adr: give the server settings registry its own number (a8ddb99)
- adr: point the superseded usage decisions at the intake seam (c96671a)
- adr: record the declared web-search transformer seam (cfd4d92)
- adr: record the server settings registry decision (5550bdf)
- config: finish repointing the server settings registry at ADR-0026 (8b2aea4)
- context: name the provider declaration and where it is asserted (5d05adc)
Code Refactoring
- python: adopt 3.15 idioms — PEP 810 lazy imports, frozendict, sentinel (d836ec2)
v0.3.1
0.3.1 (2026-10-08)
Features
- decisions: serve /v1/decisions through a provider-side bridge (bb313bf)
- frontend: add a sticky settings section index with anchor scrolling (13d5b64)
- routing: add a routing judge for the ambiguity band (2aabea4)
Bug Fixes
- address the review findings on the seam refactor series (85d61eb)
- chat: surface failed generations and stop cutting long streams (ee330c8)
- frontend: keep the kept-alive logs view out of other pages' ?tab= (c67b5f3)
- frontend: make the model pickers retryable and retire the run tray (0c5698c)
- observability: stop losing Langfuse traces and double-counting tokens (5ab1c53)
- web-search: default a blank Ollama base URL to the hosted endpoint (baea5cc)
- web-search: keep search results when a conversation is replayed (6854d42)
Documentation
- frontend: sync DESIGN.md with the implemented nav rail (665af13)
v0.3.0
0.3.0 (2026-10-06)
⚠ BREAKING CHANGES
- systemone: adds the
systemonerequest type, thetypesafeprovider type andPOST /v1/systemoneto the/v1contract. The shared OpenRouter cost predicate now rejects a boolean or zerousage.costinstead of billing it as USD 1.0. No existing endpoint, provider config or payload changes shape.
Features
- openapi: publish a generated /v1 contract in the docs (1795736)
- systemone: add System One evaluation across TypeSafe, OpenRouter and Ollama (08f0387)
- systemone: gate /v1/systemone on a capability flag and log its payloads (4e97763)
Bug Fixes
- anthropic: keep beta blocks, tool results and token counts faithful (886f575)
- config: apply settings and derived caches on every worker (06281c5)
- logging: enforce the body switch at the store and log rejections (40b71fb)
- openai: keep Responses fields, tool controls and annotations on the converted path (8ae1616)
- openapi: pin the published spec version to the release version (acc768d)
- qwen: forward image extension fields and drop phantom audio routes (c760a37)
- web-search: report the real failure reason, provider and query in logs (6584415)
v0.2.9
0.2.9 (2026-09-30)
Features
- logs: surface cache token counts on the log list (a06e019)
- models: give list mode the table's column grammar (f27a549)
- usage: break hourly buckets down by model in the trends chart (ba2a978)
Bug Fixes
- config: decode bytes generation token so peer workers refresh (a4f99fd)
- ui: keep tooltips closed when focus moves programmatically (8665f30)
Performance Improvements
- logging: cap stored bodies and reclaim space on retention sweeps (b4f7c3b)