@@ -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
0 commit comments