Skip to content

V29 Canonical Promotion: Terminal Transaction Depth#30

Merged
geraldarthurdavis merged 19 commits into
mainfrom
version/v29
May 21, 2026
Merged

V29 Canonical Promotion: Terminal Transaction Depth#30
geraldarthurdavis merged 19 commits into
mainfrom
version/v29

Conversation

@geraldarthurdavis

Copy link
Copy Markdown
Contributor

Summary

  • promotes V29 from the version branch after all ten V29 gates are closed
  • runs the V29 promotion workflow to validate the full gate stack and generate canonical V29 artifacts
  • expects the workflow to commit BITCODE_SPEC.txt -> V29, BITCODE_SPEC_V29_PROVEN.md, .bitcode/v29-* proof artifacts, and runtime canon posture updates back to version/v29

Promotion Criteria

  • Gate 1 through Gate 10 PRs are merged into version/v29
  • Gate Quality is green for the final gate branch
  • V29 promotion workflow must pass its validation suite and commit promotion artifacts
  • After the workflow promotion commit, canon-quality and gate-quality must validate promoted V29 / draft V30 posture

Local Proof Before Promotion PR

  • pnpm run check:v29-gate10
  • node scripts/check-v29-gate10-local-staging-promotion-readiness.mjs --promotion-mode --skip-branch-check
  • node scripts/run-bitcode-spec-quality.mjs --mode basic
  • npm run promote:canon -- --version V29 --commit HEAD --dry-run
  • npm --prefix protocol-demonstration test -- --test-name-pattern "runtime promotion preparation rewrites optional protocol package posture carriers|runtime promotion preparation rewrites canon posture source and README"
  • git diff --check

Opens the V29 draft specification family, retargets draft-quality checks to V28/V29 posture, and adds the V29 Gate 1 checker.
Closes V29 Gate 2 by specifying and implementing route-owned Terminal transaction read models, default transaction route recovery, typed section navigation, and low-detail detail headers. Adds focused query/read-model tests plus a Gate 2 checker wired into gate-quality CI.

Validation: pnpm run check:v29-gate1; pnpm run check:v29-gate2; node scripts/check-bitcode-spec-family.mjs --version V29 --mode draft --current-target V28; node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V28 --draft-target V29; node scripts/check-bitcode-canonical-inputs.mjs --current-target V28; node scripts/check-bitcode-spec-family.mjs --version V28 --mode promoted --current-target V28; pnpm --dir uapi exec jest --runTestsByPath tests/terminalTransactionDetail.test.ts tests/terminalTransactionDetailCards.test.tsx tests/terminalTransactionDetailSnapshot.test.ts tests/terminalTransactionQuery.test.ts tests/terminalTransactionReadModel.test.ts tests/terminalTransactionSource.test.ts tests/terminalPageShell.test.tsx tests/exchangePageClient.test.tsx --runInBand; pnpm --dir uapi exec tsc --noEmit; pnpm --dir uapi exec eslint . --ext .ts,.tsx --quiet; bash scripts/check-import-casing.sh; bash scripts/find-uppercase-raw-promptparts.sh; git diff --check; node scripts/check-bitcode-pre-commit.mjs.
Close V29 Gate 3 with BTD-owned BTC fee quote lifecycle, signer-session recovery, blocked-readiness receipts, and operation posture.

Expose operation posture through the BTC fee route and add a source-safe Terminal Wallet/BTC detail section with focused package, route, UI, spec, and gate-quality coverage.
* Gate 4: project Reading pipeline observability

Add contract-aware observability inventory and projection for ReadNeedComprehensionSynthesis and ReadFitsFindingSynthesis, stamp sandbox harness stream events with PTRR and ThricifiedGeneration metadata, and surface those fields through the Terminal execution stream UI.

Update V29 spec, parity, docs, Gate 4 checker, CI wiring, and focused package/UAPI tests for the Reading telemetry closure criteria.

* Gate 4: satisfy UAPI observability typecheck

Normalize PTRR step-id parsing so the stricter UAPI TypeScript build receives a concrete string before checking Reading pipeline telemetry step names.

Validation: pnpm -C uapi exec tsc --noEmit; pnpm run check:v29-gate4; pnpm --dir uapi exec jest --runTestsByPath tests/terminalPipelineHarnessClient.test.ts tests/pipelineExecutionLogHeader.test.tsx --runInBand; pnpm exec eslint packages/pipelines/asset-pack/src/reading-pipeline-observability.ts uapi/app/terminal/terminal-pipeline-harness-client.ts uapi/components/base/bitcode/execution/pipeline-execution-log-header.tsx uapi/components/base/bitcode/execution/pipeline-execution-log.tsx --ext .ts,.tsx; git diff --check
Define package-owned AssetPackDisclosureReview, leakage checks, and source-safe preview persistence for postprocess and sandbox harness evidence.

