Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
6ead516
docs: Plan v18 continuum slices 6-10
flyingrobots May 22, 2026
1a79689
feat: Make continuum evidence posture explicit
flyingrobots May 22, 2026
5beae0d
feat: Verify patch commit visibility
flyingrobots May 22, 2026
c317b53
feat: Make writer ref commits atomic
flyingrobots May 22, 2026
4860e79
feat: Project continuum receipt family facts
flyingrobots May 22, 2026
3c83e5b
test: Add warp-ttd receipt projection smoke
flyingrobots May 22, 2026
4fb31db
test: Align commit mocks with CAS visibility
flyingrobots May 22, 2026
a7cac70
Fix: Load warp-ttd smoke adapter dynamically
flyingrobots May 22, 2026
7c6ab30
Fix: Validate evidence claim constructor fields
flyingrobots May 22, 2026
c5208a3
Fix: Validate receipt projection constructor fields
flyingrobots May 22, 2026
81f189c
Fix: Validate receipt source fact fields
flyingrobots May 22, 2026
4e969b2
Fix: Enforce CAS semantics in mock ports
flyingrobots May 22, 2026
d93c616
Fix: Enforce CAS semantics in graph mock persistence
flyingrobots May 22, 2026
8f09a8a
Fix: Cover native evidence proof validation
flyingrobots May 22, 2026
92d39de
Fix: Enforce CAS semantics in PatchBuilder CAS fixture
flyingrobots May 22, 2026
c4d12a0
Fix: Enforce CAS semantics in WarpGraph fixture
flyingrobots May 22, 2026
26db4c4
Fix: Enforce CAS semantics in PatchBuilder fixture
flyingrobots May 22, 2026
ab42b2f
Fix: Enforce CAS semantics in content fixture
flyingrobots May 22, 2026
d02d235
Fix: Enforce CAS semantics in Writer fixture
flyingrobots May 22, 2026
493a3ae
Fix: Reject null receipt delivery observations
flyingrobots May 22, 2026
61d6dda
Fix: Remove continuum posture EOF blank
flyingrobots May 22, 2026
5e01fb0
Fix: Split PatchBuilder test file
flyingrobots May 22, 2026
c2f52ee
Fix: Split PatchBuilder content test file
flyingrobots May 22, 2026
783463d
Fix: Split Writer test file
flyingrobots May 22, 2026
df81a32
Fix: Document Continuum source declarations
flyingrobots May 22, 2026
ca6a4b3
docs: Record v18 review fixes
flyingrobots May 22, 2026
1d99817
Fix: Seed patch count fixture ref for CAS
flyingrobots May 22, 2026
d037143
Fix: Treat visible CAS write as success
flyingrobots May 22, 2026
e88946b
Fix: Type split test fixtures
flyingrobots May 22, 2026
3baedee
Fix: Split oversized WarpGraph specs
flyingrobots May 22, 2026
39e8ae2
Fix: Type WarpGraph split fixtures
flyingrobots May 22, 2026
ece36ef
Fix: Document Continuum exported shapes
flyingrobots May 22, 2026
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
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Fixed

- V18 Continuum review follow-up now validates constructor envelopes before
dereferencing fields, rejects null receipt delivery-observation carriers,
documents the new source declarations, and keeps split PatchBuilder/Writer
test files under the line-count policy while preserving CAS fixture coverage.

## [17.0.1] — 2026-05-22

### Fixed
Expand Down
84 changes: 63 additions & 21 deletions docs/BEARING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ handles and basis references behind product adapters.

## Where are we

`git-warp` has shipped `v17.0.0`. The release work is now behind us in
repo history, npm, and JSR; the active direction is `v18.0.0`.
`git-warp` has shipped `v17.0.0` and the `v17.0.1` follow-up release repair.
The release work is now behind us in repo history, npm, and JSR; the active
direction is `v18.0.0`.

The v18 hill is not generic graph-model cleanup. It is Continuum
compatibility:
Expand Down Expand Up @@ -56,18 +57,22 @@ Continuum role.

