From c2ffd9342d02f6c2c7cd5bd14e693a3a8b7b0839 Mon Sep 17 00:00:00 2001 From: Jon Redeker Date: Wed, 10 Jun 2026 17:58:27 -0400 Subject: [PATCH] =?UTF-8?q?chore(release):=20v3.1.3=20=E2=80=94=20lgrep=20?= =?UTF-8?q?pool=20wedge=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump version 3.1.0→3.1.3 (aligns to next tag after v3.1.2) and add the CHANGELOG entry for the lgrep pool wedge fix (PR #3, merged as ac393ee). The auto-release workflow skipped a release for that merge because the squash-merge title was not a conventional commit; this cuts v3.1.3 explicitly. --- CHANGELOG.md | 10 +++++++++- pyproject.toml | 2 +- src/lgrep/__init__.py | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31c23ec..23171d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,12 @@ -## 2026-05-27 (v3.1.2)\n\n### Changed\n- refresh repo improvement prep +## 2026-06-10 (v3.1.3) + +### Fixed + +- **lgrep pool wedge from abandoned index** — the shared MCP daemon no longer permanently wedges its bounded worker pool when a search-triggered auto-index is abandoned at the 8s tool timeout. Cooperative cancellation is now threaded through every blocking seam (`index_all` → `index_file` → `embed_documents` → `_embed_batch_with_retry`), the exponential-backoff retry sleep is interruptible via `cancel_event.wait(timeout=delay)` instead of `time.sleep`, and a hard wall-clock backstop (`LGREP_INDEX_MAX_WALL_S`, default 60s) guarantees `index_all` aborts regardless of where it blocks. Abandoned `index_all` jobs now reach a terminal state and release their worker (verified in production: pokeedge index_all jobs cancel in ~6s via `cancel_event` rather than wedging the pool). `_check_staleness` is additionally bounded by `LGREP_STALENESS_DEADLINE_S` (default 4.0s) so drift detection cannot consume the 8s search budget. `OperationCancelled` moved to `lgrep/exceptions.py` (re-exported from `indexing.py` for backward compatibility). + +### Changed + +- (v3.1.2) refresh repo improvement prep ## 2026-05-22 (v3.1.1) diff --git a/pyproject.toml b/pyproject.toml index 8182349..7555950 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lgrep" -version = "3.1.0" +version = "3.1.3" description = "Dual-engine code intelligence MCP server: semantic search (Voyage Code 3 + LanceDB) and symbol intelligence (tree-sitter AST parsing)" readme = "README.md" license = "MIT" diff --git a/src/lgrep/__init__.py b/src/lgrep/__init__.py index ac598f5..2c64b33 100644 --- a/src/lgrep/__init__.py +++ b/src/lgrep/__init__.py @@ -7,4 +7,4 @@ and structural code navigation across 165+ languages. """ -__version__ = "3.1.0" +__version__ = "3.1.3"