@kungfu-tech/buildchain 4.0.2-alpha.47 → 4.0.2-alpha.49
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/architecture/ci-lane-change-budget.json +18 -0
- package/architecture/maintainability-policy.json +4 -4
- package/architecture/v4-release-topology.json +56 -7
- package/architecture/v4-universal-workflow-bootstrap.json +6 -1
- package/architecture/v4-universal-workflow-train-admission.json +1 -1
- package/architecture/workflow-taxonomy.json +11 -0
- package/dist/site/buildchain-contract.json +5 -5
- package/dist/site/buildchain-site.json +21 -11
- package/dist/site/capability-registry.json +1 -1
- package/dist/site/kfd-claims.json +21 -5
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +1 -1
- package/dist/site/node-api-registry.json +9 -9
- package/dist/site/page-registry.json +16 -6
- package/dist/site/public-surface-audit.json +18 -3
- package/dist/site/publication-authority-registry.json +23 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +5 -5
- package/dist/site/workflow-registry.json +39 -5
- package/docs/node-api-reference.md +10 -10
- package/docs/oci-publication.md +75 -1
- package/docs/workflow-catalog.md +1 -0
- package/package.json +1 -1
- package/packages/core/buildchain-publication-authority.js +1 -0
- package/packages/core/oci-compose-qualification.js +140 -0
- package/packages/core/oci-publication-bundle.js +59 -25
- package/packages/core/oci-publication-graph.js +206 -0
- package/scripts/check-v4-release-topology.mjs +12 -0
- package/scripts/generate-channel-promotion-workflow.mjs +1 -1
- package/scripts/generate-v4-universal-workflow-facades.mjs +53 -20
- package/scripts/oci-compose-preview.mjs +250 -0
- package/scripts/publication-candidate-kind.mjs +2 -1
- package/scripts/universal-facade-maintainability.mjs +10 -1
|
@@ -608,6 +608,23 @@
|
|
|
608
608
|
"expectedContributionSeconds": 180,
|
|
609
609
|
"rationale": "Only successful same-repository version PRs regenerate from the protected base and read completed publication evidence; ordinary source PRs skip the lane. Native queue checks remain final merge authority."
|
|
610
610
|
}
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"laneId": ".github/workflows/public-release-oci-compose-preview.yml#promote",
|
|
614
|
+
"authorityClass": "release",
|
|
615
|
+
"triggerClass": "reusable",
|
|
616
|
+
"concurrencyPolicy": {
|
|
617
|
+
"mode": "serialized",
|
|
618
|
+
"cancelInProgress": false
|
|
619
|
+
},
|
|
620
|
+
"expectedRunnerMinutes": 8,
|
|
621
|
+
"cancellationBehavior": "finish-started",
|
|
622
|
+
"sloImpact": {
|
|
623
|
+
"mergeCritical": false,
|
|
624
|
+
"metric": "qualified Compose preview promotion",
|
|
625
|
+
"expectedContributionSeconds": 0,
|
|
626
|
+
"rationale": "Runs only after completed exact-source public installation qualification; no merge-critical runner lane is added."
|
|
627
|
+
}
|
|
611
628
|
}
|
|
612
629
|
],
|
|
613
630
|
"declarationFamilies": [
|
|
@@ -657,6 +674,7 @@
|
|
|
657
674
|
".github/workflows/patrol-monthly.yml#universal-bootstrap",
|
|
658
675
|
".github/workflows/patrol-observed-evidence.yml#universal-bootstrap",
|
|
659
676
|
".github/workflows/patrol-weekly.yml#universal-bootstrap",
|
|
677
|
+
".github/workflows/public-release-oci-compose-preview.yml#universal-bootstrap",
|
|
660
678
|
".github/workflows/publication-artifact.yml#universal-bootstrap",
|
|
661
679
|
".github/workflows/release-candidate-promote.yml#universal-bootstrap",
|
|
662
680
|
".github/workflows/release-propagation.yml#universal-bootstrap",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
},
|
|
27
27
|
"repositoryBudgets": {
|
|
28
28
|
"baselineRevision": "9569f69c2cb609372b8a3d65ce5dec8fb7b34a84",
|
|
29
|
-
"maxHandMaintainedSourceFiles":
|
|
30
|
-
"maxHandMaintainedSourceLines":
|
|
29
|
+
"maxHandMaintainedSourceFiles": 493,
|
|
30
|
+
"maxHandMaintainedSourceLines": 174632,
|
|
31
31
|
"maxWorkflowFiles": 80,
|
|
32
32
|
"maxWorkflowLines": 26791,
|
|
33
|
-
"latestTransition": "Add
|
|
34
|
-
"latestTransitionRationale": "
|
|
33
|
+
"latestTransition": "Add verified multi-platform OCI and Compose preview publication.",
|
|
34
|
+
"latestTransitionRationale": "Charge four additional production modules and 720 net source lines for recursive OCI graph validation, Compose qualification, registry transport separation and protected preview orchestration. New workflows retain their measured current metrics instead of borrowing the frozen facade baseline. File, function, complexity, debt and exception ceilings remain unchanged; independent governance review and negative authority tests are required.",
|
|
35
35
|
"rationale": "Bounded modules separate candidate, evidence, native proof and execution, canonical failure verification, closed-set execution transfer, process-boundary verification, Warrant state and qualification, authority state, qualification, Landing acquisition, verified-attempt admission, Landing settlement and fence validation, provider attempt and heartbeat readback, sealed terminal evidence, hosted heartbeat, resume, store, options, command-specific adapters, and CLI orchestration responsibilities. The protected delivery workflow gives candidate and seal jobs no provider write credential, recursively rejects transfer drift, scopes every transfer artifact to the exact provider run attempt, chains every durable heartbeat state and receipt root on a distinct hosted runner domain, and permits qualification or exact failure settlement only after the finalizer verifies live jobs and the latest durable authority state. Public Landing admission and heartbeat always perform non-injectable fresh exact-attempt provider readback, tolerate only a not-yet-materialized seal job while retaining exact native and duplicate-job rejection, and heartbeat-loss coordination never invokes GitHub's run-scoped cancellation API where a successor rerun could race. The hosted process boundary anchors trust in the kernel-resolved versioned Runner.Worker path while accepting an equivalent argv-zero spelling with the same basename; its public boundary marker is allowed only at the one exact non-secret value, so a forged value under the same credential-like name still fails closed. The credentialless transfer seal validates the rooted native reuse decision against the Warrant-bound source, closure, dependency, toolchain, environment and command inputs; qualifiedBase stays in the proof and decision where it is rooted and later independently rechecked, rather than being assumed on the Warrant schema. V2 mutation cannot initialize a second empty authority beside a legacy ref: migration reads and roots the canonical live v1 ref, rechecks it, applies the explicit configured v2 policy, and atomically replaces its bytes through one expected-old non-force update, so old v1 controllers fail closed while the prior commit remains immutable history. Candidate ancestry classifies the GitHub artifact runtime token as credential authority. Every Landing settlement, including an unexpired fence, requires product-owned terminal readback. Terminal cleanup reads the immutable historical attempt, derives workflow and hosted Landing job identity from live run data, reads the exact protected ref head and compares containment against that immutable SHA, and seals merged only when the admitted merge-group head is contained by that protected base; a later different-head merge settles the old attempt as dequeued. Terminal normalization preserves transfer, finalizer boundary, native and seal job, admitted provider attempt, protected-base head, containment result, and terminal readback coordinates. The public reusable workflow truthfully retains its single-flight v1 authority without advertising v2 migration, while bounded v2 remains a separate opt-in CLI, Node API, and schema contract; the tracked self-caller stays on public v4-alpha with matching stable and alpha locks, and transient train selection is dispatch-only. Next-development parity adds one versioned transition authority, one durable controller, one bounded reservation adapter, and pure public-contract recovery evidence while retaining the existing thin floating-channel callers byte-for-byte. The floating-consumer gate reuses the existing contract-world evaluator so SHA drift passes only under the selected lock's compatibility policy, breaking surface drift still fails closed, and external certification reconstructs the receipt from the observed workflow SHA rather than the lock's historical evidence SHA. Tail reseal adds no Stage Capsule effect or general rebuild authority: it verifies the exact retained four-platform bytes, admits one known macOS tail failure through live provider readback, fences signing and finalization to explicit credentials and Warrant identity, and requires standard candidate Passport plus provider and protected readback. Compatibility Facts parity isolates canonical encoding, temporal verification, lifecycle validation, fixture projection, public authority projection, and CLI adaptation into bounded modules; legacy digest and proof arrays are derived only from exact current Fact lineage. Publication Rehearsal adds no production release authority: the content-addressed capsule contract binds source, candidate, manifest, config, canonical data-only provider bindings, provider policy, observations and core version separately from filesystem, runtime and rehearsal-only provider authority; simulate, replay and explicitly authorized provider rehearsal all reuse the release-tail planner, while same-commit local dogfood resolves the new reusable contract and exact current runtime before external callers remain on floating v4-alpha. Cross-runtime candidate recovery preserves original runtime and provider roots and creates resume lineage only after exact public ref, tag, ancestry, npm version and integrity readback. Adopter Delivery restores the reviewed public v3 gate, drivers, Passport binding, N-1 bootstrap and exact archive loader through one public v4 surface while keeping provider and release authority explicit non-claims. Floating Alpha bootstrap uses only the existing exact resolver and protected Alpha private shell to move an otherwise stale floating shell, retains public v4 stable promotion, and removes itself after protected readback. CI lane change-budget enforcement adds a bounded parser, evaluator, guard, and tests without creating another merge authority.",
|
|
36
36
|
"governance": "legacy-debt-sunset-2026q4"
|
|
37
37
|
},
|
|
@@ -42,7 +42,8 @@
|
|
|
42
42
|
".github/workflows/stable-candidate-patrol.yml",
|
|
43
43
|
".github/workflows/self-release-rehearsal-dogfood.yml",
|
|
44
44
|
".github/workflows/self-release-tail-dogfood.yml",
|
|
45
|
-
".github/workflows/self-release-next-development.yml"
|
|
45
|
+
".github/workflows/self-release-next-development.yml",
|
|
46
|
+
".github/workflows/public-release-oci-compose-preview.yml"
|
|
46
47
|
],
|
|
47
48
|
"unknownTopologyPolicy": "fail-closed"
|
|
48
49
|
},
|
|
@@ -59,7 +60,8 @@
|
|
|
59
60
|
"npm dry-run",
|
|
60
61
|
"v3 rollback workflows",
|
|
61
62
|
"retired compatibility workflows",
|
|
62
|
-
"Post-publication protected development review: no package, tag or Release mutation; independently inventoried in closedWorld and privilegedExecutableClosure."
|
|
63
|
+
"Post-publication protected development review: no package, tag or Release mutation; independently inventoried in closedWorld and privilegedExecutableClosure.",
|
|
64
|
+
"Post-publication OCI Compose preview activation is measured separately in postPublicationScope; it consumes completed publication and qualification, copies one manifest to the sealed alias, and cannot materialize versions or release refs."
|
|
63
65
|
]
|
|
64
66
|
},
|
|
65
67
|
"authorityClosure": {
|
|
@@ -74,6 +76,7 @@
|
|
|
74
76
|
"actions/v4-release-candidate-promote/product-provider.js",
|
|
75
77
|
"packages/core/buildchain-agent-manuals.js",
|
|
76
78
|
"packages/core/index.js",
|
|
79
|
+
"packages/core/oci-compose-qualification.js",
|
|
77
80
|
"packages/core/publication-rehearsal-runtime.js",
|
|
78
81
|
"packages/core/release-tail-provider-adapters.js",
|
|
79
82
|
"packages/core/release-tail-provider-plane.js",
|
|
@@ -125,6 +128,7 @@
|
|
|
125
128
|
"actions/v4-release-candidate-promote/index.js",
|
|
126
129
|
"scripts/binary-publication-evidence.mjs",
|
|
127
130
|
"scripts/next-development-review.mjs",
|
|
131
|
+
"scripts/oci-compose-preview.mjs",
|
|
128
132
|
"scripts/v4-publication-settlement.mjs"
|
|
129
133
|
],
|
|
130
134
|
"modules": [
|
|
@@ -135,6 +139,7 @@
|
|
|
135
139
|
"actions/v4-release-candidate-promote/index.js",
|
|
136
140
|
"actions/v4-release-candidate-promote/next-development-queue.js",
|
|
137
141
|
"actions/v4-release-candidate-promote/oci-provider.js",
|
|
142
|
+
"actions/v4-release-candidate-promote/oci-registry-client.js",
|
|
138
143
|
"actions/v4-release-candidate-promote/product-provider-adapters.js",
|
|
139
144
|
"actions/v4-release-candidate-promote/product-provider-github-adapters.js",
|
|
140
145
|
"actions/v4-release-candidate-promote/product-provider.js",
|
|
@@ -160,7 +165,9 @@
|
|
|
160
165
|
"packages/core/kfd-product-gates.js",
|
|
161
166
|
"packages/core/kungfu-temporal-fact.js",
|
|
162
167
|
"packages/core/next-development-transition.js",
|
|
168
|
+
"packages/core/oci-compose-qualification.js",
|
|
163
169
|
"packages/core/oci-publication-bundle.js",
|
|
170
|
+
"packages/core/oci-publication-graph.js",
|
|
164
171
|
"packages/core/package-manager.js",
|
|
165
172
|
"packages/core/public-surface-audit.js",
|
|
166
173
|
"packages/core/public-surface-cli.js",
|
|
@@ -194,11 +201,12 @@
|
|
|
194
201
|
"scripts/binary-publication-evidence.mjs",
|
|
195
202
|
"scripts/ensure-github-release.mjs",
|
|
196
203
|
"scripts/next-development-review.mjs",
|
|
204
|
+
"scripts/oci-compose-preview.mjs",
|
|
197
205
|
"scripts/release-asset-client.mjs",
|
|
198
206
|
"scripts/v4-publication-settlement.mjs",
|
|
199
207
|
"scripts/verify-version-state-delta.mjs"
|
|
200
208
|
],
|
|
201
|
-
"root": "sha256:
|
|
209
|
+
"root": "sha256:d2273ef843f1b186102ae6e6a1c2046483eafa25760c5e58f8d6f4e10827f161"
|
|
202
210
|
},
|
|
203
211
|
"rustWasmAuthority": {
|
|
204
212
|
"loader": "packages/core/v4-domain-wasm.js",
|
|
@@ -337,11 +345,11 @@
|
|
|
337
345
|
}
|
|
338
346
|
],
|
|
339
347
|
"metrics": {
|
|
340
|
-
"workflowCount":
|
|
341
|
-
"jobCount":
|
|
348
|
+
"workflowCount": 35,
|
|
349
|
+
"jobCount": 91,
|
|
342
350
|
"reusableEdgeCount": 23,
|
|
343
|
-
"mutationRelevantNodeCount":
|
|
344
|
-
"contentsWriteJobCount":
|
|
351
|
+
"mutationRelevantNodeCount": 76,
|
|
352
|
+
"contentsWriteJobCount": 14,
|
|
345
353
|
"oidcWriteJobCount": 15
|
|
346
354
|
},
|
|
347
355
|
"semanticMetrics": {
|
|
@@ -350,5 +358,46 @@
|
|
|
350
358
|
"contentsWriteJobCount": 1,
|
|
351
359
|
"oidcWriteJobCount": 1
|
|
352
360
|
}
|
|
361
|
+
},
|
|
362
|
+
"postPublicationScope": {
|
|
363
|
+
"workflowPaths": [
|
|
364
|
+
".github/workflows/public-release-oci-compose-preview.yml"
|
|
365
|
+
],
|
|
366
|
+
"authority": "exact-publication-plus-source-bound-qualification-and-expected-old-digest",
|
|
367
|
+
"observedTopology": {
|
|
368
|
+
"jobRecordFields": [
|
|
369
|
+
"id",
|
|
370
|
+
"kind",
|
|
371
|
+
"uses",
|
|
372
|
+
"contentsPermission",
|
|
373
|
+
"oidcPermission",
|
|
374
|
+
"carriers",
|
|
375
|
+
"mutationSignals"
|
|
376
|
+
],
|
|
377
|
+
"workflows": [
|
|
378
|
+
{
|
|
379
|
+
"path": ".github/workflows/public-release-oci-compose-preview.yml",
|
|
380
|
+
"triggers": ["workflow_call"],
|
|
381
|
+
"jobs": [
|
|
382
|
+
"promote|runner|-|write|-|artifactDownload,artifactUpload,jobOutput|contents-write"
|
|
383
|
+
],
|
|
384
|
+
"reusableEdges": []
|
|
385
|
+
}
|
|
386
|
+
],
|
|
387
|
+
"metrics": {
|
|
388
|
+
"workflowCount": 1,
|
|
389
|
+
"jobCount": 1,
|
|
390
|
+
"reusableEdgeCount": 0,
|
|
391
|
+
"mutationRelevantNodeCount": 1,
|
|
392
|
+
"contentsWriteJobCount": 1,
|
|
393
|
+
"oidcWriteJobCount": 0
|
|
394
|
+
},
|
|
395
|
+
"semanticMetrics": {
|
|
396
|
+
"workflowCount": 1,
|
|
397
|
+
"mutationRelevantNodeCount": 1,
|
|
398
|
+
"contentsWriteJobCount": 1,
|
|
399
|
+
"oidcWriteJobCount": 0
|
|
400
|
+
}
|
|
401
|
+
}
|
|
353
402
|
}
|
|
354
403
|
}
|
|
@@ -100,6 +100,7 @@
|
|
|
100
100
|
".github/workflows/patrol-monthly.yml",
|
|
101
101
|
".github/workflows/patrol-observed-evidence.yml",
|
|
102
102
|
".github/workflows/patrol-weekly.yml",
|
|
103
|
+
".github/workflows/public-release-oci-compose-preview.yml",
|
|
103
104
|
".github/workflows/publication-artifact.yml",
|
|
104
105
|
".github/workflows/release-candidate-promote.yml",
|
|
105
106
|
".github/workflows/release-governance-reconcile.yml",
|
|
@@ -144,6 +145,7 @@
|
|
|
144
145
|
".github/workflows/patrol-monthly.yml",
|
|
145
146
|
".github/workflows/patrol-observed-evidence.yml",
|
|
146
147
|
".github/workflows/patrol-weekly.yml",
|
|
148
|
+
".github/workflows/public-release-oci-compose-preview.yml",
|
|
147
149
|
".github/workflows/publication-artifact.yml",
|
|
148
150
|
".github/workflows/release-candidate-promote.yml",
|
|
149
151
|
".github/workflows/release-governance-reconcile.yml",
|
|
@@ -166,6 +168,9 @@
|
|
|
166
168
|
"compatibilityFacades": "generated-dual-path",
|
|
167
169
|
"externalConsumerDogfood": "public-consumer-three-platform-runtime-and-non-circular-recovery-hosted-proof-passed",
|
|
168
170
|
"buildchainSelfDogfood": "train-primary-and-consumer-recovery-three-pair-hosted-proof-passed",
|
|
169
|
-
"oldPathRetirement": "pending-protected-dev-integration"
|
|
171
|
+
"oldPathRetirement": "pending-protected-dev-integration",
|
|
172
|
+
"postMigrationWorkflows": [
|
|
173
|
+
".github/workflows/public-release-oci-compose-preview.yml"
|
|
174
|
+
]
|
|
170
175
|
}
|
|
171
176
|
}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"statuses": "write"
|
|
24
24
|
},
|
|
25
25
|
"contractRoots": [
|
|
26
|
-
"sha256:
|
|
26
|
+
"sha256:2eefbee51f4bed669c970db9688de70f07aa7da81f2eb8d83107c5bbc1377fab",
|
|
27
27
|
"sha256:38ab6e09aea11256a038c208b5e83dafc19cd740057e0eb90e1b1bd28175b067",
|
|
28
28
|
"sha256:4e1f0a8ae7b3f7651b16687d7cfab88a9622c5f88e04c82faf66769230ef595d",
|
|
29
29
|
"sha256:65a0c2fc3faecaddf5076fff086b5d6e12eb9ba27796efc10aed19f2d93b9457",
|
|
@@ -1370,6 +1370,17 @@
|
|
|
1370
1370
|
},
|
|
1371
1371
|
"compatibility": null,
|
|
1372
1372
|
"rationale": "Classify the existing .github/workflows/verify.yml capability without adding execution behavior."
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
"id": "oci-compose-preview",
|
|
1376
|
+
"role": "public",
|
|
1377
|
+
"category": "release",
|
|
1378
|
+
"purpose": "oci-compose-preview",
|
|
1379
|
+
"summary": "Buildchain OCI Compose Preview",
|
|
1380
|
+
"owner": "kungfu-origin",
|
|
1381
|
+
"status": "active",
|
|
1382
|
+
"invocation": "reusable",
|
|
1383
|
+
"rationale": "Promote one digest-preserving Compose preview only after verified public v4 publication and exact-source installation qualification."
|
|
1373
1384
|
}
|
|
1374
1385
|
],
|
|
1375
1386
|
"migrationSources": {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "4.0.2-alpha.
|
|
7
|
+
"version": "4.0.2-alpha.49",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v4",
|
|
@@ -1591,7 +1591,7 @@
|
|
|
1591
1591
|
"GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
|
|
1592
1592
|
],
|
|
1593
1593
|
"breakingDigest": "sha256:5f10c81d3f80cb417960be682921884639c40b6d875f1a3b1ffae7e652c3f468",
|
|
1594
|
-
"auditDigest": "sha256:
|
|
1594
|
+
"auditDigest": "sha256:6d4939a2abc87b4f0d9ee909044d7e3d34761649cd1bd71c86c657b8044ae5ef"
|
|
1595
1595
|
},
|
|
1596
1596
|
{
|
|
1597
1597
|
"contractVersion": 1,
|
|
@@ -2257,7 +2257,7 @@
|
|
|
2257
2257
|
"manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
|
|
2258
2258
|
],
|
|
2259
2259
|
"breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
|
|
2260
|
-
"auditDigest": "sha256:
|
|
2260
|
+
"auditDigest": "sha256:e750a5b647ef520b2d235cad72a64f1194e15150410eee0990e0f8494b647a78"
|
|
2261
2261
|
},
|
|
2262
2262
|
{
|
|
2263
2263
|
"contractVersion": 1,
|
|
@@ -2279,7 +2279,7 @@
|
|
|
2279
2279
|
"agents can discover supported Node APIs without importing internal file paths"
|
|
2280
2280
|
],
|
|
2281
2281
|
"breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
|
|
2282
|
-
"auditDigest": "sha256:
|
|
2282
|
+
"auditDigest": "sha256:4ace19480d9908b2c5a27663fb3dd78b4ca19aa1fb1219998c18d0ba8e2db5ab"
|
|
2283
2283
|
},
|
|
2284
2284
|
{
|
|
2285
2285
|
"contractVersion": 1,
|
|
@@ -5444,5 +5444,5 @@
|
|
|
5444
5444
|
"compatibilityFactCutRoot": "sha256:f61b975d4a96c921cc4bd37fb3ed9a0596b47004fe34dc7219979d697e3707f9",
|
|
5445
5445
|
"compatibilityProofRegistryRoot": "sha256:b7194b811e4d3af2df4390bc4d1731e16a86215bd64ee18cb630dd5492f4fb63",
|
|
5446
5446
|
"compatibilityDigest": "sha256:20411029d83211dff426fb6535a608902129844a5ccb4788db77d3f81becb839",
|
|
5447
|
-
"contractDigest": "sha256:
|
|
5447
|
+
"contractDigest": "sha256:5329e52fd5f7c583bfd6f618d40d4f9092f77b55bda4ef34c932953d29a72c90"
|
|
5448
5448
|
}
|