Skip to content

Commit 78ebe82

Browse files
Merge pull request #43 from engineeredsoftware/version/v30
V30: Canonical Promotion
2 parents f973e82 + d17b306 commit 78ebe82

94 files changed

Lines changed: 16040 additions & 1668 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
{
2+
"reportId": "v30-canon-posture-drift-report",
3+
"version": "V30",
4+
"checkedActiveCanonVersion": "V30",
5+
"checkedDraftTargetVersion": "V31",
6+
"pointerVersion": "V30",
7+
"proofSourceCommit": "c5b238b9958430c4611ef396ac8cea248c1aecf4",
8+
"generatedAt": "2026-05-21T22:17:44-03:00",
9+
"generatorId": "bitcode.proven-generator.v1",
10+
"worktreeState": "clean",
11+
"passed": true,
12+
"checkCount": 10,
13+
"blockingFailureCount": 0,
14+
"blockingFailures": [],
15+
"runtimeSpecVersion": "Bitcode Spec V30 active canon / V31 system draft",
16+
"publicSpecVersion": "Bitcode Spec V30 active canon / V31 system draft",
17+
"activeProvenAppendixPath": "BITCODE_SPEC_V30_PROVEN.md",
18+
"policyRef": "policy://bitcode/spec-v30-active-v31-system-draft/current",
19+
"checkedFiles": [
20+
"protocol-demonstration/README.md",
21+
"protocol-demonstration/public/index.html",
22+
"protocol-demonstration/public/app.js",
23+
"protocol-demonstration/server.js"
24+
],
25+
"checks": [
26+
{
27+
"checkId": "pointer-active-canon-alignment",
28+
"passed": true,
29+
"detail": "BITCODE_SPEC.txt points to V30 while runtime expects V30."
30+
},
31+
{
32+
"checkId": "canon-posture-constant-alignment",
33+
"passed": true,
34+
"detail": "canon-posture constants resolve V30/V31 with operator label V30 active canon / V31 system draft."
35+
},
36+
{
37+
"checkId": "proven-appendix-alignment",
38+
"passed": true,
39+
"detail": "active generated appendix path is BITCODE_SPEC_V30_PROVEN.md."
40+
},
41+
{
42+
"checkId": "policy-ref-alignment",
43+
"passed": true,
44+
"detail": "policy reference is policy://bitcode/spec-v30-active-v31-system-draft/current."
45+
},
46+
{
47+
"checkId": "runtime-state-alignment",
48+
"passed": true,
49+
"detail": "buildInitialState() reports Bitcode Spec V30 active canon / V31 system draft with canon posture V30/V31."
50+
},
51+
{
52+
"checkId": "public-state-alignment",
53+
"passed": true,
54+
"detail": "publicState() reports Bitcode Spec V30 active canon / V31 system draft with canon posture V30/V31."
55+
},
56+
{
57+
"checkId": "server-api-alignment",
58+
"passed": true,
59+
"detail": "server.js keeps API posture sourced from SPEC_VERSION and buildPublicState(...)."
60+
},
61+
{
62+
"checkId": "browser-shell-placeholder-alignment",
63+
"passed": true,
64+
"detail": "public/index.html exposes canon-posture placeholders and no stale hardcoded hero posture."
65+
},
66+
{
67+
"checkId": "browser-shell-render-alignment",
68+
"passed": true,
69+
"detail": "public/app.js renders canon posture from runtime state and omits stale V15 explainer keys."
70+
},
71+
{
72+
"checkId": "readme-alignment",
73+
"passed": true,
74+
"detail": "README states V30 active canon and BITCODE_SPEC_V30_PROVEN.md as the current generated appendix."
75+
}
76+
]
77+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"reportId": "v30-canonical-input-report",
3+
"version": "V30",
4+
"proofSourceCommit": "c5b238b9958430c4611ef396ac8cea248c1aecf4",
5+
"generatedAt": "2026-05-21T22:17:44-03:00",
6+
"generatorId": "bitcode.proven-generator.v1",
7+
"worktreeState": "clean",
8+
"checkedTargetVersion": "V30",
9+
"pointerVersion": "V30",
10+
"passed": true,
11+
"failureCount": 0,
12+
"failures": [],
13+
"specPath": "BITCODE_SPEC_V30.md",
14+
"notesPath": "BITCODE_SPEC_V30_NOTES.md",
15+
"provenPath": "BITCODE_SPEC_V30_PROVEN.md",
16+
"parityPath": "BITCODE_SPEC_V30_PARITY_MATRIX.md",
17+
"requiredGeneratedArtifactPaths": [
18+
".bitcode/v30-spec-family-report.json",
19+
".bitcode/v30-canonical-input-report.json",
20+
".bitcode/v30-canon-posture-drift-report.json",
21+
".bitcode/v30-protocol-telemetry-proof-hooks.json"
22+
],
23+
"requiredGeneratedArtifactCount": 4
24+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"reportId": "v30-protocol-telemetry-proof-hooks",
3+
"version": "V30",
4+
"proofSourceCommit": "c5b238b9958430c4611ef396ac8cea248c1aecf4",
5+
"generatedAt": "2026-05-21T22:17:44-03:00",
6+
"generatorId": "bitcode.proven-generator.v1",
7+
"worktreeState": "clean",
8+
"passed": true,
9+
"sourceSafe": true,
10+
"checkedFileCount": 12,
11+
"checkedFiles": [
12+
"packages/btd/src/telemetry.ts",
13+
"packages/btd/src/api-boundaries.ts",
14+
"packages/btd/__tests__/telemetry.test.ts",
15+
"packages/api/src/routes/btd-crypto.ts",
16+
"packages/api/src/routes/__tests__/btd-crypto.test.ts",
17+
"uapi/app/api/btd/protocol-telemetry/route.ts",
18+
"packages/btd/README.md",
19+
"uapi/app/terminal/README.md",
20+
"BITCODE_SPEC_V30.md",
21+
"BITCODE_SPEC_V30_DELTA.md",
22+
"BITCODE_SPEC_V30_NOTES.md",
23+
"BITCODE_SPEC_V30_PARITY_MATRIX.md"
24+
],
25+
"requiredTelemetryFamilies": [
26+
"btd_receipt",
27+
"btc_fee_state",
28+
"ledger_projection",
29+
"source_to_shares_proof",
30+
"bridge_readiness_posture"
31+
],
32+
"proofHookCoverage": [
33+
"theorem ids",
34+
"replay step ids",
35+
"witness artifact paths",
36+
"generated artifact paths",
37+
"evidence roots",
38+
"telemetry roots"
39+
],
40+
"compatibleWith": [
41+
"V32",
42+
"V35"
43+
],
44+
"failures": []
45+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"reportId": "v30-spec-family-report",
3+
"version": "V30",
4+
"proofSourceCommit": "c5b238b9958430c4611ef396ac8cea248c1aecf4",
5+
"generatedAt": "2026-05-21T22:17:44-03:00",
6+
"generatorId": "bitcode.proven-generator.v1",
7+
"worktreeState": "clean",
8+
"checkedVersion": "V30",
9+
"mode": "promoted",
10+
"currentTarget": "V30",
11+
"pointerVersion": "V30",
12+
"passed": true,
13+
"failureCount": 0,
14+
"failures": [],
15+
"requiredFiles": [
16+
"BITCODE_SPEC_V30.md",
17+
"BITCODE_SPEC_V30_DELTA.md",
18+
"BITCODE_SPEC_V30_NOTES.md",
19+
"BITCODE_SPEC_V30_PARITY_MATRIX.md"
20+
],
21+
"supportFiles": [
22+
"BITCODE_SPECIFYING.md",
23+
"BITCODE_SPEC_TEMPLATEGUIDE.md"
24+
],
25+
"requiredStatusLabelCount": 4,
26+
"requiredPromotedStatusLabelCount": 1,
27+
"requiredSpecSectionCount": 18,
28+
"requiredAppendixSectionCount": 14,
29+
"requiredProofFamilyCount": 9,
30+
"requiredGeneratedArtifactCatalogSectionCount": 9,
31+
"requiredGeneratedArtifactPathCount": 4,
32+
"requiredNotesSectionCount": 4,
33+
"requiredSubsystemCoverageCount": 18
34+
}

