Skip to content

Replay targeted cold edge properties - #775

Merged
flyingrobots merged 1 commit into
mainfrom
v19/targeted-edge-property-replay
Jul 25, 2026
Merged

Replay targeted cold edge properties#775
flyingrobots merged 1 commit into
mainfrom
v19/targeted-edge-property-replay

Conversation

@flyingrobots

Copy link
Copy Markdown
Member

Summary

  • add exact retained edge-liveness reads through the bounded trie page cache while keeping the new reader capability optional for custom implementations
  • prove both endpoint nodes and the edge live, then replay only matching EdgeAdd and EdgePropSet operations at the partial handle exact coordinate
  • preserve edge-rebirth visibility, deterministic LWW ordering, immutable public snapshot values, acquisition cleanup, and honest whole-state fallback without constructing WarpState

Issue

Refs #738

This is an incremental bounded-read slice. It intentionally does not close #738: neighborhoods, list reads, checkpoint creation, and other compatibility operations still reconstruct whole state, and PatchCollector may still buffer one writer chain.

Test plan

  • focused trie, reducer, live-controller, and query tests (121 passed)
  • npm run typecheck
  • npm run lint
  • npm run lint:md
  • npm run lint:docs-topology
  • npm run test:coverage:ci (7,384 passed; 2 skipped; all ratchets held)
  • npx vitest run test/unit test/integration (7,468 passed; 2 skipped)
  • pre-push IRONCLAD static gates, consumer/public-surface checks, and stable-unit shards (all passed)
  • git diff --check
  • Graft structural review (no breaking changes detected)

ADR checks

  • This PR does not implement ADR 2 without satisfying ADR 3
  • If this PR touches persisted op formats, I linked the ADR 3 readiness issue
  • If this PR touches wire compatibility, I confirmed canonical-only ops are still rejected on the wire pre-cutover
  • If this PR touches schema constants, I confirmed patch and checkpoint namespaces remain distinct

@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@flyingrobots, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 24 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

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

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 1b6e53a7-173c-4c28-90c0-6312e89c48db

📥 Commits

Reviewing files that changed from the base of the PR and between 70571ab and 38f152a.

📒 Files selected for processing (15)
  • CHANGELOG.md
  • docs/topics/cas-first-memoized-materialization.md
  • src/domain/RuntimeHost.ts
  • src/domain/materialization/TrieMaterializationReader.ts
  • src/domain/services/controllers/MaterializeController.ts
  • src/domain/services/controllers/MaterializeLiveStrategy.ts
  • src/domain/services/controllers/MaterializedLiveRead.ts
  • src/domain/services/controllers/QueryReads.ts
  • src/domain/services/controllers/ReadGraphHost.ts
  • src/domain/services/controllers/TargetedEdgePropertyReplay.ts
  • src/ports/MaterializationReadPort.ts
  • test/unit/domain/materialization/TrieMaterializationReader.test.ts
  • test/unit/domain/services/controllers/MaterializeController.liveNodeRead.test.ts
  • test/unit/domain/services/controllers/QueryController.test.ts
  • test/unit/domain/services/controllers/TargetedEdgePropertyReplay.test.ts

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.

@github-actions

Copy link
Copy Markdown

Release Preflight

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

If this PR is from a release/* branch and merges to main, Main Push Release Branch Check will run final preflight and create v18.2.1. A maintainer who is a JSR @git-stunts scope member must then dispatch the Release workflow manually.

@flyingrobots
flyingrobots merged commit 620b961 into main Jul 25, 2026
17 checks passed
@flyingrobots
flyingrobots deleted the v19/targeted-edge-property-replay branch July 25, 2026 01:17
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.

Replace RuntimeHost full state with CAS-backed materialization handles

1 participant