Skip to content

lance-graph-dt64: polyfill as one lens classid; thin-provisioned DR extent; board catch-up; fmt fix - #1871

Merged
AdaWorldAPI merged 9 commits into
mainfrom
ccr-45a41fb4-0j3i0l
Oct 30, 2026
Merged

AdaWorldAPI merged 9 commits into
mainfrom
ccr-45a41fb4-0j3i0l

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Code: lance-graph-dt64

The polyfill is one lens classid, read through ClassView the same way every class is read:

  • Its words are the fields of that lens, with labels from the lens's ClassView (mask-risc ops, ndarray::simd words).
  • A word is a field position, AlgebraRef { lens, word }, and a set of words is a WideFieldMask. No word gets a classid of its own; this is the ONNX shape from tract-harvest-probe: one ONNX classid in the plans; DR64 global to local; codebook beyond 256 #1870.
  • declare_algebra(lens, schema_rev, extent, arity) binds the lens and is immutable.
  • resolve_algebra and field_view read the lens; words_used(class, lens) gives a consumer's words as a mask.
  • Removed: AlgebraId, the string catalogue, the per-entry SigRev, and AlgebraRevisionMismatch.

Thin-provisioned DR extent. A class reserves each axis (Identity × Property × Predicate) as a number of DR64 or DR256 tiles, Axis { tile, tiles }.

  • Extent::DR64_CUBE, DR256_SQ_X64 and DR256_GLOBAL_X64 are named. The last reserves the whole DR256 identity space: 65,536 positions in 256 tiles of 256.
  • Reserving claims nothing. BindStore::claimed(class, version) counts the identity tiles that hold a routed position, and tile_bytes states their cost without allocating anything.
  • Jina's 7,620 nodes claim 30 of 256 reserved tiles (15 MiB stated). Under a one-tile reservation, node 7,619 is refused (OutsideReservation), not dropped.
  • Registration refuses fields past the property reservation (FieldsExceedExtent), methods past the predicate reservation (MethodsExceedExtent), and an axis wider than it can address (ReservationTooWide).
  • Still capped: a class's property axis holds at most 256 fields, because a WideFieldMask position is a u8 (contract).
  • The tract lab's dr3::TILE = 64 belongs to the tract session, which has been told about the reservation model.

The polyfill's layers: relalg describes a selection, mask-risc folds it, and ndarray::simd computes. The int64 multiply is reachable through ndarray::simd since AdaWorldAPI/ndarray#407, so this PR should land after it.

Checks:

  • 21 tests pass; clippy (-D warnings) and fmt are clean.
  • Each disable run below turns exactly the listed number of tests red:
guard removed failing tests
the words_used lens filter 1
the AlgebraImmutable arm 1
the arity position 5
the shared basis check 4
the reservation check in route 1
claiming by tile 1
the too-wide check 1
costing the reservation instead of the claim 1

Fix: Style Check / format

The format check had been red on main since my earlier #1862. a076664bd runs rustfmt on crates/lance-graph-contract/src/morton8x8.rs, and all 26 format steps in style.yml now pass locally.

Docs

🤖 Generated with Claude Code

https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY

…-op classid question

STATUS_BOARD: D-DT64-6-BS row is Shipped #1869; the D-TRACT-HARVEST-0
row still said "op signature -> classid", which #1870 corrected in the
plans but not on the board.

Plan D-DT64-6 Amendment A.5 addendum 7: one ONNX lens classid with op
signatures as fields is the shape lance-graph-dt64 implements; the
MethodKey vs MethodRef identity stays open.

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

coderabbitai Bot commented Oct 30, 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: b3837772-5e97-473e-bdca-20b6a192539b
  • 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

Comment @coderabbitai help to get the list of available commands.

As in ndarray::simd, a consumer names a facade word and nothing else:
nobody declares it and nobody assigns it a number. AlgebraRef is now
the word path; AlgebraEntry only mirrors its arity so a binding's
operand count can be checked. AlgebraId and the per-entry SigRev are
removed with AlgebraRevisionMismatch.

The test's checked i64 multiply is named by its hpc path because the
facade has no such word; it is marked as a missing ndarray::simd word.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY
…::simd lacks checked i64 binary

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY
@AdaWorldAPI AdaWorldAPI changed the title board: D-DT64-6-BS shipped; #1870 settles the per-op classid question lance-graph-dt64: a polyfill word's path is its identity; board catch-up after #1869/#1870 Oct 30, 2026
… ndarray::simd)

A keyed count names mask-risc's Terminal::GroupReduce (Lane, Count); the
int64 multiply names ndarray::simd::checked_binary_i64 (ndarray #407).
Plan addendum 8 records relalg -> mask-risc -> ndarray::simd as the polyfill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY
The algebra was a string-keyed catalogue beside ClassView, a second
meaning surface. Now it uses the pattern every class uses: one lens
classid for the polyfill vocabulary, its words the fields of that lens,
labels from its ClassView, a word a field position (AlgebraRef { lens,
word }), a set of words a WideFieldMask.

- declare_algebra(lens, schema_rev, arity): binds the lens, one operand
  count per word; immutable like a class.
- resolve_algebra: the lens read through its ClassView with the same
  schema-revision and field-basis checks as resolve (shared check_basis);
  field_view gives each word's position and label.
- words_used(class, lens): a class's words as a mask over the lens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY
…through ClassView

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY
@AdaWorldAPI AdaWorldAPI changed the title lance-graph-dt64: a polyfill word's path is its identity; board catch-up after #1869/#1870 lance-graph-dt64: the polyfill is one lens classid read through ClassView; board catch-up after #1869/#1870 Oct 30, 2026
…1862)

The 'Rustfmt lance-graph-contract' step failed on every main push since
c04ffe9 (#1862) and skipped every format step after it. All 26
format steps now pass locally.

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

Copy link
Copy Markdown
Owner Author

Style Check / format was red here (Rustfmt lance-graph-contract), and it is red on main for the same reason. The cause is a rustfmt diff in crates/lance-graph-contract/src/morton8x8.rs, introduced by my earlier #1862 (c04ffe92e). Every main push since then has failed at that step, and the format steps after it were skipped.

a076664bd formats the file. Locally, all 26 cargo fmt --manifest-path … -- --check steps from style.yml now pass, and the morton tests still pass (7).


Generated by Claude Code

…t 64

ClassSchema carries an Extent (Identity x Property x Predicate, each
W64 or W256) that the consumer picks: DR64_CUBE, DR256_SQ_X64, or any
combination. Registration refuses fields past the property axis
(FieldsExceedExtent) and methods past the predicate axis
(MethodsExceedExtent). dense_bytes states the cost (DR64^3 = 32 KiB,
DR256^2 x 64 = 512 KiB) without allocating anything. The polyfill lens
declares its extent too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY
@AdaWorldAPI AdaWorldAPI changed the title lance-graph-dt64: the polyfill is one lens classid read through ClassView; board catch-up after #1869/#1870 lance-graph-dt64: polyfill as one lens classid; consumer-chosen DR extent; board catch-up; fmt fix Oct 30, 2026
@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 30, 2026 16:35
@AdaWorldAPI
AdaWorldAPI merged commit e1df34d into main Oct 30, 2026
25 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 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-10-30T16:36:28.855518Z 6a0124a 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 changed the title lance-graph-dt64: polyfill as one lens classid; consumer-chosen DR extent; board catch-up; fmt fix lance-graph-dt64: polyfill as one lens classid; thin-provisioned DR extent; board catch-up; fmt fix Oct 30, 2026
AdaWorldAPI pushed a commit that referenced this pull request Oct 31, 2026
…1869 and #1871

PR_ARC_INVENTORY gains the #1869 and #1871 entries that were missing,
LATEST_STATE records main after them, STATUS_BOARD moves the
D-DT64-6-BS row, and a board entry records the dr module. Addendum 12
also records that #1871 merged without the thin-provisioned extent,
which this branch restores.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMPh2Seh2WLccCksAdY
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