.github/pull_request_template.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## Title
22

3-
Use the version and gate prefix for gate PRs: `V29 Gate N: Concise Topical Title`.
4-
Use the version and promotion prefix for version promotion PRs: `V29: Promote Canon`.
3+
Use the version and gate prefix for gate PRs: `V30 Gate N: Concise Topical Title`.
4+
Use the version and promotion prefix for version promotion PRs: `V30 Canonical Promotion: Concise Topical Title`.
55

66
## Closure
77

.github/workflows/bitcode-canon-quality.yml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
- name: Checkout repository
2121
uses: actions/checkout@v4
2222

23-
- name: Validate active canon and V29 posture
23+
- name: Validate active canon and draft posture
2424
run: |
2525
POINTER="$(cat BITCODE_SPEC.txt)"
2626
if [ "$POINTER" = "V28" ]; then
@@ -32,6 +32,11 @@ jobs:
3232
node scripts/check-bitcode-canonical-inputs.mjs --current-target V29
3333
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V29 --draft-target V30
3434
node scripts/check-bitcode-spec-family.mjs --version V29 --mode promoted --current-target V29
35+
node scripts/check-bitcode-spec-family.mjs --version V30 --mode draft --current-target V29
36+
elif [ "$POINTER" = "V30" ]; then
37+
node scripts/check-bitcode-canonical-inputs.mjs --current-target V30
38+
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V30 --draft-target V31
39+
node scripts/check-bitcode-spec-family.mjs --version V30 --mode promoted --current-target V30
3540
else
3641
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
3742
exit 1
@@ -64,7 +69,7 @@ jobs:
6469
- name: Checkout repository
6570
uses: actions/checkout@v4
6671

