mcp-data-platform-v1.75.2
Patch: coherent Indexing dashboard cards
A UX fix for the admin Indexing dashboard. No migration and no configuration change; one small API behavior change is noted below.
What was wrong
On a healthy instance the dashboard rendered fully-indexed kinds three different ways, none of the differences actionable, so an operator could not tell that they were all simply done and up to date:
- Different badges for the same situation,
Idle (complete)vsHealthy, split only on whether the kind had ever run a queue job (a kind seeded by a backfill read "Idle (complete)"; queue-indexed kinds read "Healthy"). - A coverage bar for some kinds but a bare "in sync" line with no bar for the tools kind.
- A per-state count row that showed an alarming "0 succeeded" on a 100%-indexed kind.
The fix
Equivalent states now render identically; a card diverges only when the actual situation does.
- One resting state. The verdict is now
Up to date,Indexing…, orDegraded. Any fully-indexed, quiescent, failure-free kind reads "Up to date" regardless of job history, with recency carried in the subtext ("last indexed ", or "fully indexed" when there is no job timestamp, never "never"). - A full green coverage bar on every healthy card, including the tools kind, which previously showed no bar.
- The per-state "units by last run" breakdown is hidden unless there is active work or an open failure, so an up-to-date card is just the verdict, the coverage bar, and recency rather than a stale or all-zero stat row.
Result: fully-indexed kinds are visually identical except their relative timestamp; Indexing… and Degraded still surface with their detail when they apply.
The tools kind deliberately keeps an indexed count rather than a fabricated indexed/expected ratio: deriving a denominator from the live registry would enumerate the whole tool set on every dashboard poll, render over 100% while a stale vector briefly outlives a removed tool, and contradict itself on an empty corpus. Its drift signal remains the content-hash gap check, not a count ratio.
API behavior change
The verdict field on GET /api/v1/admin/index-jobs no longer emits idle_complete; it is now one of healthy, indexing, or degraded. The former idle_complete case is covered by healthy (a kind with no job history simply has a null last_activity, from which recency is read). The tools kind's coverage remains expected_known: false by design.
Upgrade notes
- No migration and no configuration change. The dashboard rendering changes on the next page load after deploy.
- Any consumer reading the admin
verdictfield should treat the formeridle_completevalue ashealthy.
Changelog
Full changelog: v1.75.1...v1.75.2
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-data-platformClaude Code CLI
claude mcp add mcp-data-platform -- mcp-data-platformDocker
docker pull ghcr.io/txn2/mcp-data-platform:v1.75.2Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_1.75.2_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_1.75.2_linux_amd64.tar.gz