Skip to content

tract-harvest-probe: ONNX as a consumer of the DR64 route / DT64 bind store - #1865

Merged
AdaWorldAPI merged 2 commits into
mainfrom
ccr-0161f442-un1mrc
Oct 30, 2026
Merged

AdaWorldAPI merged 2 commits into
mainfrom
ccr-0161f442-un1mrc

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Summary

D-DT64-6 §1 defines two roles:

  • DR64 is direct routing: a position maps to the target bound there.
  • DT64 is the DTO bind store: a classid maps to its behaviour.

The DT64 drafts on EXO-50 (-06 to -09) resolve a node in one chain: address → classid → method.

Tract's Registry::lookup does both halves in one step. This PR separates them without changing the registry:

  • bind::route(src, facts, registry) is the binder.
    • It matches each node's signature once and keeps only node position → classid, sparse.
    • Routes::version digests the registry version and every entry, so a re-route yields a new version.
  • bind::resolve(routes, registry, node) is the bind-store side.
    • It finds the registration by classid alone (Registry::by_classid).
    • It names the link that failed: Route for an unrouted position (UNKNOWN), Class for a classid the store does not hold.

The split is exact because every registration carries its own classid and no classid is registered twice; classids_are_unique pins this.

Results

  • Tiny fixtures (15): for every node, resolve returns the same registration as lookup (pointer-equal). Unregistered nodes resolve as Route.
  • Real Jina model, input [1,10], with the external inv_freq constant loaded: 7,274 nodes routed and resolved, 346 unrouted. That equals the coverage census exactly.
  • Failure paths:
    • A removed classid resolves as Class.
    • Re-routing against the smaller registry drops that route and moves the version.
    • Bumping the registry version also moves it.
  • Disable runs, each turning a test red:
    • loosening the classid match;
    • dropping the registry version from the route digest.
  • Tests: 23 lib, 38 tiny, 9 Jina (ignored, need the fetch scripts). Clippy is clean.

Finding. OnnxGraph::build refuses any graph larger than one 64-node tile, and Jina has 7,620 nodes. The binder therefore reads per-value facts, not the one-tile graph; a node position is the source node index. Mapping that index onto DR64 tile coordinates is DR's job.

Plan: .claude/plans/d-tract-harvest-0-native-algebra-bridge-v1.md §0.6. The board entry and STATUS_BOARD row are updated.

Not claimed

The DT64 crate, the DR route table, K3 re-homing and OGAR classids belong to other owners. When those exist, route writes DR's table and resolve becomes DT64's. The equality test is the migration gate.


Generated by Claude Code

… store split

bind::route runs the signature match once per node and keeps only
node position -> classid (sparse, versioned over the registry version and
every entry); bind::resolve finds the registration by classid alone and
names the failed link (Route / Class). Classids are unique, so the split
gives back exactly what Registry::lookup gives: pinned for every node of
15 tiny fixtures and for the full Jina graph (7,274 routed and resolved,
346 unrouted, equal to the coverage census). The binder reads per-value
facts, not the one-tile OnnxGraph, which refuses Jina's 7,620 nodes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMMjKnig6MXTd41Lf2v
@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: e604d7c5-2ebd-48fa-8195-1426f67e57dd
  • 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.

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 30, 2026 15:33
@AdaWorldAPI
AdaWorldAPI merged commit ef93f64 into main Oct 30, 2026
13 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-30T15:34:10.489443Z 96c528f 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.

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