67-
- name: Run V29 strict conformance for spec-title changes
72+
- name: Run strict conformance for spec-title changes
6873
run: |
6974
case "$SPEC_TITLE" in
7075
spec:\ V29*|spec:\ v29*)
@@ -75,7 +80,15 @@ jobs:
7580
node scripts/check-bitcode-spec-family.mjs --version V29 --mode draft --current-target V28
7681
fi
7782
;;
83+
spec:\ V30*|spec:\ v30*)
84+
POINTER="$(cat BITCODE_SPEC.txt)"
85+
if [ "$POINTER" = "V30" ]; then
86+
node scripts/check-bitcode-spec-family.mjs --version V30 --mode promoted --current-target V30
87+
else
88+
node scripts/check-bitcode-spec-family.mjs --version V30 --mode draft --current-target V29
89+
fi
90+
;;
7891
*)
79-
echo "Skipping strict spec-title conformance; title is not a V29 spec change."
92+
echo "Skipping strict spec-title conformance; title is not a V29/V30 spec change."
8093
;;
8194
esac

.github/workflows/bitcode-gate-quality.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,25 @@ jobs:
7575
node scripts/check-v29-gate10-local-staging-promotion-readiness.mjs --skip-branch-check
7676
elif [ "$POINTER" = "V29" ]; then
7777
node scripts/check-bitcode-spec-family.mjs --version V29 --mode promoted --current-target V29
78+
node scripts/check-bitcode-spec-family.mjs --version V30 --mode draft --current-target V29
7879
node scripts/check-bitcode-canonical-inputs.mjs --current-target V29
7980
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V29 --draft-target V30
8081
node scripts/check-v29-gate10-local-staging-promotion-readiness.mjs --promotion-mode --skip-branch-check
82+
node scripts/check-v30-gate1-roadmap-and-gating.mjs --skip-branch-check
83+
node scripts/check-v30-gate2-protocol-package-api-boundaries.mjs --skip-branch-check
84+
node scripts/check-v30-gate3-bitcoin-taproot-psbt-fee-rigor.mjs --skip-branch-check
85+
node scripts/check-v30-gate4-btd-assetpack-mint-read-receipts.mjs --skip-branch-check
86+
node scripts/check-v30-gate5-testnet-ledger-projection-hardening.mjs --skip-branch-check
87+
node scripts/check-v30-gate6-source-to-shares-proof-cleanup.mjs --skip-branch-check
88+
node scripts/check-v30-gate7-bridge-readiness-research-boundaries.mjs --skip-branch-check
89+
node scripts/check-v30-gate8-protocol-telemetry-proof-hooks.mjs --skip-branch-check
90+
node scripts/check-v30-gate9-interface-integration-regression-proof.mjs --skip-branch-check
91+
node scripts/check-v30-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check
92+
elif [ "$POINTER" = "V30" ]; then
93+
node scripts/check-bitcode-spec-family.mjs --version V30 --mode promoted --current-target V30
94+
node scripts/check-bitcode-canonical-inputs.mjs --current-target V30
95+
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V30 --draft-target V31
96+
node scripts/check-v30-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check
8197
else
8298
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
8399
exit 1
@@ -122,6 +138,8 @@ jobs:
122138
tests/terminalDepositReadWorkbench.test.ts \
123139
tests/terminalTransactionQuery.test.ts \
124140
tests/terminalTransactionReadModel.test.ts \
141+
tests/terminalProtocolProjection.test.ts \
142+
tests/terminalInterfaceIntegrationRegression.test.ts \
125143
tests/terminalWalletBtcOperation.test.ts \
126144
tests/terminalJournalReconciliation.test.ts \
127145
tests/terminalOrganizationAuthority.test.ts \

0 commit comments

Comments
 (0)