Skip to content

v3.19.1

Choose a tag to compare

@eniz1806 eniz1806 released this 30 Jun 18:40

A correctness/UX bug-fix sweep (the "Tier-0" batch).

Fixed

  • LSP diagnostics actually work. diagnostics() was a no-op stub; it now reads the async textDocument/publishDiagnostics notification and returns a real list. New /lsp diagnostics <file> renders them, and the editor-bridge GET /diagnostics endpoint returns the documented list shape.
  • MCP stdio channel no longer desyncs. _send correlates responses by JSON-RPC id and skips notifications / server-initiated requests / non-JSON log lines — a notification arriving before the response used to be mistaken for it, permanently shifting every later reply by one.
  • Transient failover no longer sticks. self.model is restored after the turn instead of silently moving you off your chosen provider for the rest of the session.
  • /embed and /rag preflight the local embedding model (nomic-embed-text) and offer to pull it, instead of silently reporting Embedded 0 files.
  • /compact on Claude keeps its summary instruction, and the context estimate accounts for images + system/tool-schema overhead so auto-compact triggers in time.

Changed

  • UX: /search engine choice persists; /voice checks for an OpenAI key up front (and uses the system temp dir, not /tmp); file-watch #AI: triggers print a hint to press Enter; the regex repo map labels Java/C symbols by keyword/type, not a leading public/static.

667 tests passing.