Skip to content

Commit cae59f8

Browse files
V43 Canonical Promotion: Bound validation visibility
Group promotion validation commands and bound package validation steps so the V43 promotion pull request reports the exact proof surface that fails instead of hanging opaquely. Refresh affected V43 generated artifacts and document the promotion workflow visibility boundary in the V43 delta and notes.
1 parent f982b8b commit cae59f8

10 files changed

Lines changed: 79 additions & 58 deletions

.bitcode/v43-deposit-option-admission.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"currentTarget": "V42",
66
"sourceSafetyVerdict": "source-safe-deposit-option-admission-metadata",
77
"generatedAt": "deterministic",
8-
"artifactRoot": "v43-deposit-option-admission:dc159635fe6113a9374062bc",
8+
"artifactRoot": "v43-deposit-option-admission:57ad99a6209685eb2961858b",
99
"passed": true,
1010
"objectIds": [
1111
"DepositAssetPackOptionAdmissionReport",
@@ -112,8 +112,8 @@
112112
"sourceRoots": {
113113
"activePointer": "BITCODE_SPEC.txt:75f3f6d81f999da998f40cb6",
114114
"spec": "BITCODE_SPEC_V43.md:276f928dbae1236a7bc367d3",
115-
"delta": "BITCODE_SPEC_V43_DELTA.md:6ca7e12f61eb8c0ddac56322",
116-
"notes": "BITCODE_SPEC_V43_NOTES.md:a88be069723574df6b41d973",
115+
"delta": "BITCODE_SPEC_V43_DELTA.md:2903a709b782ea69cecb3bb0",
116+
"notes": "BITCODE_SPEC_V43_NOTES.md:16afebc86b2bb502f0b919c4",
117117
"parity": "BITCODE_SPEC_V43_PARITY_MATRIX.md:a5a5bf2fdee2d02f6221d00f",
118118
"roadmap": "SPECIFICATIONS_ROADMAP.md:33994a7cf33bb6e3138b932a",
119119
"readme": "README.md:e492ee74bfb581f11a687148",

.bitcode/v43-deposit-policy-compensation.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"currentTarget": "V42",
66
"sourceSafetyVerdict": "source-safe-deposit-policy-compensation-metadata",
77
"generatedAt": "deterministic",
8-
"artifactRoot": "v43-deposit-policy-compensation:42f3894f9012b254a7df1c3d",
8+
"artifactRoot": "v43-deposit-policy-compensation:e9a1ba9d758dbfa92dc171d1",
99
"passed": true,
1010
"objectIds": [
1111
"DepositAssetPackOptionPolicy",
@@ -101,8 +101,8 @@
101101
"sourceRoots": {
102102
"activePointer": "BITCODE_SPEC.txt:75f3f6d81f999da998f40cb6",
103103
"spec": "BITCODE_SPEC_V43.md:276f928dbae1236a7bc367d3",
104-
"delta": "BITCODE_SPEC_V43_DELTA.md:6ca7e12f61eb8c0ddac56322",
105-
"notes": "BITCODE_SPEC_V43_NOTES.md:a88be069723574df6b41d973",
104+
"delta": "BITCODE_SPEC_V43_DELTA.md:2903a709b782ea69cecb3bb0",
105+
"notes": "BITCODE_SPEC_V43_NOTES.md:16afebc86b2bb502f0b919c4",
106106
"parity": "BITCODE_SPEC_V43_PARITY_MATRIX.md:a5a5bf2fdee2d02f6221d00f",
107107
"roadmap": "SPECIFICATIONS_ROADMAP.md:33994a7cf33bb6e3138b932a",
108108
"readme": "README.md:e492ee74bfb581f11a687148",

.bitcode/v43-deposit-route-options.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"currentTarget": "V42",
66
"sourceSafetyVerdict": "source-safe-deposit-route-option-metadata",
77
"generatedAt": "deterministic",
8-
"artifactRoot": "v43-deposit-route-options:32477ecdd4d83555d6cdf49c",
8+
"artifactRoot": "v43-deposit-route-options:f065a83b632a3746d3e07733",
99
"passed": true,
1010
"stepIds": [
1111
"connect-source",
@@ -112,8 +112,8 @@
112112
"sourceRoots": {
113113
"activePointer": "BITCODE_SPEC.txt:75f3f6d81f999da998f40cb6",
114114
"spec": "BITCODE_SPEC_V43.md:276f928dbae1236a7bc367d3",
115-
"delta": "BITCODE_SPEC_V43_DELTA.md:6ca7e12f61eb8c0ddac56322",
116-
"notes": "BITCODE_SPEC_V43_NOTES.md:a88be069723574df6b41d973",
115+
"delta": "BITCODE_SPEC_V43_DELTA.md:2903a709b782ea69cecb3bb0",
116+
"notes": "BITCODE_SPEC_V43_NOTES.md:16afebc86b2bb502f0b919c4",
117117
"parity": "BITCODE_SPEC_V43_PARITY_MATRIX.md:a5a5bf2fdee2d02f6221d00f",
118118
"roadmap": "SPECIFICATIONS_ROADMAP.md:33994a7cf33bb6e3138b932a",
119119
"readme": "README.md:e492ee74bfb581f11a687148",

.bitcode/v43-packs-activity-master-detail.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"currentTarget": "V42",
66
"sourceSafetyVerdict": "source-safe-packs-activity-master-detail-metadata",
77
"generatedAt": "deterministic",
8-
"artifactRoot": "v43-packs-activity-master-detail:329a62c3be0722dbc4950174",
8+
"artifactRoot": "v43-packs-activity-master-detail:c0086a738180a6f767377e43",
99
"passed": true,
1010
"typeIds": [
1111
"deposit-option",
@@ -139,8 +139,8 @@
139139
"sourceRoots": {
140140
"activePointer": "BITCODE_SPEC.txt:75f3f6d81f999da998f40cb6",
141141
"spec": "BITCODE_SPEC_V43.md:276f928dbae1236a7bc367d3",
142-
"delta": "BITCODE_SPEC_V43_DELTA.md:6ca7e12f61eb8c0ddac56322",
143-
"notes": "BITCODE_SPEC_V43_NOTES.md:a88be069723574df6b41d973",
142+
"delta": "BITCODE_SPEC_V43_DELTA.md:2903a709b782ea69cecb3bb0",
143+
"notes": "BITCODE_SPEC_V43_NOTES.md:16afebc86b2bb502f0b919c4",
144144
"parity": "BITCODE_SPEC_V43_PARITY_MATRIX.md:a5a5bf2fdee2d02f6221d00f",
145145
"roadmap": "SPECIFICATIONS_ROADMAP.md:33994a7cf33bb6e3138b932a",
146146
"readme": "README.md:e492ee74bfb581f11a687148",

.bitcode/v43-promotion-readiness-report.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"relativePath": ".bitcode/v43-packs-activity-master-detail.json",
5454
"present": true,
5555
"parseable": true,
56-
"digest": "sha256:1a859ed81e6ec0d72e17bdd358e899859164ce3fe962ba70b8bda9f64aaa0654",
56+
"digest": "sha256:622db05cd196330c8bd468f1db55869fc2c0a4e8fda81160a866748f41ecbc45",
5757
"byteLength": 11717,
5858
"sourceSafe": true,
5959
"artifactId": "v43-packs-activity-master-detail",
@@ -64,7 +64,7 @@
6464
"relativePath": ".bitcode/v43-read-route-five-step-ux.json",
6565
"present": true,
6666
"parseable": true,
67-
"digest": "sha256:09fe173129baf4301902238006c7eb958b55df6465d76caf20f42d84a83cceea",
67+
"digest": "sha256:9201b93d9a7660600414619333281b58d8f467bafbdd2865720e4d2c1af0ecc7",
6868
"byteLength": 12152,
6969
"sourceSafe": true,
7070
"artifactId": "v43-read-route-five-step-ux",
@@ -75,7 +75,7 @@
7575
"relativePath": ".bitcode/v43-deposit-route-options.json",
7676
"present": true,
7777
"parseable": true,
78-
"digest": "sha256:917f8ed93590bb81d1c37330f6e446f05a23fdbccc04511b14483989903ce193",
78+
"digest": "sha256:a56511336831517dcc4ad478d9392a1318ff6c53b87f11206ff379c718429b5a",
7979
"byteLength": 13187,
8080
"sourceSafe": true,
8181
"artifactId": "v43-deposit-route-options",
@@ -86,7 +86,7 @@
8686
"relativePath": ".bitcode/v43-deposit-policy-compensation.json",
8787
"present": true,
8888
"parseable": true,
89-
"digest": "sha256:dfb72f95d5d80d826d321d74c727be3248464eaaf53e4d7afaf3a56cc7d4c825",
89+
"digest": "sha256:4ae091eb995fedbcaab0d7e29eb588e1faa7372ff744059f6e989c476208455e",
9090
"byteLength": 11319,
9191
"sourceSafe": true,
9292
"artifactId": "v43-deposit-policy-compensation",
@@ -97,7 +97,7 @@
9797
"relativePath": ".bitcode/v43-deposit-option-admission.json",
9898
"present": true,
9999
"parseable": true,
100-
"digest": "sha256:5d194a60137c9b0ca5d9a8bce24ad9deea8ff73e0e62c87919ec1a1eae768d50",
100+
"digest": "sha256:2352eb4a0515e5db7bf8869ff1fa3004875a022a4292b359265ae11eab9c2b85",
101101
"byteLength": 13657,
102102
"sourceSafe": true,
103103
"artifactId": "v43-deposit-option-admission",
@@ -108,7 +108,7 @@
108108
"relativePath": ".bitcode/v43-route-ux-product-excellence.json",
109109
"present": true,
110110
"parseable": true,
111-
"digest": "sha256:a02d47132b3d521bdd5a25ce2871628584613164a9798ecc41bf67dfd25aac8f",
111+
"digest": "sha256:0fc3c3981a72738a6eb662c8e515453e2fafbb46d3b8dc3600c9e11389bf38e4",
112112
"byteLength": 11291,
113113
"sourceSafe": true,
114114
"artifactId": "v43-route-ux-product-excellence",
@@ -238,7 +238,7 @@
238238
{
239239
"relativePath": ".github/workflows/v43-canon-promotion.yml",
240240
"present": true,
241-
"digest": "sha256:8ec51920fbd80daf742ce07eea70a42e25e72c105a0c313f6316235e4280635f",
241+
"digest": "sha256:d5ba6ba2a57641227266c1b9103efba97afbb2e0fef0475c1b09571b5011bee4",
242242
"requiredTokens": [
243243
{
244244
"token": "head.ref == 'version/v43'",
@@ -400,7 +400,7 @@
400400
{
401401
"relativePath": "BITCODE_SPEC_V43_DELTA.md",
402402
"present": true,
403-
"digest": "sha256:6ca7e12f61eb8c0ddac563227a5918db8ce893b10aa6fe778894829676aae36b",
403+
"digest": "sha256:2903a709b782ea69cecb3bb0537fa3752e825c7dd548265e5c454f02b5b776c4",
404404
"requiredTokens": [
405405
{
406406
"token": "Gate 10: V43 Promotion Readiness",
@@ -419,7 +419,7 @@
419419
{
420420
"relativePath": "BITCODE_SPEC_V43_NOTES.md",
421421
"present": true,
422-
"digest": "sha256:a88be069723574df6b41d973dcd1032df26be2bc3b39000a2469ecbe135aecc7",
422+
"digest": "sha256:16afebc86b2bb502f0b919c40bbe1aae1b4022cd50fbdb4420eda35d4da00514",
423423
"requiredTokens": [
424424
{
425425
"token": "Gate 10: V43 Promotion Readiness",

.bitcode/v43-read-route-five-step-ux.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"currentTarget": "V42",
66
"sourceSafetyVerdict": "source-safe-read-route-five-step-metadata",
77
"generatedAt": "deterministic",
8-
"artifactRoot": "v43-read-route-five-step-ux:14e3d7a5e414b21968709fad",
8+
"artifactRoot": "v43-read-route-five-step-ux:be32f7d049c3df0746f5c305",
99
"passed": true,
1010
"stepIds": [
1111
"request-read",
@@ -118,8 +118,8 @@
118118
"sourceRoots": {
119119
"activePointer": "BITCODE_SPEC.txt:75f3f6d81f999da998f40cb6",
120120
"spec": "BITCODE_SPEC_V43.md:276f928dbae1236a7bc367d3",
121-
"delta": "BITCODE_SPEC_V43_DELTA.md:6ca7e12f61eb8c0ddac56322",
122-
"notes": "BITCODE_SPEC_V43_NOTES.md:a88be069723574df6b41d973",
121+
"delta": "BITCODE_SPEC_V43_DELTA.md:2903a709b782ea69cecb3bb0",
122+
"notes": "BITCODE_SPEC_V43_NOTES.md:16afebc86b2bb502f0b919c4",
123123
"parity": "BITCODE_SPEC_V43_PARITY_MATRIX.md:a5a5bf2fdee2d02f6221d00f",
124124
"roadmap": "SPECIFICATIONS_ROADMAP.md:33994a7cf33bb6e3138b932a",
125125
"readme": "README.md:e492ee74bfb581f11a687148",

.bitcode/v43-route-ux-product-excellence.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"currentTarget": "V42",
66
"sourceSafetyVerdict": "source-safe-product-route-ux-metadata",
77
"generatedAt": "deterministic",
8-
"artifactRoot": "v43-route-ux-product-excellence:5d556c48b42e96c722ba5951",
8+
"artifactRoot": "v43-route-ux-product-excellence:f10ceb81e4c398ed20d34b1c",
99
"passed": true,
1010
"objectIds": [
1111
"ProductRouteShell",
@@ -114,8 +114,8 @@
114114
"sourceRoots": {
115115
"activePointer": "BITCODE_SPEC.txt:75f3f6d81f999da998f40cb6",
116116
"spec": "BITCODE_SPEC_V43.md:276f928dbae1236a7bc367d3",
117-
"delta": "BITCODE_SPEC_V43_DELTA.md:6ca7e12f61eb8c0ddac56322",
118-
"notes": "BITCODE_SPEC_V43_NOTES.md:a88be069723574df6b41d973",
117+
"delta": "BITCODE_SPEC_V43_DELTA.md:2903a709b782ea69cecb3bb0",
118+
"notes": "BITCODE_SPEC_V43_NOTES.md:16afebc86b2bb502f0b919c4",
119119
"parity": "BITCODE_SPEC_V43_PARITY_MATRIX.md:a5a5bf2fdee2d02f6221d00f",
120120
"roadmap": "SPECIFICATIONS_ROADMAP.md:33994a7cf33bb6e3138b932a",
121121
"readme": "README.md:e492ee74bfb581f11a687148",

.github/workflows/v43-canon-promotion.yml

Lines changed: 45 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -56,42 +56,58 @@ jobs:
5656

5757
- name: Validate V43 promotion readiness
5858
run: |
59+
set -euo pipefail
60+
61+
run_checked() {
62+
echo "::group::$*"
63+
"$@"
64+
echo "::endgroup::"
65+
}
66+
67+
run_bounded() {
68+
local limit="$1"
69+
shift
70+
echo "::group::$*"
71+
timeout --kill-after=30s "$limit" "$@"
72+
echo "::endgroup::"
73+
}
74+
5975
POINTER="$(cat BITCODE_SPEC.txt)"
6076
if [ "$POINTER" = "V42" ]; then
61-
node scripts/check-bitcode-spec-family.mjs --version V43 --mode draft --current-target V42
62-
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V42 --draft-target V43
63-
node scripts/check-bitcode-canonical-inputs.mjs --current-target V42
64-
node scripts/check-v43-gate1-packs-read-deposit-roadmap.mjs --skip-branch-check
65-
node scripts/check-v43-gate2-route-vocabulary-inventory.mjs --skip-branch-check
66-
node scripts/check-v43-gate3-packs-activity-master-detail.mjs --skip-branch-check --skip-uapi-tests
67-
node scripts/check-v43-gate4-read-route-five-step-ux.mjs --skip-branch-check --skip-uapi-tests
68-
node scripts/check-v43-gate5-deposit-route-options.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
69-
node scripts/check-v43-gate6-deposit-policy-compensation.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
70-
node scripts/check-v43-gate7-deposit-option-admission.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
71-
node scripts/check-v43-gate8-route-ux-product-excellence.mjs --skip-branch-check --skip-uapi-tests
72-
node scripts/check-v43-gate9-cross-route-rehearsal-telemetry-repair.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
73-
node scripts/check-v43-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests
74-
node scripts/promote-bitcode-canon.mjs --version V43 --commit HEAD --dry-run
77+
run_checked node scripts/check-bitcode-spec-family.mjs --version V43 --mode draft --current-target V42
78+
run_checked node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V42 --draft-target V43
79+
run_checked node scripts/check-bitcode-canonical-inputs.mjs --current-target V42
80+
run_checked node scripts/check-v43-gate1-packs-read-deposit-roadmap.mjs --skip-branch-check
81+
run_checked node scripts/check-v43-gate2-route-vocabulary-inventory.mjs --skip-branch-check
82+
run_checked node scripts/check-v43-gate3-packs-activity-master-detail.mjs --skip-branch-check --skip-uapi-tests
83+
run_checked node scripts/check-v43-gate4-read-route-five-step-ux.mjs --skip-branch-check --skip-uapi-tests
84+
run_checked node scripts/check-v43-gate5-deposit-route-options.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
85+
run_checked node scripts/check-v43-gate6-deposit-policy-compensation.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
86+
run_checked node scripts/check-v43-gate7-deposit-option-admission.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
87+
run_checked node scripts/check-v43-gate8-route-ux-product-excellence.mjs --skip-branch-check --skip-uapi-tests
88+
run_checked node scripts/check-v43-gate9-cross-route-rehearsal-telemetry-repair.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
89+
run_checked node scripts/check-v43-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests
90+
run_checked node scripts/promote-bitcode-canon.mjs --version V43 --commit HEAD --dry-run
7591
elif [ "$POINTER" = "V43" ]; then
76-
node scripts/check-bitcode-spec-family.mjs --version V43 --mode promoted --current-target V43
77-
node scripts/check-bitcode-canonical-inputs.mjs --current-target V43
78-
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V43 --draft-target V44
79-
node scripts/check-v43-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests
92+
run_checked node scripts/check-bitcode-spec-family.mjs --version V43 --mode promoted --current-target V43
93+
run_checked node scripts/check-bitcode-canonical-inputs.mjs --current-target V43
94+
run_checked node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V43 --draft-target V44
95+
run_checked node scripts/check-v43-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests
8096
else
8197
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
8298
exit 1
8399
fi
84-
pnpm --filter @bitcode/protocol typecheck
85-
pnpm --filter @bitcode/protocol test
86-
pnpm --filter @bitcode/btd typecheck
87-
pnpm --filter @bitcode/btd exec jest --config jest.config.cjs --runInBand --forceExit
88-
npm --prefix protocol-demonstration test
89-
npm --prefix protocol-demonstration run test:v28-mvp-qa
90-
pnpm --filter @bitcode/pipeline-asset-pack typecheck
91-
pnpm --filter @bitcode/pipeline-hosts typecheck
92-
pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --passWithNoTests --forceExit
93-
pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --passWithNoTests --forceExit
94-
git diff --check
100+
run_bounded 5m pnpm --filter @bitcode/protocol typecheck
101+
run_bounded 5m pnpm --filter @bitcode/protocol test
102+
run_bounded 5m pnpm --filter @bitcode/btd typecheck
103+
run_bounded 5m pnpm --filter @bitcode/btd exec jest --config jest.config.cjs --runInBand --forceExit
104+
run_bounded 5m npm --prefix protocol-demonstration test
105+
run_bounded 5m npm --prefix protocol-demonstration run test:v28-mvp-qa
106+
run_bounded 5m pnpm --filter @bitcode/pipeline-asset-pack typecheck
107+
run_bounded 5m pnpm --filter @bitcode/pipeline-hosts typecheck
108+
run_bounded 5m pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --passWithNoTests --forceExit
109+
run_bounded 5m pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --passWithNoTests --forceExit
110+
run_checked git diff --check
95111
96112
- name: Promote V43 canon files
97113
if: >-

BITCODE_SPEC_V43_DELTA.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,9 @@ bound to active V42 / draft V43 before promotion. The promotion workflow must
178178
produce V43 active / draft V44 posture, create `BITCODE_SPEC_V43_PROVEN.md`,
179179
and refuse promotion when any artifact, workflow, promotion script, generated
180180
proof output, documentation evidence, source-safety boundary, or value-bearing
181-
mainnet block is missing.
181+
mainnet block is missing. Its validation commands are grouped and package
182+
validation commands are bounded so the promotion pull request remains
183+
inspectable and greenable under GitHub Actions.
182184

183185
## Commit-Body Direction
184186

BITCODE_SPEC_V43_NOTES.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ generated PROVEN hook, and source-safety boundary needed for the eventual
107107
The expected post-promotion runtime posture is active V43 / draft V44. The
108108
promotion workflow must generate `BITCODE_SPEC_V43_PROVEN.md`, prepare the
109109
runtime canon files, advance `BITCODE_SPEC.txt` to `V43`, and then verify the
110-
posture drift and canonical inputs. The readiness report remains source-safe
110+
posture drift and canonical inputs. The promotion validation shell groups every
111+
promotion command and bounds package validations so greenable promotion failures
112+
identify the failing proof surface instead of hanging opaquely. The readiness
113+
report remains source-safe
111114
metadata only; if a secret, protected source body, raw prompt/provider payload,
112115
unpaid AssetPack source, wallet private material, or value-bearing mainnet
113116
admission appears in the proof, promotion remains blocked.

0 commit comments

Comments
 (0)