Skip to content

V18 Continuum slices 11-15#95

Merged
flyingrobots merged 10 commits into
mainfrom
v18-continuum-slices-11-15
May 23, 2026
Merged

V18 Continuum slices 11-15#95
flyingrobots merged 10 commits into
mainfrom
v18-continuum-slices-11-15

Conversation

@flyingrobots
Copy link
Copy Markdown
Member

@flyingrobots flyingrobots commented May 22, 2026

Summary

  • Re-plan v18 from the evidence that landed in PR V18 Continuum slices 6-10 #94 and record slices 11-15 in BEARING.
  • Add runtime-backed Continuum family readiness inventory for receipt, settlement, neighborhood-core, and runtime-boundary families.
  • Add a git-warp tick witness ladder that separates patch replay core, receipt witness core, and receipt shell explanation.
  • Add translated runtime-boundary source facts for reading envelopes and witnessed suffixes while preserving authored-only readiness until Wesley profiles exist.

ADR Checks

  • ADR 2/3 impact reviewed: no ADR 2/3 changes.
  • Persisted op formats reviewed: no persisted op format changes.
  • Wire compatibility reviewed: no wire protocol changes.
  • Schema constants reviewed: no schema constant changes.

Verification

  • npm run test:local
  • npm run typecheck
  • npm run lint
  • npm run lint:sludge
  • npm run lint:quarantine-graduate
  • npx markdownlint-cli2 CHANGELOG.md docs/BEARING.md docs/method/backlog/WORKLOADS.md docs/design/0159-v18-replan-with-evidence/v18-replan-with-evidence.md docs/design/0160-v18-generated-family-inventory-refresh/v18-generated-family-inventory-refresh.md docs/design/0161-v18-tickpatch-tickreceipt-witness-ladder/v18-tickpatch-tickreceipt-witness-ladder.md docs/design/0162-v18-reading-envelope-source-facts/v18-reading-envelope-source-facts.md docs/design/0163-v18-witnessed-suffix-source-facts/v18-witnessed-suffix-source-facts.md
  • git diff --check origin/main...HEAD
  • pre-push IRONCLAD M9: all gates passed

Summary by CodeRabbit

  • New Features

    • V18 Continuum compatibility: runtime-backed generated-family readiness inventory, translated reading-envelope source facts, and witnessed-suffix source facts; new public types and a factory to access the current inventory.
  • Documentation

    • Updated changelog, planning/BEARING notes, and multiple design docs outlining the V18 re-plan and tasks.
  • Tests

    • Added unit tests covering inventory, reading-envelope, tick/receipt witness ladder, witnessed-suffix facts, and public exports.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 22, 2026

Warning

Review limit reached

@flyingrobots, we couldn't start this review because you've used your available PR reviews for now.

Your plan currently allows 1 review/hour. Refill in 54 minutes and 5 seconds.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e4db50d7-55a5-4d79-91fa-2e70344eb421

📥 Commits

Reviewing files that changed from the base of the PR and between 5d0af85 and f91cc62.

📒 Files selected for processing (5)
  • docs/BEARING.md
  • src/domain/continuum/ContinuumGeneratedFamilyInventoryEntry.ts
  • src/domain/continuum/GitWarpWitnessedSuffixSourceFacts.ts
  • test/unit/domain/continuum/ContinuumGeneratedFamilyInventory.test.ts
  • test/unit/domain/continuum/GitWarpWitnessedSuffixSourceFacts.test.ts
📝 Walkthrough

Walkthrough

Adds runtime-backed Continuum generated-family inventory, git-warp reading-envelope and witnessed-suffix source facts, a tick patch/receipt witness ladder, public exports, unit tests, and design/BEARING/CHANGELOG/workload documentation for v18 slices 11–15.

Changes

V18 Continuum Compatibility Enhancements

