Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Aug 17:06
a03b8d6

0.3.0 (2026-08-22)

Features

  • add curated non-secret operational diagnostics to status and health (28c39f3)
  • add deterministic MCP fixture harness over streamable HTTP (def7497)
  • add explainable cost- and coverage-aware routing (b8103fc)
  • add explainable cost- and coverage-aware routing (d11d105)
  • add explicit image/video media search and result contract (2dceac1)
  • add explicit media search and result contract (85e710b)
  • add jobs search topic and ATS engine adapters (Greenhouse, Ashby, Lever) (#132) (dfd517c)
  • add MCP server for AI agents (af763ab)
  • add MCP server for AI agents (c1ae16f)
  • add selective research retry and bounded follow-up (2d5e8c6)
  • add structured filter-enforcement report to MCP search tools (9797ac7)
  • audit and declare engine capability metadata (2e32f3c)
  • audit and declare engine capability metadata (18e9736)
  • derive live engine health from observed outcomes (0fd7bde)
  • derive live engine health from observed outcomes (4ff5000)
  • diagnose empty scrape responses (51ee882)
  • diagnose empty scrape responses (6004d81)
  • enforce and report search filter semantics (f3ae26a)
  • enforce and report search filter semantics (b26d1f3)
  • expose full engine capability matrix from the live catalog (6fe1c5c)
  • expose machine-readable search-to-retrieval handoff boundary (c1c510a)
  • full-strength MCP access for SlopSearX (f922728)
  • harden snapshot/cursor lifecycle with expiry and unavailability semantics (87e2781)
  • implement progressive-disclosure result card/record contract (c788662)
  • make research job execution durable across replicas (7c9993e)
  • make research job execution durable across replicas (0b370be)
  • persist research per-query and per-engine coverage with failure classes (5365ba1)
  • preserve typed domain payloads in normalized results (9b020c8)
  • preserve typed domain payloads in normalized results (6c8f4ef)
  • raise Brave default result cap (#207) (03b294f)
  • recover discarded evidence in the MCP search envelope (192b8a9)
  • unify sensitive-engine and specialist-grant policy gate (61cc3f3)

Bug Fixes

  • add type args to bare dict in init for mypy 2.2.0 (9bc5b1a)
  • align payload/media disclosure gates with persistence boundary (cb423d4)
  • align payload/media disclosure gates with persistence boundary (ef7b065)
  • apply base-image security updates (#209) (851090f)
  • apply persistence bound to HTTP payload output gate (e57963d)
  • bound the aggregate dispatch deadline (0f78d0d)
  • brave: load API key from environment variable as fallback (9096879)
  • brave: load API key from environment variable as fallback (9096879)
  • brave: load API key from environment variable as fallback (8f7f8b7)
  • brave: load API key in init so health check passes at startup (9becad0)
  • brave: load API key in init so health check passes at startup (9becad0)
  • brave: load API key in init so health check passes at startup (f833807)
  • cache canonical full response and derive per-request view (9c64dbc)
  • centralize feature env overrides (6031f62)
  • centralize feature env overrides (bebdaa3)
  • ci: skip droid-review for dependabot PRs (a14910b)
  • clear stale research leases, guard saves, use SCAN (a2a697d)
  • close media routing gaps from issue-188 code review (e088544)
  • close SSRF gaps in retrieval URL handoff guard (3112c20)
  • complete timeout status follow-up contract (f11e15f)
  • expire deadline-passed claims and guard direct runs (fc2b789)
  • finalize lapsed-deadline runs before mutation, scan colon-safe tenants (40afa0c)
  • fold observed health into routing cache digest (dc19d08)
  • fold sensitive/tier1 sets into routing digest; freeze HTTP budget (f15a73b)
  • fold sensitive/tier1 sets into routing digest; freeze HTTP budget (f3e084f)
  • gate cancel/retry/extend and keep research leases alive (78ac88a)
  • gate health folding in routing digest on engine-count cap (c8739ac)
  • gate payload serialization the renderer way and cap requested inline (a298d5a)
  • handle arXiv HTTPS redirects safely (8985874)
  • harden payload disclosure and CVSS parity (0957a1e)
  • harden payload serialization, persistence bound, and CVSS parity (f780274)
  • harden retrieval handoff URL classification and docs (45fd16c)
  • harden snapshot TTL and research retry/extend edge cases (e3a04f9)
  • harden URL handoff guard and dedup against malformed hosts (4c99744)
  • honor per-engine timeout_ms at search dispatch (#184) (23dc38c)
  • install cssselect at runtime (2433336)
  • install cssselect at runtime (e859bc2)
  • keep cached scope live and pin routing test config (d5cd05a)
  • keep intent media type across explicit scope in _resolve_scope (f97f578)
  • lease direct research runs and check lease liveness (3999081)
  • make filter enforcement value-aware and honest in warnings (0924989)
  • make research lease primitives atomic and claim terminal retries (f1da60c)
  • make SearchResult serialization JSON-safe (6b7447a)
  • memoize /health config+catalog and never fabricate observed latency (8d77e38)
  • never fabricate observed health latency or auth state (0005392)
  • never hand off SSRF-prone IP hosts or userinfo URLs (9f1730c)
  • only count the local layer for filters with a local post-filter (b44b20b)
  • pin Docker image provenance (#211) (77d1448)
  • pin sanitized error-message assertion to exact output (32c47fd)
  • preserve arXiv rate-limit classification (28d4670)
  • preserve configured timeout in fan-out deadline (9ab5c37)
  • ratelimit: remove unused sidecar stub (9b22616)
  • ratelimit: remove unused sidecar stub (9ae0dad)
  • reconcile direct runs and surface durable cancellation (de1f754)
  • reject IPv6 6to4 literals and distinguish reserved-prefix reasons (635bc6c)
  • reject IPv6 translation-prefix and site-local retrieval targets (a18d889)
  • reject IPv6 translation-prefix and site-local retrieval targets (427ade1)
  • reject percent-encoded and non-ASCII hosts in retrieval handoff (7c52d2a)
  • remove dead payload catalog and gate read-result payload (f495e58)
  • route strict-safesearch preview through the real query scope (373b52e)
  • run routing pass on media path and pin harness config (7e3c0df)
  • satisfy both mypy gate versions for MCP SDK redirect helper (de3d939)
  • scope IPv6 reserved check so IPv4-mapped literals embed-safe (776c431)
  • strict payload size gating and CVSS/FRED fixes (64b2007)
  • sync ctx sensitive set from policy; harden routing eval bounds (965e1f3)
  • treat empty max_cost_class as permissive; fix R5 eval baseline (f615341)

Documentation

  • add engine troubleshooting guidance (f350d49)
  • add engine troubleshooting guidance (59e796c)
  • add field-level MCP contract mapping (07186a7)
  • correct stale claims and document MCP invariants (0f4f725)
  • define the search-to-retrieval handoff boundary (4dd4e8a)
  • document advanced-search decision and finalize CI parity (7da23a6)
  • expose unavailable health status (95d9a1b)