Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
0cae3f9
V30 Gate 1: Open roadmap and gating
geraldarthurdavis May 21, 2026
6f7fd74
Merge pull request #33 from engineeredsoftware/v30/gate-1-roadmap-and…
geraldarthurdavis May 21, 2026
b452e2a
V30 Gate 2: Package BTD API boundaries
geraldarthurdavis May 21, 2026
161df58
Merge pull request #34 from engineeredsoftware/v30/gate-2-protocol-pa…
geraldarthurdavis May 21, 2026
309c87e
V30 Gate 3: Harden BTC fee PSBT posture
geraldarthurdavis May 21, 2026
a2c3ce8
Merge pull request #35 from engineeredsoftware/v30/gate-3-bitcoin-tap…
geraldarthurdavis May 21, 2026
04a095b
V30 Gate 4: Type AssetPack read receipts
geraldarthurdavis May 21, 2026
708214e
Merge pull request #36 from engineeredsoftware/v30/gate-4-btd-assetpa…
geraldarthurdavis May 21, 2026
d0fd62f
V30 Gate 5: Harden testnet ledger projection
geraldarthurdavis May 21, 2026
790daeb
V30 Gate 5: Stabilize journal reconciliation cards
geraldarthurdavis May 21, 2026
a91d313
Merge pull request #37 from engineeredsoftware/v30/gate-5-testnet-led…
geraldarthurdavis May 21, 2026
6987c6b
V30 Gate 6: Clean source-to-shares proof accounting
geraldarthurdavis May 21, 2026
f7b91fe
Merge pull request #38 from engineeredsoftware/v30/gate-6-source-to-s…
geraldarthurdavis May 21, 2026
1fd0226
V30 Gate 7: Bound bridge-readiness research
geraldarthurdavis May 21, 2026
54abbbe
Merge pull request #39 from engineeredsoftware/v30/gate-7-bridge-read…
geraldarthurdavis May 21, 2026
0791894
V30 Gate 8: Add protocol telemetry proof hooks
geraldarthurdavis May 21, 2026
3d371cb
Merge pull request #40 from engineeredsoftware/v30/gate-8-protocol-te…
geraldarthurdavis May 21, 2026
f177157
V30 Gate 9: Prove interface integration regression (#41)
geraldarthurdavis May 21, 2026
5ca8f99
V30 Gate 10: Prove promotion readiness
geraldarthurdavis May 21, 2026
2d18901
Merge pull request #42 from engineeredsoftware/v30/gate-10-promotion-…
geraldarthurdavis May 21, 2026
bc68d2e
V30: Fix promotion README posture rewrite
geraldarthurdavis May 22, 2026
9d0adf7
V30: Fix wrapped demonstration promotion posture
geraldarthurdavis May 22, 2026
c5b238b
V30: Trim generated proven appendix EOF
geraldarthurdavis May 22, 2026
d17b306
Promote Bitcode canon to V30
github-actions[bot] May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .bitcode/v30-canon-posture-drift-report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"reportId": "v30-canon-posture-drift-report",
"version": "V30",
"checkedActiveCanonVersion": "V30",
"checkedDraftTargetVersion": "V31",
"pointerVersion": "V30",
"proofSourceCommit": "c5b238b9958430c4611ef396ac8cea248c1aecf4",
"generatedAt": "2026-05-21T22:17:44-03:00",
"generatorId": "bitcode.proven-generator.v1",
"worktreeState": "clean",
"passed": true,
"checkCount": 10,
"blockingFailureCount": 0,
"blockingFailures": [],
"runtimeSpecVersion": "Bitcode Spec V30 active canon / V31 system draft",
"publicSpecVersion": "Bitcode Spec V30 active canon / V31 system draft",
"activeProvenAppendixPath": "BITCODE_SPEC_V30_PROVEN.md",
"policyRef": "policy://bitcode/spec-v30-active-v31-system-draft/current",
"checkedFiles": [
"protocol-demonstration/README.md",
"protocol-demonstration/public/index.html",
"protocol-demonstration/public/app.js",
"protocol-demonstration/server.js"
],
"checks": [
{
"checkId": "pointer-active-canon-alignment",
"passed": true,
"detail": "BITCODE_SPEC.txt points to V30 while runtime expects V30."
},
{
"checkId": "canon-posture-constant-alignment",
"passed": true,
"detail": "canon-posture constants resolve V30/V31 with operator label V30 active canon / V31 system draft."
},
{
"checkId": "proven-appendix-alignment",
"passed": true,
"detail": "active generated appendix path is BITCODE_SPEC_V30_PROVEN.md."
},
{
"checkId": "policy-ref-alignment",
"passed": true,
"detail": "policy reference is policy://bitcode/spec-v30-active-v31-system-draft/current."
},
{
"checkId": "runtime-state-alignment",
"passed": true,
"detail": "buildInitialState() reports Bitcode Spec V30 active canon / V31 system draft with canon posture V30/V31."
},
{
"checkId": "public-state-alignment",
"passed": true,
"detail": "publicState() reports Bitcode Spec V30 active canon / V31 system draft with canon posture V30/V31."
},
{
"checkId": "server-api-alignment",
"passed": true,
"detail": "server.js keeps API posture sourced from SPEC_VERSION and buildPublicState(...)."
},
{
"checkId": "browser-shell-placeholder-alignment",
"passed": true,
"detail": "public/index.html exposes canon-posture placeholders and no stale hardcoded hero posture."
},
{
"checkId": "browser-shell-render-alignment",
"passed": true,
"detail": "public/app.js renders canon posture from runtime state and omits stale V15 explainer keys."
},
{
"checkId": "readme-alignment",
"passed": true,
"detail": "README states V30 active canon and BITCODE_SPEC_V30_PROVEN.md as the current generated appendix."
}
]
}
24 changes: 24 additions & 0 deletions .bitcode/v30-canonical-input-report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"reportId": "v30-canonical-input-report",
"version": "V30",
"proofSourceCommit": "c5b238b9958430c4611ef396ac8cea248c1aecf4",
"generatedAt": "2026-05-21T22:17:44-03:00",
"generatorId": "bitcode.proven-generator.v1",
"worktreeState": "clean",
"checkedTargetVersion": "V30",
"pointerVersion": "V30",
"passed": true,
"failureCount": 0,
"failures": [],
"specPath": "BITCODE_SPEC_V30.md",
"notesPath": "BITCODE_SPEC_V30_NOTES.md",
"provenPath": "BITCODE_SPEC_V30_PROVEN.md",
"parityPath": "BITCODE_SPEC_V30_PARITY_MATRIX.md",
"requiredGeneratedArtifactPaths": [
".bitcode/v30-spec-family-report.json",
".bitcode/v30-canonical-input-report.json",
".bitcode/v30-canon-posture-drift-report.json",
".bitcode/v30-protocol-telemetry-proof-hooks.json"
],
"requiredGeneratedArtifactCount": 4
}
45 changes: 45 additions & 0 deletions .bitcode/v30-protocol-telemetry-proof-hooks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"reportId": "v30-protocol-telemetry-proof-hooks",
"version": "V30",
"proofSourceCommit": "c5b238b9958430c4611ef396ac8cea248c1aecf4",
"generatedAt": "2026-05-21T22:17:44-03:00",
"generatorId": "bitcode.proven-generator.v1",
"worktreeState": "clean",
"passed": true,
"sourceSafe": true,
"checkedFileCount": 12,
"checkedFiles": [
"packages/btd/src/telemetry.ts",
"packages/btd/src/api-boundaries.ts",
"packages/btd/__tests__/telemetry.test.ts",
"packages/api/src/routes/btd-crypto.ts",
"packages/api/src/routes/__tests__/btd-crypto.test.ts",
"uapi/app/api/btd/protocol-telemetry/route.ts",
"packages/btd/README.md",
"uapi/app/terminal/README.md",
"BITCODE_SPEC_V30.md",
"BITCODE_SPEC_V30_DELTA.md",
"BITCODE_SPEC_V30_NOTES.md",
"BITCODE_SPEC_V30_PARITY_MATRIX.md"
],
"requiredTelemetryFamilies": [
"btd_receipt",
"btc_fee_state",
"ledger_projection",
"source_to_shares_proof",
"bridge_readiness_posture"
],
"proofHookCoverage": [
"theorem ids",
"replay step ids",
"witness artifact paths",
"generated artifact paths",
"evidence roots",
"telemetry roots"
],
"compatibleWith": [
"V32",
"V35"
],
"failures": []
}
34 changes: 34 additions & 0 deletions .bitcode/v30-spec-family-report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"reportId": "v30-spec-family-report",
"version": "V30",
"proofSourceCommit": "c5b238b9958430c4611ef396ac8cea248c1aecf4",
"generatedAt": "2026-05-21T22:17:44-03:00",
"generatorId": "bitcode.proven-generator.v1",
"worktreeState": "clean",
"checkedVersion": "V30",
"mode": "promoted",
"currentTarget": "V30",
"pointerVersion": "V30",
"passed": true,
"failureCount": 0,
"failures": [],
"requiredFiles": [
"BITCODE_SPEC_V30.md",
"BITCODE_SPEC_V30_DELTA.md",
"BITCODE_SPEC_V30_NOTES.md",
"BITCODE_SPEC_V30_PARITY_MATRIX.md"
],
"supportFiles": [
"BITCODE_SPECIFYING.md",
"BITCODE_SPEC_TEMPLATEGUIDE.md"
],
"requiredStatusLabelCount": 4,
"requiredPromotedStatusLabelCount": 1,
"requiredSpecSectionCount": 18,
"requiredAppendixSectionCount": 14,
"requiredProofFamilyCount": 9,
"requiredGeneratedArtifactCatalogSectionCount": 9,
"requiredGeneratedArtifactPathCount": 4,
"requiredNotesSectionCount": 4,
"requiredSubsystemCoverageCount": 18
}
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Title

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

