Repository navigation
report: AbiBatch lanes through the DT64 lane socket (D-LANESOCK-2) - #1969
Conversation
AbiLanes implements LaneSource over a resident AbiBatch: field positions resolve through the ClassView basis, Catalog and FieldId; lanes are the batch's own Arc-backed I32/U32 lanes, borrowed through LaneRef; one FrameStore per source seals (SourceId, generation) and publish() advances it. No production constructor: DR has no authoritative reader-scope issuer, so AbiLanes::unwitnessed exists only under the test-only unwitnessed-scope feature. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMJzKZrYnckXRC8x2U
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMJzKZrYnckXRC8x2U
…; CI + board for D-LANESOCK-2 Keyed by classid_concept (DT64 view_class) the basis resolves; the registry category is keyed by append-order entity_type_id and stays unreachable through the concept key (pinned, not fixed). rust-test.yml now runs lance-graph-report, plain and the unwitnessed-scope socket suite. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMJzKZrYnckXRC8x2U
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 26dfc6d050
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
AbiBatch::column truncated its lane index with `as u16`, so a column at 65536 or later read as column 0 through every caller (exec, selection, render, and the new lane socket). with_column now refuses past MAX_COLUMNS (TooManyColumns) and column() converts with a checked u16. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMJzKZrYnckXRC8x2U
Connects the resident
lance-graph-report::AbiBatchlanes to the merged DT64LaneSourcesocket (#1967). Execution runs through the existing Quack / mask-RISC path. This is a read adapter over lanes the batch already holds, not a durable workbook backend.What it adds
AbiLanes(newlane_sourcemodule) implementsLaneSource:fields(view_class(class))[pos].predicate_iri, goes toCatalog, then toFieldId, then toAbiBatch::column. There is no second field table.borrowhands out the batch's ownArclane as aLaneRef. Nothing is copied.FrameStorewith revisions(SourceId, 0, generation).publishaccepts only a later generation of the same source and advances the frame, so every binding sealed earlier is refused.I32andU32only. AU64reference lane is unbound.MethodRefand Quack runs the fold. The test methods are namedtest-only/fold-N; they are not F### implementations.No new store, field registry, codebook, identity authority or BindStore. Dependency direction:
lance-graph-dt64depends on the contract only, so report → dt64 adds no cycle.Admission scope
Scopeis a plain{ id }value and nothing issues it with authority.AbiLanestherefore has no production constructor.AbiLanes::unwitnessedexists only under the test-only featureunwitnessed-scope, and there the scope is the caller's assertion. A default build cannot construct anAbiLanes.Falsifiers (
crates/lance-graph-report/tests/lane_socket.rs, 9 tests)check+lane+ fold, 3 rounds) allocates nothing.Frame(CoordinatesChanged);CoordinateSpace;ForeignFrame;Unbound;RouteChanged;CoordinateSpace;U64field are eachUnbound;FieldNotInBasis;Scope;publishrefuses a stale generation and a foreign source.U64, copying the lane, skipping the frame advance, dropping the generation from the coordinate space, allocating inlane_of, and dropping the adapter's own frame check. Each turns its test red. The last two were green at first and gained the two dedicated tests above.RegistryClassView
class_resolver::tests::concept_half_keys_the_basis_but_not_the_registry_category: keyed byclassid_concept, which is what DT64'sview_classuses, the basis resolves. Keyed by the naive low half, it does not.There is a separate defect, pinned here and not fixed:
dolce_category_idandis_knownread the same key as the registry's append-orderentity_type_id. A registered class's DOLCE category is therefore unreachable through the concept key. This PR adds no mapping to hide that.CI
No workflow ran the
lance-graph-reporttests before.rust-test.ymlnow runs the plain suite and the--features unwitnessed-scope --test lane_socketsuite.Verification
cargo test(report, plain: 44 tests; lane socket: 9 tests)cargo test --lib class_resolver(ontology)cargo clippy --all-targets -D warningsfor report with and without the featurecargo fmt --checkThe board is updated (STATUS_BOARD D-LANESOCK-2 In PR, LATEST_STATE, entry, regenerated indexes). report-rs #33 is untouched.
Generated by Claude Code