Repository navigation
ogar-from-ruff lance_sink: key the row by the minted facet, not a V1 tail - #331
Merged
Merged
Conversation
…tail
compiled_class_to_noderow built its key with NodeGuid::new(classid, 0, 0, 0,
0, identity): a V1 family:identity tail that dropped the part_of:is_a rails
the mint had computed. That was a deliberate freeze while the rail-chain vs
key-tail reconciliation ([H1]) was open. lance-graph has since settled it: a
V3 mint never degrades to a V1 tail (#1213), and NodeGuid <-> FacetCascade is
a byte-identical conversion.
- key = NodeGuid::from(compiled_class_to_facet(cc)): the minted 16-byte
facet, classid + rails, byte for byte. NodeGuid::new is no longer called.
- compiled_class_to_noderow drops its `identity` parameter; the facet is
the row's identity. Only callers were this module and odoo_v3_sink_e2e.
- new compiled_classes_to_noderows refuses a batch in which two classes
mint the same facet (DuplicateFacetKey { first, second }).
- tests: T-D inverted (key == facet, anti-vacuity guard that the fixture's
rails are non-zero); T-E/T-F use two distinct classes; T-H pins the
duplicate guard firing and staying silent. The e2e capstone now asserts
key == facet for both real Odoo classes.
- module docs drop the [H1] freeze and the deprecated symbiont reference;
DISCOVERY-MAP regrades D-V3-SINK-COMPILEDCLASS in place (append-only).
Verified: ogar-from-ruff --features lance-sink 87 lib + all integration
tests pass; clippy -D warnings clean. Disable run: restoring the V1 key
turns T-D, T-E and T-H red.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NSfzujtWL1BnHgnJGAhg9N
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
compiled_class_to_noderowbuilt its row key withNodeGuid::new(classid, 0, 0, 0, 0, identity). That is a V1family:identitytail, and it drops thepart_of:is_arails the mint had just computed.When W2 shipped (#192), this was a deliberate freeze: the rail-chain vs key-tail question (
[H1]) was still open. lance-graph has since settled it:NodeGuidandFacetCascadeare the same 16 bytes and convert without reinterpretation (canonical_node.rs).lance-graph's V1-tail residue census (
ISS-V1-TAIL-RESIDUE) did not count this site.Change
NodeGuid::from(compiled_class_to_facet(cc)), i.e. render classid + rails, byte for byte.NodeGuid::newis no longer called.compiled_class_to_noderow(cc)drops itsidentityparameter, because the facet is now the row's identity. The only callers were this module andodoo_v3_sink_e2e.compiled_classes_to_noderows(&[CompiledClass])refuses a batch where two classes mint the same facet (DuplicateFacetKey { first, second }).[H1]freeze and the deprecatedsymbiontreference.DISCOVERY-MAPgets a dated regrade onD-V3-SINK-COMPILEDCLASS(append-only).Tests
account_payment_term.py)Verified
cargo test -p ogar-from-ruff --features lance-sink: 87 lib tests and all integration tests pass (kausal witness 11/11, e2e capstone).cargo clippy -p ogar-from-ruff --features lance-sink --all-targets -- -D warnings: clean.Not changed
[H2](rails into a value tenant) and[H3](L6 quads) are untouched, andENVELOPE_LAYOUT_VERSIONstays 2. No bytes at rest move: the row stride and value slab are identical; only the key's bytes 4..16 now carry the rails.🤖 Generated with Claude Code
https://claude.ai/code/session_01NSfzujtWL1BnHgnJGAhg9N
Generated by Claude Code
Summary by CodeRabbit