Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 13:06
8e55083

0.4.0 (2026-09-13)

Features

  • Allow keys to be rotated and protect against accidental removals of last key (5a850df)
  • Answer 304 when a GET carries an ETag and the resource is unchanged (3517e54)
  • Answer every failed request with a standard JSON error body (96bb3f3)
  • Filter and page the index, key and reindex listings (a9b9080)
  • Generate real query and field types in OpenAPI clients (6104987)
  • Improve batch indexing error handling and allow skipping docs with errors (f626075)
  • Introduce shared cache settings for the entire node (983b10a)
  • Let a deployment cap how many facet values and suggestions a request may ask for (012c483)
  • Measure facet value and explain requests (dcedc22)
  • Normalize error codes for numeric ranges (7d9f1e7)
  • Publish a named Interpret union in the OpenAPI document (7f8acf7)
  • Read and cancel a reindex job under /admin/reindexes (00ff93d)
  • Reindex jobs are now identifiable and carry more metadata (e9bbf70)
  • Rename every error code by family, request part and defect (fd4cb1a)
  • Rename index:not-found to index:not_found (045382b)
  • Rename some request:update errors to index:update (67774a4)
  • Rename the live generation liveGeneration when listing indexes (493d02f)
  • Report enums in the REST API as lowercase (2c1ac3c)
  • Report every error path in the REST API using dotted form (4af6fd5)
  • Report which index generation answered a search (51663ce)
  • Require all parameter to delete all documents (21d1e36)
  • Require indexes.promote permission when auto-promoting reindex (eeb47ec)
  • Return missing primary keys as text (561faac)
  • Return the index with its ETag from commit and pull (068f6cb)
  • Stronger If-Match application in the REST API (3be9a94)
  • Support for ranking signals with non-indexing updates (402b301)

Bug fixes

  • Accept a document key written as another JSON type in a PATCH body (4a6e2f4)
  • Answer index:not_found when trying to reindex a non-existent index (1980fbe)
  • Avoid sending back empty tieBreakers for rankings (53c6755)
  • Cancel a queued reindex without a 15 second wait (b062e1a)
  • Count the clauses of interpret targets against the search clause caps (a68d202)
  • Ignore paging, sort and rescore in explain instead of validating them (8c89ca4)
  • Index documents forwarded over HTTP/2 instead of reporting zero indexed (6933dbc)
  • Keep a closing index copy from overwriting files (64051b3)
  • Keep a registry repair from undoing a delete that lands while it runs (993f066)
  • Keep a rescored search from paging into an empty page (33328ae)
  • Keep a slow registry read from hiding an index another thread just created (1036215)
  • Keep attempting to push indexes if a push fails (830c102)
  • Keep registry entries a newer node wrote when an older node changes it (87ff74e)
  • Keep the definition and change log intact when a node stops mid-write (7ce5358)
  • Mark storage as removed when a delete cannot clear a local copy (6cf9dbf)
  • Refuse a boost weight of NaN or Infinity instead of scoring with it (3204515)
  • Report NDJSON document errors without a documents prefix (f314c49)
  • REST API now answers more calls with 4xx instead of 500 (2f9aad7)
  • Return 400 for an invalid after parameter when reading documents (b4edb2e)
  • Stop a refused reindex from leaving an empty generation behind (b2f2008)
  • Stop omitting score from a search ranked by signals or a second pass (9812afd)
  • Tell apart an empty matched and a blank field name, and point highlight errors at the field (9a44f8b)

Performance

  • Cache typo and prefix matches on small segments too (ffba8f2)
  • Reuse prefix automata across fields and requests (fe3257e)
  • Speed up long and typo tolerant searches by reusing term lookups (1facf2d)