Skip to content

Commit 2df1e89

Browse files
wip v28
1 parent b372308 commit 2df1e89

111 files changed

Lines changed: 369 additions & 199 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

BITCODE_SPEC_V28.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ V28 answers that by specifying:
5656
## V28 Terminal Terminology Contract
5757

5858
V28 user-facing Terminal language is Deposit/Depositing and Read/Reading.
59-
The previous Deposit/Depositing and Read/Reading vocabulary is retired from operator-visible copy, QA instructions, public docs, Terminal labels, tooltip prose, test-visible assertions, and staging walkthroughs.
59+
Pre-V28 Terminal vocabulary is retired from operator-visible copy, QA instructions, public docs, Terminal labels, tooltip prose, test-visible assertions, staging walkthroughs, and active data-contract carriers.
6060

6161
Deposit means source supply is selected, bound to a repository/branch/commit, signed where required, and submitted as the candidate supply side before any meaningful Read/Fit result is evaluated.
6262
Read means the demand/query/measurement side that reads against available deposited source posture, then proceeds into Fit, proofs, finalities, ledgerization, and reconciliation.
6363

64-
Implementation may temporarily retain persisted/API compatibility carriers such as enum values, route names, schema fields, artifact IDs, component filenames, and canonical proof IDs containing `deposit`, `read`, or `read-measurement`.
65-
Those carriers are not operator vocabulary.
66-
Any active UI, documentation, QA query label, or test-visible copy that surfaces those carriers must translate them to Deposit/Read language until a separate bounded schema/API migration is specified.
64+
As of the V28 Deposit/Read data-contract closure, active database, ORM, API, QA-query, OpenAPI, demonstration, and protocol carriers use Deposit/Read naming where they are part of the current contract.
65+
Remaining strings containing `deposit`, `read`, or `read-measurement` are current V28 names, not compatibility vocabulary.
66+
The live staging migration may use bounded dynamic compatibility references only to upgrade already-deployed data without keeping retired identifiers in the active schema.
6767

6868
## Real-Deployed Staging-Testnet MVP Target
6969

