Skip to content

Releases: ShmidtS/context-mode

v1.7.2 — local index directory fix

Choose a tag to compare

@ShmidtS ShmidtS released this 13 May 20:49
b1387c3

Bug Fixes

  • local-index: Ensure .context-mode/ parent directory is created before opening code-index.db. better-sqlite3 creates the file but not intermediate directories, causing ctx_local_index / ctx_local_search to fail with "Cannot open database because the directory does not exist" on first use.

Verification

  • Build passes (npm run build)
  • All 16 local-indexer + searcher tests pass
  • CLI local-index, local-search, local-repos verified end-to-end

context-mode v1.7.1 — Build fix

Choose a tag to compare

@ShmidtS ShmidtS released this 13 May 20:31
b2feb91

What's New in 1.7.1

Fix

  • esbuild externals — added onnxruntime-node to esbuild external dependencies list. Prevents build failures caused by esbuild attempting to bundle native .node bindings from onnxruntime-node.

1.7.0 Features (see full release notes)

  • Local code indexing with Merkle diff + hybrid search
  • Semantic chunking via tree-sitter + tiktoken fallback
  • FTS5 + vector hybrid search with ONNX/Ollama embeddings
  • CLI and MCP tools for local code indexing

Migration

No breaking changes. Install/update via:

npm install -g ShmidtS/context-mode

context-mode v1.7.0 — Local Code Indexing

Choose a tag to compare

@ShmidtS ShmidtS released this 13 May 20:12
932690f

What's New

Local Code Indexing (Merkle diff + hybrid search)

  • Merkle-style incremental indexing — SHA-256 + mtime diff. Re-indexes only changed files.
  • Semantic chunking — tree-sitter AST extraction (functions, classes, interfaces, methods) with tiktoken fallback for unsupported languages.
  • FTS5 + vector hybrid search — BM25 full-text ranking fused with cosine similarity from local embeddings.
  • ONNX / Ollama / zero-vector fallback — all-MiniLM-L6-v2 via onnxruntime-node, Ollama API, or graceful FTS5-only degradation.
  • Cross-encoder reranking — optional ms-marco-MiniLM-L-6-v2 ONNX reranker + heuristic scoring fallback.
  • File watcher — fs.watch with 1-second debounce; persists watch list to ~/.context-mode/watched.json.
  • CLI commands: local-index, local-search, local-repos, local-status.
  • MCP tools: ctx_local_index, ctx_local_search, ctx_local_status, ctx_local_repos, ctx_local_watch, ctx_local_unwatch.
  • WAL-safe SQLite schema — dedicated code-index.db with FTS5 virtual table, vectors BLOB store, and jobs tracking.

Technical Details

  • 384-d embeddings, batch size 32.
  • Tiktoken truncation for result formatting.
  • Lazy model download via .url markers in ~/.context-mode/models/.
  • WAL mode + mmap_size = 256MB for read-heavy search workloads.

v1.6.2 — Graph analytics fix & graphify-style report

Choose a tag to compare

@ShmidtS ShmidtS released this 11 May 03:57
b379da9

What's Changed

Fix

  • Eliminated N+1 SQLite queries in ctx_graph_analyze. Analytics now builds an in-memory snapshot in a single batch (3 queries), preventing timeouts on large vaults.

Feature

  • Graphify-style report: ctx_graph_analyze now returns markdownReport (human-readable report) and tokenEstimate (approximate token reduction vs reading raw notes).
  • Plain-English explanations: each surprising connection includes explanation (cross-module, cross-file-type, no shared tags).

Documentation

  • Vault graph tools (ctx_vault_graph, ctx_graph_analyze) are now documented as active by default in skills/context-mode/SKILL.md.
  • skills/improve-codebase-architecture/SKILL.md references vault graph analysis before codebase exploration.

Technical

  • Added getAllNodes() and getNodeTagMap() batch read methods to VaultGraphStore.
  • Union-Find clustering replaced per-node BFS in community detection for O(E α(V)) complexity.

context-mode v1.6.1

Choose a tag to compare

@ShmidtS ShmidtS released this 10 May 07:12
a514dd2

Full Changelog: v1.6.0...v1.6.1

v1.6.0

Choose a tag to compare

@ShmidtS ShmidtS released this 10 May 05:49
3225294

What's Changed

Refactoring & Architecture

  • Decomposed monolithic modules following DRY/SRP principles
  • shared.ts (970+ lines) → stats.ts, batch-helpers.ts, paths.ts, security-helpers.ts, snippet.ts, vault-lifecycle.ts with barrel re-exports
  • store.ts (1609 lines) → schema.ts, chunking.ts, reranking.ts, vocabulary.ts, search-helpers.ts, content-store.ts, types.ts with barrel re-exports
  • Extracted single reciprocalRankFuse implementation from 3 duplicate RRF copies

New Features

  • Graphify integration: confidence-tagged edges (EXTRACTED/INFERRED/AMBIGUOUS) in vault graph analytics
  • Composite surprise scoring and filterEdgesByConfidence for vault graph queries
  • Semantic search enabled by default (removed env-var gates)
  • Per-platform skill files: SKILL-claude.md, SKILL-codex.md, SKILL-cursor.md, SKILL-gemini.md, SKILL-copilot.md

Fixes

  • Updated all test paths for new module decomposition (2457 tests pass)
  • Added vendor type declarations for @clack/prompts and picocolors
  • Cleaned VS Code settings for workspace TypeScript SDK

Full Changelog: v1.5.0...v1.6.0

v1.5.0

Choose a tag to compare

@ShmidtS ShmidtS released this 09 May 17:57
f5318f3

Full Changelog: v1.4.4...v1.5.0

v1.4.4

Choose a tag to compare

@ShmidtS ShmidtS released this 09 May 12:19
14a041c

Fixes

  • ctx_dead_code falsely flagged reachable entry points on Windows due to backslash path separator mismatch in basename extraction.
  • Added language-agnostic ENTRY_STEMS so auto-detection works for any source file (Python, Go, Rust, PHP, etc.), not only .ts/.tsx/.js/.jsx.
  • Added pi.extensions and openclaw.extensions parsing to detectPackageJsonEntryPoints, preventing plugin source files from being marked dead.

Constraint: MCP server restart required for the fix to take effect in live sessions.

v1.4.3

Choose a tag to compare

@ShmidtS ShmidtS released this 09 May 08:05
94dbf46

Bug Fixes

  • Fix ESM dynamic require crash in tree-sitter loader by switching from require() to await import() in src/vault/ast-parser.ts and src/vault/symbol-graph.ts. The esbuild ESM bundle replaced require() with __require() shim that threw "Dynamic require is not supported" on Node.js, causing MCP connection closed on plugin install/update.
  • Add auto-rebuild fallback in start.mjs: if server.bundle.mjs fails to load, trigger npm run build before falling back.

Internal

  • chore(release): bump version to 1.4.3

v1.4.2

Choose a tag to compare

@ShmidtS ShmidtS released this 09 May 07:24
fcb58e5

Bug Fixes

  • Fixed false "outdated" version warnings — __pkg_dir resolution walked up from src/tools/ and failed to find package.json, causing VERSION to always be "unknown". Now walks up the directory tree looking for a package.json with name: "context-mode".
  • Fixed semverNewer with invalid versions — semverNewer("1.4.1", "unknown") returned true due to NaN handling. Added guards for "unknown" and non-numeric version strings.

Docs

  • Removed badges and improved source install instructions in README.