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

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,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.product),
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.product;
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.11";
24374
+ var UPG_VERSION = "0.8.12";
24364
24375
  var MARKDOWN_FORMAT_VERSION = "0.1";
24365
24376
  var UPG_TYPES = getTypes();
24366
24377
  var UPG_TYPES_SET = new Set(UPG_TYPES);