@kungfu-tech/buildchain 2.14.3 → 2.14.4-alpha.1

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.
Files changed (37) hide show
  1. package/actions/promote-buildchain-ref/README.md +8 -0
  2. package/bin/buildchain.mjs +4 -0
  3. package/dist/site/buildchain-contract.json +39 -25
  4. package/dist/site/buildchain-site.json +26 -26
  5. package/dist/site/capability-registry.json +1 -1
  6. package/dist/site/controller-registry.json +28 -4
  7. package/dist/site/kfd-claims.json +24 -6
  8. package/dist/site/kfd-upstream-aggregate.json +1 -1
  9. package/dist/site/manual-registry.json +6 -6
  10. package/dist/site/node-api-registry.json +20 -7
  11. package/dist/site/page-registry.json +16 -16
  12. package/dist/site/public-surface-audit.json +11 -5
  13. package/dist/site/publication-registry.json +4 -4
  14. package/dist/site/release-passport-check-manifest.json +1 -0
  15. package/dist/site/release-provenance.json +1 -0
  16. package/dist/site/schemas/release-passport-v1.schema.json +3 -0
  17. package/dist/site/site-manifest.json +10 -10
  18. package/dist/site/workflow-registry.json +9 -3
  19. package/docs/MAP.md +1 -0
  20. package/docs/cli.md +7 -0
  21. package/docs/lifecycle-protocol.md +14 -0
  22. package/docs/release-governance.md +10 -1
  23. package/docs/release-passport.md +21 -0
  24. package/docs/versioning.md +1 -0
  25. package/package.json +2 -1
  26. package/packages/core/README.md +2 -0
  27. package/packages/core/anchored-version-material.js +281 -0
  28. package/packages/core/buildchain-config.js +68 -0
  29. package/packages/core/buildchain-contract.js +4 -0
  30. package/packages/core/controller-evidence.js +30 -4
  31. package/packages/core/index.js +6 -0
  32. package/packages/core/release-passport-contract.js +2 -0
  33. package/packages/core/release-passport.js +186 -1
  34. package/scripts/anchored-version-material.mjs +42 -0
  35. package/scripts/check-inventory.mjs +6 -0
  36. package/scripts/generate-site-bundle.mjs +1 -0
  37. package/scripts/stable-candidate-patrol.mjs +55 -6
@@ -319,6 +319,14 @@ product-owned `release-passport-kfd-3-artifact-verify-command` such as
319
319
  `kungfu agent verify --json`. Buildchain compares declared shipped public
320
320
  surfaces with artifact-exposed public surfaces and writes the result under the
321
321
  KFD-provided `kfd-3` passport section.
322
+ Set `release-passport-invariant-passport-jsons` to one or more product-owned
323
+ invariant Passport paths, or set `release-passport-invariant-passport-command`
324
+ to a command that emits one canonical Passport JSON document. Buildchain does
325
+ not reinterpret product invariants: it verifies the declared semantic root,
326
+ requires a `verified` verdict, complete platform coverage, a clean exact source
327
+ revision, and then binds the result into `buildchain.release.json`. Missing,
328
+ stale, falsified, incomplete, dirty, or tampered Passport evidence fails the
329
+ release transaction closed.
322
330
  Buildchain's own release workflow sets `release-passport-buildchain-self-kfd:
323
331
  "true"`. In that mode the action generates Buildchain-owned KFD-1/2/3 witnesses
324
332
  inside the final version-state workspace, after the release transaction has
@@ -153,6 +153,8 @@ function usage() {
153
153
  [--kfd-3-prebuild-witness-json <json-or-path>]...
154
154
  [--kfd-3-artifact-witness-json <json-or-path>]...
155
155
  [--kfd-3-artifact-verify-cmd <command>]
156
+ [--invariant-passport-json <json-or-path>]...
157
+ [--invariant-passport-cmd <command>]
156
158
  [--base-passport-json <json-or-path>] [--require-base-kfd]
157
159
  [--release-extra-json <json-or-path>]
158
160
  [--publish-json <json-or-path>] [--output-dir <dir>] [--json]
@@ -1773,6 +1775,8 @@ async function main(argv = process.argv.slice(2)) {
1773
1775
  kfd3PrebuildWitnessJsons: readRepeatedFlag(collectArgs, "kfd-3-prebuild-witness-json"),
1774
1776
  kfd3ArtifactWitnessJsons: readRepeatedFlag(collectArgs, "kfd-3-artifact-witness-json"),
1775
1777
  kfd3ArtifactVerifyCommand: readFlag(collectArgs, "kfd-3-artifact-verify-cmd", ""),
1778
+ invariantPassportJsons: readRepeatedFlag(collectArgs, "invariant-passport-json"),
1779
+ invariantPassportCommand: readFlag(collectArgs, "invariant-passport-cmd", ""),
1776
1780
  basePassportJson: readFlag(collectArgs, "base-passport-json", ""),
1777
1781
  requireBaseKfd: readBooleanFlag(collectArgs, "require-base-kfd"),
1778
1782
  releaseJsonExtra: readFlag(collectArgs, "release-extra-json", ""),
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "2.14.3",
7
+ "version": "2.14.4-alpha.1",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v2",
@@ -50,7 +50,7 @@
50
50
  "retryable GitHub fallback fetches use a bounded attempt budget before exact source SHA and tree verification"
51
51
  ],
52
52
  "breakingDigest": "sha256:a6a35370d6b0d0f46e1b2712dcc01961fe53c2febde95409a27a485c10a36650",
53
- "auditDigest": "sha256:18d0ab6f916258871d45e92fa28597f590efbac0a0610f9bf7585472a5126307"
53
+ "auditDigest": "sha256:8bcdb5e04678bcfc17be4576bc444308756bcd84d671f2ba7fc76cade3004d2b"
54
54
  },
55
55
  {
56
56
  "contractVersion": 1,
@@ -127,6 +127,8 @@
127
127
  "release-passport-kfd-3-prebuild-witness-jsons",
128
128
  "release-passport-kfd-3-artifact-witness-jsons",
129
129
  "release-passport-kfd-3-artifact-verify-command",
130
+ "release-passport-invariant-passport-jsons",
131
+ "release-passport-invariant-passport-command",
130
132
  "buildchain-contract-lock-path",
131
133
  "buildchain-contract-drift-issue-mode",
132
134
  "github-release",
@@ -168,7 +170,7 @@
168
170
  "GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
169
171
  ],
170
172
  "breakingDigest": "sha256:1f476fb9a4854b362c4b24cef89a3c7675d7d63baf3bc828d7b8ae7d2787cead",
171
- "auditDigest": "sha256:4a0f29c9c33ef97609ca0e2244f79a36307de2c3bbb42f1515b358d2f4a2caa2"
173
+ "auditDigest": "sha256:7a6f5954ee3d0ec949b4af945e05df514dca23016fab91b6329fcb71ce37cc6b"
172
174
  },
173
175
  {
174
176
  "contractVersion": 1,
@@ -210,7 +212,7 @@
210
212
  "promotion reuses PR-stage release-candidate artifacts and does not run the heavy native build matrix"
211
213
  ],
212
214
  "breakingDigest": "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0",
213
- "auditDigest": "sha256:3c2594dccab4bf7836a28e1aca5189554618eb51bd73e63df5bc28f232b214db"
215
+ "auditDigest": "sha256:0588d4762f5e8f4d73ed15bd19c5d5fb03302942ce6f1f6c2e82f341618e4afc"
214
216
  },
215
217
  {
216
218
  "contractVersion": 1,
@@ -286,6 +288,8 @@
286
288
  "release-passport-kfd-3-prebuild-witness-jsons",
287
289
  "release-passport-kfd-3-artifact-witness-jsons",
288
290
  "release-passport-kfd-3-artifact-verify-command",
291
+ "release-passport-invariant-passport-jsons",
292
+ "release-passport-invariant-passport-command",
289
293
  "github-release",
290
294
  "github-release-title",
291
295
  "github-release-notes"
@@ -320,7 +324,7 @@
320
324
  "semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata derived from the public release tag"
321
325
  ],
322
326
  "breakingDigest": "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874",
323
- "auditDigest": "sha256:5b365ef8afa4c5d88e73d22415929f4123da0ea3b33374f465a1c8f22aaf2785"
327
+ "auditDigest": "sha256:ff220542fd1cb21fc4780d0bb31eb9f78d44d70746b6c4364483e104b48ae083"
324
328
  },
325
329
  {
326
330
  "contractVersion": 1,
@@ -379,7 +383,7 @@
379
383
  "release-state SHA is recorded as a durable audit entrance"
380
384
  ],
381
385
  "breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
382
- "auditDigest": "sha256:05abae7c71444b0c48c097a4363218ed3ae7d652677588f1cf2c457a358cc4c1"
386
+ "auditDigest": "sha256:dab5375c40b77245b04a5d86667ea1608a24f4a8ff804d301f05e7345605ce33"
383
387
  },
384
388
  {
385
389
  "contractVersion": 1,
@@ -428,7 +432,7 @@
428
432
  "prose-only public claims downgrade the release trust passport audit"
429
433
  ],
430
434
  "breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
431
- "auditDigest": "sha256:05abae7c71444b0c48c097a4363218ed3ae7d652677588f1cf2c457a358cc4c1"
435
+ "auditDigest": "sha256:dab5375c40b77245b04a5d86667ea1608a24f4a8ff804d301f05e7345605ce33"
432
436
  },
433
437
  {
434
438
  "contractVersion": 1,
@@ -488,7 +492,7 @@
488
492
  "README badge block checks and writes are generated from machine-readable repository facts"
489
493
  ],
490
494
  "breakingDigest": "sha256:90a73892b2d6c214048448d5f45df75639bdf7b7e8fefd9c596e04b087407bcc",
491
- "auditDigest": "sha256:20d60eacea93a6b318ff712e30e5db9aa109d92cb13923268bbfa2f4f3cdf51a"
495
+ "auditDigest": "sha256:e4f4a0f65b78ad54c6121be6262adae7b7ca6b3941ec51a6ad502d8515333bbe"
492
496
  },
493
497
  {
494
498
  "contractVersion": 1,
@@ -578,7 +582,7 @@
578
582
  "manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
579
583
  ],
580
584
  "breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
581
- "auditDigest": "sha256:e0770d43da650319a70d83cdb52f79e70ed0a9d31e103a28a1f8423a52aa1539"
585
+ "auditDigest": "sha256:25707ef1aa3e1b94c417e79825384970f470dae29281a90ff3add588c18d1a4c"
582
586
  },
583
587
  {
584
588
  "contractVersion": 1,
@@ -600,7 +604,7 @@
600
604
  "agents can discover supported Node APIs without importing internal file paths"
601
605
  ],
602
606
  "breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
603
- "auditDigest": "sha256:7d74190fd37b62acc862e5a50fa01f2888605b60404f600548a3bb32c0d8b93f"
607
+ "auditDigest": "sha256:7c49ae1623c01bc3670df4bc61e7df1d080218dc6ecab23406da06a91ab83388"
604
608
  },
605
609
  {
606
610
  "contractVersion": 1,
@@ -651,7 +655,7 @@
651
655
  "controllerDescriptor": {
652
656
  "contract": "buildchain.controller-descriptor/v1",
653
657
  "digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48",
654
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
658
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
655
659
  "inputClassifications": {
656
660
  "buildchain-ref": {
657
661
  "classification": "included",
@@ -797,8 +801,8 @@
797
801
  ],
798
802
  "controllerDescriptor": {
799
803
  "contract": "buildchain.controller-descriptor/v1",
800
- "digest": "sha256:367be236280f2597ffefc49680feb106b4cf9e8f5fb9420713351f075a168c4a",
801
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
804
+ "digest": "sha256:0dd7ebe7b7543ca4f295e0634ed1434bb4571d2ffb2f4b6ab25794eb2ee5c431",
805
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
802
806
  "inputClassifications": {
803
807
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
804
808
  "classification": "redacted",
@@ -1057,7 +1061,7 @@
1057
1061
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1058
1062
  ],
1059
1063
  "breakingDigest": "sha256:e264a79f9f399038c2fcfd21e4168c68c2e1485ee5c651c02242a02b622ac2be",
1060
- "auditDigest": "sha256:18d0ab6f916258871d45e92fa28597f590efbac0a0610f9bf7585472a5126307"
1064
+ "auditDigest": "sha256:8bcdb5e04678bcfc17be4576bc444308756bcd84d671f2ba7fc76cade3004d2b"
1061
1065
  },
1062
1066
  {
1063
1067
  "contractVersion": 1,
@@ -1164,7 +1168,7 @@
1164
1168
  "controllerDescriptor": {
1165
1169
  "contract": "buildchain.controller-descriptor/v1",
1166
1170
  "digest": "sha256:2e113607af3cb0a17b4da64b8758652a4bee4a162656ce7256a8e06de3d4cf2f",
1167
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
1171
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
1168
1172
  "inputClassifications": {
1169
1173
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
1170
1174
  "classification": "redacted",
@@ -1494,7 +1498,7 @@
1494
1498
  "controllerDescriptor": {
1495
1499
  "contract": "buildchain.controller-descriptor/v1",
1496
1500
  "digest": "sha256:29569f4b754595792a16742d1c4c63838b54601674a2cb6c96261a72c962dece",
1497
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
1501
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
1498
1502
  "inputClassifications": {
1499
1503
  "artifact-name": {
1500
1504
  "classification": "included",
@@ -1665,7 +1669,7 @@
1665
1669
  "controllerDescriptor": {
1666
1670
  "contract": "buildchain.controller-descriptor/v1",
1667
1671
  "digest": "sha256:7e6283c8fbeab7a680bae57c9ab9c8eb94aab7400d3ee01c5b9dfdd03f149edb",
1668
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
1672
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
1669
1673
  "inputClassifications": {
1670
1674
  "artifact-path": {
1671
1675
  "classification": "digest-only",
@@ -1901,7 +1905,7 @@
1901
1905
  "controllerDescriptor": {
1902
1906
  "contract": "buildchain.controller-descriptor/v1",
1903
1907
  "digest": "sha256:6b132790b9798e8a5dfbe095701d8e024c160a08bc7c4bd477ee79feef7a9cfd",
1904
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
1908
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
1905
1909
  "inputClassifications": {
1906
1910
  "artifact-name": {
1907
1911
  "classification": "included",
@@ -2082,7 +2086,7 @@
2082
2086
  "controllerDescriptor": {
2083
2087
  "contract": "buildchain.controller-descriptor/v1",
2084
2088
  "digest": "sha256:0613ea545fe2d630f34e665c8e6fe99df3f5333d75051a7176e9cf991e494f59",
2085
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
2089
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
2086
2090
  "inputClassifications": {
2087
2091
  "artifact-name": {
2088
2092
  "classification": "included",
@@ -2349,6 +2353,8 @@
2349
2353
  "release-passport",
2350
2354
  "release-passport-buildchain-self-kfd",
2351
2355
  "release-passport-impact-json",
2356
+ "release-passport-invariant-passport-command",
2357
+ "release-passport-invariant-passport-jsons",
2352
2358
  "release-passport-kfd-1-witness-jsons",
2353
2359
  "release-passport-kfd-2-claim-jsons",
2354
2360
  "release-passport-kfd-3-artifact-verify-command",
@@ -2366,8 +2372,8 @@
2366
2372
  ],
2367
2373
  "controllerDescriptor": {
2368
2374
  "contract": "buildchain.controller-descriptor/v1",
2369
- "digest": "sha256:6a531c572b59eb3b8aa5d47df3658f8f438a0d026468dd13b1a6642a3ea8c425",
2370
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
2375
+ "digest": "sha256:fe4bb0bd543e7db7ef38950354764608639f5b11677a4b8e02caa097900d6898",
2376
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
2371
2377
  "inputClassifications": {
2372
2378
  "BUILDCHAIN_ISSUE_APP_ID": {
2373
2379
  "classification": "redacted",
@@ -2621,6 +2627,14 @@
2621
2627
  "classification": "digest-only",
2622
2628
  "source": "workflow-call-input"
2623
2629
  },
2630
+ "release-passport-invariant-passport-command": {
2631
+ "classification": "digest-only",
2632
+ "source": "workflow-call-input"
2633
+ },
2634
+ "release-passport-invariant-passport-jsons": {
2635
+ "classification": "digest-only",
2636
+ "source": "workflow-call-input"
2637
+ },
2624
2638
  "release-passport-kfd-1-witness-jsons": {
2625
2639
  "classification": "digest-only",
2626
2640
  "source": "workflow-call-input"
@@ -2686,7 +2700,7 @@
2686
2700
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
2687
2701
  ],
2688
2702
  "breakingDigest": "sha256:015d8de793adbd4c539416be7d7512e18cc92097e629b0203fa06d2c183e98bd",
2689
- "auditDigest": "sha256:3c2594dccab4bf7836a28e1aca5189554618eb51bd73e63df5bc28f232b214db"
2703
+ "auditDigest": "sha256:0588d4762f5e8f4d73ed15bd19c5d5fb03302942ce6f1f6c2e82f341618e4afc"
2690
2704
  },
2691
2705
  {
2692
2706
  "contractVersion": 1,
@@ -2746,8 +2760,8 @@
2746
2760
  ],
2747
2761
  "controllerDescriptor": {
2748
2762
  "contract": "buildchain.controller-descriptor/v1",
2749
- "digest": "sha256:ede9eba43b87cf19330d5f8203a1585bf066aa9affc9cac0f43230ac76b8580d",
2750
- "registryDigest": "sha256:5f771d5b2f481a28afc48f516685f50985c1d51391857cdf04e3238c271fecc8",
2763
+ "digest": "sha256:f97656a8df0758c8e404d5b7c387529256a1ec45d1748f8efb6847a3256b1216",
2764
+ "registryDigest": "sha256:89d6ba121382c2ba6c81cf1170e5c2e66256d893ee3fbb131af93a018950b891",
2751
2765
  "inputClassifications": {
2752
2766
  "buildchain-ref": {
2753
2767
  "classification": "included",
@@ -2830,5 +2844,5 @@
2830
2844
  }
2831
2845
  ],
2832
2846
  "compatibilityDigest": "sha256:edc3653e5cb34efd97065a6941db16140bbf375a565bbcf329d9d795bb07676f",
2833
- "contractDigest": "sha256:53d4d8d89dbccb802e95c3b0b3bef2c857fccff136fc419cd70c6fb450c516dd"
2847
+ "contractDigest": "sha256:10b01765e6c0a6e6d350c6a164f36f0b7a9618e935b514788e55a51083028577"
2834
2848
  }