@kungfu-tech/buildchain 2.14.17 → 2.14.18-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.
@@ -5,8 +5,8 @@
5
5
  "summary": {
6
6
  "cliCommandCount": 86,
7
7
  "workflowCount": 51,
8
- "actionCount": 4,
9
- "sitePageCount": 52,
8
+ "actionCount": 5,
9
+ "sitePageCount": 53,
10
10
  "docCommandRefCount": 265,
11
11
  "failureCount": 0
12
12
  },
@@ -501,7 +501,11 @@
501
501
  "checkout-cache-mode",
502
502
  "checkout-cache-reference-repository-template",
503
503
  "checkout-cache-timeout-seconds",
504
+ "credential-island-environment",
505
+ "credential-island-macos-app-path",
506
+ "credential-island-macos-platform-id",
504
507
  "expected-artifacts-json",
508
+ "fail-fast",
505
509
  "gate-profile-aggregate-json",
506
510
  "install-command",
507
511
  "kfd-agent-hub",
@@ -536,13 +540,18 @@
536
540
  "verify-command",
537
541
  "working-directory"
538
542
  ],
539
- "inputCount": 60,
543
+ "inputCount": 64,
540
544
  "secrets": [
541
545
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
542
546
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
543
- "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN"
547
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN",
548
+ "BUILDCHAIN_MACOS_CERTIFICATE_P12_BASE64",
549
+ "BUILDCHAIN_MACOS_CERTIFICATE_PASSWORD",
550
+ "BUILDCHAIN_MACOS_NOTARY_API_ISSUER",
551
+ "BUILDCHAIN_MACOS_NOTARY_API_KEY_ID",
552
+ "BUILDCHAIN_MACOS_NOTARY_API_KEY_P8_BASE64"
544
553
  ],
545
- "secretCount": 3,
554
+ "secretCount": 8,
546
555
  "outputs": [
547
556
  "build-diagnostics-summary-artifact",
548
557
  "build-diagnostics-summary-json",
@@ -563,6 +572,8 @@
563
572
  "controller-receipt-digest",
564
573
  "controller-receipt-json",
565
574
  "controller-receipt-status",
575
+ "credential-island-macos-artifact",
576
+ "credential-island-macos-manifest-artifact",
566
577
  "linux-container-enabled",
567
578
  "linux-container-image",
568
579
  "platform-count",
@@ -584,7 +595,7 @@
584
595
  "runner-preset",
585
596
  "trusted-event"
586
597
  ],
587
- "outputCount": 39
598
+ "outputCount": 41
588
599
  },
589
600
  {
590
601
  "id": ".bump-minor-version",
@@ -749,6 +760,7 @@
749
760
  "publish-mode",
750
761
  "publish-package-main",
751
762
  "publish-package-set-order",
763
+ "publish-rematerialize-on-resume",
752
764
  "publish-required-artifacts-json",
753
765
  "publish-target",
754
766
  "release-candidate-workflow-file",
@@ -774,7 +786,7 @@
774
786
  "target-sha",
775
787
  "trusted-publishing"
776
788
  ],
777
- "inputCount": 73,
789
+ "inputCount": 74,
778
790
  "secrets": [
779
791
  "BUILDCHAIN_ISSUE_APP_ID",
780
792
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -1216,7 +1228,11 @@
1216
1228
  "checkout-cache-mode",
1217
1229
  "checkout-cache-reference-repository-template",
1218
1230
  "checkout-cache-timeout-seconds",
1231
+ "credential-island-environment",
1232
+ "credential-island-macos-app-path",
1233
+ "credential-island-macos-platform-id",
1219
1234
  "expected-artifacts-json",
1235
+ "fail-fast",
1220
1236
  "gate-profile-aggregate-json",
1221
1237
  "install-command",
1222
1238
  "kfd-agent-hub",
@@ -1251,13 +1267,18 @@
1251
1267
  "verify-command",
1252
1268
  "working-directory"
1253
1269
  ],
