Skip to content

Cross-session intake: RouteBucketTyped (C6) merged, emission_scan minted, OCR codebook mirror, GraphRAG-rs inventory + operator rulings#632

Merged
AdaWorldAPI merged 7 commits into
mainfrom
claude/v3-substrate-migration-review-o0yoxv
Jul 2, 2026
Merged

Cross-session intake: RouteBucketTyped (C6) merged, emission_scan minted, OCR codebook mirror, GraphRAG-rs inventory + operator rulings#632
AdaWorldAPI merged 7 commits into
mainfrom
claude/v3-substrate-migration-review-o0yoxv

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Jul 2, 2026

Copy link
Copy Markdown
Owner

The post-#631 arc: three sibling sessions' wishlists dispositioned, the executable items executed, and the operator's same-day rulings recorded on the board.

Contract

  • RouteBucketTyped (C6, op-nexgen L1) — kind-generic sibling of RouteBucket + ?Sized blanket bridge, applied verbatim from nexgen's vendored codegen_spine.diff (codex-reviewed there). 12/12 module tests. nexgen retires its re-apply-on-every-sync diff.
  • emission_scan (op-nexgen L2) — zero-dep typed-DDL adoption counter: TypedForm {Typed, AnyTyped, RecordLink, Stub} + tokenizer classify_ddl_type (precedence Stub > RecordLink > AnyTyped > Typed) + EmissionCounts fold, mirroring classid_scan's idioms. 15 tests. The scan family is now a named contract pattern (module doc): the third governance counter mirrors this shape instead of living as a consumer-side grep.
  • OCR 0x08XX codebook mirrorunicharset/recoder/charset matching the OGAR mint (Cross-repo fuses + serialized allocation batch (flip fuse, COUNT_FUSE, Genetics 0x0E, OCR 0x08XX, 0x1000 reservation) + post-flip prose sweep OGAR#148). Lockstep: merge OGAR#148 first, then this branch bumps its ogar-vocab lock pin so lance_graph_ogar::parity::COUNT_FUSE compares 68 == 68.

Contract suite: 791/791.

Boards (the intake record)

  • .claude/handovers/2026-07-02-cross-session-wishlist-intake.md — every wishlist item with a disposition (executed / deferred-with-landing-zone / escalated), plus four appendices absorbing the synthesis passes and the operator rulings.
  • Operator rulings recorded (EPIPHANIES E-V3-XSESSION-INTAKE-1-RULINGS, plan Addendum-10 corrections + Addendum-11):
    • R-1 naming was a phantom — canon already exists: domain:appid:classview; "concept" names the whole hi u16; the "app" homonym (appid byte vs APP render prefix) caused the entire cross-session thread. Both ledgers now carry the line (OGAR D-CLASSID-HI-U16-SPELLING).
    • R-2 closed — the 512-byte SoA row (tested against kv-lance AND the batch writer, time series wired into surrealdb from Lance versioning) is NOT touched; edges read cheaply via the existing NODE_ROW_COLUMNS strided view (16-of-512); residual = a read-side edges-only test.
    • L3 new-schema design killed — "we already have a working SoA schema": extraction interchange lands as SoA rows through the W1b cast path; survivors are minter@sha provenance stamps + ndjson as the diffable golden layer.
    • Per-consumer classid ownership + tripwires ratified; the five post-fuse workstreams enumerated in Addendum-11 (V3 waves, rs-graph-llm orchestration, OGAR-as-transpiler with compile-time askama/ClassView/bitmask, the cross-repo inventory, per-consumer accommodation).
  • .claude/knowledge/graphrag-rs-inventory.md + E-V3-GRAPHRAG-INV-1 — full GraphRAG-rs fit inventory (all verdicts REUSE-AS-REFERENCE or IGNORE; LanceDBStore is a 100% stub; "hierarchical" Leiden is single-level; cAST is example-only; InferenceEngine is the Thinking-is-a-struct ANTI-exhibit — AsyncGraphRAG + the TypedBuilder type-state pattern are the real exhibits).
  • CROSS_SESSION_BROADCAST.md merge-event entry so the sibling sessions pick these up without chat relay.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM


Generated by Claude Code

Summary by CodeRabbit

  • New Features

    • Added a new emission-scanning capability to classify and count DDL type expressions.
    • Expanded the codebook with additional OCR-related concepts for more complete concept matching.
    • Introduced broader route-bucket support so more handler kinds can be used in generic workflows.
  • Bug Fixes

    • Improved type-expression detection to avoid false matches from partial words.
    • Added stronger coverage to keep concept IDs aligned with the expected vocabulary.

claude added 3 commits July 2, 2026 13:30
…raphRAG-rs inventory + cross-session wishlist intake

- codegen_spine: RouteBucketTyped kind-generic sibling trait + ?Sized
  blanket bridge, applied verbatim from op-nexgen's vendored diff
  (codex-reviewed there); 12/12 module tests green.
- emission_scan: zero-dep typed-DDL adoption counter, classid_scan's
  sibling (TypedForm + classify_ddl_type + EmissionCounts fold);
  15 tests; the scan family is now a named contract pattern.
- knowledge/graphrag-rs-inventory.md: full fit inventory (all verdicts
  REUSE-AS-REFERENCE or IGNORE; LanceDBStore stub, single-level Leiden,
  cAST example-only, InferenceEngine anti-exhibit).
- handovers + EPIPHANIES + Addendum-10 + broadcast: three sibling
  sessions' wishlists dispositioned; RULING-NEEDED queue R-1..R-4;
  allocation-table mints serialized through the OGAR batch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
…lose the intake escalations

- ogar_codebook: unicharset/recoder/charset (0x0801-0x0803) mirroring
  the OGAR mint (container kinds only; content never becomes concepts);
  drift-guard test extended. LOCKSTEP: merge the OGAR batch PR first,
  then bump this repo's ogar-vocab lock pin so
  lance_graph_ogar::parity::COUNT_FUSE sees 68 == 68.
- Rulings recorded (EPIPHANIES E-V3-XSESSION-INTAKE-1-RULINGS +
  handover appendices + plan Addendum-10 corrections/Addendum-11):
  R-1 hi-u16 naming was a phantom (canon: domain:appid:classview;
  both ledgers now carry the line); R-2 closed (512-byte row frozen,
  edges read via the existing strided descriptor view); L3 new-schema
  design killed (SoA schema IS the schema); per-consumer classid
  ownership + tripwires ratified; the five post-fuse workstreams
  enumerated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds a RouteBucketTyped trait with a blanket impl in codegen_spine.rs, introduces a new emission_scan module for classifying DDL TYPE expressions, extends the OGAR CODEBOOK with three OCR-domain entries, reformats existing test code, and appends extensive board/handover/knowledge markdown documentation.

Changes

Contract crate code changes

Layer / File(s) Summary
RouteBucketTyped trait and blanket impl
crates/lance-graph-contract/src/codegen_spine.rs
Adds RouteBucketTyped trait with associated Kind type, a blanket impl bridging RouteBucket implementors, UFCS test updates, and new fixture tests covering non-Odoo kinds and erased trait objects.
classid_scan test formatting cleanup
crates/lance-graph-contract/src/classid_scan.rs
Reformats existing test assertions and compose_classid_with calls onto multiple lines with no logic changes.
emission_scan module implementation
crates/lance-graph-contract/src/emission_scan.rs, crates/lance-graph-contract/src/lib.rs
Adds TypedForm, classify_ddl_type, EmissionCounts, count_emission, tests, and a new public module export.
OGAR codebook OCR entries
crates/lance-graph-contract/src/ogar_codebook.rs
Adds unicharset, recoder, charset entries to CODEBOOK and extends drift-guard test assertions.

Board, handover, and knowledge documentation

Layer / File(s) Summary
Board tracking file updates
.claude/board/CROSS_SESSION_BROADCAST.md, .claude/board/EPIPHANIES.md, .claude/board/LATEST_STATE.md, .claude/board/PR_ARC_INVENTORY.md
Appends broadcast, epiphanies, latest-state, and PR-arc entries recording PR #631 shipment and cross-session intake outcomes.
Cross-session wishlist intake handover
.claude/handovers/2026-07-02-cross-session-wishlist-intake.md
Adds full handover doc with executed items, operator rulings R-1..R-4, deferred items, blockers, and follow-up resolutions.
GraphRAG-rs inventory knowledge document
.claude/knowledge/graphrag-rs-inventory.md
Adds inventory doc covering repository structure, subsystem verdicts, API design notes, and InferenceEngine deep-dive.
Integration plan addenda
.claude/v3/INTEGRATION-PLAN.md
Adds Addendum-10 and Addendum-11 documenting rulings, conventions, and remaining workstreams.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • AdaWorldAPI/lance-graph#432: Extends the same codegen_spine.rs contract with RouteBucketTyped, building directly on the RouteBucket contract from that PR.
  • AdaWorldAPI/lance-graph#606: Both PRs extend the same CODEBOOK constant in ogar_codebook.rs with new canonical concept entries.

Poem

A trait for buckets, typed and free,
Kinds beyond Odoo, wild and new to see 🐇
DDL types get sorted, stub to typed row,
Codebook grows by three, watch the OCR glow.
Handovers stacked high, boards all in a row —
This bunny hops content, review and go!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly reflects the main changes: RouteBucketTyped, emission_scan, OCR codebook updates, and the added inventory/ruling docs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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.

…Typed, emission_scan, OCR mirror, rulings)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 33a83aaacd

