5.2 Release Notes
Patch Releases
All patch release notes for 5.2.x are available on the releases page.
Querying
Filtered Vector Search (Predicate-Aware HNSW Traversal)
Vector searches combined with filters now evaluate the filter during HNSW graph traversal, so the query keeps exploring until it has enough matching nearest neighbors instead of post-filtering a fixed candidate set (which under-filled results under selective filters). Filters can come from query conditions, a JS-API vectorFilter function, or a record-scoped allowRead override — overriding allowRead on a table now makes it a row-level access check, evaluated per record with this bound to the record (closing the gap where a collection scan could return rows a single-record GET would deny). With it, a restricted user's vector search returns the k nearest records they are allowed to see. Very selective conditions automatically use an exact scan instead of graph traversal, and a filterExpansion visit budget bounds traversal cost. See Vector Indexing.
Components
Scheduler: Recurring Jobs from Component Config
Components can now declare recurring jobs in their configuration with a new built-in scheduler plugin. Jobs run on a five-field cron expression or a simple interval (90s, 5m, 1h), invoking a designated export from the component. In a cluster, execution is leader-coordinated - under normal operation each occurrence runs once, on an automatically elected leader node - with heartbeat-based failover, catch-up for missed occurrences, and per-job run state recorded in a replicated system table (handlers should be idempotent, as failover can occasionally deliver an occurrence twice; conversely, catch-up only backfills the single most recent missed occurrence, not a full backlog). See Scheduler.
Configuration
Replicated set_configuration
The set_configuration operation now accepts "replicated": true to apply a configuration change to all cluster nodes in a single Operations API call, with per-node outcomes reported in the response's replicated array. Only cluster-appropriate parameters should be replicated — see Configuration Operations.
HTTP
Middleware routing and ordering
Components can now declare host and urlPath in config.yaml, or pass them to server.http(), server.ws(), and server.upgrade(), to create middleware chains routed by virtual hostname, URL prefix, or both. The new name, before, and after options provide explicit middleware ordering. See HTTP middleware routing and HttpOptions.