1254
- "inputCount": 63,
1270
+ "inputCount": 67,
1255
1271
  "secrets": [
1256
1272
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
1257
1273
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
1258
- "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN"
1274
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN",
1275
+ "BUILDCHAIN_MACOS_CERTIFICATE_P12_BASE64",
1276
+ "BUILDCHAIN_MACOS_CERTIFICATE_PASSWORD",
1277
+ "BUILDCHAIN_MACOS_NOTARY_API_ISSUER",
1278
+ "BUILDCHAIN_MACOS_NOTARY_API_KEY_ID",
1279
+ "BUILDCHAIN_MACOS_NOTARY_API_KEY_P8_BASE64"
1259
1280
  ],
1260
- "secretCount": 3,
1281
+ "secretCount": 8,
1261
1282
  "outputs": [
1262
1283
  "build-diagnostics-summary-artifact",
1263
1284
  "build-diagnostics-summary-json",
@@ -1281,6 +1302,8 @@
1281
1302
  "controller-receipt-digest",
1282
1303
  "controller-receipt-json",
1283
1304
  "controller-receipt-status",
1305
+ "credential-island-macos-artifact",
1306
+ "credential-island-macos-manifest-artifact",
1284
1307
  "linux-container-enabled",
1285
1308
  "linux-container-image",
1286
1309
  "platform-count",
@@ -1302,7 +1325,7 @@
1302
1325
  "runner-preset",
1303
1326
  "trusted-event"
1304
1327
  ],
1305
- "outputCount": 42
1328
+ "outputCount": 44
1306
1329
  },
1307
1330
  {
1308
1331
  "id": "buildchain-alpha-self-dogfood",
@@ -1821,6 +1844,7 @@
1821
1844
  "publish-mode",
1822
1845
  "publish-package-main",
1823
1846
  "publish-package-set-order",
1847
+ "publish-rematerialize-on-resume",
1824
1848
  "publish-required-artifacts-json",
1825
1849
  "publish-target",
1826
1850
  "release-candidate-workflow-file",
@@ -1846,7 +1870,7 @@
1846
1870
  "target-sha",
1847
1871
  "trusted-publishing"
1848
1872
  ],
1849
- "inputCount": 65,
1873
+ "inputCount": 66,
1850
1874
  "secrets": [
1851
1875
  "BUILDCHAIN_ISSUE_APP_ID",
1852
1876
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -2046,6 +2070,33 @@
2046
2070
  }
2047
2071
  ],
2048
2072
  "actionInputs": [
2073
+ {
2074
+ "id": "macos-credential-island",
2075
+ "path": "actions/macos-credential-island/action.yml",
2076
+ "inputs": [
2077
+ "artifact-name",
2078
+ "artifact-relative-output",
2079
+ "artifact-stem",
2080
+ "buildchain-runtime-sha",
2081
+ "certificate-p12-base64",
2082
+ "certificate-password",
2083
+ "certificate-sha1",
2084
+ "entitlements-profile",
2085
+ "expected-bundle-id",
2086
+ "expected-team-id",
2087
+ "input-root",
2088
+ "notary-api-issuer",
2089
+ "notary-api-key-id",
2090
+ "notary-api-key-p8-base64",
2091
+ "output-root",
2092
+ "platform-id",
2093
+ "source-ref",
2094
+ "source-repository",
2095
+ "source-sha",
2096
+ "source-tree-sha"
2097
+ ],
2098
+ "inputCount": 20
2099
+ },
2049
2100
  {
2050
2101
  "id": "promote-buildchain-ref",
2051
2102
  "path": "actions/promote-buildchain-ref/action.yml",
@@ -2074,6 +2125,7 @@
2074
2125
  "publish-mode",
2075
2126
  "publish-package-main",
2076
2127
  "publish-package-set-order",
2128
+ "publish-rematerialize-on-resume",
2077
2129
  "publish-required-artifacts-json",
2078
2130
  "publish-source-locked",
2079
2131
  "publish-source-ref",
@@ -2113,7 +2165,7 @@
2113
2165
  "transaction-state-path",
2114
2166
  "verification-command"
2115
2167
  ],
2116
- "inputCount": 62
2168
+ "inputCount": 63
2117
2169
  },
