@kungfu-tech/buildchain 3.0.7-alpha.0 → 3.0.7

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 (67) hide show
  1. package/actions/promote-buildchain-ref/README.md +10 -0
  2. package/contracts/auditable-demo-scenario-v1.schema.json +1 -1
  3. package/contracts/engineering-housekeeper-v1.schema.json +143 -0
  4. package/contracts/fixtures/engineering-housekeeper-v1/cases.json +68 -0
  5. package/dist/site/buildchain-contract.json +24 -24
  6. package/dist/site/buildchain-site.json +91 -30
  7. package/dist/site/capability-registry.json +3 -3
  8. package/dist/site/controller-registry.json +6 -2
  9. package/dist/site/kfd-claims.json +122 -11
  10. package/dist/site/kfd-upstream-aggregate.json +1 -1
  11. package/dist/site/manual-registry.json +8 -7
  12. package/dist/site/node-api-registry.json +683 -105
  13. package/dist/site/page-registry.json +80 -19
  14. package/dist/site/public-surface-audit.json +98 -7
  15. package/dist/site/publication-authority-registry.json +81 -1
  16. package/dist/site/publication-registry.json +4 -4
  17. package/dist/site/release-provenance.json +2 -0
  18. package/dist/site/site-manifest.json +11 -11
  19. package/dist/site/workflow-registry.json +119 -2
  20. package/docs/MAP.md +1 -0
  21. package/docs/auditable-demo.md +2 -2
  22. package/docs/dev-delivery-warrant.md +49 -4
  23. package/docs/engineering-housekeeper.md +138 -0
  24. package/docs/lifecycle-protocol.md +4 -2
  25. package/docs/node-api-reference.md +277 -212
  26. package/docs/release-governance.md +17 -2
  27. package/docs/release-tail-provider-plane.md +1 -1
  28. package/docs/reusable-build-surface.md +11 -0
  29. package/package.json +4 -1
  30. package/packages/core/artifact-signing.js +61 -0
  31. package/packages/core/buildchain-config.js +66 -6
  32. package/packages/core/buildchain-publication-authority.js +4 -0
  33. package/packages/core/controller-evidence.js +2 -1
  34. package/packages/core/dev-delivery-warrant-cancellation.js +1 -0
  35. package/packages/core/dev-delivery-warrant-shadow.js +502 -0
  36. package/packages/core/dev-delivery-warrant.js +15 -6
  37. package/packages/core/diagnostics.js +8 -3
  38. package/packages/core/engineering-housekeeper-github-client.js +222 -0
  39. package/packages/core/engineering-housekeeper-github.js +501 -0
  40. package/packages/core/engineering-housekeeper.js +259 -0
  41. package/packages/core/index.js +3 -0
  42. package/packages/core/kfd-gate.js +45 -15
  43. package/packages/core/publication-rehearsal-runtime.js +13 -1
  44. package/packages/core/release-passport.js +130 -20
  45. package/scripts/assemble-self-publication-admission.mjs +1 -1
  46. package/scripts/audit-publication-control-plane.mjs +1 -1
  47. package/scripts/auditable-demo-bundle-verification.mjs +2 -3
  48. package/scripts/auditable-demo-platform.mjs +2 -2
  49. package/scripts/auditable-demo-renditions.mjs +1 -1
  50. package/scripts/auditable-demo.mjs +2 -2
  51. package/scripts/build-contract-core.mjs +8 -3
  52. package/scripts/build-standalone-binary.mjs +14 -3
  53. package/scripts/check-inventory.mjs +3 -1
  54. package/scripts/dev-delivery-warrant.mjs +31 -4
  55. package/scripts/dev-pr-auto-merge.mjs +30 -4
  56. package/scripts/dev-pr-delivery-warrant.mjs +50 -0
  57. package/scripts/engineering-housekeeper-workflow.mjs +394 -0
  58. package/scripts/generate-site-bundle.mjs +23 -4
  59. package/scripts/inspect-artifact-signing-requests.mjs +6 -0
  60. package/scripts/materialize-self-release-candidate-version.mjs +6 -0
  61. package/scripts/publication-commit-evidence.mjs +69 -23
  62. package/scripts/release-candidate-resolver.mjs +16 -10
  63. package/scripts/resume-from-candidate-run.mjs +123 -9
  64. package/scripts/seal-artifact-signing-requests.mjs +6 -0
  65. package/scripts/site-capability-metadata.mjs +2 -0
  66. package/scripts/web-surface-core.mjs +8 -2
  67. package/scripts/workflow-call-contract.mjs +1 -1