Current branch state at this boundary:

- Branch: `v18-continuum-opening`
- Release tag: `v17.0.0`
- Latest remote head inspected: `origin/main` at `5afdd3eb`
- Latest package version: `17.0.0`
- Latest closed cycle:
`0145-push-pr-review-merge`
- Branch: `v18-continuum-slices-6-10`
- Base branch: `main`
- Latest remote head inspected: `origin/main` at `42f15812`
- Latest released package line: `17.0.1`
- Latest merged PR: #93, recursive tree OID read fanout and v17.0.1 release
repair
- Latest completed v18 implementation cycle:
`0158-v18-warp-ttd-receipt-smoke`

The release ladder is now:

- `v17.0.0`: shipped TypeScript migration, public API honesty,
materialization-frontdoor deletion, readings/optics direction, and query
read-model groundwork.
- `v17.0.1`: repaired recursive tree OID read fanout, preserved
prototype-like Git path names, and captured review follow-up backlog designs.
- `v18.0.0`: Continuum/WARP Optic compatibility for git-warp as an independent
Continuum participant, through Wesley-generated contract-family artifacts and
honest evidence posture.
Expand Down Expand Up @@ -118,7 +123,8 @@ mapping, and concrete checks live in `docs/invariants/`.

## What just shipped

`v17.0.0` shipped and was followed by release hardening:
`v17.0.0` shipped and was followed by release hardening and the `v17.0.1`
performance/correctness repair:

- The v17 release branch landed through PR #84.
- Follow-up repair and package migration work landed through PR #85.
Expand All @@ -127,6 +133,11 @@ mapping, and concrete checks live in `docs/invariants/`.
`v17.0.0` tag points at that merge.
- npm publish recovery landed through PR #88.
- PR #89 simplified the README model sentence after the release line.
- PR #93 flattened recursive tree OID reads into one `git ls-tree -rz` call,
fixed prototype-like path handling with a `Map` accumulator, released
`v17.0.1`, and added design-backed backlog fuel for path-keyed boundary
audits, safe path-map materialization, review-bot warning policy, and a
recursive tree path benchmark.

The shipped v17 scope remains: TypeScript migration, public API honesty,
materialization-frontdoor deletion, readings/optics direction, query
Expand All @@ -137,6 +148,9 @@ read-model groundwork, sync hardening, release gates, and package publishing.
- The release preflight fix lowered the coverage ratchet to the measured
full-suite v17 line baseline `91.74%`; this is tracked as v19 bad-code debt
in `SPEC_coverage-ratchet-baseline-drop.md`.
- The v17.0.1 performance repair proved that adapter-level path keys must not
be treated as safe object member names. That is now tracked by planned
design/backlog work in cycles 0150 through 0153.
- v18 can easily turn into adapter folklore if `git-warp` hand-authors local
mirrors of Continuum-owned families instead of consuming Wesley-generated
artifacts.
Expand All @@ -152,8 +166,9 @@ read-model groundwork, sync hardening, release gates, and package publishing.

## What comes next

Run the v18 opening campaign. Update this task list at the end of each slice,
before the final commit for that slice, and mark completed items with `- [x]`.
Run the next v18 slices in order. Each slice gets a design document before
implementation, RED before GREEN, and a BEARING update before the final commit
for that slice.

## Running Task List