ℹ️ 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".

Comment on lines +109 to +110
if token == "record" {
return TypedForm::RecordLink;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid returning before later stub tokens

When a type expression contains a record token before a stub marker (for example record<user> TODO or record<fixme>), this early return classifies it as RecordLink and never sees the later todo/stub/fixme token, even though the documented precedence says Stub wins over RecordLink globally. That miscounts partially stubbed record-link DDL as real links; keep scanning after seeing record and decide after stub detection has had a chance to inspect all tokens.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in a1ca272 — real precedence bug. record no longer early-returns; saw_record is tracked and decided after the full token walk, so Stub (the only remaining early return, top precedence) wins globally. Regression test classify_ddl_type_stub_marker_after_record_still_wins covers record<user> TODO, record<fixme>, and array<record<user>> stub.


Generated by Claude Code

/// or through a `?Sized`-bounded generic.
///
/// [impl_blanket]: #impl-RouteBucketTyped-for-T
impl<T: RouteBucket + ?Sized> RouteBucketTyped for T {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid blanket method collisions with RouteBucket

For any existing concrete type that implements RouteBucket, this blanket impl also makes it implement RouteBucketTyped with the same kind/id method names. If a consumer brings both traits into scope via codegen_spine::* (the same pattern used by this module's tests before they were changed to UFCS), calls like bucket.kind() become ambiguous, so the supposedly additive trait is a source break for existing concrete-route code; avoid the blanket collision or use non-colliding method names.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged and documented rather than renamed (a1ca272, "Method-name collision" section on the trait). Rationale: the name reuse is deliberate — one contract shape, and the blanket delegates verbatim to RouteBucket, so both resolutions are always semantically identical. The failure mode is a compile error with an obvious UFCS fix (RouteBucket::kind(&b) — either trait path is correct), never silent misbehavior. Renaming would fork the contract shape and break the already-deployed op-nexgen consumers that code against kind() (this diff shipped there first, codex-reviewed as nexgen PR #8). The module's own tests demonstrate the UFCS pattern for the both-traits-in-scope case.


Generated by Claude Code

claude added 3 commits July 2, 2026 14:25
…nstruct it in the dispatch test) + rustfmt sweep

The C6 fixture's TemplateGet variant was matched but never constructed,
tripping dead_code under -D warnings in CI. Exercise it through the same
generic consumer instead of allow()ing it. rustfmt also reflows
classid_scan.rs (fmt-dirty since #630) and the new modules.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
…codex P2); document the deliberate RouteBucketTyped method-name collision + UFCS rule (codex P2)

- classify_ddl_type no longer early-returns on record: precedence is
  global over the whole expression (Stub > RecordLink > AnyTyped >
  Typed); record<user> TODO / record<fixme> / array<record<user>> stub
  now classify as Stub instead of miscounting as real links. Stub stays
  the only early return (top precedence). +1 regression test, 3 cases.
- RouteBucketTyped: the kind/id name reuse vs RouteBucket is deliberate
  (one contract shape; blanket delegates verbatim so both resolutions
  are identical); ambiguity under a both-traits glob is a compile error
  with a UFCS fix, never silent misbehavior; rename rejected — would
  fork the shape and break deployed op-nexgen consumers. Documented on
  the trait.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
@AdaWorldAPI AdaWorldAPI merged commit df36747 into main Jul 2, 2026
5 of 6 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
crates/lance-graph-contract/src/ogar_codebook.rs (1)

666-668: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Drift-guard test omits recoder.

The drift-guard block asserts unicharset (0x0801) and charset (0x0803) but not recoder (0x0802), the middle entry of the same 0x08XX mint. If OGAR ever drifts on recoder's id, this specific guard won't catch it (though the generic duplicate-id test would still pass).

🧪 Proposed fix
         // 0x08XX OCR (container kinds; unichar content stays out of the codebook).
         assert_eq!(canonical_concept_id("unicharset"), Some(0x0801));
+        assert_eq!(canonical_concept_id("recoder"), Some(0x0802));
         assert_eq!(canonical_concept_id("charset"), Some(0x0803));
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/lance-graph-contract/src/ogar_codebook.rs` around lines 666 - 668, The
drift-guard in canonical_concept_id’s OCR 0x08XX assertions is missing the
middle entry, so it won’t catch drift in recoder. Update the existing test block
in ogar_codebook.rs to also assert that canonical_concept_id("recoder") returns
0x0802 alongside unicharset and charset, keeping the guard aligned with the
0x08XX mint.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.claude/handovers/2026-07-02-cross-session-wishlist-intake.md:
- Around line 35-37: Mark the L3 deferred item as withdrawn/reframed so it no
longer reads as active future work. Update the handover entry for the L3 row in
the wishlist intake document to reflect the later appendix decision that the
Arrow/Lance schema-design idea is retracted and the existing SoA envelope is the
interchange, and keep the terminology consistent with the surrounding
deferred/retracted sections.

In @.claude/v3/INTEGRATION-PLAN.md:
- Around line 380-413: Resolve the interchange contract conflict by updating the
integration plan section so it states one authoritative approach: either the
Arrow interchange family is the active design or it is explicitly superseded by
the W1b cast/SoA row path. Reference the “Interchange guard (L3/E5 fusion)” and
the “CORRECTIONS” block, and make the earlier paragraph clearly marked as
replaced if the SoA contract wins. Ensure the final wording cannot be cited both
ways and keep the provenance/ndjson notes consistent with the chosen contract.

---

Nitpick comments:
In `@crates/lance-graph-contract/src/ogar_codebook.rs`:
- Around line 666-668: The drift-guard in canonical_concept_id’s OCR 0x08XX
assertions is missing the middle entry, so it won’t catch drift in recoder.
Update the existing test block in ogar_codebook.rs to also assert that
canonical_concept_id("recoder") returns 0x0802 alongside unicharset and charset,
keeping the guard aligned with the 0x08XX mint.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1c75b9f3-fb6b-4841-b4ad-eaedffa6ac67

📥 Commits

Reviewing files that changed from the base of the PR and between c7149ea and a1ca272.

📒 Files selected for processing (12)
  • .claude/board/CROSS_SESSION_BROADCAST.md
  • .claude/board/EPIPHANIES.md
  • .claude/board/LATEST_STATE.md
  • .claude/board/PR_ARC_INVENTORY.md
  • .claude/handovers/2026-07-02-cross-session-wishlist-intake.md
  • .claude/knowledge/graphrag-rs-inventory.md
  • .claude/v3/INTEGRATION-PLAN.md
  • crates/lance-graph-contract/src/classid_scan.rs
  • crates/lance-graph-contract/src/codegen_spine.rs
  • crates/lance-graph-contract/src/emission_scan.rs
  • crates/lance-graph-contract/src/lib.rs
  • crates/lance-graph-contract/src/ogar_codebook.rs

Comment on lines +35 to +37
| **L3** Arrow/Lance columnar triple interchange (s p o f c as five parallel columns; retire mid-pipeline ndjson) | W5 consumer wave; pairs with the W1b zero-copy sink (Lance already speaks the format). Design note filed in Addendum-10. |
| **L4** materialization slot for DAG-backed columns ("this field is a cache of DAG node X") | Contract-flag design; belongs with the M19/W5 per-consumer mint reviews. |
| **E5** ruff `Mint` → ndjson/Arrow seam | Correctly waited — the W1b batch-writer/WAL shape it should target now exists (#631). Ruff session owns the emission side; the ingestion side is the cast/descriptor path. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Mark L3 as withdrawn/reframed.

The Deferred row still reads like active future work, but the later appendices explicitly retract the Arrow/Lance schema-design idea and say the existing SoA envelope is the interchange. Please relabel this item as withdrawn/reframed (or move it to a retracted section) so the handover stays self-consistent.

♻️ Suggested edit
-| **L3** Arrow/Lance columnar triple interchange (s p o f c as five parallel columns; retire mid-pipeline ndjson) | W5 consumer wave; pairs with the W1b zero-copy sink (Lance already speaks the format). Design note filed in Addendum-10. |
+| **L3** Arrow/Lance columnar triple interchange | **WITHDRAWN / REFRAMED** — no new schema; use the existing SoA envelope (`NODE_ROW_COLUMNS` / `NODE_ROW_STRIDE`). Provenance stamping + ndjson remain. |

Also applies to: 192-234

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/handovers/2026-07-02-cross-session-wishlist-intake.md around lines
35 - 37, Mark the L3 deferred item as withdrawn/reframed so it no longer reads
as active future work. Update the handover entry for the L3 row in the wishlist
intake document to reflect the later appendix decision that the Arrow/Lance
schema-design idea is retracted and the existing SoA envelope is the
interchange, and keep the terminology consistent with the surrounding
deferred/retracted sections.

Source: Linked repositories

Comment on lines +380 to +413
- **Interchange guard (L3/E5 fusion):** ONE Arrow schema family for
extraction interchange (triples batch s/p/o/f/c + facets batch),
provenance header carries `minter@sha`; ndjson STAYS as the
committed-golden/diffable layer (Arrow batches are opaque to PR
review); the ingestion side targets the W1b cast/descriptor shape —
no second envelope. W5 design item.
- **Probe-corpus archival convention (unclaimed-gap fix):** every
measurement that will be quoted (F17 triage ratio, count_adoption
vs a real bake, medcare re-runs) archives input + generation recipe
+ hash WITH the run, or it recreates "last measured, can't
re-verify".
- **RULING-NEEDED queue for the operator** (recorded in the intake
handover §R): R-1 hi-u16 naming — evidence now strong for the
concept reading (`0x0102` shared by OP `0x0102_0001` + Redmine
`0x0102_0007` is inexpressible under an appid reading); deliver the
ruling as ACCESSOR RENAMES not prose (4 prose-rot instances this
arc). R-2 EdgeBlock canon → one const set + size asserts both repos
pin. R-3 per-entry board files + per-repo coordination dir as ONE
merged council proposal (X1 yielded). R-4 OGAR probe-ledger Wave A
green-light.
- **CORRECTIONS (same day, operator rulings — canonical text in the
intake handover appendices + E-V3-XSESSION-INTAKE-1-RULINGS):**
R-1 was a PHANTOM (canon already exists: `domain:appid:classview`,
le-contract.md §prefix + primer §5 — "concept" names the whole hi
u16; the "app" homonym across the halves caused the thread; both
ledgers now carry the line, OGAR D-CLASSID-HI-U16-SPELLING). R-2
closed empirically (edges pull separately via the NODE_ROW_COLUMNS
strided view; the 512-byte row — tested against kv-lance AND the
batch writer, with time series wired into surrealdb from Lance
versioning — is NOT touched; residual = a read-side edges-only
test). L3 schema design KILLED ("defining arrow schemas is bullshit
and hallucination — we already have a working SoA schema"):
extraction interchange lands as SoA rows through the W1b cast path;
survivors are minter@sha provenance + ndjson-as-golden only.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Resolve the Arrow/SoA interchange contradiction.

Lines 380-385 introduce an Arrow interchange family, but Lines 410-413 later say that schema design is killed and extraction interchange lands as SoA rows via the W1b cast path. Pick one authoritative contract or explicitly mark the first paragraph as superseded, or this doc will be cited both ways.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/v3/INTEGRATION-PLAN.md around lines 380 - 413, Resolve the
interchange contract conflict by updating the integration plan section so it
states one authoritative approach: either the Arrow interchange family is the
active design or it is explicitly superseded by the W1b cast/SoA row path.
Reference the “Interchange guard (L3/E5 fusion)” and the “CORRECTIONS” block,
and make the earlier paragraph clearly marked as replaced if the SoA contract
wins. Ensure the final wording cannot be cited both ways and keep the
provenance/ndjson notes consistent with the chosen contract.

AdaWorldAPI pushed a commit that referenced this pull request Jul 2, 2026
…NT_FUSE (68 == 68)

The compile-time fuse fired in the between-merges window (mirror 68 vs
locked ogar_vocab 65) exactly as designed, and cleared with the lock
bump (lance-graph-ogar's own lockfile is gitignored — CI resolves the
merged OGAR main fresh). lance-graph-ogar 81 tests green locally.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
AdaWorldAPI pushed a commit that referenced this pull request Jul 2, 2026
…main + two-sided fuses)

OGAR #148 minted the OCR 0x08XX trio (unicharset/recoder/charset, ALL
65 -> 68) in lockstep with lance-graph #632's mirror rows (also 68);
it also shipped the wishlist's cross-repo fuses (flip fuse, OGAR-side
COUNT_FUSE), Genetics 0x0E, and the 0x1000 reservation + post-flip
prose sweep. Verified: mirror 68 == OGAR ALL 68 (identical name sets);
lance-graph-ogar standalone 81 tests green (compile-time COUNT_FUSE +
parity hold).

NOTE for main: main's own Cargo.lock still pins a0c7936 (65 concepts)
against a 68-row mirror — any consumer vendoring lance-graph-ogar off
main trips the COUNT_FUSE until main's pin moves to 75d955b (this
commit carries the fix when the branch merges).
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