Layer / File(s) Summary
Generated Family Inventory Infrastructure
src/domain/continuum/ContinuumGeneratedFamilyStatus.ts, src/domain/continuum/ContinuumGeneratedFamilyInventoryEntry.ts, src/domain/continuum/ContinuumGeneratedFamilyInventory.ts, src/domain/continuum/createCurrentContinuumGeneratedFamilyInventory.ts, test/unit/domain/continuum/ContinuumGeneratedFamilyInventory.test.ts
Status carrier with profiled-fixture-witnessed and authored-only labels, per-family entry validation with projection readiness, and complete inventory enforcing one-row-per-family invariant with projection-ready queries.
Reading Envelope Payload & Source Facts
src/domain/continuum/GitWarpReadingEnvelopePayloadFact.ts, src/domain/continuum/GitWarpReadingEnvelopeSourceFacts.ts, test/unit/domain/continuum/GitWarpReadingEnvelopeSourceFacts.test.ts
Payload fact holding kind/digest/optional stateHash; source facts accept runtime-boundary family entry, translated evidence posture, and payload to record translated git-warp read results with validation and projection readiness checks.
Tick Witness Ladder Components
src/domain/continuum/GitWarpTickPatchReplayCore.ts, src/domain/continuum/GitWarpTickReceiptShell.ts, src/domain/continuum/GitWarpTickReceiptWitnessCore.ts, src/domain/continuum/GitWarpTickWitnessLadder.ts, test/unit/domain/continuum/GitWarpTickWitnessLadder.test.ts
Replay core extracts patch metadata; receipt shell derives outcome/reason counts; witness core tallies outcome types; ladder composes all three and enforces tick alignment (patchSha, writer, lamport).
Witnessed Suffix Patch & Source Facts
src/domain/continuum/GitWarpWitnessedSuffixPatchFact.ts, src/domain/continuum/GitWarpWitnessedSuffixSourceFacts.ts, test/unit/domain/continuum/GitWarpWitnessedSuffixSourceFacts.test.ts
Patch fact holds writerId/patchSha/lamport/operationCount; source facts accept runtime-boundary family entry, translated evidence posture, and ordered non-empty patch list to record translated suffixes with validation and projection readiness predicate.
Public Exports, Docs, Changelog & Workloads
index.ts, CHANGELOG.md, docs/BEARING.md, docs/design/0159-v18-replan-with-evidence/*, docs/design/0160-v18-generated-family-inventory-refresh/*, docs/design/0161-v18-tickpatch-tickreceipt-witness-ladder/*, docs/design/0162-v18-reading-envelope-source-facts/*, docs/design/0163-v18-witnessed-suffix-source-facts/*, docs/method/backlog/WORKLOADS.md, docs/method/backlog/up-next/PROTO_tickpatch-tickreceipt-witness-ladder-audit.md, test/unit/domain/index.exports.test.ts
Exports for new domain types and *Fields aliases added to package entry point; CHANGELOG updated with V18 compatibility notes; BEARING and design docs added/updated for slices 11–15; workload/backlog adjustments and expanded export tests.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐰 A continuum springs forth, with status to tell,
Read envelopes whisper what translated reads spell,
Patches and receipts climb a ladder of trust,
Suffixes gathered, frozen, immutable and just,
V18 hops forward — ready, gentle, and well.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'V18 Continuum slices 11-15' is concise and accurately reflects the main focus of the changeset, which implements v18 Continuum slices 11-15 as documented in the new design files and updated BEARING.md.
Description check ✅ Passed The PR description includes all required template sections: a clear Summary with 4 bullet points covering the main changes, a complete ADR Checks section with all 4 items checked and explained, and a comprehensive Verification section listing all executed commands.
Docstring Coverage ✅ Passed Docstring coverage is 85.45% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch v18-continuum-slices-11-15

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

Release Preflight

  • package version: 17.0.1
  • prerelease: false
  • npm dist-tag on release: latest
  • npm pack dry-run: passed
  • jsr publish dry-run: passed

If you tag this commit as v17.0.1, release workflow will publish.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
test/unit/domain/continuum/GitWarpReadingEnvelopeSourceFacts.test.ts (1)

39-83: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Close remaining branch-coverage gaps in this test slice.

Please add cases for the optional-path behavior (hasStateHash() when stateHash is absent) and the constructor’s payload type guard failure path so this touched slice can satisfy the coverage gate.

As per coding guidelines: “Touched code in refactor slices must reach 100% test coverage before the slice is considered done”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/unit/domain/continuum/GitWarpReadingEnvelopeSourceFacts.test.ts` around
lines 39 - 83, Add two tests: one that constructs source facts with a payload
lacking stateHash and asserts payload.hasStateHash() is false (use makePayload()
or construct GitWarpReadingEnvelopePayloadFact without stateHash) to cover the
optional-path for hasStateHash(); and another that calls new
GitWarpReadingEnvelopeSourceFacts with a payload of the wrong type (e.g., a
plain object or an instance of a different fact class) and asserts it throws
WarpError to exercise the constructor’s payload type-guard failure path. Ensure
you use the existing helpers/methods (makeSourceFacts, makePayload,
GitWarpReadingEnvelopePayloadFact, GitWarpReadingEnvelopeSourceFacts,
hasStateHash()) and mirror the other test patterns
(expect(...).toThrow(WarpError)).
test/unit/domain/index.exports.test.ts (1)

84-84: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Remove forbidden as any cast from dynamic import in test

test/unit/domain/index.exports.test.ts line 84 contains (await import('../../../index.ts')) as any, which violates the TypeScript anti-sludge rule (“No any” / “No as any”). Replace it with a typed module shape (or unknown + narrowing).

Suggested fix
-const { WarpGraph, WarpRuntime, Worldline, ObserverView } = (await import('../../../index.ts') as any);
+type IndexModule = typeof import('../../../index.ts');
+const { WarpGraph, WarpRuntime, Worldline, ObserverView } =
+  (await import('../../../index.ts')) as IndexModule & {
+    WarpGraph?: unknown;
+    WarpRuntime?: unknown;
+    ObserverView?: unknown;
+  };
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/unit/domain/index.exports.test.ts` at line 84, The test is using a
forbidden `as any` cast on the dynamic import; replace it by importing as
unknown and narrowing to a proper module shape (or define a minimal interface
for the module) before destructuring. Specifically, change the line that imports
'../../../index.ts' to assign the result to a variable typed as unknown, then
assert/narrow that variable to an interface containing WarpGraph, WarpRuntime,
Worldline, and ObserverView (or import the module type) and destructure from
that typed value so no `as any` is used.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/BEARING.md`:
- Line 254: The sentence referring to GitWarpReadingEnvelopeSourceFacts is
grammatically awkward; update the clause so it reads either "requires translated
git-warp evidence posture" or "requires git-warp evidence to be translated" for
clarity—modify the documentation line mentioning
GitWarpReadingEnvelopeSourceFacts to use one of these phrasings so the meaning
is unambiguous.

In `@src/domain/continuum/ContinuumGeneratedFamilyInventoryEntry.ts`:
- Around line 70-73: requireNonEmptyString currently accepts strings composed
only of whitespace and also doesn't return the validated value; update the
function requireNonEmptyString to treat whitespace-only strings as invalid by
using value.trim().length === 0 in the validation (alongside the existing typeof
check), throw the same WarpError('E_VALIDATION') for those cases, and return the
original value when valid so callers (e.g., constructors in
ContinuumGeneratedFamilyInventoryEntry) receive the validated string.

In `@src/domain/continuum/GitWarpWitnessedSuffixSourceFacts.ts`:
- Around line 95-110: freezePatchFacts currently only checks presence and type
but not ordering; update it to verify the input array is in the expected
canonical order (ascending sequence) before freezing: after type-checking each
GitWarpWitnessedSuffixPatchFact in freezePatchFacts, compare each adjacent pair
using the project's canonical comparator (e.g.
compareGitWarpWitnessedSuffixPatchFact(a,b) or implement a comparator that
enforces sequence order) and throw a WarpError with 'E_VALIDATION' if any pair
is out of order; only then push into checkedValues and return
Object.freeze(checkedValues).

In `@test/unit/domain/continuum/ContinuumGeneratedFamilyInventory.test.ts`:
- Around line 49-101: Add unit tests covering the missing branches: assert
ContinuumGeneratedFamilyStatus.isAuthoredOnly() returns true for an
"authored-only" status value and false for other valid statuses, and add a test
that calls ContinuumGeneratedFamilyInventory.requireEntry for a family id that
is absent (create an inventory from makeCompleteEntries() filtered to remove one
family) and assert it throws WarpError; use
createCurrentContinuumGeneratedFamilyInventory() / makeEntry() /
ContinuumGeneratedFamilyInventoryEntry to build fixtures and reference
ContinuumGeneratedFamilyStatus.isAuthoredOnly() and
ContinuumGeneratedFamilyInventory.requireEntry() in the new assertions.

In `@test/unit/domain/continuum/GitWarpTickWitnessLadder.test.ts`:
- Around line 108-120: The test for GitWarpTickWitnessLadder is missing a
runtime-guard assertion for receipt being undefined; add an assertion that
constructing new GitWarpTickWitnessLadder with an object where receipt is
explicitly undefined (similar to the existing patch undefined case) throws
WarpError. Target the constructor of GitWarpTickWitnessLadder in
test/unit/domain/continuum/GitWarpTickWitnessLadder.test.ts and add a new
expect(() => new GitWarpTickWitnessLadder({ patch: PATCH, patchSha: PATCH_SHA,
receipt: undefined })) toThrow(WarpError) so the receipt-guard branch is
exercised.

---

Outside diff comments:
In `@test/unit/domain/continuum/GitWarpReadingEnvelopeSourceFacts.test.ts`:
- Around line 39-83: Add two tests: one that constructs source facts with a
payload lacking stateHash and asserts payload.hasStateHash() is false (use
makePayload() or construct GitWarpReadingEnvelopePayloadFact without stateHash)
to cover the optional-path for hasStateHash(); and another that calls new
GitWarpReadingEnvelopeSourceFacts with a payload of the wrong type (e.g., a
plain object or an instance of a different fact class) and asserts it throws
WarpError to exercise the constructor’s payload type-guard failure path. Ensure
you use the existing helpers/methods (makeSourceFacts, makePayload,
GitWarpReadingEnvelopePayloadFact, GitWarpReadingEnvelopeSourceFacts,
hasStateHash()) and mirror the other test patterns
(expect(...).toThrow(WarpError)).

In `@test/unit/domain/index.exports.test.ts`:
- Line 84: The test is using a forbidden `as any` cast on the dynamic import;
replace it by importing as unknown and narrowing to a proper module shape (or
define a minimal interface for the module) before destructuring. Specifically,
change the line that imports '../../../index.ts' to assign the result to a
variable typed as unknown, then assert/narrow that variable to an interface
containing WarpGraph, WarpRuntime, Worldline, and ObserverView (or import the
module type) and destructure from that typed value so no `as any` is used.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 57807a86-fe21-411b-ae19-0138290ee1cd

📥 Commits

Reviewing files that changed from the base of the PR and between a4c5467 and eb9c364.

📒 Files selected for processing (27)
  • CHANGELOG.md
  • docs/BEARING.md
  • docs/design/0159-v18-replan-with-evidence/v18-replan-with-evidence.md
  • docs/design/0160-v18-generated-family-inventory-refresh/v18-generated-family-inventory-refresh.md
  • docs/design/0161-v18-tickpatch-tickreceipt-witness-ladder/v18-tickpatch-tickreceipt-witness-ladder.md
  • docs/design/0162-v18-reading-envelope-source-facts/v18-reading-envelope-source-facts.md
  • docs/design/0163-v18-witnessed-suffix-source-facts/v18-witnessed-suffix-source-facts.md
  • docs/method/backlog/WORKLOADS.md
  • docs/method/backlog/up-next/PROTO_tickpatch-tickreceipt-witness-ladder-audit.md
  • index.ts
  • src/domain/continuum/ContinuumGeneratedFamilyInventory.ts
  • src/domain/continuum/ContinuumGeneratedFamilyInventoryEntry.ts
  • src/domain/continuum/ContinuumGeneratedFamilyStatus.ts
  • src/domain/continuum/GitWarpReadingEnvelopePayloadFact.ts
  • src/domain/continuum/GitWarpReadingEnvelopeSourceFacts.ts
  • src/domain/continuum/GitWarpTickPatchReplayCore.ts
  • src/domain/continuum/GitWarpTickReceiptShell.ts
  • src/domain/continuum/GitWarpTickReceiptWitnessCore.ts
  • src/domain/continuum/GitWarpTickWitnessLadder.ts
  • src/domain/continuum/GitWarpWitnessedSuffixPatchFact.ts
  • src/domain/continuum/GitWarpWitnessedSuffixSourceFacts.ts
  • src/domain/continuum/createCurrentContinuumGeneratedFamilyInventory.ts
  • test/unit/domain/continuum/ContinuumGeneratedFamilyInventory.test.ts
  • test/unit/domain/continuum/GitWarpReadingEnvelopeSourceFacts.test.ts
  • test/unit/domain/continuum/GitWarpTickWitnessLadder.test.ts
  • test/unit/domain/continuum/GitWarpWitnessedSuffixSourceFacts.test.ts
  • test/unit/domain/index.exports.test.ts
💤 Files with no reviewable changes (1)
  • docs/method/backlog/up-next/PROTO_tickpatch-tickreceipt-witness-ladder-audit.md

Comment thread docs/BEARING.md Outdated
Comment thread src/domain/continuum/ContinuumGeneratedFamilyInventoryEntry.ts
Comment thread src/domain/continuum/GitWarpWitnessedSuffixSourceFacts.ts
Comment thread test/unit/domain/continuum/GitWarpTickWitnessLadder.test.ts
@flyingrobots
Copy link
Copy Markdown
Member Author

| # | Source | Severity | File / Area | Issue | Resolution | Evidence |\n|---:|---|---|---|---|---|---|\n| 1 | CodeRabbit inline thread | P2 Major | test/unit/domain/continuum/ContinuumGeneratedFamilyInventory.test.ts | Generated-family inventory coverage missed explicit authored-only status checks and lookup failure coverage. | Added explicit isAuthoredOnly() / isProjectionReady() branch assertions and public lookup rejection coverage. | 382c17ef |\n| 2 | CodeRabbit inline thread | P3 Minor | test/unit/domain/continuum/GitWarpTickWitnessLadder.test.ts | Tick witness ladder runtime guard coverage missed receipt: undefined. | Added deterministic constructor guard assertion for JavaScript callers. | 5d0af854 |\n| 3 | CodeRabbit global warning | P4 Docs / PR metadata | PR description | PR body lacked the required ADR Checks section. | Added ADR Checks section covering ADR 2/3, persisted op formats, wire compatibility, and schema constants. | PR body updated |\n\nAll inline review threads were resolved through GitHub after their fixes landed. Local verification after the fixes: npm run test:local, npm run typecheck, npm run lint, npm run lint:sludge, npm run lint:quarantine-graduate, targeted markdownlint, git diff --check origin/main...HEAD, and pre-push IRONCLAD M9 all passed.

@github-actions
Copy link
Copy Markdown

Release Preflight

  • package version: 17.0.1
  • prerelease: false
  • npm dist-tag on release: latest
  • npm pack dry-run: passed
  • jsr publish dry-run: passed

If you tag this commit as v17.0.1, release workflow will publish.

@flyingrobots
Copy link
Copy Markdown
Member Author

| # | Source | Severity | File / Area | Issue | Resolution | Evidence |\n|---:|---|---|---|---|---|---|\n| 1 | CodeRabbit inline thread | P2 Major | test/unit/domain/continuum/ContinuumGeneratedFamilyInventory.test.ts | Missing generated-family status and inventory lookup coverage. | Added explicit authored-only/projection-ready assertions and unknown-family lookup rejection coverage. | 382c17ef |\n| 2 | CodeRabbit inline thread | P3 Minor | test/unit/domain/continuum/GitWarpTickWitnessLadder.test.ts | Missing runtime guard assertion for receipt: undefined. | Added deterministic constructor guard coverage for JavaScript callers. | 5d0af854 |\n| 3 | CodeRabbit inline thread | P2 Major | src/domain/continuum/GitWarpWitnessedSuffixSourceFacts.ts | Witnessed suffix source facts accepted out-of-order patch streams. | Added deterministic canonical order validation by Lamport, writer id, then patch SHA, with RED regression coverage. | 069d673a |\n| 4 | CodeRabbit inline thread | P3 Minor | src/domain/continuum/ContinuumGeneratedFamilyInventoryEntry.ts | Inventory entry string invariants accepted whitespace-only values. | Rejected whitespace-only required fields while preserving valid field values, with RED regression coverage. | 8a21aa67 |\n| 5 | CodeRabbit inline thread | P5 Nit | docs/BEARING.md | BEARING evidence posture sentence had awkward grammar. | Reworded the clause to say git-warp evidence must be translated. | f91cc621 |\n| 6 | CodeRabbit global warning | P4 Docs / PR metadata | PR description | PR body lacked the required ADR Checks section. | Added ADR Checks covering ADR 2/3, persisted op formats, wire compatibility, and schema constants. | PR body updated |\n\nAll known inline review threads are resolved through GitHub. Verification after the final fixes: npm run test:local, npm run typecheck, npm run lint, npm run lint:sludge, npm run lint:quarantine-graduate, targeted markdownlint, git diff --check origin/main...HEAD, and pre-push IRONCLAD M9 all passed.

@github-actions
Copy link
Copy Markdown

Release Preflight

  • package version: 17.0.1
  • prerelease: false
  • npm dist-tag on release: latest
  • npm pack dry-run: passed
  • jsr publish dry-run: passed

If you tag this commit as v17.0.1, release workflow will publish.

@flyingrobots flyingrobots merged commit c848f5d into main May 23, 2026
9 checks passed
@flyingrobots flyingrobots deleted the v18-continuum-slices-11-15 branch May 23, 2026 00:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant