Skip to content

D-QRY-1: catalog (Registrar + Binder) and HubSpot filter compiler on Quack - #19

Merged
AdaWorldAPI merged 3 commits into
mainfrom
ccr-1d749cc5-q8s5qs
Oct 10, 2026
Merged

AdaWorldAPI merged 3 commits into
mainfrom
ccr-1d749cc5-q8s5qs

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

What

  • hubspo-store::catalog is the production Registrar + Binder that lance-graph-quack::bind names but nothing implemented (proven in probe P-QDB-1).
    • Each coded field has one Codebook: label i maps to code i, and unknown labels bind to nothing.
    • Plane 0 of every table is its live plane; nullable fields name their own validity plane.
    • It refuses ambiguous declarations: duplicate fields, lanes or labels; a codebook on an integer field; the live plane used as a validity plane.
  • hubspo-query::filter::compile(object, groups, &binder) -> Filter compiles HubSpot filter groups (AND within a group, OR across groups).
    • Operators: EQ, NEQ, LT, LTE, GT, GTE, BETWEEN, IN, NOT_IN, HAS_PROPERTY, NOT_HAS_PROPERTY.
    • CONTAINS_TOKEN is refused: text search belongs to the Tantivy index (H-ADR-6).
    • Integer values are decimal i32 until D-ONT-6 fixes the lane encodings for amounts and timestamps.
    • Nullable properties are three-valued: a record with no value is kept by no comparison, NEQ and NOT_IN included. Whether HubSpot does the same is a value-oracle question (ISS-ORACLE-PORTAL).

Evidence

tests/filter_oracle.rs runs 600 random filter-group sets over 5,000 records.

  • 3 % of records are deleted, and 20–30 % have missing values; the lanes keep a random payload at those rows.
  • Each set is compiled, lowered and run on mask-risc, and must equal a row-by-row plain-loop reading.
  • Outcomes: 456 sets keep a proper subset, 122 keep nothing, 22 keep every live record.

Disable runs, each with an asserted patch anchor:

disable tests that went red
sql_where dropped oracle + missing-value test
NOT_IN compiled as IN oracle
BETWEEN upper bound exclusive oracle
groups ANDed instead of ORed oracle
live plane dropped oracle + presence test
NOT_HAS_PROPERTY on a required property returns true oracle + presence test

A seventh guard (reads_value) stayed green under its disable and was deleted. sql_where gates only comparison leaves, so that guard protected nothing.

cargo fmt, cargo clippy --workspace --all-targets --no-deps -D warnings and cargo test --workspace are green locally against a patched lance-graph checkout.

Blocked

CI stays red until AdaWorldAPI/lance-graph#1457 merges. Without it, Quack cannot be consumed by git, because mask-risc reaches ndarray by a relative path (ISS-LG-MASKRISC-PATH-NDARRAY). Board updated: D-QRY-1 is In PR, and D-ONT-5 is shipped.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z

…Quack

hubspo-store::catalog is the production Registrar and Binder that
lance-graph-quack::bind names and nobody implemented (proven in P-QDB-1).
hubspo-query::filter compiles HubSpot filter groups (AND within a group,
OR across groups; EQ NEQ LT LTE GT GTE BETWEEN IN NOT_IN HAS_PROPERTY
NOT_HAS_PROPERTY) to one Quack Filter, three-valued over nullable
properties. CONTAINS_TOKEN is refused (Tantivy, H-ADR-6).

Oracle test: 600 random filter-group sets run on mask-risc equal a
plain-loop reading row for row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
The disable run showed it guarded nothing: sql_where gates only
comparison leaves, so a presence-only property on the nullable list
changes no filter. Six other disables go red (recorded in LATEST_STATE).
D-ONT-5 marked shipped (04edf87). New ISS-LG-MASKRISC-PATH-NDARRAY: Quack
is not consumable by git until the lance-graph fix merges.

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

Copy link
Copy Markdown
Owner Author

CI fmt, clippy, test is red, and this PR cannot fix it on its own side. Dependency resolution fails before any code compiles:

error: no matching package named `ndarray` found
required by package `lance-graph-mask-risc v0.1.0 (https://github.com/AdaWorldAPI/lance-graph?branch=main#c9403ec4)`

lance-graph main declares mask-risc's ndarray dependency as a relative path, which a git consumer cannot resolve. The fix is AdaWorldAPI/lance-graph#1457. No HubSPO-rs-side workaround exists that keeps H-ADR-14: a sibling path dependency or vendoring are both forbidden.

With that fix applied locally, cargo test --workspace, clippy and fmt are all green here. Once #1457 merges, CI resolves branch = "main" again and this PR goes green with no code change. I'll merge main into this branch only if a conflict appears in the meantime.


Generated by Claude Code

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 10, 2026 16:32
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@AdaWorldAPI
AdaWorldAPI merged commit d2d8e3b into main Oct 10, 2026
1 check passed
AdaWorldAPI pushed a commit that referenced this pull request Oct 10, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
AdaWorldAPI pushed a commit that referenced this pull request Oct 11, 2026
Status lines re-verified against lance-graph 1116c120, OGAR b4f5a36,
spear 0c1b4a2: dir-sim gaps 4 resolved / 5 excluded / 1-3,6 open;
spear thread resolved by #19; report generation reclassified to a
consumer decision; preflight pins reopened (fleet on lance 13).
New: dir-sim not git-consumable; CRM key classview fossil.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
AdaWorldAPI pushed a commit that referenced this pull request Oct 11, 2026
Codex review on #28: D-ONT-6 is Blocked on ISS-CRM-KEY-CLASSVIEW and the
plan's H-ADR-1 / NodeRow layout now say the 0x000B half is superseded, so
the documented read path cannot mint fossil-prefixed keys. D-MAIL-4 is
scoped to MailParser only; ThreadLinker is spear RootThreads (#19).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
AdaWorldAPI added a commit that referenced this pull request Oct 11, 2026
* board: audit 2026-10-11 — close, correct and add listing points

Status lines re-verified against lance-graph 1116c120, OGAR b4f5a36,
spear 0c1b4a2: dir-sim gaps 4 resolved / 5 excluded / 1-3,6 open;
spear thread resolved by #19; report generation reclassified to a
consumer decision; preflight pins reopened (fleet on lance 13).
New: dir-sim not git-consumable; CRM key classview fossil.

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

* board+plan: carry the two audit findings into the execution plan

Codex review on #28: D-ONT-6 is Blocked on ISS-CRM-KEY-CLASSVIEW and the
plan's H-ADR-1 / NodeRow layout now say the 0x000B half is superseded, so
the documented read path cannot mint fossil-prefixed keys. D-MAIL-4 is
scoped to MailParser only; ThreadLinker is spear RootThreads (#19).

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
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