@@ -328,6 +328,7 @@ BUILDCHAIN_SEALED_NPM_TARBALL
328
328
  BUILDCHAIN_SEALED_NPM_INTEGRITY
329
329
  BUILDCHAIN_SEALED_NPM_SHA256
330
330
  BUILDCHAIN_REQUIRED_ARTIFACTS
331
+ BUILDCHAIN_PUBLISH_REQUIRED_ARTIFACTS_PATH
331
332
  ```
332
333
 
333
334
  `BUILDCHAIN_REQUIRED_ARTIFACTS` is the normalized requirement array after the
@@ -337,6 +338,10 @@ declared provenance to the current release coordinate. Template expansion
337
338
  happens after exact version selection; ambiguous or unsupported templates fail
338
339
  before `lifecycle.publish`. Requirement descriptors may omit `digest`; final
339
340
  publish evidence may not.
341
+ The action also writes that normalized array to
342
+ `BUILDCHAIN_PUBLISH_REQUIRED_ARTIFACTS_PATH`. To stay below operating-system
343
+ process environment limits, large arrays are available through the file path
344
+ only; small arrays retain the inline variable for compatibility.
340
345
 
341
346
  The action outputs `transaction-id`, `transaction-state`,
342
347
  `transaction-publication-state`, `transaction-sealed-bundle-root`,
@@ -494,6 +499,11 @@ governance semantics:
494
499
  - alpha promotion must come from a merged same-repository PR
495
500
  `dev/vN/vN.M -> alpha/vN/vN.M`, or from a strict same-line
496
501
  `publish-gate/alpha/vN/vN.M/<version> -> alpha/vN/vN.M` source-lock PR;
502
+ an immutable recovery receipt may instead admit the exact current alpha
503
+ channel SHA only when its sealed candidate tree is byte-equivalent and its
504
+ publication version is bound by that receipt; when administrative protection
505
+ details are hidden, the provider-visible protected head and required check
506
+ must still match that exact recovered SHA;
497
507
  - release promotion must come from a merged same-repository PR
498
508
  `alpha/vN/vN.M -> release/vN/vN.M`, or from a strict same-line
499
509
  `publish-gate/release/vN/vN.M/<version> -> release/vN/vN.M` source-lock PR;
@@ -112,7 +112,7 @@
112
112
  "renditions": {
113
113
  "const": [
114
114
  {"id": "1080p", "role": "primary", "columns": 150, "rows": 36, "width": 1920, "height": 1080},
115
- {"id": "720p", "role": "responsive", "columns": 100, "rows": 28, "width": 1280, "height": 720}
115
+ {"id": "720p", "role": "responsive", "columns": 150, "rows": 28, "width": 1280, "height": 720}
116
116
  ]
117
117
  },
118
118
  "demos": {
@@ -0,0 +1,143 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.kungfu.ai/contracts/engineering-housekeeper-v1.schema.json",
4
+ "title": "Buildchain Engineering Housekeeper contract",
5
+ "oneOf": [{ "$ref": "#/$defs/plan" }, { "$ref": "#/$defs/receipt" }],
6
+ "$defs": {
7
+ "root": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
8
+ "oid": { "type": "string", "pattern": "^[0-9a-f]{40,64}$" },
9
+ "target": {
10
+ "type": "object",
11
+ "required": ["name", "headOid"],
12
+ "properties": {
13
+ "name": { "type": "string", "minLength": 1 },
14
+ "headOid": { "$ref": "#/$defs/oid" }
15
+ },
16
+ "additionalProperties": false
17
+ },
18
+ "policy": {
19
+ "type": "object",
20
+ "required": ["protectedPatterns", "retainedPatterns", "pullRequests"],
21
+ "properties": {
22
+ "protectedPatterns": {
23
+ "type": "array",
24
+ "items": { "type": "string" },
25
+ "uniqueItems": true
26
+ },
27
+ "retainedPatterns": {
28
+ "type": "array",
29
+ "items": { "type": "string" },
30
+ "uniqueItems": true
31
+ },
32
+ "pullRequests": {
33
+ "type": "object",
34
+ "required": ["reportStale", "label", "autoClose"],
35
+ "properties": {
36
+ "reportStale": { "type": "boolean" },
37
+ "label": { "type": "string" },
38
+ "autoClose": { "const": false }
39
+ },
40
+ "additionalProperties": false
41
+ }
42
+ },
43
+ "additionalProperties": false
44
+ },
45
+ "inventory": {
46
+ "type": "object",
47
+ "required": ["kind", "repository", "headOid", "reasonCodes"],
48
+ "properties": {
49
+ "kind": { "enum": ["branch", "pull-request"] },
50
+ "repository": { "type": "string", "pattern": "^[^/]+/[^/]+$" },
51
+ "name": { "type": "string" },
52
+ "number": { "type": "integer", "minimum": 1 },
53
+ "headRepository": { "type": "string" },
54
+ "headRef": { "type": "string" },
55
+ "headOid": { "$ref": "#/$defs/oid" },
56
+ "target": { "$ref": "#/$defs/target" },
57
+ "eligible": { "type": "boolean" },
58
+ "decision": { "enum": ["delete", "retain"] },
59
+ "state": { "enum": ["open", "draft", "closed", "merged"] },
60
+ "actions": {
61
+ "type": "array",
62
+ "items": { "enum": ["report", "label"] },
63
+ "uniqueItems": true
64
+ },
65
+ "reasonCodes": {
66
+ "type": "array",
67
+ "minItems": 1,
68
+ "items": { "type": "string" },
69
+ "uniqueItems": true
70
+ }
71
+ },
72
+ "additionalProperties": false
73
+ },
74
+ "action": {
75
+ "type": "object",
76
+ "required": ["kind"],
77
+ "properties": {
78
+ "kind": {
79
+ "enum": ["delete-branch", "report-pull-request", "label-pull-request"]
80
+ },
81
+ "name": { "type": "string", "minLength": 1 },
82
+ "number": { "type": "integer", "minimum": 1 },
83
+ "expectedHeadOid": { "$ref": "#/$defs/oid" },
84
+ "targetName": { "type": "string", "minLength": 1 },
85
+ "expectedTargetHeadOid": { "$ref": "#/$defs/oid" }
86
+ },
87
+ "additionalProperties": false
88
+ },
89
+ "plan": {
90
+ "type": "object",
91
+ "required": [
92
+ "contract",
93
+ "schemaVersion",
94
+ "mode",
95
+ "repository",
96
+ "target",
97
+ "observedAt",
98
+ "policy",
99
+ "inventory",
100
+ "actions",
101
+ "planRoot"
102
+ ],
103
+ "properties": {
104
+ "contract": { "const": "kungfu-buildchain-engineering-housekeeper/v1" },
105
+ "schemaVersion": { "const": 1 },
106
+ "mode": { "const": "plan" },
107
+ "repository": { "type": "string", "pattern": "^[^/]+/[^/]+$" },
108
+ "target": { "$ref": "#/$defs/target" },
109
+ "observedAt": { "type": "string", "format": "date-time" },
110
+ "policy": { "$ref": "#/$defs/policy" },
111
+ "inventory": {
112
+ "type": "array",
113
+ "items": { "$ref": "#/$defs/inventory" }
114
+ },
115
+ "actions": { "type": "array", "items": { "$ref": "#/$defs/action" } },
116
+ "planRoot": { "$ref": "#/$defs/root" }
117
+ },
118
+ "additionalProperties": false
119
+ },
120
+ "receipt": {
121
+ "type": "object",
122
+ "required": [
123
+ "contract",
124
+ "schemaVersion",
125
+ "mode",
126
+ "planRoot",
127
+ "appliedAt",
128
+ "outcomes",
129
+ "receiptRoot"
130
+ ],
131
+ "properties": {
132
+ "contract": { "const": "kungfu-buildchain-engineering-housekeeper/v1" },
133
+ "schemaVersion": { "const": 1 },
134
+ "mode": { "const": "receipt" },
135
+ "planRoot": { "$ref": "#/$defs/root" },
136
+ "appliedAt": { "type": "string", "format": "date-time" },
137
+ "outcomes": { "type": "array", "items": { "type": "object" } },
138
+ "receiptRoot": { "$ref": "#/$defs/root" }
139
+ },
140
+ "additionalProperties": false
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "contract": "kungfu-buildchain-engineering-housekeeper-fixtures/v1",
3
+ "cases": [
4
+ {
5
+ "id": "active",
6
+ "branch": {
7
+ "name": "feature/active",
8
+ "ancestry": "ancestor",
9
+ "openPullRequestNumbers": [11]
10
+ },
11
+ "eligible": false,
12
+ "reason": "branch.open-pr-head"
13
+ },
14
+ {
15
+ "id": "merged",
16
+ "branch": {
17
+ "name": "feature/merged",
18
+ "ancestry": "ancestor",
19
+ "openPullRequestNumbers": []
20
+ },
21
+ "eligible": true,
22
+ "reason": "eligible.merged-branch"
23
+ },
24
+ {
25
+ "id": "stale",
26
+ "branch": {
27
+ "name": "feature/stale",
28
+ "ancestry": "diverged",
29
+ "openPullRequestNumbers": []
30
+ },
31
+ "eligible": false,
32
+ "reason": "branch.not-merged"
33
+ },
34
+ {
35
+ "id": "advanced",
36
+ "revalidation": "head",
37
+ "reason": "branch.head-advanced"
38
+ },
39
+ { "id": "renamed", "revalidation": "name", "reason": "branch.renamed" },
40
+ {
41
+ "id": "protected",
42
+ "branch": {
43
+ "name": "dev/v3/v3.0",
44
+ "ancestry": "ancestor",
45
+ "openPullRequestNumbers": []
46
+ },
47
+ "eligible": false,
48
+ "reason": "branch.protected"
49
+ },
50
+ {
51
+ "id": "forked",
52
+ "branch": {
53
+ "name": "feature/forked",
54
+ "ancestry": "ancestor",
55
+ "openPullRequestNumbers": [],
56
+ "sourceRepository": "fork/buildchain"
57
+ },
58
+ "eligible": false,
59
+ "reason": "branch.cross-repository"
60
+ },
61
+ {
62
+ "id": "permission-denied",
63
+ "outcome": "denied",
64
+ "reason": "branch.permission-denied"
65
+ },
66
+ { "id": "repeated", "replay": true, "reason": "replay.already-applied" }
67
+ ]
68
+ }
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "3.0.7-alpha.0",
7
+ "version": "3.0.7",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v3",
@@ -52,7 +52,7 @@
52
52
  "retryable GitHub fallback fetches use a bounded attempt budget before exact source SHA and tree verification"
53
53
  ],
54
54
  "breakingDigest": "sha256:dfbedd543ae0c067982b5c8c02d98dd2f7f7df88752be97fb330da6b0ba30faa",
55
- "auditDigest": "sha256:ee92538b49ee91606c21f54f2ae1e5165228ff4dc7c64d8b8a6e073b8e033365"
55
+ "auditDigest": "sha256:8ea77f06f35c5ea0eae0a06625e397c49dcf9863d05d05dcf4d2d80369f58dff"
56
56
  },
57
57
  {
58
58
  "contractVersion": 1,
@@ -249,7 +249,7 @@
249
249
  "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0"
250
250
  ],
251
251
  "breakingDigest": "sha256:9db8dd07152855d03ff30f9c571438593c689d3e8139fa45431d000f548242f5",
252
- "auditDigest": "sha256:0ec19f4776537254017dbc30e35dbc10dc3fdf3c3c747d3c18beb0389fc9db7f"
252
+ "auditDigest": "sha256:61a7d1f319232454d79c96b277f9feb5e0b8b7842f96985dc8bdf89e3a57e3fa"
253
253
  },
254
254
  {
255
255
  "contractVersion": 1,
@@ -476,7 +476,7 @@
476
476
  "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874"
477
477
  ],
478
478
  "breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda",
479
- "auditDigest": "sha256:7b1fa951846a7386261e1c52d1191b17421a0dd5a60edee675926dfa9c085126"
479
+ "auditDigest": "sha256:b86906f63640ffdbae3fcd9eec4c4b234c8e8e6e906b7857d576b9d1cf5c78be"
480
480
  },
481
481
  {
482
482
  "contractVersion": 1,
@@ -591,7 +591,7 @@
591
591
  "release-state SHA is recorded as a durable audit entrance"
592
592
  ],
593
593
  "breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
594
- "auditDigest": "sha256:7d91592c518277646154ef5c7fde27d7101c87a0d7f69c90911ac0c7583c20ec"
594
+ "auditDigest": "sha256:dfebb115f842e83a189868c3ef06fa72e5e8043327e5f1c7d5d918f87cd2c74e"
595
595
  },
596
596
  {
597
597
  "contractVersion": 1,
@@ -616,7 +616,7 @@
616
616
  "KFD self contract witnesses record source/artifact hashes, self-hosting boundary, and responsibility state"
617
617
  ],
618
618
  "breakingDigest": "sha256:f46c1f67b94957ad956cf70db59a73fd5690bd67c91edf9c2d0eb8f3d1e3cf8d",
619
- "auditDigest": "sha256:f31691f36f2a7930798805cb470aff7acd3503799cb72b954c7787b1d8b3eb31"
619
+ "auditDigest": "sha256:0ee7f76d04f9b77a63ec2cc12cec8e804da47b8ef81075982feb351346ac3d5b"
620
620
  },
621
621
  {
622
622
  "contractVersion": 1,
@@ -640,7 +640,7 @@
640
640
  "prose-only public claims downgrade the release trust passport audit"
641
641
  ],
642
642
  "breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
643
- "auditDigest": "sha256:7d91592c518277646154ef5c7fde27d7101c87a0d7f69c90911ac0c7583c20ec"
643
+ "auditDigest": "sha256:dfebb115f842e83a189868c3ef06fa72e5e8043327e5f1c7d5d918f87cd2c74e"
644
644
  },
645
645
  {
646
646
  "contractVersion": 1,
@@ -669,7 +669,7 @@
669
669
  "KFD-3 passports expose releaseStatus, witness hashes, declared capability verification, reverse audit boundary, residual risk, and responsibility state"
670
670
  ],
671
671
  "breakingDigest": "sha256:33654f3444c893754aacc42dde3051f0a371bd17c6ef7c657c579a07159cd7c1",
672
- "auditDigest": "sha256:f31691f36f2a7930798805cb470aff7acd3503799cb72b954c7787b1d8b3eb31"
672
+ "auditDigest": "sha256:0ee7f76d04f9b77a63ec2cc12cec8e804da47b8ef81075982feb351346ac3d5b"
673
673
  },
674
674
  {
675
675
  "contractVersion": 1,
@@ -790,7 +790,7 @@
790
790
  "manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
791
791
  ],
792
792
  "breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
793
- "auditDigest": "sha256:441c5107570d729a6ec95d76a288a69d6119455baf44cfed48cae62625ca19c6"
793
+ "auditDigest": "sha256:6489e53ab9e207a89b8282de6d9e220fb0790282f03df9ef05a422d4ce864050"
794
794
  },
795
795
  {
796
796
  "contractVersion": 1,
@@ -812,7 +812,7 @@
812
812
  "agents can discover supported Node APIs without importing internal file paths"
813
813
  ],
814
814
  "breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
815
- "auditDigest": "sha256:a68025579bc0cb1e1bbd2db13bfddd9926891ba5eb6f981cc254a4af604cc869"
815
+ "auditDigest": "sha256:c1efa246a44ed993579047f8427f68c5ce8cb8d64b7c2df3eddd444c19d910aa"
816
816
  },
817
817
  {
818
818
  "contractVersion": 1,
@@ -863,7 +863,7 @@
863
863
  "controllerDescriptor": {
864
864
  "contract": "buildchain.controller-descriptor/v1",
865
865
  "digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48",
866
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
866
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
867
867
  "inputClassifications": {
868
868
  "buildchain-ref": {
869
869
  "classification": "included",
@@ -1045,8 +1045,8 @@
1045
1045
  ],
1046
1046
  "controllerDescriptor": {
1047
1047
  "contract": "buildchain.controller-descriptor/v1",
1048
- "digest": "sha256:9c0aacca910cef4619a797898ff5c24027c1583f84431a93a5efc854925326e7",
1049
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
1048
+ "digest": "sha256:f986e79241d831f027a0955a35c918f946989176c76555e20f156ed31fb10c94",
1049
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
1050
1050
  "inputClassifications": {
1051
1051
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
1052
1052
  "classification": "redacted",
@@ -1441,7 +1441,7 @@
1441
1441
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1442
1442
  ],
1443
1443
  "breakingDigest": "sha256:6b8d38e92b2c67b5bc83fae0a3fd95bfa47582fbc176e6cdeebe7630a57534cb",
1444
- "auditDigest": "sha256:ee92538b49ee91606c21f54f2ae1e5165228ff4dc7c64d8b8a6e073b8e033365"
1444
+ "auditDigest": "sha256:8ea77f06f35c5ea0eae0a06625e397c49dcf9863d05d05dcf4d2d80369f58dff"
1445
1445
  },
1446
1446
  {
1447
1447
  "contractVersion": 1,
@@ -1581,7 +1581,7 @@
1581
1581
  "controllerDescriptor": {
1582
1582
  "contract": "buildchain.controller-descriptor/v1",
1583
1583
  "digest": "sha256:48545554883888862984cdf1b6b4b56341531cdd6192600782a76b92ad22fd36",
1584
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
1584
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
1585
1585
  "inputClassifications": {
1586
1586
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
1587
1587
  "classification": "redacted",
@@ -2054,7 +2054,7 @@
2054
2054
  "controllerDescriptor": {
2055
2055
  "contract": "buildchain.controller-descriptor/v1",
2056
2056
  "digest": "sha256:8e42956a2c10fa109500e72b97994f06b3d22a19cc63a46f66410b2e81706e9d",
2057
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
2057
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
2058
2058
  "inputClassifications": {
2059
2059
  "artifact-name": {
2060
2060
  "classification": "included",
@@ -2271,7 +2271,7 @@
2271
2271
  "controllerDescriptor": {
2272
2272
  "contract": "buildchain.controller-descriptor/v1",
2273
2273
  "digest": "sha256:c5274b37f04d0054559fdc8698c51bd0f0d8ae470baf163e9caa7699aa970575",
2274
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
2274
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
2275
2275
  "inputClassifications": {
2276
2276
  "artifact-path": {
2277
2277
  "classification": "digest-only",
@@ -2515,7 +2515,7 @@
2515
2515
  "controllerDescriptor": {
2516
2516
  "contract": "buildchain.controller-descriptor/v1",
2517
2517
  "digest": "sha256:6b132790b9798e8a5dfbe095701d8e024c160a08bc7c4bd477ee79feef7a9cfd",
2518
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
2518
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
2519
2519
  "inputClassifications": {
2520
2520
  "artifact-name": {
2521
2521
  "classification": "included",
@@ -2697,7 +2697,7 @@
2697
2697
  "controllerDescriptor": {
2698
2698
  "contract": "buildchain.controller-descriptor/v1",
2699
2699
  "digest": "sha256:6d71409659fbf8543c7e520b0c493d8afe86bdf60286b860bb917f0041ebc173",
2700
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
2700
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
2701
2701
  "inputClassifications": {
2702
2702
  "artifact-name": {
2703
2703
  "classification": "included",
@@ -3029,7 +3029,7 @@
3029
3029
  "controllerDescriptor": {
3030
3030
  "contract": "buildchain.controller-descriptor/v1",
3031
3031
  "digest": "sha256:83bc2f7d57ad3500e0b2983314aa5fdaa0dff1f78ef011af94cde760b86a010f",
3032
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
3032
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
3033
3033
  "inputClassifications": {
3034
3034
  "BUILDCHAIN_ISSUE_APP_ID": {
3035
3035
  "classification": "redacted",
@@ -3520,7 +3520,7 @@
3520
3520
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
3521
3521
  ],
3522
3522
  "breakingDigest": "sha256:015d8de793adbd4c539416be7d7512e18cc92097e629b0203fa06d2c183e98bd",
3523
- "auditDigest": "sha256:0ec19f4776537254017dbc30e35dbc10dc3fdf3c3c747d3c18beb0389fc9db7f"
3523
+ "auditDigest": "sha256:61a7d1f319232454d79c96b277f9feb5e0b8b7842f96985dc8bdf89e3a57e3fa"
3524
3524
  },
3525
3525
  {
3526
3526
  "contractVersion": 1,
@@ -3585,7 +3585,7 @@
3585
3585
  "controllerDescriptor": {
3586
3586
  "contract": "buildchain.controller-descriptor/v1",
3587
3587
  "digest": "sha256:660579b5561e8e33375a3f3b1fefbb8a5bd8241a55ba43374d786fb772c24a12",
3588
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
3588
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
3589
3589
  "inputClassifications": {
3590
3590
  "agent-work-context-json": {
3591
3591
  "classification": "digest-only",
@@ -3720,7 +3720,7 @@
3720
3720
  "controllerDescriptor": {
3721
3721
  "contract": "buildchain.controller-descriptor/v1",
3722
3722
  "digest": "sha256:b6f53563c0adc859bc586c05fce560a5094d7d9666438d63c5fd3e1fc4774555",
3723
- "registryDigest": "sha256:4610d5ecdd42984fef782af010ed6978f4a40438134b3d962698854978fd0095",
3723
+ "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
3724
3724
  "inputClassifications": {}
3725
3725
  },
3726
3726
  "guarantees": [
@@ -3734,5 +3734,5 @@
3734
3734
  }
3735
3735
  ],
3736
3736
  "compatibilityDigest": "sha256:80cfdf1786019217c439810f1a80d2866bf8f7ef35a6fa569e1a687fb2bf4cbe",
3737
- "contractDigest": "sha256:15d9f6feaa7f774b7223943de4326285d4a02db459e8ddda4a20418552e65d96"
3737
+ "contractDigest": "sha256:8e9a161653c40611ffd76aa878ae348fc215506c1caa88347111fb122cfe7c12"
3738
3738
  }