2118
2170
  {
2119
2171
  "id": "report-buildchain-issue",
@@ -2205,6 +2257,10 @@
2205
2257
  }
2206
2258
  ],
2207
2259
  "sitePages": [
2260
+ {
2261
+ "id": "action:macos-credential-island",
2262
+ "category": "action"
2263
+ },
2208
2264
  {
2209
2265
  "id": "action:promote-buildchain-ref",
2210
2266
  "category": "action"
@@ -3747,8 +3803,8 @@
3747
3803
  "workflowRegistryPath": "dist/site/workflow-registry.json",
3748
3804
  "pageRegistryPath": "dist/site/page-registry.json",
3749
3805
  "cliRegistryDigest": "cc76cd0f061103d8ab78ee97dd0b7f0d28d64489f79b7ed06c94d8fef28bc200",
3750
- "workflowRegistryDigest": "a954f67672292e16be1f4f663a98d0c69285f7359a43d5d6333b3ffcf6463c35",
3751
- "pageRegistryDigest": "683eb0c1a92cb0f03ae8c31c514adb468bbdeaa9b4b9b3618c34f830bd4c6e88"
3806
+ "workflowRegistryDigest": "3a444436846b336459e4ee7e968f820e442a170b642d7b73ea19eaa28ed7da6c",
3807
+ "pageRegistryDigest": "47fb460187d5775db272b95f59ce44d89fce89d10301d52a815b00eebebbadca"
3752
3808
  },
3753
3809
  "comparison": {
3754
3810
  "missingCliRegistry": [],
@@ -520,6 +520,7 @@
520
520
  "signals": [
521
521
  "write-permission",
522
522
  "oidc",
523
+ "environment",
523
524
  "cloud-credential"
524
525
  ],
525
526
  "classified": true
@@ -849,5 +850,5 @@
849
850
  "classified": false
850
851
  }
851
852
  ],
852
- "registryDigest": "5f3d4759ffd0dda1addde124221238f8c1a9b6cf07005419d68a0ab946b2841e"
853
+ "registryDigest": "afd9a121b15d4965c55fcbe2c6c4d59b94e96536179c145f246d8fd0517aad7b"
853
854
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-07-23T20:15:49.277Z",
5
- "publishedAt": "2026-07-23T20:15:49.277Z",
4
+ "generatedAt": "2026-07-24T00:28:32.040Z",
5
+ "publishedAt": "2026-07-24T00:28:32.040Z",
6
6
  "reproducible": true,
7
7
  "timestampPolicy": "ci-injected",
8
8
  "deterministicInputs": [
@@ -19,7 +19,7 @@
19
19
  "declared Buildchain surface manifest contract"
20
20
  ],
21
21
  "sourceDateEpoch": "0",
