Skip to content

v2.24.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 16:25
· 8 commits to main since this release

Fixed

Plugin lifecycle

  • Provider-state waits are bounded — a hung host bootstrap can no longer wedge auto-capture or profile learning forever.
  • No new work starts after disposal — idle events arriving after dispose back out instead of opening new captures; a web server that finishes starting after dispose is stopped instead of running orphaned.
  • First-prompt score scan runs on a macrotask — the host receives the plugin and its first prompt before the initial shard scan kicks in.

Embedding & search

  • Model warmup is bounded — a slow local-model load no longer stalls the first chat prompt; that search degrades to text-only while the load finishes in the background.
  • Punctuated queries return resultsdon't, foo.js, email@example.com, and reserved words like AND previously returned silently empty results (invalid FTS5 MATCH syntax). Tokens are now phrase-quoted on both the memory and transcript search paths.

SQLite & vector index

  • Content-only re-embeds keep tag vectorsupdateVector no longer nulls tags_vector, so semantic tag search survives.
  • FTS update trigger is column-scoped — routine access_count and score touches no longer re-tokenize content, cutting write amplification.
  • Post-commit index failures are reported honestly — a failing backend insert no longer rejects an already-committed memory (callers retried into duplicates), and a dirty index now force-replaces itself from sqlite on the next search instead of staying broken until restart.
  • Re-embed migrations update the live index — searches no longer serve stale old-dimension vectors until a process restart; migrated memories also get fresh tag embeddings.

Web dashboard

  • IPv6 Host headers parse correctly — unbracketed literals like 2001:db8::1 are no longer misread as host+port.
  • New webServerAllowedHosts config option — binding remotely (webServerHost: "0.0.0.0") or behind a reverse proxy no longer blanket-rejects clients with 403. Bind address and accepted Host names are now configured separately.

Contributors

@ZeR020