@unified-product-graph/mcp-server 0.8.9 → 0.8.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to `@unified-product-graph/mcp-server` are documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
4
4
 
5
+ ## [0.8.11] - 2026-06-03
6
+
7
+ ### Fixed
8
+ - Startup deprecation check no longer flags canonical types. It used `getDeprecatedTypes()` (the historical migration union, which still contains `hypothesis` from the v0.2.8 split) and walked `UPG_MIGRATIONS` for the replacement, so a graph with canonical `hypothesis` nodes printed a bogus warning pointing a canonical type at a deprecated one. Detection and the suggested replacement now come from entity-meta (`isDeprecatedType` / `getReplacementType`). Genuinely deprecated types (`hypothesis_claim`, `pain_point`, `jtbd`) still warn, in the correct direction. (#1976)
9
+
10
+ ## [0.8.10] - 2026-06-03
11
+
12
+ Co-versioned 0.8.10 release, in lockstep with the package train. No changes to `@unified-product-graph/mcp-server` itself; it inherits the core framework-score validation fix (Kano sum-denominator false positive) via its `@unified-product-graph/core` dependency.
13
+
5
14
  ## [0.8.9] - 2026-06-03
6
15
 
7
16
  ### Added
package/dist/index.js CHANGED
@@ -944,6 +944,10 @@ var UPG_ENTITY_META_BY_ID = new Map(
944
944
  );
945
945
  var UPG_ACTIVE_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "stable" || m.maturity === "proposed").map((m) => m.name);
946
946
  var UPG_DEPRECATED_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "deprecated").map((m) => m.name);
947
+ function isDeprecatedType(name) {
948
+ const meta = UPG_ENTITY_META_BY_NAME.get(name);
949
+ return meta?.maturity === "deprecated";
950
+ }
947
951
  function getReplacementType(name) {
948
952
  const meta = UPG_ENTITY_META_BY_NAME.get(name);
949
953
  return meta?.replacement;
@@ -6409,15 +6413,6 @@ function compareVersions(a, b) {
6409
6413
  function versionInRange(version, fromVersion, toVersion) {
6410
6414
  return compareVersions(version, fromVersion) > 0 && compareVersions(version, toVersion) <= 0;
6411
6415
  }
6412
- function getDeprecatedTypes() {
6413
- const deprecated = /* @__PURE__ */ new Set();
6414
- for (const migrations of Object.values(UPG_MIGRATIONS)) {
6415
- for (const m of migrations) {
6416
- deprecated.add(m.from);
6417
- }
6418
- }
6419
- return deprecated;
6420
- }
6421
6416
  var UPG_PROPERTY_MIGRATIONS = {
6422
6417
  // ── v0.8.0: UPG-574 deprecated-property removal pass ───────────────────
6423
6418
  //
@@ -24365,7 +24360,7 @@ function serializePortfolioWithHeader(doc, opts) {
24365
24360
  header.integrity = { algorithm: INTEGRITY_ALGORITHM, body: computeBodyChecksum(doc) };
24366
24361
  return JSON.stringify({ $upg: header, ...body }, null, 2) + "\n";
24367
24362
  }
24368
- var UPG_VERSION = "0.8.9";
24363
+ var UPG_VERSION = "0.8.11";
24369
24364
  var MARKDOWN_FORMAT_VERSION = "0.1";
24370
24365
  var UPG_TYPES = getTypes();
24371
24366
  var UPG_TYPES_SET = new Set(UPG_TYPES);
@@ -30304,21 +30299,17 @@ async function runMcpServer() {
30304
30299
  const store = new UPGFileStore();
30305
30300
  store.setWriter("upg-mcp-local", SERVER_VERSION);
30306
30301
  await store.load(resolvedPath);
30307
- const deprecated = getDeprecatedTypes();
30308
30302
  const nodes = store.getAllNodes();
30309
30303
  const deprecatedCounts = {};
30310
30304
  for (const node of nodes) {
30311
- if (deprecated.has(node.type)) {
30305
+ if (isDeprecatedType(node.type)) {
30312
30306
  deprecatedCounts[node.type] = (deprecatedCounts[node.type] ?? 0) + 1;
30313
30307
  }
30314
30308
  }
30315
30309
  if (Object.keys(deprecatedCounts).length > 0) {
30316
30310
  const lines = Object.entries(deprecatedCounts).map(([type, count]) => {
30317
- for (const migrations of Object.values(UPG_MIGRATIONS)) {
30318
- const m = migrations.find((m2) => m2.from === type);
30319
- if (m) return ` \u26A0\uFE0F ${count} "${type}" entities \u2192 should be "${m.to}"`;
30320
- }
30321
- return ` \u26A0\uFE0F ${count} "${type}" entities (deprecated)`;
30311
+ const replacement = getReplacementType(type);
30312
+ return replacement ? ` \u26A0\uFE0F ${count} "${type}" entities \u2192 should be "${replacement}"` : ` \u26A0\uFE0F ${count} "${type}" entities (deprecated)`;
30322
30313
  });
30323
30314
  process.stderr.write(`
30324
30315
  Deprecated types found in your graph: