Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
9 changes: 5 additions & 4 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ If you are learning the product for the first time, start with:

## Release posture

`v19.0.1` is the current release. Applications open a `Runtime`, address causal
`v19.0.2` is the current release. Applications open a `Runtime`, address causal
`Lane`s, write validated `Intent`s, consume bounded `Observation` streams of
`Reading`s, and keep `Receipt`s. The patch adds the safe one-shot retained-v18
migration without changing the v19 application grammar. Git history and
git-cas remain separate infrastructure concerns composed behind the Runtime.
`Reading`s, and keep `Receipt`s. The patch makes the safe one-shot retained-v18
migration observable at per-commit granularity and durable after the TUI exits,
without changing the v19 application grammar. Git history and git-cas remain
separate infrastructure concerns composed behind the Runtime.

The longer release notes live in [CHANGELOG.md](CHANGELOG.md). The runtime
architecture below describes current implementation boundaries, not aspirational
Expand Down
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [19.0.2] - 2026-07-29

### Release notes

`v19.0.2` makes the safe v18-to-v19 migration observable and unambiguous
throughout long inventories and rewrites. It emits progress for every commit,
keeps terminal rendering bounded without hiding phase, writer, or final
transitions, and prints durable success, authority-change, scratch-verification,
and recovery-ref evidence after the framed application exits.

This patch does not change the v19 runtime API, storage format, package
entrypoints, or application grammar.

### Fixed

- Published inventory and rewrite progress for every migrated commit while
coalescing only terminal redraws on a bounded cadence.
- Preserved phase, writer, named-step, and final progress at rendering
boundaries so long migrations no longer appear frozen.
- Printed an explicit post-TUI report with migration status, repository, graph,
writer count, scratch verification, authoritative-ref change status, and
recovery-ref prefix.
- Contained terminal and scheduled renderer failures so display I/O cannot
replace, mask, or asynchronously terminate the migration outcome.

### Documentation

- Added the streaming indexed recursive WARP architecture plan as future design
evidence; it does not claim that the runtime implementation has landed.

## [19.0.1] - 2026-07-28

### Release notes
Expand Down
26 changes: 14 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,21 @@ It lets you:

## Latest release

`v19.0.1` is the current release. It keeps the public runtime boundary
`v19.0.2` is the current release. It keeps the public runtime boundary
introduced in v19.0.0—open `Runtime`, address causal `Lane`s, write validated
`Intent`s, consume bounded `Observation` streams of `Reading`s, and retain
`Receipt`s—and replaces the unsafe v19.0.0 retained-state migrator. Existing
repositories with retained v18 state require the v19.0.1 one-shot migration
below before any v19 process opens them. Do not use the v19.0.0 migrator on an
authoritative repository.

The exact merged-main release gate's representative migrated-v18 retained scan
was 31.1% faster cold, 32.1% faster warm, used 20.1–21.3% less operation CPU,
and issued 46.6% fewer Git commands than published v18.2.1. These measurements
cover the bounded 16-property fixture workload; they are not a universal
workload claim.
`Receipt`s—and includes the safe retained-state migrator introduced in v19.0.1.
The patch publishes per-commit progress during long inventory and rewrite
phases and prints durable completion and recovery evidence after the TUI exits.
Existing repositories with retained v18 state require the v19.0.2 one-shot
migration below before any v19 process opens them. Do not use the v19.0.0
migrator on an authoritative repository.

The v19.0.1 merged-main release gate's representative migrated-v18 retained
scan was 31.1% faster cold, 32.1% faster warm, used 20.1–21.3% less operation
CPU, and issued 46.6% fewer Git commands than published v18.2.1. These
measurements cover the bounded 16-property fixture workload; they are not a
universal workload claim.

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

Expand All @@ -73,7 +75,7 @@ domain modules provide the validated intents and observers for an application.
> starting the application, and run the confirmed migration:
>
> ```bash
> npm exec --package=@git-stunts/git-warp@19.0.1 -- \
> npm exec --package=@git-stunts/git-warp@19.0.2 -- \
> git-warp-v18-to-v19 \
> --repo /path/to/repository \
> --graph <graph-name>
Expand Down
12 changes: 6 additions & 6 deletions docs/migrations/v19/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# v19 Public API Migration Guide

> **Status:** The public grammar shipped in `v19.0.0`. The retained-state
> migration described below requires `v19.0.1`; do not use the `v19.0.0`
> migrator on an authoritative repository. v19.0.1 ships the generic
> migration described below requires `v19.0.2`; do not use the `v19.0.0`
> migrator on an authoritative repository. v19.0.2 ships the generic
> constructors and an executable generated-SDK reference; each application
> still owns the renderer that assigns domain meaning.

Expand All @@ -27,7 +27,7 @@ not fixed: one Git repository may contain several independent WARP graphs.
Run the migration once:

```bash
npm exec --package=@git-stunts/git-warp@19.0.1 -- git-warp-v18-to-v19 \
npm exec --package=@git-stunts/git-warp@19.0.2 -- git-warp-v18-to-v19 \
--repo /path/to/repository \
--graph <graph-name>
```
Expand Down Expand Up @@ -223,7 +223,7 @@ Use `--dry-run` only when you explicitly want a rehearsal whose result will be
discarded:

```bash
npm exec --package=@git-stunts/git-warp@19.0.1 -- git-warp-v18-to-v19 \
npm exec --package=@git-stunts/git-warp@19.0.2 -- git-warp-v18-to-v19 \
--repo /path/to/repository \
--graph <graph-name> \
--dry-run
Expand Down Expand Up @@ -367,7 +367,7 @@ meaning.

### Prerequisites

