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
Copy file name to clipboardExpand all lines: BITCODE_SPEC_V28.md
+41Lines changed: 41 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -318,6 +318,47 @@ Acceptance criteria:
318
318
- access policy id/hash is shown before mint or licensed-read commitment.
319
319
- ledgerized synthesis uses protocol-specified models and configuration; Terminal must not expose user-driven model selection for Fit, AssetPack, measurement, measuremint, proof, journal, or settlement behavior.
320
320
321
+
#### Single-deposit commercial Reading QA
322
+
323
+
The first commercially meaningful V28 Read/Fit QA scenario runs against the
324
+
smallest real Bitcode data-space: one deposited repository revision.
325
+
The current staging fixture happens to use `engineeredsoftware/ENGI`, but
326
+
Terminal implementation must remain repository-, owner-, branch-, and
327
+
commit-generic.
328
+
329
+
The required Read is not "does anything exist?".
330
+
It is:
331
+
332
+
> Read the deposited repository revision and determine whether it contains
333
+
> a worthy, proof-bearing path for Bitcode Terminal's wallet/GitHub readiness,
334
+
> Deposit, Read/Fit, AssetPack evidence, settlement/finality readback, and
335
+
> Supabase/ledger reconciliation flow. If the evidence is worthy, synthesize
336
+
> the minimal AssetPack; if not, return explicit no-worthy-fit or blocked
337
+
> readiness evidence.
338
+
339
+
Acceptance criteria:
340
+
341
+
- the Read cannot run until a Deposit row exists for the selected repository
342
+
with repository, branch, commit, signer, and wallet authorization posture;
343
+
- the Read and Fit rows must carry the same repository, branch, and commit as
344
+
the deposited source revision;
345
+
- candidate recall must prefer source and proof surfaces that explain the
346
+
product-critical path, including Terminal Deposit/Read components, execution
347
+
history persistence, repository source selection, wallet/GitHub readiness,
348
+
QA SQL, and BTD/ledger proof readback;
349
+
- the Fit result must expose ranking quality, rejection reasons, proof roots,
350
+
dedupe/materialization roots where available, and finality/readiness status;
351
+
- AssetPack synthesis must be protocol-specified and deterministic; if source
352
+
materialization, settlement, BTC fee broadcast, ledger anchor, or BTD range
353
+
issuance is not live, the result must state that blocker rather than imply
354
+
delivery or minting;
355
+
- negative controls must return no-worthy-fit or clarification, not a decorative
356
+
AssetPack, when the Read is unrelated to ENGI's deposited source or too broad
357
+
to measure;
358
+
- SQL readback must show Deposit before Read, Read before Fit, no
359
+
`frontier/*` or mock repository leakage, and no ledger/database drift for any
Copy file name to clipboardExpand all lines: BITCODE_SPEC_V28_NOTES.md
+34Lines changed: 34 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,6 +82,40 @@ Terminal Deposit/Read QA now starts from a real deployed staging-testnet prerequ
82
82
83
83
The first Terminal prerequisite pass also exposed a profile round-trip drift: later Profile writes could preserve wallet address/provider/status while dropping `network`, `authAddress`, `paymentAddress`, `proofKind`, and `addressType` from `settings.bitcodeProfile.walletBinding`. V28 treats `user_connections` as the active provider connection record, but the profile projection must retain the same non-secret wallet metadata for UI/readiness parity. The profile contract and profile write path now preserve those fields, and `v28_qa_01b_backfill_profile_wallet_projection_from_connection` repairs existing staging rows from the active wallet connection before Terminal write QA continues.
84
84
85
+
## May 15 Single-Deposit Reading/Fit QA Focus
86
+
87
+
The first successful staging Deposit placed a live repository revision into the
88
+
Bitcode data-space. That makes the next QA step commercially sharper: Reading
89
+
must prove whether Bitcode can discover, rank, synthesize, and explain a worthy
90
+
Fit from the only available deposited source, not from protocol-demo fixtures or
91
+
broad mock state.
92
+
93
+
The active QA fixture currently uses ENGI because that is the deposited source
94
+
available in staging. That fixture must not become a commercial Terminal
95
+
special case. Product logic must remain generic across user, provider,
96
+
repository, branch, commit, and deposited source.
97
+
98
+
The active QA scenario is therefore single-deposit:
99
+
100
+
- data-space: the latest deposited repository revision row, currently exercised
101
+
with the `engineeredsoftware/ENGI` fixture, with repository, branch, commit,
102
+
signer, wallet authorization, and asset candidate evidence;
103
+
- Read: determine whether the deposited repository contains a complete
104
+
Terminal-backed path from wallet/GitHub readiness through Deposit, Read/Fit,
105
+
AssetPack evidence, proof/finality readback, and Supabase/ledger
106
+
reconciliation;
107
+
- expected positive outcome: a minimal, proof-bearing AssetPack fit that cites
108
+
exact deposited source revision evidence and names any settlement/finality
109
+
blockers honestly;
110
+
- expected negative outcome: no-worthy-fit or clarification when the Read is
111
+
unrelated to ENGI's deposited source or too broad to measure.
112
+
113
+
Saved query `v28_qa_terminal_06_read_fit_quality_after_read` is the QA readback
114
+
for this focus. It is intentionally stricter than the generic activity query:
115
+
it checks Deposit before Read, Read before Fit, repository/branch/commit
116
+
alignment, frontier/mock leakage, and visibility of proof or measurement
117
+
posture in the execution rows.
118
+
85
119
## May 15 Terminal Terminology Closure
86
120
87
121
V28 now retires user-facing Deposit/Depositing and Read/Reading language in favor of Deposit/Depositing and Read/Reading.
Copy file name to clipboardExpand all lines: BITCODE_SPEC_V28_PARITY_MATRIX.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -116,6 +116,7 @@ It links manual screenshots, console logs, server logs, Supabase SQL checks, and
116
116
| Terminal terminology parity |`BITCODE_SPEC_V28.md` terminology contract, `uapi/app/terminal/terminal-workspace-copy.ts`, `uapi/app/terminal/TerminalDepositComposer.tsx`, `uapi/app/terminal/TerminalReadScenarioPanel.tsx`, `uapi/components/base/bitcode/layout/bitcode-public-copy.ts`, Terminal/public-shell/docs tests, `supabase/migrations/20260515143000_v28_deposit_read_data_contract.sql`| closed for UI, docs, tests, API, ORM, demonstration, and data-contract carriers | Active V28 UI, docs, QA prose, OpenAPI, test-visible assertions, BTD journal kinds, ORM types, Supabase queries, and live schema use Deposit/Depositing and Read/Reading. The migration applied to staging renames range linkage to `read_id` and journal writes to `read_submission`; source audit has no exact retired Terminal-domain vocabulary outside excluded legacy/build artifacts. |
117
117
| PSQL/Supabase data reality | `supabase/migrations/001_v26_production.sql`, `002_v27_btd_crypto_registry.sql`, `003_user_connections_provider_scope.sql`, `20260514173000_enable_pipeline_runs_rls.sql`, `20260514175000_enable_pipeline_runtime_rls.sql`, `20260515143000_v28_deposit_read_data_contract.sql`, `packages/orm/src/data-health/*`, `packages/orm/scripts/run-data-health.ts`, `packages/orm/scripts/check-schema-types.ts`, `supabase/DATA_HEALTH.md`, `supabase/queries/*` | data-contract naming closed; Terminal Deposit/Read write evidence pending | Staging database has all required auth/profile/connection/repository/BTD registry/journal/telemetry tables, RLS posture does not hide required user-scoped reads, generated schema types cover canonical public tables, automated data-health checks pass, and QA SQL queries match Terminal/Wallet/Externals UI state. Current baseline: migration `20260515143000` is applied locally and remotely, `btd_asset_pack_ranges` exposes `read_id`, journal kind constraints accept `read_submission`, `pnpm db:data-health:daily` passes against staging, wallet/GitHub SQL evidence is green, and the Terminal-specific saved queries gate Deposit/Read/Fit write-read parity. |
118
118
| Fit-finding |`uapi/app/terminal/TerminalDepositReadWorkbench.tsx`, `TerminalReadScenarioPanel.tsx`, `terminal-deposit-read-workbench.ts`, `terminal-read-scenarios.ts`, `packages/protocol/src/canonical/*`, `protocol-demonstration/src/*` reference witness | partial | Terminal simplest Read produces or reads Fit candidates, review decision, qualities, rejection/block reasons, source roots, proof/dedupe roots, and visible readiness state without relying on demonstration runtime imports. |
119
+
| Single-deposit commercial Read/Fit QA |`BITCODE_SPEC_V28.md` single-deposit commercial Reading QA, `BITCODE_V28_QA.md` Pass 2B, `supabase/queries/v28_qa_terminal_06_read_fit_quality_after_read.sql`, `uapi/tests/terminalActivityHistory.test.ts`| opened as the next critical V28 QA gate | Against the current single deposited repository revision, Terminal must prove Deposit before Read, Read before Fit, repository/branch/commit alignment, no `frontier/*` or mock leakage, worthy-fit AssetPack synthesis or explicit no-worthy-fit/blocker result, and honest settlement/finality readback. The current fixture is ENGI, but implementation must remain source-generic. |
119
120
| AssetPack synthesis and deterministic pipeline configuration |`internal-docs/ASSETPACK_EXECUTION.md`, `packages/protocol/src/canonical/run-artifacts.js`, `packages/btd/src/semantic-volume.ts`, `measuremint.ts`, `range.ts`, `receipts.ts`, `replay.ts`, `uapi/app/api/btd/mint-draft/route.ts`, Terminal AssetPack components | partial with blocker | Staging Read/Fit path creates or reads AssetPack evidence, semantic volume, measuremint/range or zero-cell receipt, and access-policy hash using protocol-specified model/pipeline configuration. Any broad user model-selection UI that can affect ledgerized synthesis must be removed or scoped to non-ledgerized conversation UX. |
120
121
| Ledgerized journal and ledger anchors |`packages/btd/src/terminal-journal.ts`, `ledger-anchor.ts`, `reconciliation.ts`, `uapi/app/api/btd/terminal-journal/route.ts`, `asset-pack-ledger-anchor/route.ts`, `ledger-database-reconciliation/route.ts`, `supabase/migrations/002_v27_btd_crypto_registry.sql`| partial | Terminal shows journal rows for Read/Fit/AssetPack/BTC fee/anchor/reconciliation events, ledger anchor or blocked-readiness state is explicit, and SQL evidence in `btd_terminal_journal_entries`, `btd_asset_pack_ledger_anchors`, and reconciliation repair tables matches the UI. |
121
122
| BTC fee and testnet ledger path |`packages/btd/src/bitcoin-fees.ts`, `bitcoin-provider.ts`, `uapi/app/api/btd/btc-fee-transaction/route.ts`, wallet client code | partial | Testnet path prepares fee state, uses wallet-controlled signing/PSBT or named blocked-readiness receipt, records no server custody, and writes/readbacks `btc_fee_transactions` where a fee receipt is produced. |
Copy file name to clipboardExpand all lines: BITCODE_V28_QA.md
+119-1Lines changed: 119 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -817,7 +817,7 @@ Deposit path:
817
817
1. Hard refresh `/terminal` and wait for top chrome wallet state and Terminal sync to settle.
818
818
2. In the top Terminal activity area, confirm there is no visible red or amber `Failed to fetch execution history` error. Empty activity is acceptable; a 500/error banner is not.
819
819
3. In `Repository supply`, confirm `Connection posture` says GitHub is connected, `Mode` is `live connection`, and `Inventory source` is `stored protocol inventory` or `live provider inventory`.
820
-
4. In the repository selector, choose `engineeredsoftware/ENGI` for the first pass unless intentionally testing another `engineeredsoftware/*` repository.
820
+
4. In the repository selector, choose the repository intended for this Deposit. The current walkthrough fixture uses `engineeredsoftware/ENGI`, but the Terminal flow must not special-case that repository.
821
821
5. In `Deposit-side supply`, confirm the auth/session label and inventory cards use `engineeredsoftware/*`. If any `frontier/*`, `gh_inst_bitcode_001`, or other protocol-demo repository appears in the live staging lane, stop and classify as a V28 blocker.
822
822
6. In `Deposit-side supply`, use the search box only to filter connected repositories. Search must not replace live inventory with protocol demo artifacts. Select/confirm one repository card; the selected card should match the `Repository supply` selector.
823
823
7. Click `Record deposit selection`. Confirm the UI reports that selected deposit-side supply was recorded.
@@ -884,6 +884,124 @@ V28 blockers:
884
884
- GitHub access tokens or wallet signatures appear unredacted in browser-visible UI, query output intended for routine QA, or client telemetry.
885
885
- A broad model selector can alter ledgerized Terminal/Fit/AssetPack synthesis.
0 commit comments