BITCODE_SPEC_V28_PARITY_MATRIX.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ It links manual screenshots, console logs, server logs, Supabase SQL checks, and
113113
| --- | --- | --- | --- |
114114
| BTC/D identity and wallet-backed session | `uapi/app/api/wallet/_shared.ts`, `uapi/app/api/wallet/authenticate/route.ts`, `uapi/app/api/wallet/oauth/authorization-code/route.ts`, `uapi/app/api/wallet/oauth/token/route.ts`, `uapi/app/api/wallet/oauth/userinfo/route.ts`, `uapi/lib/bitcoin-wallet-client.ts`, `uapi/lib/bitcode-wallet-local.ts`, `packages/btd/src/wallet.ts`, `packages/btd/src/bitcoin-provider.ts`, `supabase/migrations/003_user_connections_provider_scope.sql`, `uapi/tests/bitcoinWalletClient.test.ts` | staging prerequisite pass for Leather; BTC fee signing still pending | May 14 live staging SQL confirmed `auth.users`, `auth.identities`, `user_profiles.settings.bitcodeProfile.walletBinding`, and `user_connections.provider='leather'` for the same wallet-backed user. Xverse/manual-provider parity and Terminal BTC fee signing remain closure evidence before BTC fee usage depends on them. |
115115
| GitHub App and repository source scope | `uapi/app/api/vcs/_shared.ts`, `uapi/app/api/vcs/[provider]/callback/route.ts`, `uapi/app/api/vcs/[provider]/setup/route.ts`, `uapi/app/api/vcs/[provider]/repositories/route.ts`, `packages/api/src/vcs/github-service.ts`, Auxillaries Externals pane, `supabase/migrations/001_v26_production.sql` `user_connections` and `vcs_repositories` | staging prerequisite pass | May 14 live staging SQL confirmed GitHub installation `132358627`, account `engineeredsoftware`, provider-scoped connection data, and `public.vcs_repositories` rows including `engineeredsoftware/ENGI`. Terminal Deposit/Read must now prove that repository inventory is used as live source scope. |
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 | closed for user-visible copy; internal compatibility carriers preserved | Active V28 UI, docs, QA prose, and test-visible assertions use Deposit/Depositing and Read/Reading. Persisted/API carriers such as `deposit`, `read`, `read-measurement`, `/api/read-review`, proof IDs, schema fields, and component filenames are treated as compatibility-only until a bounded migration replaces them. |
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`, `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/*` | baseline pass; 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: `pnpm db:data-health:daily` passes against staging, live data-health/schema E2E passes with `.env.local` loading, wallet/GitHub SQL evidence is green, and the Terminal-specific saved queries now gate Read/Deposit/Fit write-read parity. |
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+
| 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. |
118118
| 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. |
119119
| 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. |
120120
| 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. |

BITCODE_V28_QA.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,6 +1128,18 @@ Saved query name: `v28_qa_terminal_04_deposit_repository_alignment`
11281128
11291129
Use `supabase/queries/v28_qa_terminal_04_deposit_repository_alignment.sql` after Terminal loads and after each Deposit recording. The query confirms live repository inventory belongs to the connected GitHub account and flags any protocol-demo `frontier/*` reference in recent Terminal Deposit activity.
11301130
1131+
V28 Deposit/Read data-contract closure:
1132+
1133+
Saved query name: `v28_qa_data_contract_deposit_read_migration`
1134+
1135+
Use `supabase/queries/v28_qa_data_contract_deposit_read_migration.sql` after migrations or staging resets. Expected `data_contract_state` is `v28_deposit_read_data_contract_closed`.
1136+
1137+
- Migration `20260515143000_v28_deposit_read_data_contract` is applied to the linked staging Supabase project.
1138+
- `public.btd_asset_pack_ranges` now projects range linkage through `read_id`; the previous live column is absent after migration.
1139+
- `public.btd_terminal_journal_entries` accepts `read_submission` as the Terminal journal transaction kind.
1140+
- ORM schema types, data-health checks, saved QA SQL, OpenAPI conversation payload docs, protocol demonstration fixtures, and API conversation-stream internals use the current Deposit/Read contract.
1141+
- `pnpm db:schema-types:check`, `pnpm db:data-health:daily`, ORM data-health tests, UAPI Terminal/conversation tests, UAPI lint/build, API build, and protocol demonstration V28 QA are the closure evidence for this rename pass.
1142+
11311143
BTD and ledger projection readback:
11321144
11331145
Saved query name: `v28_qa_terminal_03_btd_ledger_after_terminal`

docs/api/conversations-openapi.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,7 @@ paths:
714714
- `feedback` - Open feedback channels
715715
716716
**Client Commands:**
717-
- Pipeline commands (`asset_pack`, `need_measurement`) return execution instructions
717+
- Pipeline commands (`asset_pack`, `read_measurement`) return execution instructions
718718
- Navigation commands (`history`, `runs`) return frontend routing info
719719
720720
requestBody:
@@ -828,7 +828,7 @@ components:
828828
properties:
829829
type:
830830
type: string
831-
enum: [asset_pack, need_measurement, attachment, source, command]
831+
enum: [asset_pack, read_measurement, attachment, source, command]
832832
description: Token type determining how it's processed
833833
value:
834834
type: string

packages/api/src/routes/conversations.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ type ConversationRichInputSummary = {
7373
source_attachments: ConversationAttachmentReference[];
7474
output_destinations: ConversationAttachmentReference[];
7575
asset_pack_references: ConversationRichInputReference[];
76-
need_measurement_intents: ConversationRichInputReference[];
76+
read_measurement_intents: ConversationRichInputReference[];
7777
token_counts: ReturnType<typeof countTokenTypes>;
7878
};
7979

@@ -181,7 +181,7 @@ function tokenRequestsReadMeasurement(token: ConversationStreamToken) {
181181
const pipelineType =
182182
typeof token.metadata?.pipelineType === 'string' ? normalizeConversationText(token.metadata.pipelineType).toLowerCase() : '';
183183

184-
return tokenType === 'need_measurement' || tokenType === 'measure' || pipelineType.includes('measure');
184+
return tokenType === 'read_measurement' || tokenType === 'measure' || pipelineType.includes('measure');
185185
}
186186

187187
function buildConversationRichInputSummary(
@@ -198,7 +198,7 @@ function buildConversationRichInputSummary(
198198
return tokenType === 'asset_pack' || tokenType === 'shippable' || tokenType === 'evidence_document';
199199
})
200200
.map(buildRichInputReference),
201-
need_measurement_intents: tokens.filter(tokenRequestsReadMeasurement).map(buildRichInputReference),
201+
read_measurement_intents: tokens.filter(tokenRequestsReadMeasurement).map(buildRichInputReference),
202202
token_counts: countTokenTypes(tokens),
203203
};
204204
}
@@ -209,7 +209,7 @@ function deriveConversationExecutionType(tokens: ConversationStreamToken[]) {
209209
typeof token.metadata?.pipelineType === 'string' ? token.metadata.pipelineType : undefined;
210210
const candidate = metadataPipelineType || normalizeConversationTokenType(token) || resolveConversationTokenValue(token);
211211

212-
if (candidate === 'need_measurement' || candidate === 'measure') {
212+
if (candidate === 'read_measurement' || candidate === 'measure') {
213213
return normalizeAgenticExecutionType(candidate);
214214
}
215215

@@ -321,7 +321,7 @@ async function createConversationExecution(options: {
321321
source_attachments: options.richInput.source_attachments,
322322
output_destinations: options.richInput.output_destinations,
323323
asset_pack_references: options.richInput.asset_pack_references,
324-
need_measurement_intents: options.richInput.need_measurement_intents,
324+
read_measurement_intents: options.richInput.read_measurement_intents,
325325
} as any,
326326
started_at: nowIso,
327327
created_at: nowIso,

packages/btd/src/terminal-journal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { assertNonEmptyString } from './constants';
22

33
export type TerminalTransactionKind =
4-
| 'need_submission'
4+
| 'read_submission'
55
| 'fit_closure'
66
| 'proof_admission'
77
| 'asset_pack_mint'
@@ -17,7 +17,7 @@ export type TerminalTransactionKind =
1717
| 'ledger_database_reconciliation';
1818

1919
export const REQUIRED_TERMINAL_TRANSACTION_KINDS = [
20-
'need_submission',
20+
'read_submission',
2121
'fit_closure',
2222
'proof_admission',
2323
'asset_pack_mint',

packages/orm/src/data-health/checks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ const REQUIRED_COLUMNS: Record<string, readonly string[]> = {
120120
'range_end_exclusive',
121121
'token_count',
122122
'normalized_bitcode_volume',
123-
'need_id',
123+
'read_id',
124124
'source_manifest_root',
125125
'measurement_receipt_root',
126126
'fit_receipt_root',

packages/orm/src/types/database.generated.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ export type Database = {
436436
issued_at: string
437437
measurement_receipt_root: string
438438
minted_at_exchange_sequence: number
439-
need_id: string
439+
read_id: string
440440
normalized_bitcode_volume: number
441441
proof_root: string
442442
range_end_exclusive: number
@@ -457,7 +457,7 @@ export type Database = {
457457
issued_at: string
458458
measurement_receipt_root: string
459459
minted_at_exchange_sequence: number
460-
need_id: string
460+
read_id: string
461461
normalized_bitcode_volume: number
462462
proof_root: string
463463
range_end_exclusive: number
@@ -478,7 +478,7 @@ export type Database = {
478478
issued_at?: string
479479
measurement_receipt_root?: string
480480
minted_at_exchange_sequence?: number
481-
need_id?: string
481+
read_id?: string
482482
normalized_bitcode_volume?: number
483483
proof_root?: string
484484
range_end_exclusive?: number

packages/orm/src/types/database.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ export type Database = {
634634
issued_at: string
635635
measurement_receipt_root: string
636636
minted_at_exchange_sequence: number
637-
need_id: string
637+
read_id: string
638638
normalized_bitcode_volume: number
639639
proof_root: string
640640
range_end_exclusive: number
@@ -655,7 +655,7 @@ export type Database = {
655655
issued_at: string
656656
measurement_receipt_root: string
657657
minted_at_exchange_sequence: number
658-
need_id: string
658+
read_id: string
659659
normalized_bitcode_volume: number
660660
proof_root: string
661661
range_end_exclusive: number
@@ -676,7 +676,7 @@ export type Database = {
676676
issued_at?: string
677677
measurement_receipt_root?: string
678678
minted_at_exchange_sequence?: number
679-
need_id?: string
679+
read_id?: string
680680
normalized_bitcode_volume?: number
681681
proof_root?: string
682682
range_end_exclusive?: number

packages/prompts/src/raw_promptparts/specific/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_capabili
299299
export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_identity_definition.d";
300300
export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_identity_definition";
301301
export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_output_attachments_spec";
302-
export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_output_needdefinitionanalysis_spec";
302+
export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_output_readdefinitionanalysis_spec";
303303
export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_output_types_spec";
304304
export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_plan_modality_audio_strategy";
305305
export * from "./promptpart_specific_agent_assetpacksetupcomprehendread_plan_modality_image_strategy.d";

0 commit comments

Comments
 (0)