diff --git a/Cargo.lock b/Cargo.lock index 7db761a..984a9b9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1759,7 +1759,7 @@ dependencies = [ [[package]] name = "neuromesh-api" -version = "1.2.0" +version = "1.3.0" dependencies = [ "chrono", "futures-util", @@ -1787,7 +1787,7 @@ dependencies = [ [[package]] name = "neuromesh-cache" -version = "1.2.0" +version = "1.3.0" dependencies = [ "chrono", "neuromesh-core", @@ -1800,7 +1800,7 @@ dependencies = [ [[package]] name = "neuromesh-cli" -version = "1.2.0" +version = "1.3.0" dependencies = [ "chrono", "dirs", @@ -1830,7 +1830,7 @@ dependencies = [ [[package]] name = "neuromesh-context" -version = "1.2.0" +version = "1.3.0" dependencies = [ "blake3", "chrono", @@ -1849,7 +1849,7 @@ dependencies = [ [[package]] name = "neuromesh-core" -version = "1.2.0" +version = "1.3.0" dependencies = [ "chrono", "dirs", @@ -1863,7 +1863,7 @@ dependencies = [ [[package]] name = "neuromesh-embed" -version = "1.2.0" +version = "1.3.0" dependencies = [ "dirs", "fastembed", @@ -1878,7 +1878,7 @@ dependencies = [ [[package]] name = "neuromesh-graph" -version = "1.2.0" +version = "1.3.0" dependencies = [ "bincode", "chrono", @@ -1900,7 +1900,7 @@ dependencies = [ [[package]] name = "neuromesh-graph-proxy" -version = "1.2.0" +version = "1.3.0" dependencies = [ "dirs", "neuromesh-core", @@ -1914,7 +1914,7 @@ dependencies = [ [[package]] name = "neuromesh-index" -version = "1.2.0" +version = "1.3.0" dependencies = [ "blake3", "chrono", @@ -1931,7 +1931,7 @@ dependencies = [ [[package]] name = "neuromesh-local-ai" -version = "1.2.0" +version = "1.3.0" dependencies = [ "neuromesh-core", "parking_lot", @@ -1942,7 +1942,7 @@ dependencies = [ [[package]] name = "neuromesh-mcp" -version = "1.2.0" +version = "1.3.0" dependencies = [ "chrono", "neuromesh-cache", @@ -1967,7 +1967,7 @@ dependencies = [ [[package]] name = "neuromesh-memory" -version = "1.2.0" +version = "1.3.0" dependencies = [ "chrono", "dirs", @@ -1981,7 +1981,7 @@ dependencies = [ [[package]] name = "neuromesh-observability" -version = "1.2.0" +version = "1.3.0" dependencies = [ "chrono", "dirs", @@ -1996,7 +1996,7 @@ dependencies = [ [[package]] name = "neuromesh-parser" -version = "1.2.0" +version = "1.3.0" dependencies = [ "neuromesh-core", "neuromesh-index", @@ -2027,7 +2027,7 @@ dependencies = [ [[package]] name = "neuromesh-provider" -version = "1.2.0" +version = "1.3.0" dependencies = [ "futures-util", "neuromesh-core", @@ -2040,7 +2040,7 @@ dependencies = [ [[package]] name = "neuromesh-router" -version = "1.2.0" +version = "1.3.0" dependencies = [ "neuromesh-context", "neuromesh-core", @@ -2053,7 +2053,7 @@ dependencies = [ [[package]] name = "neuromesh-task" -version = "1.2.0" +version = "1.3.0" dependencies = [ "neuromesh-core", "neuromesh-parser", diff --git a/Cargo.toml b/Cargo.toml index d225b22..a454700 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ members = [ exclude = ["tests/fixtures/mini-axum"] [workspace.package] -version = "1.2.0" +version = "1.3.0" edition = "2021" rust-version = "1.80" authors = ["NeuroMesh Team "] diff --git a/crates/neuromesh-mcp/src/protocol.rs b/crates/neuromesh-mcp/src/protocol.rs index 10d0535..19e1d66 100644 --- a/crates/neuromesh-mcp/src/protocol.rs +++ b/crates/neuromesh-mcp/src/protocol.rs @@ -114,7 +114,7 @@ pub fn canonical_tool_name(name: &str) -> String { } pub fn initialize_instructions() -> &'static str { - "NeuroMesh MCP v1.2.0 (code-context-engine) — agent loop: (1) get_context_packet with the user task as written (default engine: fast — graph + query-side lexical expansion; prompt only; no client keywords; opt in to hybrid/deep for MiniLM embed-primary); for a pasted issue or bug report the response also lists where_to_look — the files to open next, best first; (2) if coverage is partial/no_seed_resolved/no_confident_match, neuromesh_search_symbols or neuromesh_expand_gap; (3) neuromesh_expand_fold only when you need a folded body; (4) neuromesh_trace / neuromesh_get_dependencies for callers and blast radius; (5) after a successful edit, neuromesh_record_feedback with touched nodes. Check retrieval.resolution_tier and retrieval.cache_hit. Prefer these tools over reading whole files. neuromesh_get_context is deprecated — use get_context_packet." + "NeuroMesh MCP v1.3.0 (code-context-engine) — agent loop: (1) get_context_packet with the user task as written (default engine: fast — graph + query-side lexical expansion; prompt only; no client keywords; opt in to hybrid/deep for MiniLM embed-primary); for a pasted issue or bug report the response also lists where_to_look (files to open next, best first) and functions_to_look (path:Class.method with line range); (2) if coverage is partial/no_seed_resolved/no_confident_match, neuromesh_search_symbols or neuromesh_expand_gap; (3) neuromesh_expand_fold only when you need a folded body; (4) neuromesh_trace / neuromesh_get_dependencies for callers and blast radius; (5) after a successful edit, neuromesh_record_feedback with touched nodes. Check retrieval.resolution_tier and retrieval.cache_hit. Prefer these tools over reading whole files. neuromesh_get_context is deprecated — use get_context_packet." } pub fn tool_success(id: Option, val: &Value) -> Value { diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 8422642..2643c2c 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,6 +2,36 @@ All notable user-facing changes live here. The README stays a product guide, not a version diary. +## 1.3.0 — 2026-10-09 + +### Bug reports and issues + +- **Files a report names vote** — traceback frames (deepest first) and paths or unique file names in + the text join `where_to_look`. SWE-bench dev (225): Acc@1 0.249 → 0.298. +- **Functions to look at** — a pasted report also gets `functions_to_look` (five, + `path:Class.method Lx-Ly`): the definition ranking fused with the file ranking, classes left out + (their methods are listed instead). SWE-bench dev, function level Acc@1/5/10 0.137/0.268/0.337 → + 0.175/0.323/0.402. `packet --json` has the same list as `definitions`. +- File level on SWE-bench dev with everything since 1.2.0: Acc@1/3/5/10 0.249/0.484/0.600/0.680 → + 0.308/0.527/0.621/0.692. + +### Plain-language questions + +- The localisation list of a short question fuses the packet order with the whole-question ranking + (hub files no longer come first): R@3 ripgrep 0.208 → 0.500, click 0.750 → 0.917, cobra 0.792 → + 0.875; a fresh holdout (axios) unchanged at 0.833 (BM25 0.583). + +### Fixes + +- The MCP server exits when the client closes stdin (it stayed alive as an orphan process). +- No dashboard tab is opened for a workspace the server will not index (it showed an empty graph). + +### Measured + +- SWE-bench Verified (500, 1.2.0 engine, run once): Acc@1/3/5/10 0.405/0.669/0.732/0.804 vs plain + BM25 0.216/0.391/0.490/0.641. Ablation table and two new plain-language holdouts (cobra, axios) in + `docs/measured.md` and `docs/research/contributions-log.md`. + ## 1.2.0 — 2026-10-09 ### Bug reports and issues