@unified-product-graph/mcp-server 0.8.11 → 0.8.13
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 +4 -0
- package/dist/index.js +14 -3
- 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,10 @@
|
|
|
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.12] - 2026-06-04
|
|
6
|
+
|
|
7
|
+
Co-versioned with the train. No changes to this package; bundles the `@unified-product-graph/core` serialiser root-product reconcile fix (#1981).
|
|
8
|
+
|
|
5
9
|
## [0.8.11] - 2026-06-03
|
|
6
10
|
|
|
7
11
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -24267,9 +24267,20 @@ function canonicalCrossEdge(edge) {
|
|
|
24267
24267
|
function canonicalProduct(product) {
|
|
24268
24268
|
return orderedObject(product, PRODUCT_KEY_ORDER, { forceKeys: ["id", "title"], openKeys: ["properties"] });
|
|
24269
24269
|
}
|
|
24270
|
+
function effectiveRootProduct(doc) {
|
|
24271
|
+
const node = doc.nodes?.find((n) => n.type === "product" && n.id === doc.product.id);
|
|
24272
|
+
if (!node) return doc.product;
|
|
24273
|
+
return {
|
|
24274
|
+
...doc.product,
|
|
24275
|
+
title: node.title ?? doc.product.title,
|
|
24276
|
+
description: node.description ?? doc.product.description,
|
|
24277
|
+
// A product's lifecycle status IS its stage, the same axis (grammar/lifecycles).
|
|
24278
|
+
stage: node.status ?? doc.product.stage
|
|
24279
|
+
};
|
|
24280
|
+
}
|
|
24270
24281
|
function singleBody(doc) {
|
|
24271
24282
|
return {
|
|
24272
|
-
product: canonicalProduct(doc
|
|
24283
|
+
product: canonicalProduct(effectiveRootProduct(doc)),
|
|
24273
24284
|
nodes: sortNodes(doc.nodes ?? []).map(canonicalNode),
|
|
24274
24285
|
edges: sortEdges(doc.edges ?? []).map(canonicalEdge)
|
|
24275
24286
|
};
|
|
@@ -24318,7 +24329,7 @@ function buildProvenance(doc, opts) {
|
|
|
24318
24329
|
}
|
|
24319
24330
|
function serializeSingleWithHeader(doc, opts) {
|
|
24320
24331
|
const body = singleBody(doc);
|
|
24321
|
-
const product = doc
|
|
24332
|
+
const product = effectiveRootProduct(doc);
|
|
24322
24333
|
const header = {
|
|
24323
24334
|
format_version: UPG_CANONICAL_FORMAT_VERSION,
|
|
24324
24335
|
spec_version: doc.upg_version,
|
|
@@ -24360,7 +24371,7 @@ function serializePortfolioWithHeader(doc, opts) {
|
|
|
24360
24371
|
header.integrity = { algorithm: INTEGRITY_ALGORITHM, body: computeBodyChecksum(doc) };
|
|
24361
24372
|
return JSON.stringify({ $upg: header, ...body }, null, 2) + "\n";
|
|
24362
24373
|
}
|
|
24363
|
-
var UPG_VERSION = "0.8.
|
|
24374
|
+
var UPG_VERSION = "0.8.13";
|
|
24364
24375
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
24365
24376
|
var UPG_TYPES = getTypes();
|
|
24366
24377
|
var UPG_TYPES_SET = new Set(UPG_TYPES);
|