Skip to content

v0.10.6

Choose a tag to compare

@GlitterKill GlitterKill released this 19 Apr 16:04
· 216 commits to main since this release

v0.10.6 — Stability & Tool UX Fixes

⚠️ Important: Write Pool Rollback

The write connection pool introduced in v0.10.5 (4 warm connections with two-layer concurrency control) has been reverted to a single serialized write connection. LadybugDB has a known bug where concurrent writes on separate connections can trigger N-API GC crashes and use-after-free in native code. The bug has been patched upstream but not yet released. This rollback trades write throughput for stability until the fix ships in a future LadybugDB release. Related guards (connection mutexes, shutdown gating, tool dispatch throttling) remain in place.

Performance

  • Deferred derived-state refresh: Incremental index runs skip cluster/process/file-summary recomputation, deferring to the next full index
  • Deferred fresh-DB index bootstrap: Fresh databases defer 19 secondary indexes until after the first full index completes
  • Batch TS pass1 persistence: TypeScript pass1 uses BatchPersistAccumulator with background drain, eliminating per-file transaction overhead
  • Rust indexer pipelining: Rust engine overlaps parsing with DB writes for higher throughput

Fixed

  • Connection mutex shutdown safety: Gated connection mutexes during shutdown to prevent use-after-free
  • Pre-index checkpoint timeout: Races against 2-second timeout to prevent stalls
  • Live-index reconcile gating: Reconcile-worker writes route through indexing gate
  • Tool dispatch throttling: MCP tool dispatch throttled during active indexing
  • Batch drain re-entry guard: Prevents cascading failures during DB pressure
  • Repository scanning descriptor cleanup: Replaced glob() with explicit directory walker
  • Symbol search noise floor: Suppresses results below 0.3 relevance when no exact match exists
  • Context answer verbosity: Broad mode no longer duplicates symbol card summaries already in finalEvidence
  • Spillover respects cardDetail: slice.spillover.get honors cardDetail from original slice.build, omitting verbose fields for compact slices

Added

  • excludeDisabled for action.search: Filter disabled actions from results with correct pre-pagination handling
  • Manual step reference patterns: sdl.manual markdown includes $N.field cross-step reference table for workflow users
  • cardDetail in SliceHandle: Schema addition for spillover detail-level propagation

Rollback Instructions

If you encounter issues, roll back to v0.10.5:

npm install sdl-mcp@0.10.5

The cardDetail schema column is additive (nullable, defaults to null for existing handles) and does not require migration.

Full Changelog: v0.10.5...v0.10.6