@aikdna/kdna-studio-core 1.4.0 → 1.4.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aikdna/kdna-studio-core",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "Studio-compatible authoring kernel for Human Lock, compile, and export of trusted .kdna assets.",
5
5
  "type": "commonjs",
6
6
  "main": "src/index.js",
@@ -42,15 +42,24 @@ function canonicalizeJson(name, content) {
42
42
  delete copy.asset_digest;
43
43
  delete copy.container_sha256;
44
44
  delete copy.content_digest;
45
+ if (copy.authoring && typeof copy.authoring === 'object') {
46
+ const auth = { ...copy.authoring };
47
+ delete auth.content_digest;
48
+ copy.authoring = auth;
49
+ }
45
50
  return stableStringify(copy);
46
51
  }
47
52
  return stableStringify(obj);
48
53
  }
49
54
 
50
55
  function computeContentDigest(files) {
51
- const excluded = new Set(['signature.json', '.DS_Store']);
56
+ // Content digest covers canonical judgment content + public asset metadata.
57
+ // Reports and build-receipt are build evidence, not content — they change with
58
+ // every build and would cause self-referencing if included.
59
+ const excluded = new Set(['signature.json', '.DS_Store', 'build-receipt.json']);
52
60
  const payload = Object.keys(files)
53
61
  .filter(name => !excluded.has(name))
62
+ .filter(name => !name.startsWith('reports/'))
54
63
  .sort()
55
64
  .map(name => {
56
65
  let content = files[name];