Skip to content

Commit e6abc90

Browse files
wip v28
1 parent 55b2f44 commit e6abc90

21 files changed

Lines changed: 1326 additions & 78 deletions

BITCODE_SPEC_V28.md

Lines changed: 50 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -677,8 +677,8 @@ Every link must make proof or readiness state visible.
677677

678678
## staged Reading acceptance path
679679

680-
V28 separates Reading into distinct reviewable stages so commercial buyers can
681-
decide whether Bitcode understood the need before Bitcode exposes or settles
680+
V28 separates Reading into distinct reviewable stages so readers can decide
681+
whether Bitcode understood the need before Bitcode exposes or settles
682682
source-bearing AssetPack material.
683683

684684
The staged Reading path is:
@@ -695,21 +695,40 @@ The staged Reading path is:
695695
candidates, measures candidate fit against the Need measurement, synthesizes
696696
the candidate AssetPack, and returns `worthy_fit`, `no_worthy_fit`, or
697697
`blocked_readiness` with proof-bearing search/fit telemetry.
698-
3. **Preview and settlement.** A worthy synthesized AssetPack is previewed
699-
without leaking the full source. Preview may show Need measurement, Fit
700-
measurement, selected candidate ids, roots, score bands, proof posture,
701-
settlement boundary, and price; it must not show protected source material
702-
before payment/right settlement. Settlement then records the reader BTC fee,
703-
mints or assigns the BTD range according to the standing supply law, writes
704-
ownership and read-license rows, anchors/journals the event, and only then
705-
unlocks the full AssetPack source/right surface to the buyer/reader.
706-
707-
The commercial question therefore splits into two explicit operator questions:
698+
3. **Source-safe preview.** A worthy synthesized AssetPack is previewed without
699+
leaking the full source. Preview may show Need measurement, Fit measurement,
700+
selected candidate ids, roots, score bands, proof posture, ownership
701+
boundary, settlement boundary, and price; it must not show protected source
702+
material before payment/right settlement.
703+
4. **Settle and unlock.** Settlement records the reader BTC fee, mints or
704+
assigns the BTD range according to the standing supply law, writes ownership
705+
and read-license rows, anchors/journals the event, and only then unlocks the
706+
full AssetPack source/right surface to the buyer/reader.
707+
708+
The reader question therefore splits into two explicit operator questions:
708709

709710
- Does Bitcode understand the Read's Need?
710711
- Did Bitcode find and synthesize a match good enough to preview confidently
711712
and pay for in BTC without source-IP leakage?
712713

714+
These stages are separately addressable in Terminal and separately journaled in
715+
the database/ledger readback. A Need stage run cannot be reused as a Fit result
716+
unless the accepted Need id, Need measurement root, user review state, feedback
717+
history, and synthesis telemetry are present. A Need-Fit run cannot be promoted
718+
unless the input Need id and accepted Need measurement root match the latest
719+
accepted Need revision. Preview cannot unlock source-bearing payloads.
720+
Settlement cannot proceed unless the previewed AssetPack id, fee quote, BTD
721+
range projection, wallet authorization, BTC fee transaction, ownership boundary,
722+
journal entry, and ledger/database readback all agree.
723+
724+
The protocol demonstration carries only the minimal deterministic witness of
725+
this path: local Need synthesis, explicit Need acceptance, local Need-Fit
726+
ranking over fixture deposits, source-safe preview, and deterministic fee-quote
727+
shape. It must remain self-contained and must not import the product pipeline,
728+
registry, prompt, agent, Vercel, Supabase, UAPI, or package implementations.
729+
Product code may compare against the witness, but it must own its own runtime
730+
implementation.
731+
713732
### Share-to-Fee measurement clarity
714733

715734
V28 keeps the standing supply law intact while sharpening the initial
@@ -721,15 +740,18 @@ must be deterministic from recorded measurements:
721740
measurement vector;
722741
- the priced measurement volume is the weighted admitted volume after fit,
723742
quality, proof, and settlement eligibility gates;
743+
- the initial deterministic shape is
744+
`sum(measurement_weight * measurement_volume * admitted_fit_quality)` before
745+
applying the configured BTC fee schedule;
724746
- BTC price is derived from that priced measurement volume by the configured
725747
staging-testnet fee schedule and recorded as a reader fee quote;
726748
- the quote is previewable before payment, but source contents and licensed
727749
read rights are not unlocked until settlement readback succeeds.
728750

729-
This pricing path is a V28 commercial product acceptance target, but it must
730-
remain fail-closed: if the Need measurement, Fit measurement, fee schedule,
731-
wallet authorization, BTC fee, BTD range, or ledger readback is missing, the
732-
Terminal shows blocked readiness rather than implying settlement.
751+
This pricing path is a V28 product acceptance target, but it must remain
752+
fail-closed: if the Need measurement, Fit measurement, fee schedule, wallet
753+
authorization, BTC fee, BTD range, or ledger readback is missing, the Terminal
754+
shows blocked readiness rather than implying settlement.
733755

734756
### Long-running full-profile pipeline gate
735757

@@ -743,9 +765,18 @@ That later gate may run for dozens of minutes in Vercel Sandbox. The sandbox
743765
execution itself must push finished result state, artifacts, and readback
744766
signals to a server-side stream/socket handler or durable queue; the route that
745767
starts the run must not be responsible for waiting synchronously for the final
746-
result. Full-profile acceptance requires the same evidence as bounded profile
747-
plus durable async completion delivery, resumable status readback, and Terminal
748-
reattachment to the live execution stream.
768+
result. The push must be correlated by the pipeline run id, authenticated
769+
without exposing Vercel/OAI/Supabase/GitHub secrets inside routine telemetry,
770+
idempotent across retries, and durable before the sandbox stops. Terminal must
771+
be able to reattach by run id and stream both in-flight events and final
772+
artifact/readback state after the starter HTTP request has ended.
773+
774+
Full-profile acceptance requires the same evidence as bounded profile plus
775+
durable async completion delivery, resumable status readback, explicit timeout
776+
and retry accounting, and Terminal reattachment to the live execution stream.
777+
Until that gate exists, `full` is a preflight blocker on the deployed route and
778+
`bounded` remains the current staging-testnet profile for closing the
779+
source-bound Read/Fit -> AssetPack -> Finish -> ledger readback gate.
749780

750781
## canonical subsystem surfaces
751782

0 commit comments

Comments
 (0)