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.
MSBuildLocator.RegisterDefaults()bootstrap, stdio transport,WithToolsFromAssembly()host wiring, structured error rows at every tool boundary.find_component_usages— resolves a.razor:line:columnanchor for every markup instantiation of a component via Razor#linedirectives andLocation.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_statusdiagnostic. - Tool-boundary
try/catchdiscipline: exceptions become structured error rows in the response, never escape to the MCP client.
- Multi-project solution load via
BLAZEDEX_SOLUTION; single-project fallback viaBLAZEDEX_PROJECT. - Per-project
ProjectSnapshotreshape (Layer 1 per-project rows + Layer 2 union arrays for solution-wide queries). ProjectDependencyGraphreverse-dep closure built and persisted in memory (drift logging today; partial rebuild path remains deferred — see Known Limitations inREADME.md).- Tier 2 on-disk SQLite cache (
Microsoft.Data.Sqlite10.0.5) with per-project write-back, warm-load (18–22 ms), corrupt-DB graceful degradation, schema v3. - Passive
FileSystemWatcherdirty-hint fast path with sliding 10-second / 3-failure recreation budget;BLAZEDEX_WATCHERandBLAZEDEX_VERIFIED_CLEAN_WINDOW_MStunables; watcher health surfaced inget_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; RoslynSymbolEditorwrites a new[Parameter]declaration into the code-behind partial class, runsdotnet formaton the modified file, and surfaces the diff.
- 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.
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 forBLAZEDEX_SOLUTION,BLAZEDEX_PROJECT,BLAZEDEX_WATCHER, andBLAZEDEX_VERIFIED_CLEAN_WINDOW_MS.docs/mcp.json.example— consumer.mcp.jsontemplate.LICENSE— Elastic License 2.0 (source-available); copyrightCopyright (c) 2026 Tomáš Filip.CHANGELOG.md— keep-a-changelog format.- v0.1.0 publish profile and
scripts/release.shfor producing the release zip. - CI workflow (
.github/workflows/ci.yml) enforcingdotnet format --verify-no-changes,dotnet build, anddotnet teston every push and pull request. proj-verifieragent's format gate is now mandatory before any/commitinvocation..mcp.jsonredacted 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'sbin/Releasedirectory; CI uses-c Releaseconsistently to avoid mixed-config artifacts.