## Closure

Expand Down
19 changes: 16 additions & 3 deletions .github/workflows/bitcode-canon-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Validate active canon and V29 posture
- name: Validate active canon and draft posture
run: |
POINTER="$(cat BITCODE_SPEC.txt)"
if [ "$POINTER" = "V28" ]; then
Expand All @@ -32,6 +32,11 @@ jobs:
node scripts/check-bitcode-canonical-inputs.mjs --current-target V29
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V29 --draft-target V30
node scripts/check-bitcode-spec-family.mjs --version V29 --mode promoted --current-target V29
node scripts/check-bitcode-spec-family.mjs --version V30 --mode draft --current-target V29
elif [ "$POINTER" = "V30" ]; then
node scripts/check-bitcode-canonical-inputs.mjs --current-target V30
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V30 --draft-target V31
node scripts/check-bitcode-spec-family.mjs --version V30 --mode promoted --current-target V30
else
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
exit 1
Expand Down Expand Up @@ -64,7 +69,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Run V29 strict conformance for spec-title changes
- name: Run strict conformance for spec-title changes
run: |
case "$SPEC_TITLE" in
spec:\ V29*|spec:\ v29*)
Expand All @@ -75,7 +80,15 @@ jobs:
node scripts/check-bitcode-spec-family.mjs --version V29 --mode draft --current-target V28
fi
;;
spec:\ V30*|spec:\ v30*)
POINTER="$(cat BITCODE_SPEC.txt)"
if [ "$POINTER" = "V30" ]; then
node scripts/check-bitcode-spec-family.mjs --version V30 --mode promoted --current-target V30
else
node scripts/check-bitcode-spec-family.mjs --version V30 --mode draft --current-target V29
fi
;;
*)
echo "Skipping strict spec-title conformance; title is not a V29 spec change."
echo "Skipping strict spec-title conformance; title is not a V29/V30 spec change."
;;
esac
18 changes: 18 additions & 0 deletions .github/workflows/bitcode-gate-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,25 @@ jobs:
node scripts/check-v29-gate10-local-staging-promotion-readiness.mjs --skip-branch-check
elif [ "$POINTER" = "V29" ]; then
node scripts/check-bitcode-spec-family.mjs --version V29 --mode promoted --current-target V29
node scripts/check-bitcode-spec-family.mjs --version V30 --mode draft --current-target V29
node scripts/check-bitcode-canonical-inputs.mjs --current-target V29
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V29 --draft-target V30
node scripts/check-v29-gate10-local-staging-promotion-readiness.mjs --promotion-mode --skip-branch-check
node scripts/check-v30-gate1-roadmap-and-gating.mjs --skip-branch-check
node scripts/check-v30-gate2-protocol-package-api-boundaries.mjs --skip-branch-check
node scripts/check-v30-gate3-bitcoin-taproot-psbt-fee-rigor.mjs --skip-branch-check
node scripts/check-v30-gate4-btd-assetpack-mint-read-receipts.mjs --skip-branch-check
node scripts/check-v30-gate5-testnet-ledger-projection-hardening.mjs --skip-branch-check
node scripts/check-v30-gate6-source-to-shares-proof-cleanup.mjs --skip-branch-check
node scripts/check-v30-gate7-bridge-readiness-research-boundaries.mjs --skip-branch-check
node scripts/check-v30-gate8-protocol-telemetry-proof-hooks.mjs --skip-branch-check
node scripts/check-v30-gate9-interface-integration-regression-proof.mjs --skip-branch-check
node scripts/check-v30-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check
elif [ "$POINTER" = "V30" ]; then
node scripts/check-bitcode-spec-family.mjs --version V30 --mode promoted --current-target V30
node scripts/check-bitcode-canonical-inputs.mjs --current-target V30
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V30 --draft-target V31
node scripts/check-v30-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check
else
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
exit 1
Expand Down Expand Up @@ -122,6 +138,8 @@ jobs:
tests/terminalDepositReadWorkbench.test.ts \
tests/terminalTransactionQuery.test.ts \
tests/terminalTransactionReadModel.test.ts \
tests/terminalProtocolProjection.test.ts \
tests/terminalInterfaceIntegrationRegression.test.ts \
tests/terminalWalletBtcOperation.test.ts \
tests/terminalJournalReconciliation.test.ts \
tests/terminalOrganizationAuthority.test.ts \
Expand Down
Loading