You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Copy file name to clipboardExpand all lines: site/src/pages/changelog.md
+34Lines changed: 34 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,40 @@ description: Graph Memory release history and version changes.
5
5
6
6
# Changelog
7
7
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 }`
0 commit comments