Skip to content

fix(storage): preserve exploratory and qualified routes through replay - #1226

Merged
DecisionNerd merged 5 commits into
mainfrom
fix/1218-exploratory-replay
Sep 10, 2026
Merged

DecisionNerd merged 5 commits into
mainfrom
fix/1218-exploratory-replay

Conversation

@DecisionNerd

@DecisionNerd DecisionNerd commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Construction emitted overlapping edge-ID ranges when multiple logical exploratory relationships shared one physical route. Replay rejected the otherwise valid fragments and also wrote exploratory/qualified input through a schema that lost route information.

Coalesce logical groups inside each existing bounded construction ID window, sort that window by edge ID, and preserve per-row relationship names. Replay retains the authenticated node/edge schema and qualified metadata, with variable relationship names included in memory charges. Duplicate and changed surrogate IDs still fail; no compatibility reader, encoding-policy change or full-graph sort is introduced.

Validation:

  • Four public regressions cover retained-parent construction, property GFDR, real compaction, active snapshots, subsequent mutation, exact queries, reopen, export/full verification/clean import, and oversized coalesced-batch rejection before publication. Mixed exploratory/qualified coverage asserts a real delta run and exact schema/value preservation.
  • 99 construction tests, 23 replay tests, 10 delta/compaction tests, and all five merged qualified-ownership public fixtures pass. Workspace Clippy, formatting, fast pre-push and gate-registry checks pass. Independent review found no blockers.
  • Fixed regression ceilings: 1,024 batch rows, 4 KiB runs, merge fan-in two, 128 KiB Arrow batch, 4 MiB accounted live memory, 2 MiB temporary allocation peak, 1.5 MiB encode reads and 512 KiB encode writes per fixture phase. Exact observed counters and separate CPU/RSS/syscall evidence are in exploratory-replay-1218.json and the permanent-storage assessment. These construction counters are not whole-process resource ceilings.

Encoding policy remains #1213; broader topology-journal and constructed-parent composite topology authority remains #1221.

Closes #1218


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: e301ca06-404d-40d4-9892-869a414a39e5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


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 github-actions Bot added core Core source code changes documentation Improvements or additions to documentation labels Sep 10, 2026
@DecisionNerd
DecisionNerd merged commit ca49eb7 into main Sep 10, 2026
23 checks passed
@DecisionNerd
DecisionNerd deleted the fix/1218-exploratory-replay branch September 10, 2026 06:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Core source code changes documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(storage): replay valid exploratory edge fragments without losing route semantics

1 participant