Skip to content

dr: MapTable, the versioned global → local table (D-DT64-7 O5) - #1905

Merged
AdaWorldAPI merged 4 commits into
mainfrom
ccr-85acaff0-oszq40-o5
Nov 1, 2026
Merged

AdaWorldAPI merged 4 commits into
mainfrom
ccr-85acaff0-oszq40-o5

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

lance_graph_dt64::dr::MapTable holds every tile's LocalMap under one FrameStore. It is additive; no existing signature changes.

  • advance(source, relation_map, changes) inserts, replaces or removes tile maps, then re-seals. The coordinates revision is derived from the maps it holds: FNV-1a over (TileId, LocalMap::digest) in tile order. Callers no longer pass it in.
  • map(&Frame, tile) returns the map only under the current seal:
    • a stale frame gets MapRead::Stale(CoordinatesChanged | FrameResealed | …);
    • another table's frame gets Stale(ForeignFrame), even at equal revisions;
    • a missing tile gets NoSuchTile.

Before this change a LocalMap could be kept and read after its frame moved, and coordinates was whatever number the caller passed. O5 is a BindStore plan item (D-DT64-6 Amendment A; Litho is the mental model, not a component). Design: plan §1e.

Not in this PR: stored selections (D7'). They wait on O4: does one 0xF### value name one stored selection, or a position in a wider basis?

Validation

  • Tests were written first and failed to compile because MapTable did not exist.
  • cargo test -p lance-graph-dt64: all green, including 4 new tests in tests/dr.rs.
  • xlog-relcomp-probe (litho.rs, gate_b.rs): all green and unchanged.
  • cargo clippy -p lance-graph-dt64 --all-targets -- -D warnings: clean.
  • Disable runs:
    • Removing the frame check in map turns 3 tests red.
    • Removing the TileId from the digest turns tile renamed red. The first version of that test only swapped two tiles' maps, and it stayed green without the TileId because order alone changes the digest. A same-order rename case was added.

Generated by Claude Code

A LocalMap is now read only under the frame it was sealed under; the
coordinates revision is derived from the held maps (tile id + map digest),
not passed in. Stored selections (D7') wait on O4. Design: plan §1e.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8104e529-b784-493e-84f6-ebd38cd572f1
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review November 1, 2026 01:57
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-01T01:57:51.870257Z 3b24776 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@AdaWorldAPI
AdaWorldAPI merged commit bc45e97 into main Nov 1, 2026
13 checks passed
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.

2 participants