From 1ba10739d555f7fbfedde6cc16f773c442f2fc3b Mon Sep 17 00:00:00 2001 From: Aleksandr Platonenkov Date: Mon, 3 Aug 2026 16:57:59 -0300 Subject: [PATCH 1/2] chore(plugin): release plugin v0.2.4 with server v0.2.2 Ships the code_search payload reduction: 5-line excerpts (was 15) and a default limit of 5 (was 10), measured at -54.6% response size on eight representative queries. bin/server.sha256 carries a placeholder here; the real value is read off the release workflow's own build and committed before this merges, as for every release since the build stopped embedding the commit id. --- .claude-plugin/marketplace.json | 4 +-- plugins/code-index/.claude-plugin/plugin.json | 4 +-- plugins/code-index/CHANGELOG.md | 27 +++++++++++++++++++ plugins/code-index/README.md | 22 +++++++-------- plugins/code-index/README.ru.md | 22 +++++++-------- plugins/code-index/bin/server.sha256 | 2 +- 6 files changed, 54 insertions(+), 27 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index c6c5629..b6e8d8f 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,14 +6,14 @@ }, "metadata": { "description": "Marketplace for the code-index-mcp plugin — local semantic code search over C# codebases, backed by Ollama embeddings.", - "version": "0.2.3" + "version": "0.2.4" }, "plugins": [ { "name": "code-index", "source": "./plugins/code-index", "description": "Local stdio MCP that gives Claude Code semantic search over C# codebases via Roslyn-aware chunking and Ollama embeddings. Requires Ollama running locally with qwen3-embedding:4b pulled, and at least one project configured.", - "version": "0.2.3", + "version": "0.2.4", "author": { "name": "StaticBit", "url": "https://github.com/StaticBit-io" diff --git a/plugins/code-index/.claude-plugin/plugin.json b/plugins/code-index/.claude-plugin/plugin.json index 1cf369b..6cee014 100644 --- a/plugins/code-index/.claude-plugin/plugin.json +++ b/plugins/code-index/.claude-plugin/plugin.json @@ -1,8 +1,8 @@ { "name": "code-index", "description": "Local stdio MCP that gives Claude Code semantic search over C# codebases. Spawns CodeIndex.Server.dll under the user's .NET 10 runtime; embeddings are computed locally via Ollama (qwen3-embedding:4b). Four tools: code_search, code_get_chunk, code_index_status, code_reindex.", - "version": "0.2.3", - "serverVersion": "0.2.1", + "version": "0.2.4", + "serverVersion": "0.2.2", "author": { "name": "StaticBit", "url": "https://github.com/StaticBit-io" diff --git a/plugins/code-index/CHANGELOG.md b/plugins/code-index/CHANGELOG.md index 8cbdf4a..732f573 100644 --- a/plugins/code-index/CHANGELOG.md +++ b/plugins/code-index/CHANGELOG.md @@ -2,6 +2,33 @@ All notable changes to this plugin are listed here. Newest at the top. +## v0.2.4 — 2026-08-03 + +Ships server **v0.2.2**. + +### Changes +- **`code_search` returns far less per call.** Two A/B measurements found this tool costing *more* + tokens than plain `Grep` — most recently +25.7% on a clean index while making 26% *fewer* tool + calls. The mechanism was isolated rather than guessed at: `code_search` averaged 9,086 tokens per + call against `Grep`'s 5,348. It finds things in fewer searches and then loses on what each search + returns. + - Excerpts are capped at **5 lines** per hit, down from 15. An excerpt's job is to let a caller + judge relevance, not to stand in for the declaration — every hit already carries `signature` + and `doc` as separate fields, and `code_get_chunk` exists for the body. Short chunks are + unaffected: a one-line property still returns one line, never a padded five. + - The default `limit` is **5**, down from 10. Search depth inside each branch before + Reciprocal-Rank-Fusion is unchanged (it is bounded below by an independent floor of 50), so + this changes how many hits are returned, not how well they are ranked. + - Measured on eight representative queries: the default response fell from 11,421 to 5,187 + characters, **−54.6%**. Roughly a third of that came from the shorter excerpt and the rest from + the lower default. + - Both tool descriptions now say excerpts are short and that following up with `code_get_chunk` + is the expected common case rather than a rare fallback. + - No recall or quality test moved. The golden-query suite passes `limit` explicitly (3 or 5), so + it never depended on the default. +- Whether this is enough to make the tool cheaper than `Grep` has **not** been re-measured yet. The + published benchmark numbers were taken on the old defaults and should be read as historical. + ## v0.2.3 — 2026-08-02 Ships server **v0.2.1** (`serverVersion` moves from 0.2.0). The launcher will fetch and verify the diff --git a/plugins/code-index/README.md b/plugins/code-index/README.md index f15a526..8bde246 100644 --- a/plugins/code-index/README.md +++ b/plugins/code-index/README.md @@ -203,11 +203,11 @@ it locally: You'll see progress on stderr the first time a version downloads: ```text -[code-index] Server v0.2.1 not found in local cache — downloading from GitHub Releases (~14 MB, one-time)... +[code-index] Server v0.2.2 not found in local cache — downloading from GitHub Releases (~14 MB, one-time)... [code-index] Downloaded 14.1 MB / 14.1 MB (100%) [code-index] Verifying checksum... [code-index] Checksum OK — extracting... -[code-index] Server v0.2.1 installed at C:\Users\you\.code-index-mcp\server\0.2.1\ +[code-index] Server v0.2.2 installed at C:\Users\you\.code-index-mcp\server\0.2.2\ ``` After that, every subsequent launch (any project, any session) reuses the cached install with no @@ -223,22 +223,22 @@ This is a development escape hatch, not something to set for normal use. **No network reachable, nothing cached yet:** ```text -[code-index] Server v0.2.1 is not installed yet, and GitHub could not be reached to download it. +[code-index] Server v0.2.2 is not installed yet, and GitHub could not be reached to download it. [code-index] Network error: [code-index] Check your internet connection and try again. If you are offline, download the release [code-index] manually and extract it into the folder below: - https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz + https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz - C:\Users\you\.code-index-mcp\server\0.2.1\ + C:\Users\you\.code-index-mcp\server\0.2.2\ [code-index] Then ask your question again — the launcher will find it there and skip the download. ``` **Checksum mismatch (corrupted download or compromised asset) — never run:** ```text -[code-index] Downloaded server v0.2.1 but its checksum does not match — refusing to run it. +[code-index] Downloaded server v0.2.2 but its checksum does not match — refusing to run it. [code-index] expected: <64-char sha256> [code-index] actual: <64-char sha256> @@ -250,19 +250,19 @@ This is a development escape hatch, not something to set for normal use. **Release asset not published for this plugin version:** ```text -[code-index] No GitHub release found for server v0.2.1 (tag server-v0.2.1). +[code-index] No GitHub release found for server v0.2.2 (tag server-v0.2.2). [code-index] This plugin build expects a matching server release that is not published — check [code-index] https://github.com/StaticBit-io/code-index-mcp/releases [code-index] for available versions, or download it manually once published: - https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz + https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz ``` **Private repository, no credentials available** (this repository is private today; the same code path works unchanged, with no token needed, if it ever becomes public): ```text -[code-index] GitHub returned 401 while requesting the server v0.2.1 release. +[code-index] GitHub returned 401 while requesting the server v0.2.2 release. [code-index] This repository is private and needs authentication to download release assets. [code-index] Provide a token with 'repo' scope one of these ways: @@ -271,9 +271,9 @@ path works unchanged, with no token needed, if it ever becomes public): [code-index] Or download the asset manually with your browser and extract it into: - C:\Users\you\.code-index-mcp\server\0.2.1\ + C:\Users\you\.code-index-mcp\server\0.2.2\ - https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz + https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz ``` ### Concurrent installs diff --git a/plugins/code-index/README.ru.md b/plugins/code-index/README.ru.md index 76817bc..717ec73 100644 --- a/plugins/code-index/README.ru.md +++ b/plugins/code-index/README.ru.md @@ -206,11 +206,11 @@ endpoint или модель Ollama без правки файла. При первой загрузке новой версии в stderr виден прогресс: ```text -[code-index] Server v0.2.1 not found in local cache — downloading from GitHub Releases (~14 MB, one-time)... +[code-index] Server v0.2.2 not found in local cache — downloading from GitHub Releases (~14 MB, one-time)... [code-index] Downloaded 14.1 MB / 14.1 MB (100%) [code-index] Verifying checksum... [code-index] Checksum OK — extracting... -[code-index] Server v0.2.1 installed at C:\Users\you\.code-index-mcp\server\0.2.1\ +[code-index] Server v0.2.2 installed at C:\Users\you\.code-index-mcp\server\0.2.2\ ``` После этого каждый следующий запуск (любой проект, любая сессия) использует закэшированную @@ -226,15 +226,15 @@ endpoint или модель Ollama без правки файла. **Сеть недоступна, в кэше ещё ничего нет:** ```text -[code-index] Server v0.2.1 is not installed yet, and GitHub could not be reached to download it. +[code-index] Server v0.2.2 is not installed yet, and GitHub could not be reached to download it. [code-index] Network error: [code-index] Check your internet connection and try again. If you are offline, download the release [code-index] manually and extract it into the folder below: - https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz + https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz - C:\Users\you\.code-index-mcp\server\0.2.1\ + C:\Users\you\.code-index-mcp\server\0.2.2\ [code-index] Then ask your question again — the launcher will find it there and skip the download. ``` @@ -242,7 +242,7 @@ endpoint или модель Ollama без правки файла. **Несовпадение контрольной суммы (повреждённая загрузка или скомпрометированный ассет) — сервер не запускается ни при каких условиях:** ```text -[code-index] Downloaded server v0.2.1 but its checksum does not match — refusing to run it. +[code-index] Downloaded server v0.2.2 but its checksum does not match — refusing to run it. [code-index] expected: <64-char sha256> [code-index] actual: <64-char sha256> @@ -254,19 +254,19 @@ endpoint или модель Ollama без правки файла. **Релиз для этой версии плагина не опубликован:** ```text -[code-index] No GitHub release found for server v0.2.1 (tag server-v0.2.1). +[code-index] No GitHub release found for server v0.2.2 (tag server-v0.2.2). [code-index] This plugin build expects a matching server release that is not published — check [code-index] https://github.com/StaticBit-io/code-index-mcp/releases [code-index] for available versions, or download it manually once published: - https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz + https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz ``` **Приватный репозиторий, нет доступных учётных данных** (сегодня репозиторий приватный; тот же код без изменений сработает и без токена, если репозиторий когда-нибудь станет публичным): ```text -[code-index] GitHub returned 401 while requesting the server v0.2.1 release. +[code-index] GitHub returned 401 while requesting the server v0.2.2 release. [code-index] This repository is private and needs authentication to download release assets. [code-index] Provide a token with 'repo' scope one of these ways: @@ -275,9 +275,9 @@ endpoint или модель Ollama без правки файла. [code-index] Or download the asset manually with your browser and extract it into: - C:\Users\you\.code-index-mcp\server\0.2.1\ + C:\Users\you\.code-index-mcp\server\0.2.2\ - https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz + https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz ``` Сами сообщения лаунчер печатает на английском (это вывод инструмента, не документация) — здесь diff --git a/plugins/code-index/bin/server.sha256 b/plugins/code-index/bin/server.sha256 index 92d6fbc..8d66715 100644 --- a/plugins/code-index/bin/server.sha256 +++ b/plugins/code-index/bin/server.sha256 @@ -1 +1 @@ -480eddc8b0ad89163ee6403b2b408d8821edf3a586f1e34805bdd2f57b87b065 code-index-server-0.2.1.tar.gz +0000000000000000000000000000000000000000000000000000000000000000 code-index-server-0.2.2.tar.gz From 0b6a15243a6645b265b65970b269fd74c9533853 Mon Sep 17 00:00:00 2001 From: Aleksandr Platonenkov Date: Mon, 3 Aug 2026 16:59:32 -0300 Subject: [PATCH 2/2] chore(plugin): record the checksum for server v0.2.2 --- plugins/code-index/bin/server.sha256 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/code-index/bin/server.sha256 b/plugins/code-index/bin/server.sha256 index 8d66715..1baf324 100644 --- a/plugins/code-index/bin/server.sha256 +++ b/plugins/code-index/bin/server.sha256 @@ -1 +1 @@ -0000000000000000000000000000000000000000000000000000000000000000 code-index-server-0.2.2.tar.gz +40deb431d220aeffa1da92a760e1997c7474bea394dad9ba775b29794512e56f code-index-server-0.2.2.tar.gz