Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,21 @@

## Unreleased

- Add the full-tree conformance family (`conformance/wiretree`) for decision
0012: 19 structural, 1 bridge and 7 carrier cases with independently authored
expectations, run in Go and TypeScript against released bitruntime v0.2.0.
Structural and bridge cases run without a carrier; carrier cases run on the
local pair and on real WebSockets in both directions, through test-only
adapters that bind a Wire to a carrier path and serve a tree on a dispatcher
until bitruntime provides them. Eight deliberately unlawful TypeScript
realizations are each rejected by the case aimed at them. A disposition maps
all 39 historical declared cases, their 19 recorded gaps and two limitations
to current cases or explicit historical addressed limitations; the historical
files are unchanged and pinned by digest.
- Clarify in the contract that derived sending on a missing tree path is
refused and never reports admission. bitruntime v0.2.0 already
behaves this way; no declaration changes.

## 0.3.0 — 2026-09-26

- Publish the immutable source release at `f825f3f4a79135646b775e25dcd770656546b4a1`.
Expand Down
6 changes: 5 additions & 1 deletion conformance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ the case files' SHA-256s and every family's result in each language.
| Declared, reference | The 39 [declared](declared/cases.json) cases through the test-only interpreter over bitruntime's carriers | the same three | 39/39 on each | 39/39 on each |
| Declared, production | The same cases through bitruntime's child-only addressed mount, with its selection and forwarding | the same three | 20 conform; 19 match bitruntime's own [gap ledger](runtime/production-gaps.json) | the same |
| Trees | The [0.3 observations](trees/expected.json) through bitruntime's tree construction, selection, sending and addressed bridge | none, structural | 14/14 | 14/14 |
| Full trees | The [full-tree cases](wiretree/README.md): 19 structural, 1 bridge, 7 carrier; test-only reference and bitruntime's tree operations | none for structure and bridge; the three carriers for carrier cases, with test-only bind and serve adapters | 27/27 in each realization | 27/27 in each realization |

The Go drivers use `core.Invocation`, `core.NewPair`, the WebSocket engine,
`dispatch`, `core.At`, `core.Mount`, `core.Forward`, `core.Compose`,
Expand All @@ -63,7 +64,10 @@ every refusal in these fixtures happens before a carrier or forwarder.

Lifecycle, composition and declared results remain evidence about the 0.2
addressed contract (`AddressedWire` in 0.3); trees is the 0.3 structural
contract.
contract. The full-tree family separates structural, bridge and carrier
evidence, rejects eight deliberately unlawful TypeScript realizations, and
[disposes](wiretree/disposition.json) every historical declared case and
recorded gap.

## Current released runtime baseline

Expand Down
6 changes: 6 additions & 0 deletions conformance/declared/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ defines the realization: an origin at every node, complete named children, and
construction parts retained by their owner. Run `node scripts/conformance-current.mjs`
to exercise the [fixtures](cases.json) in Go and TypeScript.

**Disposition under decision 0012:** [`../wiretree/disposition.json`](../wiretree/disposition.json)
maps each of these 39 cases, the 19 recorded gaps and both limitations to
current [full-tree cases](../wiretree/README.md) or to an explicit historical
addressed limitation. This fixture and its gap ledgers stay unchanged; the
disposition pins them by digest.

## Two realizations, one oracle

The runner removes every `expected` value before handing inputs to a driver, and
Expand Down
Loading
Loading