Skip to content

Commit 2151461

Browse files
committed
Bump version to 1.4.0, add changelog
Search quality improvements: code-optimized model, full body embeddings, edge-specific BFS decay, hybrid file search, path normalization, embedding API model selection, graph data versioning.
1 parent ed455d9 commit 2151461

3 files changed

Lines changed: 37 additions & 3 deletions

File tree

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@graphmemory/server",
3-
"version": "1.3.4",
3+
"version": "1.4.0",
44
"description": "MCP server for semantic graph memory from markdown files",
55
"main": "dist/cli/index.js",
66
"bin": {

site/src/pages/changelog.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,40 @@ description: Graph Memory release history and version changes.
55

66
# Changelog
77

8+
## v1.4.0
9+
10+
**Released: March 2026**
11+
12+
### Highlights
13+
14+
- **Code-Optimized Embedding Model** — code graph now defaults to `jinaai/jina-embeddings-v2-base-code` via new `codeModel` config field. Separate inheritance chain: `graphs.code.model → project.codeModel → server.codeModel → code defaults`.
15+
- **Full Body in Code Embeddings** — code symbols now embed `signature + docComment + body` (was signature + docComment only). Functions without JSDoc are now visible to semantic search.
16+
- **Edge-Specific BFS Decay** — code graph BFS uses per-edge-type decay: `contains` (0.95), `extends/implements` (0.85), `imports` (0.70). Reflects that class→method is a tighter relationship than a cross-file import.
17+
- **Hybrid File Search** — file-level searches (`search_files`, `search_topic_files`, `search_all_files`) now use BM25 + vector hybrid (was vector-only). Exact filename queries like "embedder.ts" now work reliably.
18+
- **Embedding API Model Selection**`POST /api/embed` accepts `model: "default" | "code"` to select which embedding model to use. Both models loaded at startup when `embeddingApi` is enabled.
19+
- **Graph Data Versioning** — persisted graphs now store `GRAPH_DATA_VERSION`. Version mismatch triggers automatic re-index (alongside existing embedding fingerprint check).
20+
21+
### Search Improvements
22+
23+
- BFS `queue.shift()` replaced with index pointer — O(1) dequeue instead of O(n) array shift
24+
- File paths normalized for embedding: `src/lib/search/code.ts``src lib search code ts` for better tokenization
25+
- `embedding.maxChars` default raised from 8000 to 24000, matching ~8k token model capacity
26+
27+
### Configuration
28+
29+
- New `codeModel` field at server/project/workspace levels with its own inheritance chain
30+
- New `embedding.remoteModel` field: `"default"` or `"code"` — auto-set to `"code"` for code graph with remote embedding
31+
- New `CODE_EDGE_DECAY` constants in defaults for per-edge-type BFS decay
32+
- `GRAPH_DATA_VERSION = 2` — bump when changing embedding content or stored format
33+
34+
### Breaking Changes
35+
36+
- Code graph default model changed from `Xenova/bge-m3` to `jinaai/jina-embeddings-v2-base-code` — existing code graphs will be automatically re-indexed on first startup
37+
- `embedding.maxChars` default changed from 8000 to 24000
38+
- Embedding API `embeddingApiModelName` option replaced with `embeddingApiModelNames: { default, code }`
39+
40+
---
41+
842
## v1.3.4
943

1044
**Released: March 2026**

0 commit comments

Comments
 (0)