Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 02:23
dbf1354

0.4.0 (2026-10-11)

⚠ BREAKING CHANGES

  • python: adopt 3.15 idioms — PEP 810 lazy imports, frozendict, sentinel
  • routing: not_low_anchor now 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)