Expand All @@ -178,16 +193,43 @@ before the final commit for that slice, and mark completed items with `- [x]`.
and one-file-per-concept caps, self-attested authority fields from artifact
JSON are rejected, policy-test authority fixtures are named constants, and
empty or internally inconsistent Wesley generated inventory is rejected.
- [ ] 6. Make evidence posture explicit: translated git-warp evidence first,
native Continuum evidence only after native witnesshood is proven.
- [ ] 7. Prove the patch commit visibility contract: success means canonical
writer-tip advancement and visible graph truth, not just object creation.
- [ ] 8. Add the same-writer concurrent patch race witness with final-frontier
and visible-state assertions.
- [ ] 9. Project git-warp receipt facts into the generated Continuum
receipt-family shape with conformance tests.
- [ ] 10. Add the first `warp-ttd` smoke over generated-family git-warp receipt
facts instead of handwritten adapter-local receipt folklore.
- [x] 6. Make evidence posture explicit:
[0154-v18-evidence-posture](design/0154-v18-evidence-posture/v18-evidence-posture.md)
defines translated git-warp evidence first, with native Continuum evidence
only after native witnesshood is proven. `ContinuumEvidencePosture` and
`ContinuumEvidenceClaim` now separate generated artifact shape authority from
witnesshood, require explicit proof for native Continuum evidence, and expose
`requireTranslatedGitWarpEvidence()` for receipt-family projection.
- [x] 7. Prove the patch commit visibility contract:
[0155-v18-patch-commit-visibility-contract](design/0155-v18-patch-commit-visibility-contract/v18-patch-commit-visibility-contract.md)
defines success as canonical writer-tip advancement and visible graph truth,
not just object creation. `commitPatch()` now verifies that the writer ref
visibly points at the new commit before reporting success or running
`onCommitSuccess`; hidden post-object/pre-ref failures raise typed
persistence errors.
- [x] 8. Add the same-writer concurrent patch race witness:
[0156-v18-same-writer-concurrent-race-witness](design/0156-v18-same-writer-concurrent-race-witness/v18-same-writer-concurrent-race-witness.md)
requires final-frontier and visible-state assertions. `commitPatch()` now
advances writer refs through `compareAndSwapRef`, translates atomic frontier
movement into retryable writer conflict posture, and keeps the losing
same-writer patch out of canonical materialized state.
- [x] 9. Project git-warp receipt facts into the generated Continuum
receipt-family shape:
[0157-v18-receipt-family-projection](design/0157-v18-receipt-family-projection/v18-receipt-family-projection.md)
uses generated-family descriptors and explicit translated evidence posture.
`GitWarpReceiptSourceFacts` validates local `TickReceipt`,
`DeliveryObservation`, and optional `ReceiptShard` inputs;
`ContinuumReceiptFamilyProjection` emits generated-family `receipts`,
`witnesses`, and `deliveryObservations` arrays while preserving translated
git-warp evidence posture.
- [x] 10. Add the first `warp-ttd` smoke over generated-family git-warp receipt
facts:
[0158-v18-warp-ttd-receipt-smoke](design/0158-v18-warp-ttd-receipt-smoke/v18-warp-ttd-receipt-smoke.md)
rejects handwritten adapter-local receipt folklore. The standalone smoke
`test/smoke/warpTtdReceiptFamilyProjectionSmoke.ts` dynamically loads the
sibling `~/git/warp-ttd` adapter at execution time, rejects plain local
receipt DTOs, and proves `warp-ttd` can summarize generated-family git-warp
receipt projection facts while preserving translated evidence posture.
- [ ] 11. Re-plan with evidence in hand before expanding into reading-envelope,
suffix/runtime-boundary, neighborhood-core, and settlement-family slices.

Expand Down
140 changes: 140 additions & 0 deletions docs/design/0154-v18-evidence-posture/v18-evidence-posture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
---
cycle: 0154
task_id: V18_evidence_posture
status: Complete
sponsors:
human: James
agent: Codex
started_at: 2026-05-22
completed_at: 2026-05-22
release_home: v18.0.0
bearing_task: 6
---

# V18 Evidence Posture

## Pull

Slice 5 admitted Wesley-generated Continuum family artifacts and documented
fixtures without letting local mirrors become contract authority. That protects
family shape authority, but it does not yet protect evidence claims.

The next risk is subtler: a git-warp value can conform to a Continuum family
shape while still being translated git-warp evidence, not native Continuum
witnesshood.

## Hill

Make evidence posture explicit in the Continuum domain model:

