@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 +9 -0
- package/dist/index.js +8 -17
- package/dist/index.js.map +1 -1
- package/dist/tools-manifest.json +1 -1
- package/package.json +1 -1
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.
|
|
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 (
|
|
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
|
-
|
|
30318
|
-
|
|
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:
|