V43 Canonical Promotion: Product Routes And Agentic Depositing #17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: V39 Canon Promotion | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - ready_for_review | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: write | |
| pull-requests: read | |
| jobs: | |
| promote-v39: | |
| name: V39 Promotion Validation | |
| if: >- | |
| ${{ | |
| github.event_name == 'workflow_dispatch' || | |
| ( | |
| github.event.pull_request.base.ref == 'main' && | |
| github.event.pull_request.head.ref == 'version/v39' && | |
| github.event.pull_request.head.repo.full_name == github.repository | |
| ) | |
| }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout version branch | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.event.pull_request.head.ref || github.ref_name }} | |
| token: ${{ github.token }} | |
| fetch-depth: 0 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Validate V39 promotion readiness | |
| run: | | |
| POINTER="$(cat BITCODE_SPEC.txt)" | |
| if [ "$POINTER" = "V38" ]; then | |
| node scripts/check-bitcode-spec-family.mjs --version V39 --mode draft --current-target V38 | |
| node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V38 --draft-target V39 | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V38 | |
| node scripts/check-v39-gate1-commercial-reading-roadmap-opening.mjs --skip-branch-check | |
| node scripts/check-v39-gate2-depository-supply-indexing.mjs --skip-branch-check --skip-package-tests | |
| node scripts/check-v39-gate3-enterprise-reading-ux-state.mjs --skip-branch-check --skip-uapi-tests | |
| node scripts/check-v39-gate4-read-need-review-resynthesis.mjs --skip-branch-check --skip-package-tests --skip-uapi-tests | |
| node scripts/check-v39-gate5-read-fits-finding-runtime.mjs --skip-branch-check --skip-package-tests | |
| node scripts/check-v39-gate6-assetpack-preview-quote-boundary.mjs --skip-branch-check --skip-package-tests | |
| node scripts/check-v39-gate7-settlement-rights-delivery.mjs --skip-branch-check --skip-package-tests | |
| node scripts/check-v39-gate8-operational-telemetry-repair-readback.mjs --skip-branch-check --skip-package-tests --skip-uapi-tests | |
| node scripts/check-v39-gate9-interface-conversation-product-parity.mjs --skip-branch-check --skip-package-tests --skip-interface-tests | |
| node scripts/check-v39-gate10-local-staging-reading-rehearsal.mjs --skip-branch-check --skip-package-tests | |
| node scripts/check-v39-gate11-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests | |
| node scripts/promote-bitcode-canon.mjs --version V39 --commit HEAD --dry-run | |
| elif [ "$POINTER" = "V39" ]; then | |
| node scripts/check-bitcode-spec-family.mjs --version V39 --mode promoted --current-target V39 | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V39 | |
| node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V39 --draft-target V40 | |
| node scripts/check-v39-gate11-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests | |
| else | |
| echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2 | |
| exit 1 | |
| fi | |
| pnpm test:qa:v28:pipeline-readback | |
| pnpm --filter @bitcode/protocol typecheck | |
| pnpm --filter @bitcode/protocol test | |
| pnpm --filter @bitcode/btd typecheck | |
| pnpm --filter @bitcode/btd test | |
| npm --prefix protocol-demonstration test | |
| npm --prefix protocol-demonstration run test:v28-mvp-qa | |
| pnpm --filter @bitcode/pipeline-asset-pack typecheck | |
| pnpm --filter @bitcode/pipeline-hosts typecheck | |
| pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| pnpm --dir uapi exec jest --runTestsByPath \ | |
| tests/userDataRoute.test.ts \ | |
| tests/auxillariesWalletPane.test.tsx \ | |
| tests/auxillariesContent.access.test.tsx \ | |
| tests/auxillariesWorkspacePanels.access.test.tsx \ | |
| tests/auxillariesWorkspacePanels.test.tsx \ | |
| tests/api/auxillariesGithubConnectionRoute.test.ts \ | |
| tests/api/vcsRoutes.test.ts \ | |
| tests/auxillariesExternalsPane.test.tsx \ | |
| tests/profileStep.test.tsx \ | |
| tests/api/readReviewRoute.test.ts \ | |
| tests/api/pipelineHarnessRoute.test.ts \ | |
| tests/terminalPipelineHarnessClient.test.ts \ | |
| 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 \ | |
| tests/protocolCommercialBoundary.test.ts \ | |
| tests/terminalTransactionDetailCards.test.tsx \ | |
| tests/terminalTransactionDetailSnapshot.test.ts \ | |
| tests/terminalUxBrowserProof.test.tsx \ | |
| tests/bitcodeBrowserAccessibilityResponsiveProof.test.ts \ | |
| tests/pipelineExecutionLogHeader.test.tsx \ | |
| tests/api/conversationSessionRouteHistory.test.ts \ | |
| tests/api/conversationSessionRouteHistoryContract.test.ts \ | |
| tests/api/conversationStreamEventContract.test.ts \ | |
| tests/conversationStreamPipelineLog.test.tsx \ | |
| tests/conversationWritingWorkspace.test.tsx \ | |
| tests/conversationSourceSelector.test.tsx \ | |
| tests/conversationTerminalHandoff.test.tsx \ | |
| tests/api/conversationPersistencePrivacyRedaction.test.ts \ | |
| tests/conversationPersistencePrivacyPanel.test.tsx \ | |
| tests/api/conversationTelemetryProofHooks.test.ts \ | |
| tests/conversationTelemetryProofPanel.test.tsx \ | |
| tests/api/conversationRehearsal.test.ts \ | |
| tests/conversationRehearsalPanel.test.tsx \ | |
| --runInBand \ | |
| --forceExit | |
| git diff --check | |
| - name: Promote V39 canon files | |
| if: >- | |
| ${{ | |
| github.event_name == 'pull_request' && | |
| github.event.pull_request.head.ref == 'version/v39' | |
| }} | |
| env: | |
| HEAD_BRANCH: ${{ github.event.pull_request.head.ref }} | |
| run: | | |
| if [ "$(cat BITCODE_SPEC.txt)" = "V39" ]; then | |
| echo "BITCODE_SPEC.txt already points to V39." | |
| exit 0 | |
| fi | |
| PROOF_SOURCE_COMMIT="$(git rev-parse HEAD)" | |
| npm run promote:canon -- --version V39 --commit "$PROOF_SOURCE_COMMIT" | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git add \ | |
| BITCODE_SPEC.txt \ | |
| BITCODE_SPEC_V39.md \ | |
| BITCODE_SPEC_V39_DELTA.md \ | |
| BITCODE_SPEC_V39_NOTES.md \ | |
| BITCODE_SPEC_V39_PARITY_MATRIX.md \ | |
| BITCODE_SPEC_V39_PROVEN.md \ | |
| protocol-demonstration/src/canon-posture.js \ | |
| protocol-demonstration/README.md \ | |
| packages/protocol/src/canon-posture.js \ | |
| packages/protocol/data/state.json \ | |
| packages/protocol/README.md \ | |
| .bitcode | |
| git commit -m "Promote Bitcode canon to V39" | |
| git push origin "HEAD:$HEAD_BRANCH" |