[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:columnanchor for
every markup instantiation of a component via Razor#line
directives 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.
Added — Phase 2 (multi-project, Tier 2, watcher fast-path, partial rebuild)
- 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_WATCHERand
BLAZEDEX_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, runs
dotnet formaton 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 forBLAZEDEX_SOLUTION,
BLAZEDEX_PROJECT,BLAZEDEX_WATCHER, and
BLAZEDEX_VERIFIED_CLEAN_WINDOW_MS.docs/mcp.json.example— consumer.mcp.jsontemplate.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.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/Release
directory; CI uses-c Releaseconsistently to avoid mixed-config
artifacts.