Skip to content

v0.10.8

Choose a tag to compare

@GlitterKill GlitterKill released this 23 Apr 21:29
· 180 commits to main since this release

⚠️ Migration for existing users

Your CLAUDE.md / AGENTS.md / GEMINI.md / CODEX.md likely still contain the inlined SDL-MCP workflow from earlier versions. Remove those sections and replace them with a single pointer near the top of each file:

> Optimized tool-use workflow for agents: see [SDL.md](./SDL.md).

SDL.md now owns the canonical decision ladder, budget patterns, and anti-patterns. Keeping the workflow in one file means future agent-behavior updates land via sdl-mcp upgrades (the server drops a fresh SDL.md on init / repo.register) instead of drifting across four hand-edited docs.


Highlights

New tools

  • sdl.search.edit — cross-file search/edit in two phases (preview + apply) with server-side plan handles, sha256/mtime preconditions, deterministic apply order, and mid-batch rollback. Closes the gap where agents previously composed symbol.searchfile.readfile.write by hand.
  • sdl.file — unified file I/O gateway (read / write / searchEditPreview / searchEditApply) so a single tool handles all file operations.
  • search.edit hybrid-retrieval narrowing — text-mode previews with a literal query (≥3 chars) seed candidate files via entity-level FTS + vector + RRF, falling back to directory enumeration. Planner surfaces retrievalEvidence on the response.
  • narrowFilesForQuery in src/retrieval/orchestrator.ts — exported entry point that resolves hybrid-search hits back to owning files.

Packaging

  • Grammar-wrapper packages — 11 thin sdl-mcp-tree-sitter-* wrappers bundle each upstream tree-sitter grammar with a permissive tree-sitter: >=0.21.0 peer range. Consumer install output drops from ~10 ERESOLVE warnings to 0.
  • Each grammar dep in package.json now aliases the wrapper (e.g. tree-sitter-c: npm:sdl-mcp-tree-sitter-c@^1.0.1); grammarLoader.ts requires resolve transparently.
  • New regenerator scripts/scaffold-grammar-wrappers.mjs, drift guard tests/unit/grammar-wrapper-manifest.test.ts, and publish workflow .github/workflows/publish-grammar-wrappers.yml.

Reliability fixes

  • CLI — one-shot index command exits cleanly instead of hanging on the prompt.
  • Live-index — all patchSavedFile callers now gated; added overlay sweep.
  • SCIP — no more crash during auto-ingest after index.refresh.
  • DB — prevent vec column cache corruption on dual initLadybugDb calls (#16).
  • Embeddings — null-then-set when updating HNSW-indexed vec columns.
  • Search-edit — correctness + robustness pass across planner, plan-store, batch-executor, index.
  • tools/listsdl.search.edit discriminated-union inputSchema now carries top-level type: "object" so strict MCP clients accept every registered tool.

Config

  • additionalModels defaults to [\"nomic-embed-text-v1.5\"].

Enforcement / workflow

  • init / repo.register auto-place the SDL.md playbook into the registered repo so agents always have the latest token-lean workflow alongside their existing agent files.

Commits

See v0.10.7...v0.10.8 (23 commits).

Full changelog: CHANGELOG.md.