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
132 changes: 95 additions & 37 deletions docs/BEARING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@ Continuum remains translated git-warp evidence.

## Where Are We

`git-warp` has shipped `v17.0.0` and the `v17.0.1` release repair. The
active major direction is `v18.0.0`: Continuum/WARP Optic compatibility for
git-warp as an independent Continuum participant.
`git-warp` has a public `v17.0.0` package/tag line, with `v17.0.1` repair
work recorded in source docs but not present as public package/tag evidence.
The active major direction is `v18.0.0`: Continuum/WARP Optic compatibility
for git-warp as an independent Continuum participant.

The long-term compatibility target is the WARP Optic shape described in
`~/git/blog/aion-paper-07/dist/aion-paper-07.txt`, plus the Continuum
Expand All @@ -39,19 +40,25 @@ of handwritten adapter folklore.

Current branch state at this boundary:

- Current branch: `v18-release-prep-slices-97-102`
- Current branch: `v18-release-prep-slices-103-112`
- Base branch: `main`
- Current `origin/main`: `023c7d75`
- Latest merged PR: #106, v18 release-candidate evidence and review cleanup
- Latest released package line: `17.0.1`
- Release-prep package metadata: `18.0.0`, not tagged or published yet
- Current `origin/main`: `fdcb5da9`
- Latest merged PR: #107, v18 release-prep metadata and final gates
- Latest released package line: `17.0.0` until the `v18.0.0` tag and publish
complete
- Latest recorded repair entry: `17.0.1` exists in source docs/changelog
without public npm/tag evidence
- Release-prep package metadata: `18.0.0`, merged to `main`, not tagged or
published yet
- Latest completed implementation cycle:
`0250-v18-final-release-prep-replan`
- Current work: release-prep PR review for `v18.0.0`; local release preflight
is green for `18.0.0` metadata, and the remaining public-release gates are
PR review, GitHub CI, merge to `main`, tag, and publish.
- Cleanup checkpoint: PR #106 is merged to `main`; this branch starts from that
merge and must not widen the v18 promise while preparing the public tag.
`0260-next-goalpost-replan-after-v18-merge`
- Current work: post-merge release handoff and next-goalpost planning. PR
review, GitHub CI, and merge are complete for the release-prep branch. The
remaining public-release operation is to tag and publish `v18.0.0` from
aligned `main`.
- Cleanup checkpoint: PR #107 is merged to `main`; this branch starts from
that merge and must not widen the v18 promise while setting the next
engineering goalpost.

The current v18 graph-model posture is:

Expand Down Expand Up @@ -155,15 +162,16 @@ The current v18 graph-model posture is:
command-owned readings, emits the command report, and permits live-ref
finalization only through a reviewed JSON request that matches observed
runtime evidence.
- V18 release-candidate blockers are now explicit: GitHub CI, PR review,
post-merge tag/publish work, and the accepted residual raw content/property
risk.
- V18 release-candidate blockers are now narrowed: PR review, GitHub CI, and
merge are complete; post-merge tag/publish work remains, with accepted
residual raw content/property risk and the full-graph-streaming non-claim
preserved.

That is useful progress, not a finish line. The repo now has migration safety,
wet-run proof, guarded finalization, generated Continuum contract tie-back,
release-candidate docs, `18.0.0` package metadata, and a green local release
preflight. Public v18 still needs PR review, GitHub CI, merge to `main`, tag,
and publish.
release-candidate docs, `18.0.0` package metadata on `main`, a green local
release preflight from the release-prep branch, and green GitHub CI on PR
#107. Public v18 still needs tag and publish work from aligned `main`.

## What Just Shipped

Expand Down Expand Up @@ -230,6 +238,16 @@ PR #106 landed v18 slices 66 through 96:
- review follow-up that tightened runtime replay validation, finalization JSON
evidence binding, fixture coverage, and migration script structure.

PR #107 landed v18 slices 97 through 102:

- release-prep baseline and gate evidence;
- residual raw content/property storage risk decision;
- public operator release notes and v18 non-goals;
- `18.0.0` package, JSR, lockfile, workspace, changelog, and release-policy
metadata alignment;
- final release-prep replan before PR review;
- technical teardown publication and review follow-up.

Slice 36 is complete on this branch. The migration manifest root now exists
as a frozen domain noun, with runtime-backed basis, mapping, warning, and
fatal-error entries. It does not serialize, read Git, or write graph history.
Expand Down Expand Up @@ -387,13 +405,14 @@ and wet-run fixture harnessing.
map because historical replay tests carry pre-codec inline fixture classes
that are not `PropValue`-honest enough for `LegacyPropertyValue`.
- The v18 migration tool now replays migrated scratch operations through the
production graph runtime write/materialization path during wet runs, but
public release still needs the full release-prep gate set on the eventual
release branch.
production graph runtime write/materialization path during wet runs, and the
release-prep PR has merged. Public release now needs tag and publish
evidence from aligned `main`.
- Legacy readings from the v17 golden fixture now have restored public-read
construction, but broader non-fixture replay coverage remains future work.
- The command wrapper can finalize through a reviewed JSON request, but the
public tag still needs CI and release-preflight validation.
public tag still needs aligned-main release preflight, tag evidence, and
registry publish evidence.
- Continuum/WARP Optic release claims now have generated contract evidence for
runtime-boundary graph-model migration, but native Continuum witnesshood is
still not claimed.
Expand All @@ -405,21 +424,17 @@ and wet-run fixture harnessing.

## Where We Are Heading

The remaining runway is no longer a five-slice tail. The next realistic plan
is thirty slices. Some slices may collapse when evidence is in hand, but the
release plan should assume the proof work is hard until it is proven easy.
The release-prep branch has merged. The next move is no longer adding v18
features. It is one of three explicitly separated actions:

The first thirty slices converted operation-derived confidence into
production-runtime confidence, restored the v17 golden fixture, drove the
canonical wet-run report to zero public-read mismatches, guarded live
finalization, tied graph-model migration to generated runtime-boundary
contracts, and added the first `warp-ttd` generated-family smoke. The next
goalpost is release-prep hardening rather than new feature expansion.
1. cut and publish `v18.0.0` from aligned `main`;
2. retire one more raw content/property compatibility boundary;
3. start the v19 observer/admission witnesshood runway.

Slice 96 reconciled the backlog ledger with that evidence. The next practical
goalpost is a release-prep branch that runs the full gate set, freezes package
and release notes, and decides whether remaining raw content/property storage
retirement blocks the public tag or ships as explicit residual risk.
Those should not be blended. Tag/publish is release operation. Storage
retirement is substrate-debt reduction. V19 starts a new semantic runway.

Slices 103 through 112 record that split and keep the next goalpost honest.

### Release-Prep Checklist

Expand All @@ -436,6 +451,29 @@ retirement blocks the public tag or ships as explicit residual risk.
- [x] 102. Replan from final release-prep evidence before PR review:
[0250](design/0250-v18-final-release-prep-replan/v18-final-release-prep-replan.md).

### Post-Merge Goalpost Checklist

- [x] 103. Record the v18 post-merge release handoff:
[0251](design/0251-v18-post-merge-release-handoff/v18-post-merge-release-handoff.md).
- [x] 104. Define the v18 tag and publish gate:
[0252](design/0252-v18-tag-publish-gate/v18-tag-publish-gate.md).
- [x] 105. Define the v18 release evidence archive:
[0253](design/0253-v18-release-evidence-archive/v18-release-evidence-archive.md).
- [x] 106. Frame the post-v18 storage retirement decision:
[0254](design/0254-post-v18-storage-retirement-decision/post-v18-storage-retirement-decision.md).
- [x] 107. Frame the v19 native Continuum witnesshood runway:
[0255](design/0255-v19-native-continuum-witnesshood-runway/v19-native-continuum-witnesshood-runway.md).
- [x] 108. Scope end-to-end graph streaming reads and writes to v20:
[0256](design/0256-v20-streaming-reads-writes-scope/v20-streaming-reads-writes-scope.md).
- [x] 109. Define the post-v18 public doc honesty audit:
[0257](design/0257-post-v18-public-doc-honesty-audit/post-v18-public-doc-honesty-audit.md).
- [x] 110. Define the next residual boundary retirement decision:
[0258](design/0258-v18-residual-boundary-next-retirement/v18-residual-boundary-next-retirement.md).
- [x] 111. Plan backlog lane cleanup after v18:
[0259](design/0259-backlog-lane-cleanup-after-v18/backlog-lane-cleanup-after-v18.md).
- [x] 112. Replan the next goalpost after the v18 release-prep merge:
[0260](design/0260-next-goalpost-replan-after-v18-merge/next-goalpost-replan-after-v18-merge.md).

### Next Thirty-Slice Checklist

- [x] 66. Design production-runtime scratch replay conformance:
Expand Down Expand Up @@ -799,3 +837,23 @@ and concrete checks live in `docs/invariants/`.
[0249](design/0249-v18-version-tag-readiness/v18-version-tag-readiness.md).
- [x] 102. Replan from final release-prep evidence before PR review:
[0250](design/0250-v18-final-release-prep-replan/v18-final-release-prep-replan.md).
- [x] 103. Record the v18 post-merge release handoff:
[0251](design/0251-v18-post-merge-release-handoff/v18-post-merge-release-handoff.md).
- [x] 104. Define the v18 tag and publish gate:
[0252](design/0252-v18-tag-publish-gate/v18-tag-publish-gate.md).
- [x] 105. Define the v18 release evidence archive:
[0253](design/0253-v18-release-evidence-archive/v18-release-evidence-archive.md).
- [x] 106. Frame the post-v18 storage retirement decision:
[0254](design/0254-post-v18-storage-retirement-decision/post-v18-storage-retirement-decision.md).
- [x] 107. Frame the v19 native Continuum witnesshood runway:
[0255](design/0255-v19-native-continuum-witnesshood-runway/v19-native-continuum-witnesshood-runway.md).
- [x] 108. Scope end-to-end graph streaming reads and writes to v20:
[0256](design/0256-v20-streaming-reads-writes-scope/v20-streaming-reads-writes-scope.md).
- [x] 109. Define the post-v18 public doc honesty audit:
[0257](design/0257-post-v18-public-doc-honesty-audit/post-v18-public-doc-honesty-audit.md).
- [x] 110. Define the next residual boundary retirement decision:
[0258](design/0258-v18-residual-boundary-next-retirement/v18-residual-boundary-next-retirement.md).
- [x] 111. Plan backlog lane cleanup after v18:
[0259](design/0259-backlog-lane-cleanup-after-v18/backlog-lane-cleanup-after-v18.md).
- [x] 112. Replan the next goalpost after the v18 release-prep merge:
[0260](design/0260-next-goalpost-replan-after-v18-merge/next-goalpost-replan-after-v18-merge.md).
4 changes: 2 additions & 2 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
> See METHOD for the current process.
> Completed items remain in `docs/ROADMAP/COMPLETED.md`. This file is kept for reference only.

> **Current release on `main`:** v17.0.1
> **Current public package/tag release:** v17.0.0
> **Next intended release:** v18.0.0
> **Last reconciled:** 2026-05-22 (v17.0.1 patch. Recursive tree OID reads use one path-preserving Git command; v17.0.0 release delivered readings/worldlines, TypeScript source, and the generated npm type surface.)
> **Last reconciled:** 2026-05-22 (v17.0.1 repair work is recorded in source docs/changelog without public npm/tag evidence. Recursive tree OID reads use one path-preserving Git command; v17.0.0 release delivered readings/worldlines, TypeScript source, and the generated npm type surface.)
> **Completed milestones:** [docs/ROADMAP/COMPLETED.md](ROADMAP/COMPLETED.md)

---
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# V18 Post-Merge Release Handoff

## Hill

Record the state after the release-prep PR merged and make the remaining
`v18.0.0` release work explicit: tag and publish from `main`, with no new
runtime promise added on a follow-up branch.

## Context

PR #107 merged the `18.0.0` metadata, release notes, release-prep evidence,
and technical teardown to `main`. The package line is release-ready in source,
but the public release is not complete until the tag and publish artifacts are
cut from merged `main`.

The follow-up branch exists to cleanly bookkeep that handoff and set the next
engineering goalpost. It must not blur three different states:

- `18.0.0` metadata merged to `main`;
- `v18.0.0` tag created from `main`;
- npm and JSR artifacts published from that release path.

## User Stories

- As a release manager, I can tell whether the source tree, the Git tag, and
the package registries all agree on `18.0.0`.
- As a maintainer, I can see that the release-prep PR has merged without
accidentally treating that as a completed public release.
- As a downstream operator, I can inspect release notes that describe actual
`v18` guarantees without inheriting hidden branch-state assumptions.

## Acceptance Criteria

- `docs/BEARING.md` names PR #107 as merged and `origin/main` as the source
of truth for the current branch.
- The v18 blocker ledger treats PR review, CI, and merge as complete.
- Tag and publish remain explicitly open until registry evidence exists.
- No follow-up doc claims that end-to-end graph streaming is part of v18.

## Test Plan

- `git status --short --branch`
- `git rev-parse --short origin/main`
- `gh pr view 107 --json state,mergedAt,mergeCommit`
- `npx markdownlint` on edited Markdown files
- `git diff --check`
43 changes: 43 additions & 0 deletions docs/design/0252-v18-tag-publish-gate/v18-tag-publish-gate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# V18 Tag And Publish Gate

## Hill

Define the final public-release gate for `v18.0.0` without performing it on a
feature branch.

## Context

`package.json`, `jsr.json`, workspace package manifests, lockfile metadata,
and the changelog now agree on `18.0.0`. The release-prep branch passed local
preflight before merge, and GitHub CI passed before PR #107 merged.

That is necessary but not sufficient. The public release must still be cut
from merged `main`, and publish evidence must agree with the tag target.

## User Stories

- As a release manager, I can run a short gate before tagging and know which
evidence must be attached to the release record.
- As a package consumer, I can trust that the npm artifact, JSR artifact, and
Git tag describe the same source tree.
- As a maintainer, I do not have to infer whether a feature branch is allowed
to publish.

## Acceptance Criteria

- The release gate requires `main` to match `origin/main`.
- The gate requires `npm run release:preflight` on `main` before tagging.
- The gate requires the tag target, npm dry-run, JSR dry-run, and published
artifacts to agree on `18.0.0`.
- The gate does not create a tag from a feature branch.
- The gate preserves the v18 non-claim around full graph streaming reads and
writes.

## Test Plan

- `git checkout main`
- `git pull --ff-only origin main`
- `npm run release:preflight`
- `git tag --list v18.0.0`
- `npm view @git-stunts/git-warp version`
- JSR package version inspection after publish
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# V18 Release Evidence Archive

## Hill

Name the evidence that should survive after the public `v18.0.0` release,
instead of leaving it scattered across PR comments, CI logs, and local command
output.

## Context

The v18 path accumulated several classes of release evidence:

- migration wet-run reports;
- generated Continuum contract conformance;
- `warp-ttd` generated-family smoke evidence;
- closeout audit evidence for raw content/property compatibility boundaries;
- release preflight output;
- GitHub CI checks;
- npm and JSR publish output.

PR comments and CI logs are useful, but they are not a durable release ledger
by themselves. A release evidence archive should summarize the final public
facts and point back to inspectable sources.

## User Stories

- As a maintainer, I can answer "what exactly shipped in v18?" without
replaying the whole PR history.
- As a downstream integrator, I can find the migration proof and generated
contract evidence that justify the release claim.
- As a future release agent, I can compare v19 or v20 release evidence against
a stable v18 pattern.

## Acceptance Criteria

- A future release archive names the tag, commit, package versions, publish
timestamps, and registry artifacts.
- The archive links to the release-prep PR, CI run, release notes, and local
gate evidence.
- The archive records residual raw content/property compatibility risk as an
accepted v18 risk, not an omitted blocker.
- The archive records that full graph streaming is a later-major goal.

## Test Plan

- Markdown lint the archive.
- Link-check repository-local release evidence links.
- Compare archived package versions against `package.json` and `jsr.json`.
- Verify the archived tag SHA matches the release commit.
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Post-V18 Storage Retirement Decision

## Hill

Decide whether the next engineering goalpost should continue raw
content/property storage retirement before starting v19 runtime doctrine work.

## Context

V18 deliberately accepts residual raw content/property compatibility
boundaries. That is honest, but it is still debt. The closeout audit now
guards drift, yet the repo still carries legacy compatibility spelling in
named boundaries.

The competing pressure is v19: observation, admission, and doctrine
convergence. Starting v19 while storage-plane debt remains visible may be
reasonable, but only if the debt is boxed and ratcheted tightly enough.

## User Stories

- As a maintainer, I can decide whether storage debt is a release-line risk or
a manageable ratcheted backlog item.
- As a migration operator, I can trust that remaining legacy compatibility
boundaries are named and tested.
- As a v19 planner, I can start observer/admission work without inheriting
ambiguous v18 substrate claims.

## Acceptance Criteria

- The decision distinguishes total storage retirement from bounded residual
compatibility.
- The decision identifies the next single raw boundary to retire if retirement
continues first.
- The decision explains why v19 can or cannot start before full storage
retirement.
- The closeout audit remains the executable guard for any deferred boundary.

## Test Plan

- Run the content/property closeout audit.
- Inspect each allowlisted boundary for ownership and reason.
- Verify release docs do not claim total raw storage retirement.
- Update the relevant backlog lane after the decision.
Loading
Loading