@unified-product-graph/core 0.8.10 → 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 +14 -0
- package/dist/index.cjs +14 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ This project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [0.8.12] - 2026-06-04
|
|
11
|
+
|
|
12
|
+
A co-versioned patch. The catalogue is unchanged; the fix is in the canonical serialiser.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- `serializeCanonical` now reconciles the root product summary from its canonical `type: 'product'` node when one is present. The product is denormalised twice (the root `doc.product`, mirrored into the `$upg` header, and a product node sharing its id); graph edits touched the node while the root summary and header drifted (e.g. a header reading `stage: concept` while the node already said `launch`). The header, the derived summary, and the body product block now re-derive from the node's live title/description/stage on every write, with the integrity checksum kept consistent. Self-healing on the next write; root-only products are unchanged. (#1981)
|
|
16
|
+
|
|
17
|
+
## [0.8.11] - 2026-06-03
|
|
18
|
+
|
|
19
|
+
A co-versioned patch. The catalogue, entity types, and edges are unchanged; the fix lands in `@unified-product-graph/mcp-server`.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- MCP server startup no longer prints an inverted deprecation warning for canonical types. The check sourced deprecation from the historical migration union, which still lists `hypothesis` from the v0.2.8 split even though it was re-promoted to canonical-stable at v0.4.0, so graphs holding canonical `hypothesis` nodes were flagged and pointed at a deprecated type. Detection and the suggested replacement now read from entity-meta (`isDeprecatedType` / `getReplacementType`), the source of truth for current maturity. (#1976)
|
|
23
|
+
|
|
10
24
|
## [0.8.10] - 2026-06-03
|
|
11
25
|
|
|
12
26
|
A patch release. Fixes a false-positive in framework-score validation.
|
package/dist/index.cjs
CHANGED
|
@@ -25716,9 +25716,20 @@ function canonicalCrossEdge(edge) {
|
|
|
25716
25716
|
function canonicalProduct(product) {
|
|
25717
25717
|
return orderedObject(product, PRODUCT_KEY_ORDER, { forceKeys: ["id", "title"], openKeys: ["properties"] });
|
|
25718
25718
|
}
|
|
25719
|
+
function effectiveRootProduct(doc) {
|
|
25720
|
+
const node = doc.nodes?.find((n) => n.type === "product" && n.id === doc.product.id);
|
|
25721
|
+
if (!node) return doc.product;
|
|
25722
|
+
return {
|
|
25723
|
+
...doc.product,
|
|
25724
|
+
title: node.title ?? doc.product.title,
|
|
25725
|
+
description: node.description ?? doc.product.description,
|
|
25726
|
+
// A product's lifecycle status IS its stage, the same axis (grammar/lifecycles).
|
|
25727
|
+
stage: node.status ?? doc.product.stage
|
|
25728
|
+
};
|
|
25729
|
+
}
|
|
25719
25730
|
function singleBody(doc) {
|
|
25720
25731
|
return {
|
|
25721
|
-
product: canonicalProduct(doc
|
|
25732
|
+
product: canonicalProduct(effectiveRootProduct(doc)),
|
|
25722
25733
|
nodes: sortNodes(doc.nodes ?? []).map(canonicalNode),
|
|
25723
25734
|
edges: sortEdges(doc.edges ?? []).map(canonicalEdge)
|
|
25724
25735
|
};
|
|
@@ -25767,7 +25778,7 @@ function buildProvenance(doc, opts) {
|
|
|
25767
25778
|
}
|
|
25768
25779
|
function serializeSingleWithHeader(doc, opts) {
|
|
25769
25780
|
const body = singleBody(doc);
|
|
25770
|
-
const product = doc
|
|
25781
|
+
const product = effectiveRootProduct(doc);
|
|
25771
25782
|
const header = {
|
|
25772
25783
|
format_version: UPG_CANONICAL_FORMAT_VERSION,
|
|
25773
25784
|
spec_version: doc.upg_version,
|
|
@@ -25859,7 +25870,7 @@ function isCanonical(text) {
|
|
|
25859
25870
|
}
|
|
25860
25871
|
|
|
25861
25872
|
// src/index.ts
|
|
25862
|
-
var UPG_VERSION = "0.8.
|
|
25873
|
+
var UPG_VERSION = "0.8.12";
|
|
25863
25874
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
25864
25875
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
25865
25876
|
var UPG_TYPES = getTypes();
|