Releases: GlitterKill/sdl-mcp
v0.9.2
Changes since v0.9.1
Added
- User-visible token savings meter via MCP logging notifications (
notifications/message)- Per-call: compact meter bar showing that call's savings (for example,
████████░░ 84%) - End-of-task: session + lifetime cumulative stats sent when
sdl.usage.statsis called
- Per-call: compact meter bar showing that call's savings (for example,
- Human-readable tool call formatter with concise per-tool summaries while keeping JSON responses unchanged for the LLM
loggingcapability declared in MCP Server capabilities- Repo overview performance cache with singleflight deduplication (5s TTL)
Changed
- Session usage summaries now combine session and lifetime data from LadybugDB and emit the formatted summary as an MCP notification instead of extra tool payload
- Pass2 edge-builder logic was split into focused sub-modules (
enclosing-symbol,symbol-mapping,target-selection,unresolved-imports) - The
indexer.tsmonolith was split into focused init, pass1, pass2, versioning, and memory modules for safer maintenance - Post-install pruning now keeps only required install artifacts, reducing package footprint by roughly 312 MB
- Runtime tool maximum duration increased to 10 minutes, with broader runtime, config, and documentation hardening across the release
Fixed
- Semantic summary generation bug in the native TypeScript extraction path
- Orchestrator tool execution regressions and additional tool logic edge cases
- LadybugDB Cypher query issues in memory ordering and word-boundary search handling
- Repo overview performance regression, plus broader hardening across indexing, runtime, and benchmark paths
Removed
renderTaskSummaryfunction (redundant withrenderSessionSummary)
Full Changelog: v0.9.1...v0.9.2
v0.9.1
Changes since v0.9.0
Added
- Unified runtime diagnostics via CLI
sdl-mcp infoand MCPsdl.info prepare-releaseandinspectornpm workflows for release preflight and MCP inspection
Changed
- MCP tool registration now publishes human-friendly titles, version-stamped descriptions, and shared request normalization across flat, gateway, and CLI tool-dispatch surfaces
- Gateway
tools/listschemas now preserve action-specific fields, descriptions, and defaults instead of collapsing to a bare envelope - Logging is now file-first with
SDL_LOG_FILE,SDL_CONSOLE_LOGGING, temp-path fallback, and explicit shutdown flushing - Documentation was refreshed across CLI, architecture, troubleshooting, gateway, code-mode, and release workflow references
Fixed
- Native platform package versions are synchronized with the root
sdl-mcprelease version prepare-releasenow launches npm subcommands correctly on Windows- Release preflight packaging and stdio smoke coverage now validate the new diagnostics and tool registration surfaces
Full Changelog: v0.9.0...v0.9.1
v0.9.0
v0.9.0 — Memory System, Code-Mode Chaining, Call Edge Resolution
Highlights
-
Development Memory System — Four new MCP tools (
sdl.memory.store,sdl.memory.query,sdl.memory.remove,sdl.memory.surface) backed by graph database persistence with file sync to.sdl-memory/. Memories attach to symbols, files, and repos, and are automatically surfaced for relevant tasks. -
Code-Mode Tool Chaining — New
sdl.code.chaintool executes multi-step tool chains with budget tracking, ETag caching, ladder validation, and reference resolution for composable context retrieval. -
Call Edge Resolution Dramatically Improved — Three fixes that address the ~5% call edge coverage problem:
- ESM
.js→.tsextension remapping — Resolves the primary cause of broken cross-file links in TypeScript codebases using ESM imports - Global disambiguation — When multiple symbols share a name, prefers the exported definition over test-local redeclarations
- Deferred TS compiler resolver — Pass 2 now gets type-aware call resolution even when the Rust indexer handles Pass 1
- ESM
-
Database Migration Framework — Versioned migration runner with idempotent execution, so database upgrades no longer require a full re-index.
Other Changes
- HTTP transport auth refactored for cleaner token handling
- Semantic embedding progress visible during indexing
- GitHub Actions upgraded to Node.js 24
- CI test failures and security audit (
flattedoverride) resolved - Stress test and code hardening improvements across MCP, indexing, and test infrastructure
Full Changelog: v0.8.9...v0.9.0
v0.8.9
Ci fixes and improved test coverage.
v0.8.8
Added
- CLI tool access for direct MCP action invocation, including argument parsing, dispatch, structured output, and gateway-focused test coverage
- Tool gateway routing plus compact and thin schemas to reduce MCP token overhead, alongside measurement tooling and config-schema support
- Graph slice orchestration with beam-search start-node resolution, graph snapshot caching, serialization, and supporting metrics/repository integration
Changed
- Local semantic embedding support now defaults to the
nomic-embed-text-v1.5provider, with downloader, registry, and runtime docs aligned to the new model - README and deep-dive documentation were expanded across CLI access, graph slicing, governance policy, runtime execution, indexing languages, and semantic workflows
- MCP, DB, live-index, policy, and code-window paths received a broader hardening pass before release, including stricter error handling and safer gating behavior
Fixed
- HTTP auth token handling across the CLI transport path and stress harness client scenarios
- Stress-test reliability around Ladybug initialization and concurrent client execution
- Release-train regressions across slice, symbol, and code tools, plus telemetry, watcher/live-index parsing, and database query safety paths
v0.8.7
Added
- Multi-language Rust native extraction now covers Python, Go, Java, C, Shell, Rust, C#, C++, and PHP symbol, import, and call extraction, plus richer doc-comment, invariant, side-effect, and role detection
- Pass2 and indexer resolution coverage now includes C#, C++, C, Shell, Python, Kotlin, Rust, and PHP adapters, with matching resolve-call harness and stress tooling updates
- Local semantic embedding runtime support and the new
sdl.runtimetool broaden the runtime surface for higher-output tasks and semantic workflows - Stress-test coverage expanded for multiple concurrent clients and the growing multi-language resolver pipeline
Changed
- Native extraction internals were restructured into language-dispatched modules and enabled across all supported languages
- Slice responses now use a refactored wire format with typed MCP errors, alongside general code, CI, and test hardening across the release train
Fixed
- Native fallback and config-edge traversal regressions, including deeper and larger-file parsing hardening in the Rust extraction path
- Runtime tool policy handling, spillover signature regressions, and UI asset stream failure handling
v0.8.6
Added
- Shared startup bootstrap logic and focused regression coverage to register configured repositories before watcher startup on fresh graph databases.
Changed
- Startup conflict messaging now explains the real pidfile scope, including the exact PID file path and the requirement to use a different database directory for a separate server instance.
Fixed
npm run devand the CLIservepath now follow the same repository-registration bootstrap, preventing fresh-database startup failures withRepository ... not found.- PID-file conflict handling now gives accurate recovery guidance when another
sdl-mcpprocess is already running for the same database directory.
v0.8.5
Added
- Multi-session HTTP MCP session management and streamable transport handling so concurrent clients can share one server process with isolated session state
- Configurable MCP dispatch limiting plus new session-manager, dispatch-limiter, and Ladybug connection-pool regression coverage
Changed
- Ladybug reads and writes now run through pooled and serialized access paths across CLI, MCP, indexing, sync, and live-index flows to reduce write conflicts under concurrent load
- The config schema and example config now expose concurrency controls for MCP dispatch and graph database access
- Benchmark and release lockfile coverage were refreshed to keep CI and publish-path validation stable after the concurrency changes
Fixed
- TypeScript indexer fallback logic now recovers more reliably when native language support is unavailable
- CI regression guards around Ladybug E2E coverage and release lockfile checks were tightened after recent infrastructure changes
v0.8.4
Added
- Ladybug package-contract, query-coverage, and MCP language regression coverage to lock the migration behavior in place across DB, indexing, and code-access paths
- Actionable rebuild guidance when older graph databases cannot be opened after the backend migration
Changed
- The embedded graph backend is now consistently named Ladybug across DB modules, tests, scripts, configs, and documentation while continuing to load
@ladybugdb/corethrough the existingkuzucompatibility seam - Default graph database paths and examples now use the
.lbugextension, and the benchmark/migration tooling was refreshed to match the Ladybug naming - README, configuration, troubleshooting, and release-test docs were updated to reflect the Ladybug-backed storage model and current release workflow
Fixed
- Post-refactor DB issues across slice building, metrics, versioning, sync, and MCP tool flows after the Ladybug rename
- Kotlin grammar loading and TSX/JSX component export handling in indexing and code-access paths, with matching regression tests
- CI and release follow-up issues uncovered during the migration, including lockfile and publish-path stability fixes
Upgrade Notes
- Existing
.kuzugraph directories should be recreated or migrated to the Ladybug-backed.lbugpath before relying on older persisted data
v0.8.3
Changes
Added
- Release-publish lockfile coverage to keep npm bootstrap behavior under test in CI.
- Broader multi-language code-access handling in tree-sitter-backed skeleton and hot-path flows.
Changed
- Release publishing now bootstraps on Node 20 with a more reliable npm install path in the publish workflow.
- Slice start-node resolution, graph metrics writes, watcher logging, and pass2/indexing internals were tightened to reduce noisy results and improve stability under load.
Fixed
- ENOENT and parser crash paths across indexing, watcher, and code-access flows to reduce unexpected failures during file churn.
- Security hardening across DB init, plugin loading, regex compilation, symlink handling, JSON parsing, repo path validation, and MCP request budget limits.