Use Node.js 22.18 or newer, install `@git-stunts/git-warp@19.0.1` in the
Use Node.js 22.18 or newer, install `@git-stunts/git-warp@19.0.2` in the
application, and install the exact Wesley version used by the executable
reference. Wesley is a native Rust CLI; install the
[Rust toolchain and Cargo](https://rustup.rs/) first when `cargo` is not
Expand Down Expand Up @@ -466,7 +466,7 @@ above:
npm run check:users
```

git-warp v19.0.1 does not ship a universal renderer that guesses arbitrary
git-warp v19.0.2 does not ship a universal renderer that guesses arbitrary
application semantics. The renderer is deliberately application-owned. The
checked-in reference supports `NODE_ADD`, `PROPERTY_SET`, bounded `PROPERTY`
Observers, string decoding, and the exact `registerUser`, `assignRole`,
Expand Down
7 changes: 4 additions & 3 deletions docs/operations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ It does not mutate authoritative history or silently repair git-cas.

## Migrate retained v18 state

Use only the v19.0.1 migrator on an authoritative repository. The v19.0.0
migrator is unsafe for retained v18 state.
Use the v19.0.2 migrator on an authoritative repository. The v19.0.1 migrator
is safe but lacks complete per-commit progress and durable post-TUI completion
evidence. The v19.0.0 migrator is unsafe for retained v18 state.

Prepare and test the v19 application without opening the authoritative
repository. During the maintenance window, stop every writer and make an
Expand All @@ -37,7 +38,7 @@ names, reports source and scratch capacity, and asks for confirmation:
```bash
GRAPH_NAME=your-graph-name

npm exec --package=@git-stunts/git-warp@19.0.1 -- \
npm exec --package=@git-stunts/git-warp@19.0.2 -- \
git-warp-v18-to-v19 \
--repo "$REPOSITORY" \
--graph "$GRAPH_NAME"
Expand Down
12 changes: 6 additions & 6 deletions docs/topics/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ specific task.

## Current release

`v19.0.1` is the current release. It ships the Runtime, Lane, Intent, Observer,
`v19.0.2` is the current release. It ships the Runtime, Lane, Intent, Observer,
Observation, Reading, and Receipt application vocabulary, bounded retained
reads, and the safe one-shot v18-to-v19 substrate migration. Do not use the
v19.0.0 migrator on an authoritative repository. Operator workflows live
outside the topic shelf in [Operations](../operations/). The full
breaking-change, migration, and performance narrative lives in the root
[CHANGELOG](../../CHANGELOG.md).
reads, and the safe one-shot v18-to-v19 substrate migration with per-commit
progress and durable completion evidence. Do not use the v19.0.0 migrator on an
authoritative repository. Operator workflows live outside the topic shelf in
[Operations](../operations/). The full breaking-change, migration, and
performance narrative lives in the root [CHANGELOG](../../CHANGELOG.md).

## Start here

Expand Down
2 changes: 1 addition & 1 deletion docs/topics/api/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# v19 Public Vocabulary Checkpoint

> **Status:** Current in `v19.0.1`; introduced in `v19.0.0`.
> **Status:** Current in `v19.0.2`; introduced in `v19.0.0`.
>
> This document is the normative product vocabulary and public-surface design.
> The Runtime, Lane, Intent, Observer, streaming Observation, Reading, Receipt,
Expand Down
2 changes: 1 addition & 1 deletion jsr.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@git-stunts/git-warp",
"version": "19.0.1",
"version": "19.0.2",
"imports": {
"roaring": "npm:roaring@^2.7.0"
},
Expand Down
10 changes: 5 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@git-stunts/git-warp",
"version": "19.0.1",
"version": "19.0.2",
"description": "Git-native causal history runtime for intent writes, timeline reads, and receipts.",
"type": "module",
"license": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/warp-adapters/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@git-stunts/warp-adapters",
"version": "19.0.1",
"version": "19.0.2",
"description": "Infrastructure adapters: Git/CAS, crypto, and HTTP for git-warp.",
"private": true,
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/warp-kernel/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@git-stunts/warp-kernel",
"version": "19.0.1",
"version": "19.0.2",
"description": "Domain engine: services, WarpState, and controllers for git-warp.",
"private": true,
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/warp-orset/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@git-stunts/warp-orset",
"version": "19.0.1",
"version": "19.0.2",
"description": "ORSet engine: trie, cursor, cache, and session primitives for git-warp.",
"private": true,
"type": "module",
Expand Down
4 changes: 2 additions & 2 deletions scripts/v18-to-v19/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Stop every process that can write to the repository and make a normal backup.
After installing v19 without starting the application, run the migration:

```bash
npm exec --package=@git-stunts/git-warp@19.0.1 -- git-warp-v18-to-v19 \
npm exec --package=@git-stunts/git-warp@19.0.2 -- git-warp-v18-to-v19 \
--repo /path/to/repository \
--graph <graph-name>
```
Expand Down Expand Up @@ -72,7 +72,7 @@ public API, and validates its receipt.
Use `--dry-run` only when you explicitly want a disposable rehearsal:

```bash
npm exec --package=@git-stunts/git-warp@19.0.1 -- git-warp-v18-to-v19 \
npm exec --package=@git-stunts/git-warp@19.0.2 -- git-warp-v18-to-v19 \
--repo /path/to/repository \
--graph <graph-name> \
--dry-run
Expand Down
16 changes: 8 additions & 8 deletions test/unit/scripts/v19-migration-guidance.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ function generatedSdkSection(): string {
}

describe('v19 migration guidance', () => {
it('keeps every public release signpost on v19.0.1', () => {
expect(ROOT_README).toContain('`v19.0.1` is the current release');
expect(ARCHITECTURE).toContain('`v19.0.1` is the current release');
expect(TOPICS_INDEX).toContain('`v19.0.1` is the current release');
expect(API_GUIDE).toContain('Current in `v19.0.1`');
it('keeps every public release signpost on v19.0.2', () => {
expect(ROOT_README).toContain('`v19.0.2` is the current release');
expect(ARCHITECTURE).toContain('`v19.0.2` is the current release');
expect(TOPICS_INDEX).toContain('`v19.0.2` is the current release');
expect(API_GUIDE).toContain('Current in `v19.0.2`');
});

it('keeps the root README on the safe one-pass v19.0.1 migration', () => {
expect(ROOT_README).toContain('@git-stunts/git-warp@19.0.1');
it('keeps the root README on the safe one-pass v19.0.2 migration', () => {
expect(ROOT_README).toContain('@git-stunts/git-warp@19.0.2');
Comment thread
flyingrobots marked this conversation as resolved.
Outdated
expect(ROOT_README).toContain('--repo /path/to/repository');
expect(ROOT_README).toContain('--graph <graph-name>');
expect(ROOT_README).toContain('--dry-run');
Expand All @@ -54,7 +54,7 @@ describe('v19 migration guidance', () => {

it('gives operators one complete maintenance-window checklist', () => {
expect(OPERATIONS_GUIDE).toContain('## Migrate retained v18 state');
expect(OPERATIONS_GUIDE).toContain('@git-stunts/git-warp@19.0.1');
expect(OPERATIONS_GUIDE).toContain('@git-stunts/git-warp@19.0.2');
expect(OPERATIONS_GUIDE).toContain('git clone --mirror --no-hardlinks');
expect(OPERATIONS_GUIDE).toContain('already-current');
expect(OPERATIONS_GUIDE).toContain('Keep the recovery refs');
Expand Down
Loading