From b1cfd296f0f58ac2924d6918a61925630082b17d Mon Sep 17 00:00:00 2001 From: tanglearncode Date: Sun, 9 Aug 2026 12:14:53 +0800 Subject: [PATCH] Release v0.3.3 Bump the marketplace-stream hosts -- Claude Code, Codex, Kimi Code, and Copilot -- to 0.3.3, along with the shared MCP client's default clientInfo version. pi versions independently and is untouched. This release carries automatic routing: get_context takes the request, scores it against routing documents built from the stored contexts, and narrows the menu instead of listing everything. A near-tie becomes a question, a refusal outlives the session and fades, and what you use and where you already are both count toward the score. Saving now generates the questions and names a context should be found by, and carries them in the bundle. Co-Authored-By: Claude Opus 5 --- .claude-plugin/marketplace.json | 2 +- .github/plugin/marketplace.json | 4 ++-- .../plugins/neatcontext/.codex-plugin/plugin.json | 2 +- .../plugins/neatcontext/src/codex/mcp-bridge.mjs | 2 +- .../plugins/neatcontext/src/core/mcp-stdio-client.mjs | 2 +- kimi.plugin.json | 2 +- package.json | 2 +- plugins/claude-code/neatcontext/.claude-plugin/plugin.json | 2 +- plugins/claude-code/neatcontext/src/claude/mcp-bridge.mjs | 2 +- plugins/claude-code/neatcontext/src/core/mcp-stdio-client.mjs | 2 +- plugins/copilot/neatcontext/.github/plugin/plugin.json | 2 +- plugins/copilot/neatcontext/src/copilot/mcp-bridge.mjs | 2 +- plugins/copilot/neatcontext/src/core/mcp-stdio-client.mjs | 2 +- plugins/kimi-code/neatcontext/kimi.plugin.json | 2 +- plugins/kimi-code/neatcontext/src/core/mcp-stdio-client.mjs | 2 +- plugins/kimi-code/neatcontext/src/kimi/mcp-bridge.mjs | 2 +- plugins/pi/neatcontext/src/core/mcp-stdio-client.mjs | 2 +- shared/core/mcp-stdio-client.mjs | 2 +- 18 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 4b9713a..488435d 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -12,7 +12,7 @@ "source": "git-subdir", "url": "https://github.com/XTSoftwareLabs/neatcontext-plugins.git", "path": "plugins/claude-code/neatcontext", - "ref": "v0.3.2" + "ref": "v0.3.3" }, "description": "Save Claude Code work as reusable, domain-aware context", "author": { diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json index 67695ef..8dc0a1f 100644 --- a/.github/plugin/marketplace.json +++ b/.github/plugin/marketplace.json @@ -5,13 +5,13 @@ }, "metadata": { "description": "Save GitHub Copilot work as reusable, domain-aware context", - "version": "0.3.2" + "version": "0.3.3" }, "plugins": [ { "name": "neatcontext", "description": "Save GitHub Copilot work as reusable, domain-aware context", - "version": "0.3.2", + "version": "0.3.3", "source": "./plugins/copilot/neatcontext" } ] diff --git a/codex-marketplace/plugins/neatcontext/.codex-plugin/plugin.json b/codex-marketplace/plugins/neatcontext/.codex-plugin/plugin.json index 202cf93..72558cf 100644 --- a/codex-marketplace/plugins/neatcontext/.codex-plugin/plugin.json +++ b/codex-marketplace/plugins/neatcontext/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "neatcontext", - "version": "0.3.2", + "version": "0.3.3", "description": "Save Codex work as reusable, domain-aware context", "author": { "name": "XTSoftwareLabs", diff --git a/codex-marketplace/plugins/neatcontext/src/codex/mcp-bridge.mjs b/codex-marketplace/plugins/neatcontext/src/codex/mcp-bridge.mjs index 04f5cc6..4e23637 100644 --- a/codex-marketplace/plugins/neatcontext/src/codex/mcp-bridge.mjs +++ b/codex-marketplace/plugins/neatcontext/src/codex/mcp-bridge.mjs @@ -41,7 +41,7 @@ import { import { assess, createRoutingIndex } from "../core/routing-candidates.mjs"; import { applySelection, resolveContext } from "../core/selection.mjs"; -const SERVER_INFO = { name: "neatcontext", version: "0.3.2" }; +const SERVER_INFO = { name: "neatcontext", version: "0.3.3" }; const GET_CONTEXT_TOOL = { name: "get_context", title: "Get Context", diff --git a/codex-marketplace/plugins/neatcontext/src/core/mcp-stdio-client.mjs b/codex-marketplace/plugins/neatcontext/src/core/mcp-stdio-client.mjs index d0733ab..d22be0b 100644 --- a/codex-marketplace/plugins/neatcontext/src/core/mcp-stdio-client.mjs +++ b/codex-marketplace/plugins/neatcontext/src/core/mcp-stdio-client.mjs @@ -32,7 +32,7 @@ export function createStdioMcpClient({ cwd = null, env = {}, timeoutMs = DEFAULT_TIMEOUT_MS, - clientInfo = { name: "neatcontext", version: "0.3.2" }, + clientInfo = { name: "neatcontext", version: "0.3.3" }, // Injectable so the tests can produce the failures a real child process // only produces by accident: a pipe that is already gone when we write to it. spawnProcess = spawn diff --git a/kimi.plugin.json b/kimi.plugin.json index f6ada1a..45eb45e 100644 --- a/kimi.plugin.json +++ b/kimi.plugin.json @@ -1,6 +1,6 @@ { "name": "neatcontext", - "version": "0.3.2", + "version": "0.3.3", "description": "Save Kimi Code work as reusable, domain-aware context", "keywords": [ "neatcontext", diff --git a/package.json b/package.json index 1ed85f7..7994288 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "neatcontext-plugins", - "version": "0.3.2", + "version": "0.3.3", "description": "Host integrations that save AI coding work as reusable, domain-aware context.", "type": "module", "private": true, diff --git a/plugins/claude-code/neatcontext/.claude-plugin/plugin.json b/plugins/claude-code/neatcontext/.claude-plugin/plugin.json index 92ffd30..f25a58c 100644 --- a/plugins/claude-code/neatcontext/.claude-plugin/plugin.json +++ b/plugins/claude-code/neatcontext/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "neatcontext", "displayName": "NeatContext", - "version": "0.3.2", + "version": "0.3.3", "description": "Save Claude Code work as reusable, domain-aware context", "author": { "name": "XTSoftwareLabs", diff --git a/plugins/claude-code/neatcontext/src/claude/mcp-bridge.mjs b/plugins/claude-code/neatcontext/src/claude/mcp-bridge.mjs index c4f3bd4..6fad367 100644 --- a/plugins/claude-code/neatcontext/src/claude/mcp-bridge.mjs +++ b/plugins/claude-code/neatcontext/src/claude/mcp-bridge.mjs @@ -41,7 +41,7 @@ import { import { assess, createRoutingIndex } from "../core/routing-candidates.mjs"; import { applySelection, resolveContext } from "../core/selection.mjs"; -const SERVER_INFO = { name: "neatcontext", version: "0.3.2" }; +const SERVER_INFO = { name: "neatcontext", version: "0.3.3" }; const GET_CONTEXT_TOOL = { name: "get_context", title: "Get Context", diff --git a/plugins/claude-code/neatcontext/src/core/mcp-stdio-client.mjs b/plugins/claude-code/neatcontext/src/core/mcp-stdio-client.mjs index d0733ab..d22be0b 100644 --- a/plugins/claude-code/neatcontext/src/core/mcp-stdio-client.mjs +++ b/plugins/claude-code/neatcontext/src/core/mcp-stdio-client.mjs @@ -32,7 +32,7 @@ export function createStdioMcpClient({ cwd = null, env = {}, timeoutMs = DEFAULT_TIMEOUT_MS, - clientInfo = { name: "neatcontext", version: "0.3.2" }, + clientInfo = { name: "neatcontext", version: "0.3.3" }, // Injectable so the tests can produce the failures a real child process // only produces by accident: a pipe that is already gone when we write to it. spawnProcess = spawn diff --git a/plugins/copilot/neatcontext/.github/plugin/plugin.json b/plugins/copilot/neatcontext/.github/plugin/plugin.json index c7e27d5..6a7dce5 100644 --- a/plugins/copilot/neatcontext/.github/plugin/plugin.json +++ b/plugins/copilot/neatcontext/.github/plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "neatcontext", "displayName": "NeatContext", - "version": "0.3.2", + "version": "0.3.3", "description": "Save GitHub Copilot work as reusable, domain-aware context", "author": { "name": "XTSoftwareLabs", diff --git a/plugins/copilot/neatcontext/src/copilot/mcp-bridge.mjs b/plugins/copilot/neatcontext/src/copilot/mcp-bridge.mjs index b702631..bf332df 100644 --- a/plugins/copilot/neatcontext/src/copilot/mcp-bridge.mjs +++ b/plugins/copilot/neatcontext/src/copilot/mcp-bridge.mjs @@ -36,7 +36,7 @@ import { import { assess, createRoutingIndex } from "../core/routing-candidates.mjs"; import { applySelection, resolveContext } from "../core/selection.mjs"; -const SERVER_INFO = { name: "neatcontext", version: "0.3.2" }; +const SERVER_INFO = { name: "neatcontext", version: "0.3.3" }; const GET_CONTEXT_TOOL = { name: "get_context", title: "Get Context", diff --git a/plugins/copilot/neatcontext/src/core/mcp-stdio-client.mjs b/plugins/copilot/neatcontext/src/core/mcp-stdio-client.mjs index d0733ab..d22be0b 100644 --- a/plugins/copilot/neatcontext/src/core/mcp-stdio-client.mjs +++ b/plugins/copilot/neatcontext/src/core/mcp-stdio-client.mjs @@ -32,7 +32,7 @@ export function createStdioMcpClient({ cwd = null, env = {}, timeoutMs = DEFAULT_TIMEOUT_MS, - clientInfo = { name: "neatcontext", version: "0.3.2" }, + clientInfo = { name: "neatcontext", version: "0.3.3" }, // Injectable so the tests can produce the failures a real child process // only produces by accident: a pipe that is already gone when we write to it. spawnProcess = spawn diff --git a/plugins/kimi-code/neatcontext/kimi.plugin.json b/plugins/kimi-code/neatcontext/kimi.plugin.json index cf9c982..41d7e50 100644 --- a/plugins/kimi-code/neatcontext/kimi.plugin.json +++ b/plugins/kimi-code/neatcontext/kimi.plugin.json @@ -1,6 +1,6 @@ { "name": "neatcontext", - "version": "0.3.2", + "version": "0.3.3", "description": "Save Kimi Code work as reusable, domain-aware context", "keywords": [ "neatcontext", diff --git a/plugins/kimi-code/neatcontext/src/core/mcp-stdio-client.mjs b/plugins/kimi-code/neatcontext/src/core/mcp-stdio-client.mjs index d0733ab..d22be0b 100644 --- a/plugins/kimi-code/neatcontext/src/core/mcp-stdio-client.mjs +++ b/plugins/kimi-code/neatcontext/src/core/mcp-stdio-client.mjs @@ -32,7 +32,7 @@ export function createStdioMcpClient({ cwd = null, env = {}, timeoutMs = DEFAULT_TIMEOUT_MS, - clientInfo = { name: "neatcontext", version: "0.3.2" }, + clientInfo = { name: "neatcontext", version: "0.3.3" }, // Injectable so the tests can produce the failures a real child process // only produces by accident: a pipe that is already gone when we write to it. spawnProcess = spawn diff --git a/plugins/kimi-code/neatcontext/src/kimi/mcp-bridge.mjs b/plugins/kimi-code/neatcontext/src/kimi/mcp-bridge.mjs index 0b361db..45ec472 100644 --- a/plugins/kimi-code/neatcontext/src/kimi/mcp-bridge.mjs +++ b/plugins/kimi-code/neatcontext/src/kimi/mcp-bridge.mjs @@ -36,7 +36,7 @@ import { import { assess, createRoutingIndex } from "../core/routing-candidates.mjs"; import { applySelection, resolveContext } from "../core/selection.mjs"; -const SERVER_INFO = { name: "neatcontext", version: "0.3.2" }; +const SERVER_INFO = { name: "neatcontext", version: "0.3.3" }; const BIND_SESSION_TOOL = { name: "bind_session", title: "Bind Kimi Session", diff --git a/plugins/pi/neatcontext/src/core/mcp-stdio-client.mjs b/plugins/pi/neatcontext/src/core/mcp-stdio-client.mjs index d0733ab..d22be0b 100644 --- a/plugins/pi/neatcontext/src/core/mcp-stdio-client.mjs +++ b/plugins/pi/neatcontext/src/core/mcp-stdio-client.mjs @@ -32,7 +32,7 @@ export function createStdioMcpClient({ cwd = null, env = {}, timeoutMs = DEFAULT_TIMEOUT_MS, - clientInfo = { name: "neatcontext", version: "0.3.2" }, + clientInfo = { name: "neatcontext", version: "0.3.3" }, // Injectable so the tests can produce the failures a real child process // only produces by accident: a pipe that is already gone when we write to it. spawnProcess = spawn diff --git a/shared/core/mcp-stdio-client.mjs b/shared/core/mcp-stdio-client.mjs index d0733ab..d22be0b 100644 --- a/shared/core/mcp-stdio-client.mjs +++ b/shared/core/mcp-stdio-client.mjs @@ -32,7 +32,7 @@ export function createStdioMcpClient({ cwd = null, env = {}, timeoutMs = DEFAULT_TIMEOUT_MS, - clientInfo = { name: "neatcontext", version: "0.3.2" }, + clientInfo = { name: "neatcontext", version: "0.3.3" }, // Injectable so the tests can produce the failures a real child process // only produces by accident: a pipe that is already gone when we write to it. spawnProcess = spawn