22
- "sourceRevision": "28126ef585164dbb5315d098c39a8f3f9f7363e8",
22
+ "sourceRevision": "ac97c62bfce8d1c686718519ccf2fd8f974142e1",
23
23
  "timestampPolicyDetails": {
24
24
  "contract": "kungfu-buildchain-surface-timestamp-policy",
25
25
  "timestampFields": [
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "package": {
34
34
  "name": "@kungfu-tech/buildchain",
35
- "version": "2.14.17",
35
+ "version": "2.14.18-alpha.1",
36
36
  "versionSource": "package.json#version"
37
37
  },
38
38
  "sourceKind": "package-site-bundle",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-manifest",
4
- "generatedAt": "2026-07-23T20:15:49.277Z",
5
- "publishedAt": "2026-07-23T20:15:49.277Z",
4
+ "generatedAt": "2026-07-24T00:28:32.040Z",
5
+ "publishedAt": "2026-07-24T00:28:32.040Z",
6
6
  "reproducible": true,
7
7
  "timestampPolicy": "ci-injected",
8
8
  "deterministicInputs": [
@@ -19,7 +19,7 @@
19
19
  "declared Buildchain surface manifest contract"
20
20
  ],
21
21
  "sourceDateEpoch": "0",
22
- "sourceRevision": "28126ef585164dbb5315d098c39a8f3f9f7363e8",
22
+ "sourceRevision": "ac97c62bfce8d1c686718519ccf2fd8f974142e1",
23
23
  "timestampPolicyDetails": {
24
24
  "contract": "kungfu-buildchain-surface-timestamp-policy",
25
25
  "timestampFields": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "package": {
39
39
  "name": "@kungfu-tech/buildchain",
40
- "version": "2.14.17",
40
+ "version": "2.14.18-alpha.1",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -205,7 +205,7 @@
205
205
  "path": "docs/kfd-support.md",
206
206
  "plane": "verify",
207
207
  "exists": true,
208
- "digest": "sha256:ab15de33a1a9e292b6da74c00b8b96b7c46330d0553a454d1de4c24c672fc025"
208
+ "digest": "sha256:58a60b3e54bc47d4bc9b6e08a432ba4ff75ed2275ef056d04c44cc2bc25046da"
209
209
  },
210
210
  {
211
211
  "id": "kfd-agent-hub",
@@ -229,7 +229,7 @@
229
229
  "path": "docs/reusable-build-surface.md",
230
230
  "plane": "use",
231
231
  "exists": true,
232
- "digest": "sha256:9c125f6d2b519c96718f45da62ac1a891ab618bcb331d3b14c4b88b5158fc4a9"
232
+ "digest": "sha256:069ba73cf32b9f55a62fd5f4bfaec00608498019b53e8ae1387d7dc9de26bc29"
233
233
  },
234
234
  {
235
235
  "id": "publish-transaction",
@@ -269,7 +269,7 @@
269
269
  "path": "docs/versioning.md",
270
270
  "plane": "why",
271
271
  "exists": true,
272
- "digest": "sha256:10ec868fcb3fd58ae35b54ecd8ccd9a4556516f460c262f0c1ee41c81bdbc264"
272
+ "digest": "sha256:199ed8e83c988836f757c9a16b58ec441e0bd04a4f3465f21cc73ed7f530e610"
273
273
  },
274
274
  {
275
275
  "id": "web-surface-deployments",
@@ -63,7 +63,11 @@
63
63
  "checkout-cache-mode",
64
64
  "checkout-cache-reference-repository-template",
65
65
  "checkout-cache-timeout-seconds",
66
+ "credential-island-environment",
67
+ "credential-island-macos-app-path",
68
+ "credential-island-macos-platform-id",
66
69
  "expected-artifacts-json",
70
+ "fail-fast",
67
71
  "gate-profile-aggregate-json",
68
72
  "install-command",
69
73
  "kfd-agent-hub",
@@ -98,13 +102,18 @@
98
102
  "verify-command",
99
103
  "working-directory"
100
104
  ],
101
- "inputCount": 60,
105
+ "inputCount": 64,
102
106
  "secrets": [
103
107
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
104
108
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
105
- "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN"
109
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN",
110
+ "BUILDCHAIN_MACOS_CERTIFICATE_P12_BASE64",
111
+ "BUILDCHAIN_MACOS_CERTIFICATE_PASSWORD",
112
+ "BUILDCHAIN_MACOS_NOTARY_API_ISSUER",
113
+ "BUILDCHAIN_MACOS_NOTARY_API_KEY_ID",
114
+ "BUILDCHAIN_MACOS_NOTARY_API_KEY_P8_BASE64"
106
115
  ],
107
- "secretCount": 3,
116
+ "secretCount": 8,
108
117
  "outputs": [
109
118
  "build-diagnostics-summary-artifact",
110
119
  "build-diagnostics-summary-json",
@@ -125,6 +134,8 @@
125
134
  "controller-receipt-digest",
126
135
  "controller-receipt-json",
127
136
  "controller-receipt-status",
137
+ "credential-island-macos-artifact",
138
+ "credential-island-macos-manifest-artifact",
128
139
  "linux-container-enabled",
129
140
  "linux-container-image",
130
141
  "platform-count",
@@ -146,7 +157,7 @@
146
157
  "runner-preset",
147
158
  "trusted-event"
148
159
  ],
149
- "outputCount": 39,
160
+ "outputCount": 41,
150
161
  "surface": "reusable-build",
151
162
  "capabilityGroup": "api-cli-reference",
152
163
  "status": "active"
@@ -323,6 +334,7 @@
323
334
  "publish-mode",
324
335
  "publish-package-main",
325
336
  "publish-package-set-order",
337
+ "publish-rematerialize-on-resume",
326
338
  "publish-required-artifacts-json",
327
339
  "publish-target",
328
340
  "release-candidate-workflow-file",
@@ -348,7 +360,7 @@
348
360
  "target-sha",
349
361
  "trusted-publishing"
350
362
  ],
351
- "inputCount": 73,
363
+ "inputCount": 74,
352
364
  "secrets": [
353
365
  "BUILDCHAIN_ISSUE_APP_ID",
354
366
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -835,7 +847,11 @@
835
847
  "checkout-cache-mode",
836
848
  "checkout-cache-reference-repository-template",
837
849
  "checkout-cache-timeout-seconds",
850
+ "credential-island-environment",
851
+ "credential-island-macos-app-path",
852
+ "credential-island-macos-platform-id",
838
853
  "expected-artifacts-json",
854
+ "fail-fast",
839
855
  "gate-profile-aggregate-json",
840
856
  "install-command",
841
857
  "kfd-agent-hub",
@@ -870,13 +886,18 @@
870
886
  "verify-command",
871
887
  "working-directory"
872
888
  ],
873
- "inputCount": 63,
889
+ "inputCount": 67,
874
890
  "secrets": [
875
891
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
876
892
  "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
877
- "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN"
893
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN",
894
+ "BUILDCHAIN_MACOS_CERTIFICATE_P12_BASE64",
895
+ "BUILDCHAIN_MACOS_CERTIFICATE_PASSWORD",
896
+ "BUILDCHAIN_MACOS_NOTARY_API_ISSUER",
897
+ "BUILDCHAIN_MACOS_NOTARY_API_KEY_ID",
898
+ "BUILDCHAIN_MACOS_NOTARY_API_KEY_P8_BASE64"
878
899
  ],
879
- "secretCount": 3,
900
+ "secretCount": 8,
880
901
  "outputs": [
881
902
  "build-diagnostics-summary-artifact",
882
903
  "build-diagnostics-summary-json",
@@ -900,6 +921,8 @@
900
921
  "controller-receipt-digest",
901
922
  "controller-receipt-json",
902
923
  "controller-receipt-status",
924
+ "credential-island-macos-artifact",
925
+ "credential-island-macos-manifest-artifact",
903
926
  "linux-container-enabled",
904
927
  "linux-container-image",
905
928
  "platform-count",
@@ -921,7 +944,7 @@
921
944
  "runner-preset",
922
945
  "trusted-event"
923
946
  ],
924
- "outputCount": 42,
947
+ "outputCount": 44,
925
948
  "surface": "channel-build-router",
926
949
  "capabilityGroup": "reusable-build",
927
950
  "status": "active"
@@ -1503,6 +1526,7 @@
1503
1526
  "publish-mode",
1504
1527
  "publish-package-main",
1505
1528
  "publish-package-set-order",
1529
+ "publish-rematerialize-on-resume",
1506
1530
  "publish-required-artifacts-json",
1507
1531
  "publish-target",
1508
1532
  "release-candidate-workflow-file",
@@ -1528,7 +1552,7 @@
1528
1552
  "target-sha",
1529
1553
  "trusted-publishing"
1530
1554
  ],
1531
- "inputCount": 65,
1555
+ "inputCount": 66,
1532
1556
  "secrets": [
1533
1557
  "BUILDCHAIN_ISSUE_APP_ID",
1534
1558
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -1759,6 +1783,35 @@
1759
1783
  ],
1760
1784
  "actionSource": "actions/*/action.yml reverse input enumeration",
1761
1785
  "actions": [
1786
+ {
1787
+ "id": "macos-credential-island",
1788
+ "path": "actions/macos-credential-island/action.yml",
1789
+ "inputs": [
1790
+ "artifact-name",
1791
+ "artifact-relative-output",
1792
+ "artifact-stem",
1793
+ "buildchain-runtime-sha",
1794
+ "certificate-p12-base64",
1795
+ "certificate-password",
1796
+ "certificate-sha1",
1797
+ "entitlements-profile",
1798
+ "expected-bundle-id",
1799
+ "expected-team-id",
1800
+ "input-root",
1801
+ "notary-api-issuer",
1802
+ "notary-api-key-id",
1803
+ "notary-api-key-p8-base64",
1804
+ "output-root",
1805
+ "platform-id",
1806
+ "source-ref",
1807
+ "source-repository",
1808
+ "source-sha",
1809
+ "source-tree-sha"
1810
+ ],
1811
+ "inputCount": 20,
1812
+ "capabilityGroup": "api-cli-reference",
1813
+ "status": "active"
1814
+ },
1762
1815
  {
1763
1816
  "id": "promote-buildchain-ref",
1764
1817
  "path": "actions/promote-buildchain-ref/action.yml",
@@ -1787,6 +1840,7 @@
1787
1840
  "publish-mode",
1788
1841
  "publish-package-main",
1789
1842
  "publish-package-set-order",
1843
+ "publish-rematerialize-on-resume",
1790
1844
  "publish-required-artifacts-json",
1791
1845
  "publish-source-locked",
1792
1846
  "publish-source-ref",
@@ -1826,7 +1880,7 @@
1826
1880
  "transaction-state-path",
1827
1881
  "verification-command"
1828
1882
  ],
1829
- "inputCount": 62,
1883
+ "inputCount": 63,
1830
1884
  "capabilityGroup": "release-passport-trust",
1831
1885
  "status": "active"
1832
1886
  },
@@ -322,6 +322,12 @@ Buildchain validates this shape whenever a KFD-3 registry is read or written.
322
322
  Repositories that do not declare the registrar remain outside Shifu's
323
323
  distribution jurisdiction.
324
324
 
325
+ KFD-3 surface audits also bind a detected artifact to its owning declared
326
+ surface when the detected kind and path match one of these distribution
327
+ artifacts. This lets one participant-facing CLI remain the declared interface
328
+ while its platform binaries are proved as distributions of that interface,
329
+ instead of being reported as unrelated unregistered surfaces.
330
+
325
331
  ## Detected, Declared, Enforced
326
332
 
327
333
  KFD-3 surface registration uses three states.
@@ -115,6 +115,13 @@ Only include platforms that should run. GitHub schedules matrix jobs before
115
115
  steps execute, so a disabled entry with unavailable runner labels can still
116
116
  block the workflow queue.
117
117
 
118
+ `fail-fast` defaults to `false`, preserving the diagnostic behavior that
119
+ collects every platform result. Required promotion callers can set it to `true`
120
+ to cancel sibling native, container, and relay matrix lanes after the first
121
+ failure. This input changes scheduling only: it does not reduce the declared
122
+ platform matrix, turn cancellation into a pass, or alter artifact and release
123
+ admission.
124
+
118
125
  ## Linux Job Containers
119
126
 
120
127
  Linux build platforms can run inside a digest-pinned job container while macOS
@@ -509,6 +516,47 @@ release jobs can detect drifting diagnostics JSON contracts and missing or
509
516
  drifting diagnostics sidecar manifests without downloading the per-platform
510
517
  diagnostics artifacts first.
511
518
 
519
+ ## macOS Credential Island
520
+
521
+ Alpha consumers can ask the build controller to seal one exact macOS app and
522
+ hand it to a separate protected signing job:
523
+
524
+ ```yaml
525
+ with:
526
+ credential-island-macos-app-path: product/dist/desktop/mac-arm64/Kungfu Episodes.app
527
+ credential-island-environment: alpha-macos-signing
528
+ credential-island-macos-platform-id: macos-arm64
529
+ ```
530
+
531
+ The ordinary matrix uploads
532
+ `credential-island-input-<platform>-<source-sha>`, containing a `ditto`
533
+ archive and a manifest bound to the caller repository, source commit, source
534
+ tree, bundle identity, version, size, and digest. The pinned reusable workflow
535
+ then starts a separate GitHub-hosted macOS job that names the caller
536
+ environment. That job has no source checkout or package-manager step: it
537
+ downloads the immutable Buildchain action runtime plus the sealed app and never
538
+ invokes consumer code.
539
+
540
+ The protected environment supplies these non-secret variables:
541
+
542
+ - `BUILDCHAIN_MACOS_EXPECTED_BUNDLE_ID`
543
+ - `BUILDCHAIN_MACOS_EXPECTED_TEAM_ID`
544
+ - `BUILDCHAIN_MACOS_CERTIFICATE_SHA1`
545
+
546
+ and these secrets:
547
+
548
+ - `BUILDCHAIN_MACOS_CERTIFICATE_P12_BASE64`
549
+ - `BUILDCHAIN_MACOS_CERTIFICATE_PASSWORD`
550
+ - `BUILDCHAIN_MACOS_NOTARY_API_KEY_P8_BASE64`
551
+ - `BUILDCHAIN_MACOS_NOTARY_API_KEY_ID`
552
+ - `BUILDCHAIN_MACOS_NOTARY_API_ISSUER`
553
+
554
+ The signed DMG, signed app ZIP, credential evidence, and their source-bound
555
+ platform manifest form one additional release-candidate platform. Reviewers can
556
+ therefore verify the exact caller source and immutable Buildchain runtime that
557
+ entered the credential island before admitting or publishing the signed
558
+ artifacts.
559
+
512
560
  ## Artifact Transfer Relay
513
561
 
514
562
  By default, platform jobs upload payloads, manifests, and diagnostics directly
@@ -61,6 +61,7 @@ repository changes are patch".
61
61
 
62
62
  | Date | Action | Line | Faces | Class | Rationale | PR |
63
63
  | --- | --- | --- | --- | --- | --- | --- |
64
+ | 2026-07-23 | extend-minor | `v2.14` | credential-island-macos-input, protected-signer-job, macos-signing-evidence, action-subpaths | additive | The reusable build surface can seal an exact source-bound macOS app and hand it to a protected caller environment, where an immutable Buildchain action signs, notarizes, staples, Gatekeeper-assesses, and returns an auditable additional release-candidate platform without exposing credentials to consumer lifecycle jobs. | |
64
65
  | 2026-07-20 | extend-minor | `v2.14` | anchored-derived-version-material, build-controller-evidence, release-passport, package-subpaths, release-propagation-controller | additive | Anchored/manual consumers can declare derived version witnesses that Buildchain regenerates and verifies before heavy builds, binds to exact alpha/release trees and passports, and admits during protected promotion; propagation receipts now model their existing optional consumer stages. | |
65
66
  | 2026-07-17 | extend-minor | `v2.14` | merge-queue-config, release-line-governance-inheritance | additive | Buildchain config can explicitly enable, inherit, or disable exact dev-channel merge queues, and release-line bootstrap reconciles the declared or inherited policy before moving the repository default branch. | |
66
67
  | 2026-07-16 | open-minor | `v2.14` | dev-merge-queue-governance | additive | The public CLI adds a dry-run-first, idempotent merge-queue governance command that verifies required workflow event compatibility before applying an exact dev-channel ruleset and removing the strict up-to-date race. | |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungfu-tech/buildchain",
3
- "version": "2.14.17",
3
+ "version": "2.14.18-alpha.1",
4
4
  "private": false,
5
5
  "description": "Buildchain Release Passport, release governance, CLI toolkit, and site facts.",
6
6
  "repository": "https://github.com/kungfu-systems/buildchain",
@@ -355,6 +355,57 @@ export function createBuildchainContractWorld({
355
355
  "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874",
356
356
  ],
357
357
  }),
358
+ surface(root, {
359
+ id: "macos-credential-island-action",
360
+ kind: "action",
361
+ path: "actions/macos-credential-island/action.yml",
362
+ publicRef: `kungfu-systems/buildchain/actions/macos-credential-island@${majorLine}`,
363
+ requiredInputs: [
364
+ "input-root",
365
+ "output-root",
366
+ "source-repository",
367
+ "source-sha",
368
+ "source-tree-sha",
369
+ "buildchain-runtime-sha",
370
+ "artifact-name",
371
+ "expected-bundle-id",
372
+ "expected-team-id",
373
+ "certificate-sha1",
374
+ "certificate-p12-base64",
375
+ "certificate-password",
376
+ "notary-api-key-p8-base64",
377
+ "notary-api-key-id",
378
+ "notary-api-issuer",
379
+ ],
380
+ requiredOutputs: [
381
+ "evidence-path",
382
+ "manifest-path",
383
+ "artifact-root",
384
+ "dmg-path",
385
+ "zip-path",
386
+ "dmg-sha256",
387
+ "zip-sha256",
388
+ ],
389
+ breakingDefaults: {
390
+ entitlementsProfile: "electron-desktop-v1",
391
+ credentialBoundary: "protected-caller-job",
392
+ consumerCodeExecution: "forbidden",
393
+ },
394
+ optionalInputs: [
395
+ "source-ref",
396
+ "platform-id",
397
+ "entitlements-profile",
398
+ "artifact-stem",
399
+ "artifact-relative-output",
400
+ ],
401
+ guarantees: [
402
+ "the action validates a source-bound sealed app before credentials are imported",
403
+ "the action accepts one exact Developer ID Application fingerprint and a Buildchain-owned entitlements profile",
404
+ "consumer source and artifact-contained executables are never invoked",
405
+ "the app and DMG are notarized, stapled, Gatekeeper assessed, and bound to retained evidence",
406
+ "temporary keychain and API key material are cleaned in both main and post phases",
407
+ ],
408
+ }),
358
409
  surface(root, {
359
410
  id: "report-buildchain-issue-action",
360
411
  kind: "action",
@@ -578,6 +629,13 @@ export function createBuildchainContractWorld({
578
629
  registryDigest: resolvedControllerRegistry.digest,
579
630
  inputClassifications: descriptor.inputs,
580
631
  },
632
+ ...(descriptor.id === "build-lifecycle"
633
+ ? {
634
+ compatibleBreakingDigests: [
635
+ "sha256:e264a79f9f399038c2fcfd21e4168c68c2e1485ee5c651c02242a02b622ac2be",
636
+ ],
637
+ }
638
+ : {}),
581
639
  guarantees: [
582
640
  "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
583
641
  "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",