lance-graph-report: CoordSpec::MaskSet, a set coordinate over resident masks - #1291
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (11)
Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour. 📝 WalkthroughWalkthroughThe report planner and executor now support coordinates over consecutive resident masks. Rows can belong to multiple mask-set members or none. Checked plane resolution, member filtering, plan explanations, rendering, and test-oracle coverage are updated. ChangesMask-Set Coordinates
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant CoordSpec
participant resolve
participant AbiBatch
participant execute
participant member_filter
CoordSpec->>resolve: Supply MaskSet base and count
resolve->>AbiBatch: Build mask-position lookup
AbiBatch-->>resolve: Return resident plane positions
resolve-->>execute: Return Provider::MaskPlanes
execute->>member_filter: Select a mask-set member
member_filter->>AbiBatch: Read the resident mask plane
Suggested reviewers: Merge Risk: ⚪ Minimal · up to The mask-set change is ready for normal merge checks; no actionable issue remains identified. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 75.76% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 33 functions across 9 files. (2 skipped: 2 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
A rabbit counts the masks in rows, Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_f2ae84ba-e636-43ca-9688-193e72a39754) |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9e3a00656a
ℹ️ 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".
…t masks
A many-to-many axis (paperless-ngx tags) had no coordinate: a report
coordinate held one ordinal per row, so "count per tag" was one scalar
plan per tag. MaskSet { base, count } makes member m the resident mask
base + m. A row lands in every member holding it, so the dimension's
cells do not sum to the population.
- Planned as Provider::MaskPlanes: each member is a mask plane read in
place, always a partition, never the fold key.
- UnknownMask for a missing member; new EmptyMaskSet for count == 0.
- CoordSpec::field() returns Option<FieldId>; explain and render name
the set.
- The test oracle places a row in the cartesian product of its
per-dimension memberships.
tests/mask_set.rs (6) checks against the oracle, dense and sparse,
alone and crossed with an ordinal key. Three disable runs go red.
Board: entries/2026-09-25-report-mask-set-coordinate.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DCEP2fZdHYdMCtcEVcTpS2
…n one pass AbiBatch::plane_of cast a mask's position with `as u16`, so the 65,537th plane wrapped onto plane 0 (validity) and a MaskSet member there counted every valid row. Plane resolution is now checked (`resolve_plane`, used by selection masks) and returns TooManyPlanes instead of wrapping. A MaskSet resolves every member through one id->position table instead of a scan per member, which made planning quadratic in the set size. Tests build validity + 65,536 masks; each check disable-verified red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCEP2fZdHYdMCtcEVcTpS2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCEP2fZdHYdMCtcEVcTpS2
9e3a006 to
53c820f
Compare
Why
A report coordinate held one value per row, so there was no way to put a many-to-many axis on it, such as a document's tags in the paperless-ngx sense.
tesseract-paperless::axesnames this gap: "count per tag" ran as one scalar report per tag instead of one pivot.What
CoordSpec::MaskSet { base, count }: membermis the resident maskbase + m.Provider::MaskPlanes: each member is one mask plane, read where it already sits. It is always a partition and never the fold key.UnknownMask.count == 0is refused with the newReportError::EmptyMaskSet.CoordSpec::field()now returnsOption<FieldId>, because a mask set reads no lane.explainandrendername the set.tests/common) now puts each row into the cartesian product of its memberships across the dimensions.Tests
tests/mask_set.rshas 6 tests. Each is checked against the per-row oracle:explainoutput names the set.The test fixture asserts that it contains both untagged rows and rows with at least two tags. Without both, the tests would say nothing about set behaviour.
Disable runs. For each of three guards, I removed it, confirmed the test failed, then restored it:
Other checks. The crate passes 29 tests.
lance-graph-report-ogarstill passes.clippy -D warningsandfmtare clean.Open
The cost is still one population pass per member, the same as before. What this PR adds is one plan, one result space and one rendered report, not fewer passes. A single-pass fold over all members would need a keyed multi-membership aggregation in mask-RISC, which does not exist yet.
Board entry:
entries/2026-09-25-report-mask-set-coordinate.md; the entries index is regenerated and the supersession index is unchanged.🤖 Generated with Claude Code
https://claude.ai/code/session_01DCEP2fZdHYdMCtcEVcTpS2
Generated by Claude Code
Summary by CodeRabbit