Render disclosure review in Terminal, extend BTD access boundary coverage, document Gate 5 parity, and enforce version/gate-prefixed PR titles in gate CI.
Adds package-owned BTD organization/interface authority decisions with holdings, read-license usage, source visibility, and proof roots.

Wires JSON-safe API/UAPI decisions, MCP required interface authority, ChatGPT App write admission, sandbox harness evidence, and Terminal Authority detail projection.

Updates V29 spec/parity/docs, gate-quality CI, Gate 7 checker, lockfile, and focused BTD/API/MCP/ChatGPT/pipeline-host/UAPI coverage.
Move gate-critical canon helpers behind the @bitcode/protocol package index, retarget root canonical scripts away from direct protocol-demonstration source imports, and correct package-local repo-root defaults for spec and proof helpers.

Document the Gate 8 package-native boundary in the V29 spec family and protocol README, add a fail-closed Gate 8 checker, expand protocol package tests, and wire CI to run protocol package checks plus the UAPI commercial boundary test.

Validation: pnpm --filter @bitcode/protocol typecheck; pnpm --filter @bitcode/protocol test; pnpm run check:v29-gate8; node scripts/check-bitcode-spec-family.mjs --version V28 --mode promoted --current-target V28; node scripts/check-bitcode-spec-family.mjs --version V29 --mode draft --current-target V28; node scripts/check-bitcode-canonical-inputs.mjs --current-target V28; node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V28 --draft-target V29; node scripts/run-bitcode-spec-quality.mjs --mode basic; pnpm --dir uapi exec jest --runTestsByPath tests/protocolCommercialBoundary.test.ts --runInBand; git diff --check.
Closes Gate 9 by proving the Terminal cockpit UX with source-safe landmarks, state semantics, responsive Playwright coverage, and maintained gate-quality automation.
Closes Gate 10 by adding local/staging promotion-readiness specification, QA ledger, V29 promotion workflow automation, V29 promotion command planning, and runtime posture promotion coverage.
@geraldarthurdavis
geraldarthurdavis requested a review from a team May 21, 2026 16:52
@vercel

vercel Bot commented May 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
engi-uapi Ready Ready Preview, Comment May 21, 2026 6:45pm

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 415146f108

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +381 to +385
if (!quote) {
return blockedPosture({
quote,
receipt,
signerRecovery,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Handle existing receipt before requiring fee quote

When buildBtcFeeOperationPosture is called with an existing receipt but no quote, this branch immediately returns a blocked posture, so the function never reaches the receipt-phase path (phaseForFinality(receipt.finalityState)). That regresses mark_signed/mark_broadcast/observe flows, because buildBtdBtcFeeTransactionSettlement can validly build those receipts without a fresh quote, yet they will now be reported as blocked instead of signed/broadcast/confirmed, which can incorrectly gate downstream settlement and UI state.

Useful? React with 👍 / 👎.

Teach the V29 promotion preparer to rewrite promoted implementation matrix and checklist judgments before promoted-mode spec-family validation. Tighten the Gate 10 checker, document the promoted parity requirement, and add demonstration coverage for status plus parity mutation.
Make the Gate 10 promotion-readiness checker validate the protocol package posture according to the active pointer, accepting V28/V29 before promotion and V29/V30 after the generated canon commit. Document the promoted posture requirement in the V29 spec family.
Refresh V29 promoted spec-family status and generated PROVEN appendix so the canonical proof-source commit includes the promoted protocol posture checker fix.
Update the protocol package boundary test to accept V29/V30 promoted canon posture while preserving V29 draft-mode validation before promotion.
Refresh V29 promoted spec-family status and generated PROVEN appendix so the proof source includes the promoted protocol package boundary test update.
Update the notes-only draft checker to use repo-relative V30 posture instead of stale absolute V27/V26 requirements.

Refresh the V30 notes scaffold for active V29 / draft V30 and align the protocol demonstration canonical input artifact expectation with the promoted checker.
Regenerate the V29 promoted proof appendix and proof-source status lines after fixing promoted V30 notes validation and protocol demonstration expectations.
…eadiness-posture

V29 Gate 10: Promoted Protocol Posture Readiness
@geraldarthurdavis
geraldarthurdavis merged commit f973e82 into main May 21, 2026
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant