Skip to content

Commit 3faa7ce

Browse files
committed
release: prepare v19.0.0
1 parent 56d6acd commit 3faa7ce

10 files changed

Lines changed: 117 additions & 73 deletions

File tree

ARCHITECTURE.md

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ If you are learning the product for the first time, start with:
1010

1111
## Release posture
1212

13-
`v18.2.1` is the current published release. Mainline development is preparing
14-
the v19 application boundary: callers open an opaque storage handle, write
15-
intents, read timelines, and keep receipts. Git history and git-cas remain
16-
separate infrastructure concerns composed behind that handle.
13+
`v19.0.0` is the current release. Applications open a `Runtime`, address
14+
causal `Lane`s, write validated `Intent`s, consume bounded `Observation`
15+
streams of `Reading`s, and keep `Receipt`s. Git history and git-cas remain
16+
separate infrastructure concerns composed behind the Runtime.
1717

1818
The longer release notes live in [CHANGELOG.md](CHANGELOG.md). The runtime
1919
architecture below describes current implementation boundaries, not aspirational
@@ -23,18 +23,19 @@ roadmap state.
2323

2424
```text
2525
┌──────────────────────────────────────────────────┐
26-
│ openWarp() -> Warp -> Timeline │
27-
│ intent · reading · tick · receipt │
26+
│ Runtime.open() -> Runtime -> Lane │
27+
│ Intent · Observer · Observation │
28+
│ Reading · Receipt │
2829
├──────────────────────────────────────────────────┤
29-
Opaque storage composition
30-
│ GitStorage.open()
30+
Runtime-owned storage composition │
31+
│ GitStorage.open() behind the Runtime boundary
3132
├──────────┬───────────┬────────────┬──────────────┤
3233
│ Query │ Patch │ Materialize│ Sync │
3334
│Controller│Controller │ Controller │ Controller │
3435
│ Strand │Checkpoint │ Provenance │ Comparison │
3536
├──────────┴───────────┴────────────┴──────────────┤
36-
│ Domain services and semantic storage ports
37-
│ CorePersistence · RuntimeStorageProviderPort
37+
│ Domain services and semantic storage ports │
38+
│ CorePersistence · RuntimeStorageProviderPort │
3839
├───────────────────────┬──────────────────────────┤
3940
│ GitTimelineHistory │ GitCasRepositoryAdapter │
4041
│ Adapter │ content/cache/retention │
@@ -59,9 +60,9 @@ The system decomposes into three moments:
5960
- **Folding** — re-expresses admitted history (checkpoints, materialization)
6061
- **Revelation** — exposes truth under bounded rights (queries, observers)
6162

62-
`openWarp()` gives application code a `Warp` handle. `warp.timeline(name)`
63-
opens one named admitted causal lane without exposing the internal worldline,
64-
graph, persistence, or CAS vocabulary.
63+
`Runtime.open()` gives application code a `Runtime` handle.
64+
`runtime.lane(name)` opens one named admitted causal lane without exposing the
65+
internal worldline, graph, persistence, or CAS vocabulary.
6566

6667
### Graph-shaped readings
6768

@@ -153,17 +154,17 @@ services.
153154
9 controllers, one per capability namespace. Each accepts a typed
154155
dependency bag and owns the orchestration for its domain:
155156

156-
| Controller | Capability | Key responsibility |
157-
|-----------|------------|-------------------|
158-
| QueryController | query | Node/edge reads, observers, worldlines |
159-
| PatchController | patches | Patch creation, commit, deterministic fold |
160-
| MaterializeController | materialize | Full and incremental materialization |
161-
| SyncController | sync | Frontier, sync, serve |
162-
| StrandController | strands | Strand lifecycle, braid, collapse |
163-
| CheckpointController | checkpoint | Checkpoint create/restore |
164-
| ProvenanceController | provenance | Provenance index, BTR access |
165-
| ComparisonController | comparison | Coordinate comparison, transfer planning |
166-
| SubscriptionController | subscriptions | Reactive state change notification |
157+
| Controller | Capability | Key responsibility |
158+
| ---------------------- | ------------- | ------------------------------------------ |
159+
| QueryController | query | Node/edge reads, observers, worldlines |
160+
| PatchController | patches | Patch creation, commit, deterministic fold |
161+
| MaterializeController | materialize | Full and incremental materialization |
162+
| SyncController | sync | Frontier, sync, serve |
163+
| StrandController | strands | Strand lifecycle, braid, collapse |
164+
| CheckpointController | checkpoint | Checkpoint create/restore |
165+
| ProvenanceController | provenance | Provenance index, BTR access |
166+
| ComparisonController | comparison | Coordinate comparison, transfer planning |
167+
| SubscriptionController | subscriptions | Reactive state change notification |
167168

168169
### Streams and bounded storage ports
169170

@@ -175,11 +176,11 @@ arrays, cursors, or generated records into `WarpStream` at the boundary.
175176
The stream layer keeps large reads from pretending to be ordinary in-memory
176177
arrays. Current advanced ports that use this boundary include:
177178

178-
| Port | Streamed surface | Role |
179-
| --- | --- | --- |
180-
| `CommitPort` | `logNodesStream(...)` | Git commit-log chunks without loading the full log |
181-
| `PatchJournalPort` | `scanPatchRange(...)` | Patch journal entries over a writer/range |
182-
| `IndexStorePort` | `writeShards(...)`, `scanShards(...)` | Bitmap/index shards as bounded stream units |
179+
| Port | Streamed surface | Role |
180+
| ------------------ | ------------------------------------- | -------------------------------------------------- |
181+
| `CommitPort` | `logNodesStream(...)` | Git commit-log chunks without loading the full log |
182+
| `PatchJournalPort` | `scanPatchRange(...)` | Patch journal entries over a writer/range |
183+
| `IndexStorePort` | `writeShards(...)`, `scanShards(...)` | Bitmap/index shards as bounded stream units |
183184

184185
`CheckpointStorePort` is the checkpoint storage boundary. It does not expose a
185186
general stream API today, but it sits beside the streamed stores because it

CHANGELOG.md

Lines changed: 51 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
### Added
10+
## [19.0.0] - 2026-07-27
11+
12+
### Release notes
1113

12-
- Added root `intent` builders, the runtime-backed `Intent` noun,
13-
`Timeline.write(intent)`, and `WriteReceipt` results with the public
14+
`v19.0.0` replaces the graph-first v18 application surface with one
15+
intent-and-observer runtime boundary. Applications open `Runtime`, address
16+
causal `Lane`s, write validated `Intent`s, consume bounded `Observation`
17+
streams of `Reading`s, and retain `Receipt`s. Formal coordinates and optics,
18+
receipt inspection, charts, and test harnesses live on explicit package
19+
subpaths rather than widening the root.
20+
21+
This is an intentional breaking release. A repository with retained v18 state
22+
must be migrated once, while all writers are stopped, with the packaged
23+
`git-warp-v18-to-v19` command. The migration rehearses in a disposable
24+
repository before a compare-and-swap promotion and preserves additive recovery
25+
refs. No v18 compatibility runtime remains in the product code.
26+
27+
The exact merged-main Node 22/Linux release gate measured a representative
28+
16-property scan over the authentic approximately 2 MiB migrated-v18 fixture at
29+
31.1% lower cold wall time, 32.1% lower warm wall time, 20.1–21.3% lower
30+
operation CPU, and 46.6% fewer Git commands than published v18.2.1. The
31+
one-shot migration cost is measured and reported separately from steady-state
32+
reads.
33+
34+
### Added
35+
36+
- Added the root `Runtime` value plus type-only contracts for `Lane`, `Intent`,
37+
`Observer`, `Observation`, `Reading`, `Evidence`, `Tick`, settlement, and
38+
`Receipt`.
39+
- Added Wesley-generated domain `Intent` and `Observer` builders,
40+
`Lane.write(intent)`, and `WriteReceipt` results with the public
1441
`AdmissionOutcome` axis: `derived`, `plural`, `conflict`, and `obstruction`.
1542
Each variant carries its required typed witness and reports admission rather
1643
than completed settlement.
17-
- Added root `reading` builders, the runtime-backed `Reading` noun,
18-
`Timeline.read(reading)`, and receipt-bearing `ReadingResult` values for
19-
first-use property and node-existence reads.
20-
- Added `Timeline.draft(name)`, draft writes, `Timeline.previewJoin(draft)`,
21-
and `Timeline.join(draft)` with join receipts for first-use speculative
22-
workflows.
44+
- Added synchronous `Lane.observe(observer)` construction, lazy single-execution
45+
`Observation` streams, strict bounded convenience consumers, and completed
46+
`ObservationReceipt`s.
47+
- Added persisted `Runtime.fork()` and `Runtime.strand()` lanes plus immutable,
48+
revalidated `Runtime.previewSettlement()` plans and `Runtime.settle()`
49+
receipts for speculative workflows.
2350
- Added idempotent `GitStorage.close()` and async-disposal support to release
2451
local Git and git-cas processes without changing history or retention.
2552
- Added the one-shot `git-warp-v18-to-v19` retained-substrate migrator. It
@@ -35,14 +62,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3562

3663
### Changed
3764

38-
- Added the v19 `openWarp()` product opener. `Warp` and `Timeline` are returned
39-
as runtime handles and exported from the root as companion types.
40-
- Moved supported storage, formal WARP, and operator inspection exports out of
41-
the package root into the explicit `storage`, `advanced`, and `diagnostics`
42-
subpaths. The package root now rejects graph-first compatibility nouns
43-
through the v19 public API boundary audit.
65+
- Made `Runtime.open()` the sole production composition root and `Lane` the
66+
public causal-history handle, replacing `openWarp()`, `Warp`, and `Timeline`
67+
application vocabulary.
68+
- Kept storage composition behind `Runtime`, moved formal WARP and operator
69+
inspection exports to the explicit `advanced` and `diagnostics` subpaths,
70+
and locked npm and JSR publication to the same root, charts, diagnostics,
71+
advanced, and testing contract. The package root rejects graph-first
72+
compatibility nouns through the v19 public API boundary audit.
4473
- Moved formal coordinate capture to advanced `captureCoordinate()` so the root
45-
`Timeline` exposes opaque ticks but no coordinate machinery.
74+
contracts expose opaque tick and coordinate-reference types but no coordinate
75+
machinery.
4676
- Bound ticks to the exact timeline runtime that created them and made bounded
4777
traversal reuse one request-scoped checkpoint basis and tail support index.
4878
- Locked the package root to the v19 facade allowlist so support ports,
@@ -61,7 +91,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6191
- Raised the coverage ratchet from `92.10%` to `92.62%` after adding targeted
6292
coverage for bounded query node paging and memory-budget rejection paths and
6393
removing retired compatibility surfaces.
64-
- Upgraded `@git-stunts/git-cas` to `^6.5.3` so Git-backed materializations can
94+
- Upgraded `@git-stunts/git-cas` to `^6.5.5` so Git-backed materializations can
6595
use managed `CacheSet` retention, opaque page and bundle handles, and
6696
persistent Git object sessions.
6797
- Replaced the raw-Git grep check with a TypeScript AST gate that keeps
@@ -151,6 +181,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
151181

152182
### Fixed
153183

184+
- Prepared each Observation's timeline basis once, reused one coordinate optic
185+
across its readings, and cached the immutable checkpoint basis for captured
186+
coordinates. Live optics remain uncached so they continue to observe current
187+
history.
154188
- Reused repository-scoped Git object sessions across immutable history and
155189
CAS operations, then closed history, materialization, and CAS owners at
156190
application, CLI, migration, and test boundaries. This removes repeated

README.md

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,17 @@ It lets you:
4545

4646
## Latest release
4747

48-
`v18.2.1` corrects the WARP-owned state-cache materialization path introduced
49-
in `v18.2.0`. Live materialization now uses current writer-frontier coordinates
50-
for exact and compatible predecessor snapshot reuse, publishes replay results
51-
under their real coordinate, and keeps diff-producing or receipt-producing reads
52-
replay-backed so callers receive complete diff and provenance data.
48+
`v19.0.0` replaces the graph-first application API with one public runtime
49+
boundary: open `Runtime`, address causal `Lane`s, write validated `Intent`s,
50+
consume bounded `Observation` streams of `Reading`s, and retain `Receipt`s.
51+
Existing repositories with retained v18 state require the packaged one-shot
52+
migration below before any v19 process opens them.
53+
54+
The exact merged-main release gate's representative migrated-v18 retained scan
55+
was 31.1% faster cold, 32.1% faster warm, used 20.1–21.3% less operation CPU,
56+
and issued 46.6% fewer Git commands than published v18.2.1. These measurements
57+
cover the bounded 16-property fixture workload; they are not a universal
58+
workload claim.
5359

5460
See [CHANGELOG.md](CHANGELOG.md) for the full in-repository release notes.
5561

@@ -96,9 +102,7 @@ if (write.outcome.kind === 'conflict' || write.outcome.kind === 'obstruction') {
96102
throw new Error(write.reason ?? `write admission was ${write.outcome.kind}`);
97103
}
98104
99-
const observation = events.observe(
100-
users.observers.roleOf({ subject: 'user:alice' })
101-
);
105+
const observation = events.observe(users.observers.roleOf({ subject: 'user:alice' }));
102106
103107
for await (const reading of observation) {
104108
console.log(reading.value);
@@ -452,7 +456,13 @@ Check [CHANGELOG.md](CHANGELOG.md), the topic docs, and the package registry for
452456
453457
### What about performance and scale?
454458
455-
Strong for offline/moderate causal workloads thanks to bounded support and holographic slices. Not for high-frequency real-time (use **[Echo](https://github.com/flyingrobots/echo)**).
459+
The exact merged-main v19 release gate measured its representative migrated-v18
460+
retained scan at 31.1–32.1% lower wall time, 20.1–21.3% lower operation CPU,
461+
and 46.6% fewer Git commands than v18.2.1. A separate 256 MiB logical Observer
462+
stream completes under a 64 MiB old-space cap. These are bounded workload
463+
contracts, not a claim that every repository or query has the same speedup. For
464+
high-frequency real-time execution, use
465+
**[Echo](https://github.com/flyingrobots/echo)**.
456466
457467
### How does it relate to Echo and Continuum?
458468

docs/topics/README.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,16 @@ specific task.
55

66
## Current release
77

8-
`v18.2.1` keeps the public docs focused around the shipped v18 read model and
9-
corrects the WARP state-cache materialization topic: live materialization can
10-
reuse coordinate-addressed snapshots, while diff and receipt reads remain
11-
replay-backed. Operator workflows live outside the topic shelf in
12-
[Operations](../operations/). The full release narrative lives in the root
13-
[CHANGELOG](../../CHANGELOG.md).
8+
`v19.0.0` ships the Runtime, Lane, Intent, Observer, Observation, Reading, and
9+
Receipt application vocabulary, bounded retained reads, and the one-shot
10+
v18-to-v19 substrate migration. Operator workflows live outside the topic
11+
shelf in [Operations](../operations/). The full breaking-change, migration,
12+
and performance narrative lives in the root [CHANGELOG](../../CHANGELOG.md).
1413

1514
## Start here
1615

17-
- [Getting started](getting-started.md): install the package, open a worldline,
18-
write a patch, read it back, and sync WARP refs.
16+
- [Getting started](getting-started.md): install the package, open a Runtime and
17+
Lane, write an Intent, observe a bounded value, and keep its Receipt.
1918
- [v19 public vocabulary checkpoint](api/): follow the accepted Runtime, Lane,
2019
Intent, Observer, Observation, Reading, and Receipt contract.
2120
- [Generated v19 public vocabulary](vocabulary.generated.md): use the canonical

jsr.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/git-warp",
3-
"version": "18.2.1",
3+
"version": "19.0.0",
44
"imports": {
55
"roaring": "npm:roaring@^2.7.0"
66
},

package-lock.json

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/git-warp",
3-
"version": "18.2.1",
3+
"version": "19.0.0",
44
"description": "Git-native causal history runtime for intent writes, timeline reads, and receipts.",
55
"type": "module",
66
"license": "Apache-2.0",

packages/warp-adapters/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/warp-adapters",
3-
"version": "18.2.1",
3+
"version": "19.0.0",
44
"description": "Infrastructure adapters: Git/CAS, crypto, and HTTP for git-warp.",
55
"private": true,
66
"type": "module",

packages/warp-kernel/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/warp-kernel",
3-
"version": "18.2.1",
3+
"version": "19.0.0",
44
"description": "Domain engine: services, WarpState, and controllers for git-warp.",
55
"private": true,
66
"type": "module",

packages/warp-orset/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/warp-orset",
3-
"version": "18.2.1",
3+
"version": "19.0.0",
44
"description": "ORSet engine: trie, cursor, cache, and session primitives for git-warp.",
55
"private": true,
66
"type": "module",

0 commit comments

Comments
 (0)