Skip to content

Latest commit

 

History

History
99 lines (86 loc) · 4.81 KB

File metadata and controls

99 lines (86 loc) · 4.81 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.1.0 - 2026-04-13

Initial public release. BlazeDex MCP exposes 20 Blazor/Razor-aware tools over stdio JSON-RPC, indexes a solution via Roslyn's MSBuildWorkspace, and serves answers from an in-memory Tier 1 cache backed by an on-disk Tier 2 SQLite warm-load store.

Added — Phase 1 (core MCP surface)

  • MSBuildLocator.RegisterDefaults() bootstrap, stdio transport, WithToolsFromAssembly() host wiring, structured error rows at every tool boundary.
  • find_component_usages — resolves a .razor:line:column anchor for every markup instantiation of a component via Razor #line directives and Location.GetMappedLineSpan().
  • list_razor_components, list_pages, find_handler_bindings, get_component_api — Phase 1 tool set verified end-to-end against the test corpus.
  • In-memory Tier 1 cache with per-call stat-based fingerprint revalidation; rebuild-on-drift; get_index_status diagnostic.
  • Tool-boundary try/catch discipline: exceptions become structured error rows in the response, never escape to the MCP client.

Added — Phase 2 (multi-project, Tier 2, watcher fast-path, partial rebuild)

  • Multi-project solution load via BLAZEDEX_SOLUTION; single-project fallback via BLAZEDEX_PROJECT.
  • Per-project ProjectSnapshot reshape (Layer 1 per-project rows + Layer 2 union arrays for solution-wide queries).
  • ProjectDependencyGraph reverse-dep closure built and persisted in memory (drift logging today; partial rebuild path remains deferred — see Known Limitations in README.md).
  • Tier 2 on-disk SQLite cache (Microsoft.Data.Sqlite 10.0.5) with per-project write-back, warm-load (18–22 ms), corrupt-DB graceful degradation, schema v3.
  • Passive FileSystemWatcher dirty-hint fast path with sliding 10-second / 3-failure recreation budget; BLAZEDEX_WATCHER and BLAZEDEX_VERIFIED_CLEAN_WINDOW_MS tunables; watcher health surfaced in get_index_status.
  • Phase 2 spec tools shipped end-to-end: find_components_injecting, find_route_definitions, find_component, find_parameter_passers, find_binding_targets, find_bind_inventory, get_component_tree, get_cascading_chain, find_unused_components, find_route_conflicts, find_render_mode_conflicts, find_dead_routes, add_parameter.
  • 13 new POCO row types and 13 new tools surfaced behind the same yellow-but-never-red discipline as Phase 1.
  • add_parameter — first edit tool; Roslyn SymbolEditor writes a new [Parameter] declaration into the code-behind partial class, runs dotnet format on the modified file, and surfaces the diff.

Fixed — cold-build / watcher-bootstrap race

  • Cold-build Tier 2 write-back is now awaited on the first tool call before the response is returned, eliminating the fire-and-forget partial-commit window where a process exiting before write-back drained could leave only a subset of projects on disk.
  • Live project-set validation on warm-load via DiscoverExpectedProjectPathsAsync — if the warm-loaded project set does not match what solution discovery returns today, the warm-load is discarded and BlazeDex falls through to a cold build. Matches the "validate before serve" freshness invariant.
  • Watcher bootstrap now sees the full project set on every warm-load, closing the latency-bounded drift window flagged in Step 4.

Added — publishing readiness

  • README.md — 10-section project README covering install, configure, first run, the 20-tool catalog, troubleshooting, known limitations, license, and architecture pointer.
  • docs/env.md — environment variable reference for BLAZEDEX_SOLUTION, BLAZEDEX_PROJECT, BLAZEDEX_WATCHER, and BLAZEDEX_VERIFIED_CLEAN_WINDOW_MS.
  • docs/mcp.json.example — consumer .mcp.json template.
  • LICENSE — Elastic License 2.0 (source-available); copyright Copyright (c) 2026 Tomáš Filip.
  • CHANGELOG.md — keep-a-changelog format.
  • v0.1.0 publish profile and scripts/release.sh for producing the release zip.
  • CI workflow (.github/workflows/ci.yml) enforcing dotnet format --verify-no-changes, dotnet build, and dotnet test on every push and pull request.
  • proj-verifier agent's format gate is now mandatory before any /commit invocation.
  • .mcp.json redacted of references to the internal test corpus prior to publish.
  • Build lock decoupled from the released DLL by publishing into artifacts/publish/BlazeDex.Mcp/ rather than the repo's bin/Release directory; CI uses -c Release consistently to avoid mixed-config artifacts.