You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`TerminalTransactionReadModel`: typed operator projection of a selected `TerminalTransaction`, including route state, active detail section, low-detail summary, section availability, expandable audit posture, and source-safe raw-payload boundary.
161
162
162
163
## V29 whole Bitcode operator chain
163
164
@@ -179,6 +180,25 @@ Readiness
179
180
180
181
Each transition must be observable as an execution, pipeline, PTRR agent, PTRR step, ThricifiedGeneration, tool call, ledger journal row, database projection, or repair receipt where applicable.
181
182
183
+
## V29 Terminal transaction read-model canon
184
+
185
+
Terminal transaction reading is route-owned.
186
+
When Terminal has a selected transaction, `/terminal?transactionId=<id>` is the recoverable address.
187
+
`transactionDetail` selects a typed detail section and defaults to source-safe Shippables when omitted.
- route state with canonical hrefs for each section and with the former `runId` carrier removed on write;
193
+
- low-detail default summary, metrics, and posture chips sufficient for ordinary operation without opening raw JSON;
194
+
- section read models for Shippables, identity, closure, proofs, history, journal, activity stream, and console;
195
+
- explicit section availability: available, empty, or blocked with an operator-readable reason;
196
+
- expandable detail metadata preserving row counts, metric counts, payload availability, and target DOM section ids;
197
+
- a source-safe disclosure boundary: protected AssetPack source is never displayed before settlement, and raw payloads remain audit detail rather than the default operator contract.
198
+
199
+
The model is deterministic from execution history, detail readback, route query state, and data mode.
200
+
It must tolerate partial live readback by preserving a fallback selected-run projection while naming empty or blocked sections.
Copy file name to clipboardExpand all lines: BITCODE_SPEC_V29_DELTA.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,6 +85,16 @@ Gate 1 opens V29 correctly:
85
85
86
86
Gate 2 owns URL-addressable transaction state, Terminal state machine, detail panes, execution-to-transaction read models, low-detail defaults, expandable detail, and no raw-JSON dependency for ordinary operators.
87
87
88
+
Closure acceptance:
89
+
90
+
- the Terminal writes a selected transaction id into the route whenever live, projected, or review-fallback activity is selectable;
91
+
- former `runId` links continue resolving but are rewritten to `transactionId`;
92
+
- a typed `TerminalTransactionReadModel` derives the selected activity's low-detail operator summary, section navigation, active detail focus, and expandable audit posture;
93
+
- Shippables, identity, closure, proofs, history, journal, activity stream, and console sections expose availability, target ids, route hrefs, and blocking reasons without raw JSON inspection;
94
+
- console detail is blocked outside live execution-history mode rather than presented as an inert or misleading section;
95
+
- unit tests cover route recovery, section availability, legacy query migration, low-detail defaults, and filter/pagination preservation;
96
+
- V29 SPEC, DELTA, NOTES, PARITY, Terminal README, package scripts, and gate-quality workflow name the Gate 2 closure surface.
97
+
88
98
### Gate 3: Wallet Signer Session And BTC Fee Operations
- Acceptance detail: selected transactions must recover through `transactionId`, detail focus must recover through `transactionDetail`, the first selectable row must write itself into a bare Terminal URL, and the operator-facing model must expose section summaries and blockers before raw payloads.
55
56
56
57
3.**Gate 3: Wallet Signer Session And BTC Fee Operations**
57
58
- Deepen signer-session recovery, BTC fee quote, PSBT handoff, broadcast, replacement, reorg, failure, and blocked-readiness states.
@@ -89,6 +90,22 @@ Gate 1 accepted evidence:
89
90
- workflows and README describe V28 active / V29 draft posture.
90
91
-`pnpm run check:v29-gate1` validates branch, posture, workflow, docs, and spec-family shape.
91
92
93
+
## Gate 2 working notes
94
+
95
+
Gate 2 closes the first product-source V29 slice.
96
+
Its read model is intentionally not a new protocol primitive and not a versioned API route.
97
+
It is the Terminal projection that lets operators recover, share, and inspect a selected transaction without depending on browser network logs or raw JSON.
98
+
99
+
The low-detail default should answer:
100
+
101
+
- which transaction is selected;
102
+
- whether the selected detail section is available, empty, or blocked;
103
+
- where to navigate next inside the transaction;
104
+
- which facts are proof, ledger, database, delivery, or execution facts;
105
+
- whether deeper audit payloads exist behind an expansion.
106
+
107
+
The detailed view may still carry raw payload accordions for audit, but the ordinary collapsed view must be typed and readable.
108
+
92
109
## Later-version boundaries
93
110
94
111
- V30 remains reserved for Protocol/BTD hardening that is not necessary to close Terminal transaction depth.
Copy file name to clipboardExpand all lines: BITCODE_SPEC_V29_PARITY_MATRIX.md
+25-2Lines changed: 25 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,7 +49,7 @@ No `_legacy/` source is active source truth.
49
49
| --- | --- | --- | --- | --- |
50
50
| Draft family and branch posture | Gate 1 |`BITCODE_SPEC_V29.md`, DELTA, NOTES, PARITY, `BITCODE_SPEC.txt`, branch `v29/gate-1-objectives-and-gating`| drafted | V29 family validates in draft mode over active V28 and `check:v29-gate1` passes. |
51
51
| Workflow retargeting | Gate 1 |`.github/workflows/bitcode-gate-quality.yml`, `.github/workflows/bitcode-canon-quality.yml`| drafted | CI checks V28 active / V29 draft posture instead of stale V27/V28 posture. |
52
-
| Terminal transaction read models | Gate 2 |`uapi/app/terminal`, API execution routes, read-model adapters | pending| Terminal transaction state is URL-addressable, recoverable, and typed. |
52
+
| Terminal transaction read models | Gate 2 |`uapi/app/terminal/terminal-transaction-read-model.ts`, `uapi/app/terminal/terminal-transaction-query.ts`, `TerminalTransactionWorkspace.tsx`, `TerminalTransactionDetailSurface.tsx`, UAPI tests, Gate 2 checker | drafted| Terminal transaction state is URL-addressable, recoverable, typed, low-detail by default, and expandable without raw JSON as the ordinary operator contract. |
53
53
| Wallet signer/BTC operations | Gate 3 |`packages/btd`, wallet API, BTC fee route, Terminal wallet UI | pending | Signer session, PSBT, broadcast/finality/reorg/replacement/failure states are ordinary Terminal states. |
@@ -92,3 +93,25 @@ No `_legacy/` source is active source truth.
92
93
## completion condition
93
94
94
95
Gate 1 is complete when the V29 draft family validates, `check:v29-gate1` passes, workflow posture is V29-aware, README/docs reflect V29 initiation, and the gate branch is committed and pushed for review into `version/v29`.
96
+
97
+
## Gate 2 Parity
98
+
99
+
| Requirement | Source evidence | Current V29 judgment |
100
+
| --- | --- | --- |
101
+
| Selected transactions are URL-addressable |`terminal-transaction-query.ts`, `TerminalPageClient.tsx`| drafted |
102
+
| Detail focus is typed and recoverable |`terminal-transaction-read-model.ts`, `TerminalTransactionDetailActionBar.tsx`| drafted |
103
+
| Low-detail read model exists before raw payloads |`terminal-transaction-read-model.ts`, `TerminalTransactionDetailHero.tsx`| drafted |
| Console is blocked outside live execution-history mode |`terminal-transaction-read-model.ts`, UAPI read-model tests | drafted |
106
+
| Gate 2 checker is wired to package scripts and CI |`scripts/check-v29-gate2-terminal-transaction-read-models.mjs`, `package.json`, gate workflow | drafted |
107
+
108
+
## Gate 2 accepted boundaries
109
+
110
+
- Gate 2 does not implement wallet signing, PSBT, broadcast, reorg, or replacement depth.
111
+
- Gate 2 does not implement deeper Reading pipeline telemetry; Gate 4 owns that work.
112
+
- Gate 2 does not expose protected AssetPack source before settlement.
113
+
- Gate 2 does not add versioned API routes or source identifiers.
114
+
115
+
## Gate 2 completion condition
116
+
117
+
Gate 2 is complete when Terminal selected transaction state rewrites recoverable URLs, a typed read model drives detail navigation and low-detail summaries, focused tests pass, `check:v29-gate2` passes, CI invokes the checker, docs name the implemented source surfaces, and the gate branch is committed and pushed for review into `version/v29`.
0 commit comments