mcp-data-platform-v1.94.0
mcp-data-platform v1.94.0
A knowledge-layer release. It hardens the memory -> insight -> knowledge loop end to end: the platform now actively prevents duplicate knowledge pages instead of merely advising against them, the knowledge reference graph is fully navigable, the insight review queue counts and pages correctly, and inline citations attach reliably. A portal fix also preserves deep links across OIDC login.
Highlights
Duplicate knowledge pages are now gated, not just discouraged (#716)
Knowledge-page promotion previously deduplicated by exact slug only, so two sessions that chose different slugs for the same topic each created a page, and the "discover first, update-vs-create, never blind-create" rule lived only as prose. This release enforces it in the shared layer used by both write paths:
- Create-time dedup gate. On a slug miss, the backend ranks existing pages by pure cosine similarity against the candidate's content and, when one is similar enough (configurable threshold, default 0.85, active when an embedding provider is configured), rejects the create and returns the matching pages. The agent either re-applies against a candidate's slug (an update) or passes an explicit
force_newto create a distinct page. A slug hit is always an update and is never gated. - Same gate on both surfaces. The MCP
apply_knowledgepath and the portal REST create path share one implementation, so they cannot drift. The portal editor surfaces the candidates with a "Create separate page anyway" action. - Oversized-page signal. A page that crosses a size or section-count threshold gets a non-blocking suggestion to split into focused, cross-linked sub-pages. The write always succeeds.
- Progressive-revelation graph.
fetchof a knowledge page now returns its outbound references (the pages and entities it links to) alongside the body, so an agent can deep-crawl deliberately: fetch a thin index page, then follow into the relevant branch. Guidance across the tool, the apply prompt, and the platform instructions steers toward many focused, cross-linked pages over one sprawling page.
The knowledge reference graph is wiki-navigable (#715)
The knowledge-page detail view now has its own URL, so references deep-link and browser back/forward work. Every reference that points to an existing, accessible entity (another knowledge page or a DataHub entity) is a working link that opens that entity in place with its own Related panel and backlinks, so a reader can click through the graph like a wiki. Inbound backlinks resolve to their real targets instead of a single generic anchor.
Knowledge-page editor UX (#714)
- Tag facet cap. The browse view showed every tag as a chip, so a large tag set pushed the page list far down. The facet now shows the top 20 tags (most-used first) with a "Show all (N)" / "Show fewer" reveal; a selected tag outside the top 20 is pulled into view so the active filter is never hidden.
- Labeled editor fields. The title, summary, and tags inputs relied on placeholders for their identity, so a populated page was three unlabeled boxes. Each field now has a persistent label, and the summary is a multi-line textarea so a two-sentence summary is fully readable.
Fixes
- Insight review queue counts and pages on exact status (#713). In the admin Insights queue the Pending Review stat and the list disagreed, and a pending insight could be hidden entirely. The review adapter filtered on a coarse memory status (pending, approved, and applied all collapse to one active status); it now filters, counts, and paginates on the exact insight status, so the stat, the rows, and the pager agree.
- Inline references no longer absorb trailing punctuation (#711). A citation written in prose immediately before sentence punctuation (for example
mcp:asset:abc.orurn:li:tag:revenue,) captured the trailing./,/;/:/!/?into the token, so it parsed to the wrong id and silently failed to attach. Trailing sentence punctuation is now trimmed before resolution. - Dropped references are reported on page promotion (#703). When
apply_knowledgepromotes a capture to a knowledge page, stale reference targets are filtered out by design (a deleted entity or a typo must not block the promotion). That filtering was silent. The apply response now reportsreferences_droppedand areferences_attachedcount, so an agent can reconcile what it cited against what landed. - Deep links survive OIDC login (#712). An unauthenticated user who opened a deep link and signed in with OIDC landed on the default page instead of the one they requested. The SPA now sends the original path as
return_tothrough the login round-trip, and the user lands back on the page they asked for.
Changelog
Features
- feat(knowledge): gate duplicate page creation, signal oversized pages, enable a progressive-revelation page graph (#716)
- feat(knowledge): make the reference graph wiki-navigable (#715, closes #709)
- feat(knowledge-pages): cap the tag facet and label the editor fields (#714, closes #707 and #708)
Bug Fixes
- fix(knowledge): count and paginate the insight review queue on exact status (#713, closes #706)
- fix(portal): carry deep-link target through OIDC login via return_to (#712, closes #710)
- fix(knowledge): trim trailing sentence punctuation from inline references (#711, closes #704)
- fix(knowledge): report references dropped during page promotion (#703, closes #696)
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.94.0Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_1.94.0_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_1.94.0_linux_amd64.tar.gz