- generated artifacts can authorize shape;
- git-warp projections start as translated git-warp evidence;
- native Continuum evidence is impossible to claim without an explicit proof
path;
- missing or ambiguous posture is rejected.

## Playback Questions

- Can code distinguish generated-family shape authority from evidence
witnesshood?
- Does a descriptor loaded from Wesley or a Continuum fixture default to
translated git-warp evidence rather than native Continuum evidence?
- Can local mirror or handwritten mirror descriptors still be rejected before
they become family authority?
- Does any projection path fail closed when evidence posture is missing?

## Design

Add a runtime-backed evidence posture concept under `src/domain/continuum/`.
The minimum useful posture set is:

- `translated-git-warp-evidence` — git-warp-local causal history or reading
translated into a generated Continuum family shape;
- `native-continuum-evidence` — reserved for values that have proven native
Continuum witnesshood;
- `unproven-continuum-shape` — shape conformity without witnesshood.

The first implementation should accept only translated git-warp evidence for
git-warp projections. Native Continuum evidence should exist as a named posture
but require an explicit proof method; direct construction should be tested so it
cannot be inferred from descriptor authority alone.

## Implementation

This slice adds two domain concepts:

- `ContinuumEvidencePosture` validates the posture string and answers whether a
value is translated git-warp evidence, native Continuum evidence, or an
unproven Continuum shape.
- `ContinuumEvidenceClaim` couples a generated-family descriptor to an explicit
posture and optional native witness proof.

Native Continuum evidence cannot be constructed from descriptor authority alone.
If the posture is `native-continuum-evidence`, the claim requires
`nativeWitnessProof`. If a translated projection requires git-warp evidence,
`requireTranslatedGitWarpEvidence()` rejects unproven or native claims.

The public entry point exports both concepts so future receipt-family projection
work can depend on the same posture model instead of inventing adapter-local
flags.

## Non-Goals

- Do not project receipts yet. That is slice 9.
- Do not add `warp-ttd` integration yet. That is slice 10.
- Do not invent a generic witness engine.
- Do not let artifact authority imply evidence posture.

## RED

- A generated receipt-family descriptor plus git-warp-local facts must not be
classified as native Continuum evidence.
- A projection descriptor without evidence posture must fail.
- A local mirror descriptor remains rejected by the ingestion policy.

Observed RED:

```text
npx vitest run test/unit/domain/continuum/ContinuumEvidencePosture.test.ts --reporter=verbose
Error: Cannot find module '../../../../src/domain/continuum/ContinuumEvidenceClaim.ts'
```

## Verification

```text
npx vitest run \
test/unit/domain/continuum/ContinuumEvidencePosture.test.ts \
test/unit/domain/continuum/ContinuumArtifactIngestionPolicy.test.ts \
test/unit/domain/index.exports.test.ts
Test Files 3 passed (3)
Tests 67 passed (67)

npm run typecheck
tsc --noEmit -p tsconfig.src.json && tsc --noEmit -p tsconfig.test.json

npm run lint
eslint .

npx markdownlint docs/BEARING.md \
docs/design/0154-v18-evidence-posture/v18-evidence-posture.md
```

## SSJS Scorecard

- Runtime-backed forms: green; evidence posture and evidence claim are classes
with constructor validation and frozen instances.
- Boundary validation: green; untrusted shape authority remains adapter-side,
while posture is an explicit domain input.
- Behavior ownership: green; posture owns witnesshood classification and claim
proof requirements.
- Message parsing: green; no behavior branches on prose.
- Ambient time or entropy: green.
- Fake shape trust or cast-cosplay: green; descriptor authority does not imply
witnesshood, and native evidence requires an explicit proof string.

## Closeout

This closes BEARING task 6. The next slice can use
`ContinuumEvidenceClaim.requireTranslatedGitWarpEvidence()` as the guard that
keeps generated-family projection honest until native Continuum witnesshood is
proven.
Loading
Loading