Repository navigation
d-rmap: palette generation in the binding, and versioning derived from Thought Git and #1605 - #1619
Conversation
… toolchain changes ThoughtMapPaletteBinding now records the palette generation it bound and refuses resolution when the palette's generation has moved, so §6a's stale-binding refusal is enforceable; the §4 example shows it. The act-r job also runs on rust-toolchain.toml changes, since no workspace job builds the excluded crate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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. Comment |
…and #1605 D-RMAP-1A §7 maps each of its generation concepts onto the identities D-TGA and #1605 already specify. Map and palette generation become readings of DurableRef (sealed) or ThoughtCommitId (speculative); the thought-palette binding is (ThoughtCommitId, palette generation) instead of (slot, incarnation). Focus generation stays an ephemeral witness, the index seal stays separate unless RelationFacts uses stable row ids, and authorization scope stays its own key component. D-RMAP adds no durable counter. Read in code: no version type carries a dataset or branch, versioned.rs::commit_encounter_round returns only the nodes version of a three-dataset write, AlphaStamp.visits saturates and is not a generation, and D-TGA defines no thought incarnation. Falsifiers X1-X9 are specified with their disables; none are run. Gaps recorded in thought-git-api-v1 and the causal-pickaxe plan: ThoughtCommitId must be never-reused, a dirty bit, and one DurableRef per dataset for a multi-dataset write. ENTROPY-MILESTONES M28, STATUS_BOARD D-RMAP-1A-V, board entry, entries index regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
The probe's bare u64 generation is enough for the in-probe Stale refusal, but outside the probe two datasets can share a version number. D-RMAP-1A §7 (#1619) replaces it with DurableRef + index seal + QueryReference::at(v, rung). The backend switch does not touch the witness. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
citation-decay flagged temporal.rs:134 as anchorless. Every §7 and board-entry citation into source now names the symbol instead of a line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
PR_ARC_INVENTORY entries for #1618 (post-merge recovery for #1601-#1617, merged dbe0696) and #1619 (D-RMAP binding palette generation and the §7 versioning crosswalk, merged 8e004a2), and a LATEST_STATE section for main after #1619. Contract inventory delta: none. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
Two Codex findings on #1621, both checked against the plan text: - #1619: map generation is the sealed RelationshipMap/RelationFacts DurableRef only; ThoughtCommitId applies to palette generation alone (D-RMAP-1A §7.3). - #1618: at dbe0696 the thought-palette binding still keyed only MapPaletteId; #1618 added the map generation to the tile key and a palette generation to MapPalette. The binding change is #1619's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
Two commits, both documentation and CI. Nothing here is implemented code.
1.
a7e075d3: the #1618 follow-upThoughtMapPaletteBindingstores the palette generation it bound, and refuses when the palette's current generation is different.rust-toolchain.tomlchanges.2.
59ff8508: versioning (D-RMAP-1A §7, PROPOSED)D-RMAP does not keep its own revision counters. Each of its generation concepts is read from an identity that D-TGA or #1605 already specifies.
DurableRef{dataset, branch, version}DurableRefonce sealed;ThoughtCommitIdwhile speculative(ThoughtCommitId, palette generation), replacing(slot, incarnation)DurableRefplus the row-address mapReplay always reads
QueryReference::at(v, rung)withStrict, neverQueryReference::default().What I read in code:
temporal.rs:72,temporal_pov.rs:49,scheduler.rs:36.versioned.rs::commit_encounter_roundwrites three datasets and returns only the nodes version.AlphaStamp.visitssaturates, so it cannot serve as a generation.Falsifiers X1–X9 are specified, not run. Each names its disable. They cover:
Gaps written into the source plans:
ThoughtCommitIdmust never be reused.DurableRefper dataset, or must be refused.Board changes: STATUS_BOARD
D-RMAP-1A-V, ENTROPY-MILESTONES M28, a new entry file, and a regenerated entries index. The supersession index regenerated with no changes.No CE64 change, no new executor or store, no per-fold commit. The no-gather ruling still holds.
🤖 Generated with Claude Code
https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K