Skip to content

Commit 70d5d88

Browse files
devwhodevsclaude
andcommitted
docs: rewrite README, add CHANGELOG, CONTRIBUTING, examples
- README rewritten as landing page: value prop, architecture, examples, comparison table, roadmap - Added CHANGELOG.md with full release history - Added CONTRIBUTING.md - Added examples/claude-code-setup.md for MCP integration - Removed internal planning docs from tracking (live in vault) - Updated Cargo.toml with repository, keywords, categories - Updated repo description and topics on GitHub Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 2bfdf80 commit 70d5d88

12 files changed

Lines changed: 397 additions & 4550 deletions

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,11 @@
33
*.swo
44
.DS_Store
55
.worktrees/
6+
7+
# Internal planning docs (live in Obsidian vault, not in repo)
8+
docs/specs/
9+
docs/superpowers/
10+
11+
# Positioning and visual asset TODOs (not part of the distributed package)
12+
PROJECT_POSITIONING.md
13+
VISUAL_ASSETS_TODO.md

CHANGELOG.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Changelog
2+
3+
## [0.7.0] - 2026-03-25
4+
5+
### Added
6+
- **File watcher**`engraph serve` now watches the vault for changes and re-indexes automatically (2s debounce)
7+
- **Placement correction learning** — detects when users move notes from suggested folders, updates centroids
8+
- **Fuzzy link matching** — sliding window Levenshtein matching (0.92 threshold) during note creation
9+
- **First-name matching** — matches "Steve" to `[[Steve Barbera]]` for People folder notes (suggestion-only)
10+
- `created_by` column and filter — track note origin, filter with `engraph context list --created-by`
11+
- `placement_corrections` table for observability
12+
- `link_skiplist` table schema (reserved for future use)
13+
14+
### Changed
15+
- Centroid updates use true online mean (was EMA 0.9/0.1)
16+
- Indexer refactored: `index_file`, `remove_file`, `rename_file` extracted as public functions
17+
- Bulk indexing uses batched transactions for performance
18+
- `run_index_shared` variant accepts external store/embedder references
19+
20+
### Fixed
21+
- Content hash consistency between `diff_vault` and `index_file` (BOM handling)
22+
23+
## [0.6.0] - 2026-03-25
24+
25+
### Added
26+
- **Write pipeline** — create, append, update_metadata, move, archive, unarchive notes
27+
- **sqlite-vec** replaces HNSW for vector search (single SQLite database)
28+
- **Tag registry** with fuzzy Levenshtein resolution
29+
- **Link discovery** — exact basename and alias matching during note creation
30+
- **Folder placement** — type rules, semantic centroids, inbox fallback
31+
- **Archive/unarchive** — soft delete with metadata preservation
32+
- 6 new MCP write tools (13 total)
33+
34+
### Changed
35+
- All vectors stored in SQLite vec0 virtual table (was HNSW + separate files)
36+
- Atomic writes via temp file + rename for crash safety
37+
- Mtime-based conflict detection for concurrent edits
38+
39+
## [0.5.0] - 2026-03-24
40+
41+
### Added
42+
- **MCP server**`engraph serve` starts stdio MCP server via rmcp SDK
43+
- 7 read-only MCP tools: search, read, list, vault_map, who, project, context
44+
45+
## [0.4.0] - 2026-03-24
46+
47+
### Added
48+
- **Context engine** — 6 functions: read, list, vault_map, who, project, topic
49+
- Token-budgeted context bundles for AI agents
50+
- Person and project context assembly from graph + search
51+
52+
## [0.3.0] - 2026-03-24
53+
54+
### Added
55+
- **Vault graph** — bidirectional wikilink + mention edges built during indexing
56+
- **Graph search agent** — 3rd RRF lane with 1-2 hop expansion
57+
- People detection from configured People folder
58+
59+
## [0.2.0] - 2026-03-24
60+
61+
### Added
62+
- **Hybrid search** — semantic (embeddings) + keyword (FTS5 BM25) fused via RRF
63+
- Smart chunking with break-point scoring algorithm
64+
- Docid system (6-char hex file IDs)
65+
- Vault profiles with auto-detection (`engraph init`)
66+
- Pluggable model layer (`ModelBackend` trait)
67+
- `--explain` flag for per-lane score breakdown
68+
69+
## [0.1.0] - 2026-03-19
70+
71+
### Added
72+
- Initial release
73+
- ONNX embedding model (all-MiniLM-L6-v2, 384-dim)
74+
- SQLite metadata storage
75+
- Incremental indexing
76+
- `.gitignore`-aware vault walking

CONTRIBUTING.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Contributing to engraph
2+
3+
Thanks for your interest in contributing to engraph.
4+
5+
## Getting started
6+
7+
```bash
8+
git clone https://github.com/devwhodevs/engraph
9+
cd engraph
10+
cargo test --lib # 225 tests, no network required
11+
```
12+
13+
## Before you start
14+
15+
**Open an issue first.** For anything beyond a typo fix, please open an issue to discuss what you'd like to change. This avoids wasted effort if the change doesn't fit the project direction.
16+
17+
## Development workflow
18+
19+
1. Fork the repo and create a branch from `main`
20+
2. Write tests for any new functionality
21+
3. Run the full check suite:
22+
```bash
23+
cargo fmt --check
24+
cargo clippy -- -D warnings
25+
cargo test --lib
26+
```
27+
4. Open a pull request with a clear description of what and why
28+
29+
## Architecture
30+
31+
The codebase is 20 Rust modules behind a lib crate. See `CLAUDE.md` for detailed architecture documentation — it's designed for AI-assisted development but serves as a thorough codebase guide for human contributors too.
32+
33+
Key modules:
34+
- `store.rs` — SQLite persistence (all tables, queries, migrations)
35+
- `indexer.rs` — vault walking, chunking, embedding, index updates
36+
- `serve.rs` — MCP server with 13 tools
37+
- `watcher.rs` — file change detection and real-time re-indexing
38+
- `search.rs` — 3-lane hybrid search orchestration
39+
40+
## What makes a good contribution
41+
42+
- Bug fixes with tests
43+
- Performance improvements with benchmarks
44+
- New MCP tools that expose existing functionality
45+
- Documentation improvements
46+
- Platform support (Windows, other architectures)
47+
48+
## Code style
49+
50+
- Run `cargo fmt` before committing
51+
- No clippy warnings (`cargo clippy -- -D warnings`)
52+
- Prefer small, focused PRs over large changes
53+
- Tests are expected for new functionality

Cargo.toml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22
name = "engraph"
33
version = "0.7.0"
44
edition = "2024"
5-
description = "Local semantic search for Obsidian vaults"
5+
description = "Local knowledge graph for AI agents. Hybrid search + MCP server for Obsidian vaults."
66
license = "MIT"
7+
repository = "https://github.com/devwhodevs/engraph"
8+
homepage = "https://github.com/devwhodevs/engraph"
9+
readme = "README.md"
10+
keywords = ["obsidian", "semantic-search", "mcp", "rag", "knowledge-graph"]
11+
categories = ["command-line-utilities", "database", "text-processing"]
712

813
[dependencies]
914
clap = { version = "4", features = ["derive"] }

0 commit comments

Comments
 (0)