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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,17 @@
1
1
# Changelog
2
2
3
+
## v1.5.5 — Housekeeping (2026-04-10)
4
+
5
+
### Added
6
+
-**`auto_link` parameter** on `create` — set to `false` to skip automatic wikilink resolution. Applies to MCP, HTTP, and CLI. Discovered links still appear as suggestions in the response.
7
+
-**`reindex_file` MCP tool + HTTP endpoint** — re-indexes a single file after external edits. Reads from disk, re-embeds chunks, rebuilds edges. Available as MCP tool, `POST /api/reindex-file`, and OpenAPI operation.
8
+
9
+
### Changed
10
+
-**rmcp** bumped from 1.2.0 to 1.4.0 — host validation, non-Send handler support, transport fixes. Does not yet fix [#20](https://github.com/devwhodevs/engraph/issues/20) (protocol `2025-11-25` needed for Claude Desktop Cowork/Code modes — blocked upstream on [modelcontextprotocol/rust-sdk#800](https://github.com/modelcontextprotocol/rust-sdk/issues/800)).
Copy file name to clipboardExpand all lines: README.md
+7-4Lines changed: 7 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -268,7 +268,7 @@ Returns orphan notes (no links in or out), broken wikilinks, stale notes, and ta
268
268
269
269
`engraph serve --http` adds a full REST API alongside the MCP server, exposing the same capabilities over HTTP for web agents, scripts, and integrations.
270
270
271
-
**23 endpoints:**
271
+
**24 endpoints:**
272
272
273
273
| Method | Endpoint | Permission | Description |
274
274
|--------|----------|------------|-------------|
@@ -292,6 +292,7 @@ Returns orphan notes (no links in or out), broken wikilinks, stale notes, and ta
292
292
| POST |`/api/unarchive`| write | Restore archived note |
293
293
| POST |`/api/update-metadata`| write | Update note metadata |
294
294
| POST |`/api/delete`| write | Delete note (soft or hard) |
295
+
| POST |`/api/reindex-file`| write | Re-index a single file after external edits |
295
296
| POST |`/api/migrate/preview`| write | Preview PARA migration (classify + suggest moves) |
296
297
| POST |`/api/migrate/apply`| write | Apply PARA migration (move files) |
297
298
| POST |`/api/migrate/undo`| write | Undo last PARA migration |
@@ -542,8 +543,8 @@ engraph is not a replacement for Obsidian — it's the intelligence layer that s
542
543
- LLM research orchestrator: query intent classification + query expansion + adaptive lane weights
543
544
- llama.cpp inference via Rust bindings (GGUF models, Metal GPU on macOS, CUDA on Linux)
544
545
- Intelligence opt-in: heuristic fallback when disabled, LLM-powered when enabled
545
-
- MCP server with 22 tools (8 read, 10 write, 1 diagnostic, 3 migrate) via stdio
546
-
- HTTP REST API with 23 endpoints, API key auth (`eg_` prefix), rate limiting, CORS — enabled via `engraph serve --http`
546
+
- MCP server with 23 tools (8 read, 10 write, 1 index, 1 diagnostic, 3 migrate) via stdio
547
+
- HTTP REST API with 24 endpoints, API key auth (`eg_` prefix), rate limiting, CORS — enabled via `engraph serve --http`
547
548
- Section-level reading and editing: target specific headings with replace/prepend/append modes
548
549
- Full note rewriting with automatic frontmatter preservation
549
550
- Granular frontmatter mutations: set/remove fields, add/remove tags and aliases
@@ -572,7 +573,9 @@ engraph is not a replacement for Obsidian — it's the intelligence layer that s
572
573
-[x]~~HTTP/REST API — complement MCP with a standard web API~~ (v1.3)
573
574
-[x]~~PARA migration — AI-assisted vault restructuring with preview/apply/undo~~ (v1.4)
description = "Re-index a single file after external edits. Reads the file from disk, re-embeds its chunks, and updates the search index. Use when a file was modified outside engraph and you need the index to reflect current content."
835
+
)]
836
+
asyncfnreindex_file(
837
+
&self,
838
+
params:Parameters<ReindexFileParams>,
839
+
) -> Result<CallToolResult,McpError>{
840
+
let store = self.store.lock().await;
841
+
letmut embedder = self.embedder.lock().await;
842
+
let rel_path = params.0.file;
843
+
let full_path = self.vault_path.join(&rel_path);
844
+
845
+
// Read file content from disk
846
+
let content = std::fs::read_to_string(&full_path).map_err(|e| {
847
+
McpError::new(
848
+
rmcp::model::ErrorCode::INVALID_PARAMS,
849
+
format!("Cannot read file {rel_path}: {e}"),
850
+
None::<serde_json::Value>,
851
+
)
852
+
})?;
853
+
854
+
let content_hash = {
855
+
use sha2::{Digest,Sha256};
856
+
letmut hasher = Sha256::new();
857
+
hasher.update(content.as_bytes());
858
+
format!("{:x}", hasher.finalize())
859
+
};
860
+
861
+
let config = crate::config::Config::load().unwrap_or_default();
862
+
863
+
// Re-index the file (handles cleanup of old entries automatically)
0 commit comments