diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index bf43fd205..80b8fd265 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -46,6 +46,16 @@ Plan: `.claude/plans/gremlin-composable-algebra-v1.md`. | D-CMH-G1-5 | FirstOfRun | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | insufficiency proof first; Quack + R2IL vs independent oracle | | D-CMH-G1-6 | ordered `I32` conditions + `MIN`/`MAX` folds as method steps; R2IL `MIN`/`MAX` wired | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | both frontends == row loop incl. empty selection; 8 disable runs red | +## D-FOLD-CORE — the fold path as a core capability (2026-10-13) + +Decision (operator, 2026-10-13): the contract's only dependency becomes mask-risc and through it ndarray (the other session's step); `lance-graph` core depends on mask-risc, quack and R2IL by default; NAL moves into core as a module and keeps lowering through R2IL. The contract never depends on OGAR (`ogar-loco` depends on the contract). + +| D-id | scope | status | gate / falsifier | +|---|---|---|---| +| **D-FOLD-CORE-a** | `lance-graph-r2il` becomes a workspace member; it, `lance-graph-nal` and `r2il-mask-abi-probe` take OGAR by git `main` (the `lance-graph-ogar` coordinate) instead of `../../../OGAR` paths; the root patches the contract's git URL to the member | In PR | `cargo metadata`: one `lance-graph-contract`, one `ogar-loco`, one `ogar-r2il`; tests: r2il 19, nal 8, probe 40, all green | +| **D-FOLD-CORE-b** | `crates/lance-graph` depends on mask-risc, quack and R2IL by default | Queued | core builds and tests green with the three in the default graph | +| **D-FOLD-CORE-c** | NAL as a module of `crates/lance-graph`; `crates/lance-graph-nal` removed; W2 tests moved unchanged | Queued | the 8 W2 tests pass unchanged in core | + ## D-PROD-V4 — production build tiers (2026-10-13) Entry: `entries/2026-10-13-production-targets-v4.md`. diff --git a/Cargo.toml b/Cargo.toml index 2b04104c8..a2606c45b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,12 @@ members = [ "crates/lance-graph-contract", "crates/lance-graph-mask-risc", "crates/lance-graph-quack", + # The fold reading of R2IL over mask-risc (FoldDialect, D-SQLP-1). A member + # since 2026-10-13: the fold path is a core capability, and CI and the root + # Dockerfiles check out the OGAR sibling it path-deps (`ogar-loco`, + # `ogar-r2il`). The contract may never depend on OGAR (`ogar-loco` depends on + # the contract), but members other than the contract may. + "crates/lance-graph-r2il", # EXPERIMENTAL, routed nowhere: Cypher (upstream front end, read-only) → # bound LogicalOperator → Quack, with typed refusals. "crates/lance-graph-cypher-quack", @@ -101,11 +107,6 @@ exclude = [ # that checkout present. Verify via # `cargo test --manifest-path crates/r2il-mask-abi-probe/Cargo.toml`. "crates/r2il-mask-abi-probe", - # The fold reading of R2IL over mask-risc (FoldDialect), extracted from - # r2il-mask-abi-probe (D-SQLP-1). Excluded for the same reason: it path-deps - # the OGAR sibling. Verify via - # `cargo test --manifest-path crates/lance-graph-r2il/Cargo.toml`. - "crates/lance-graph-r2il", # NAL over the fold path (D-NALP-1/2): path-deps lance-graph-r2il, so it # needs the OGAR checkout too. Own workspace root; verify via # `cargo test --manifest-path crates/lance-graph-nal/Cargo.toml`. @@ -405,6 +406,12 @@ object_store = { version = "0.14", features = ["aws"] } # Full measurement + the target geometry: .claude/knowledge/CARGO-COMPUTE-SUBSTRATE.md ndarray = { path = "../ndarray" } +[patch."https://github.com/AdaWorldAPI/lance-graph"] +# OGAR's crates (`ogar-loco`, reached through the `lance-graph-r2il` member) +# depend on the contract by its git coordinate. Without this the workspace +# would hold two contract packages: the member and the git copy. +lance-graph-contract = { path = "crates/lance-graph-contract" } + [patch."https://github.com/AdaWorldAPI/ndarray"] # The same sibling checkout for crates that name the canonical git coordinate # (today `lance-graph-mask-risc`, so that git consumers of Quack can build). diff --git a/crates/lance-graph-nal/Cargo.toml b/crates/lance-graph-nal/Cargo.toml index 040fb3501..6719d505c 100644 --- a/crates/lance-graph-nal/Cargo.toml +++ b/crates/lance-graph-nal/Cargo.toml @@ -17,7 +17,8 @@ lance-graph-contract = { path = "../lance-graph-contract" } lance-graph-mask-risc = { path = "../lance-graph-mask-risc" } # The procedure executor: NAL operations are R2IL call sequences over it. lance-graph-r2il = { path = "../lance-graph-r2il" } -ogar-loco = { path = "../../../OGAR/crates/ogar-loco" } +# By git `main`, the coordinate `lance-graph-r2il` uses (one `ogar-loco`). +ogar-loco = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" } [patch."https://github.com/AdaWorldAPI/lance-graph"] lance-graph-contract = { path = "../lance-graph-contract" } diff --git a/crates/lance-graph-r2il/Cargo.toml b/crates/lance-graph-r2il/Cargo.toml index d00ade84a..5cc17c151 100644 --- a/crates/lance-graph-r2il/Cargo.toml +++ b/crates/lance-graph-r2il/Cargo.toml @@ -5,24 +5,16 @@ edition = "2021" publish = false description = "The fold reading of R2IL executed over mask-risc: FoldDialect, an ogar-loco Dialect that turns R2IL calls into mask-risc Programs and runs them at each fold boundary. Extracted from r2il-mask-abi-probe (D-SQLP-1)." -# Its OWN workspace root, like `r2il-mask-abi-probe`: it path-deps the OGAR -# sibling (`ogar-loco`, `ogar-r2il`), and no ordinary lance-graph workspace -# build should need that checkout. Verify via -# `cargo test --manifest-path crates/lance-graph-r2il/Cargo.toml`. -[workspace] +# A workspace member: the root `Cargo.toml` patches the contract and ndarray +# git coordinates to their local paths, so there is one of each. [dependencies] # The only bulk execution engine. lance-graph-mask-risc = { path = "../lance-graph-mask-risc" } -# The interpreter seam and the R2IL opcode/arity table. By PATH, matching -# `r2il-mask-abi-probe`, so both crates see one `ogar-r2il` identity. -ogar-loco = { path = "../../../OGAR/crates/ogar-loco" } -ogar-r2il = { path = "../../../OGAR/crates/ogar-r2il" } - -# Same patches as `r2il-mask-abi-probe`: one local contract identity, one -# local ndarray identity. -[patch."https://github.com/AdaWorldAPI/lance-graph"] -lance-graph-contract = { path = "../lance-graph-contract" } - -[patch."https://github.com/AdaWorldAPI/ndarray"] -ndarray = { path = "../../../ndarray" } +# The interpreter seam and the R2IL opcode/arity table, by git `main`, the +# coordinate `lance-graph-ogar` uses: one `ogar-loco` in the workspace, and a +# repo that pulls lance-graph by git can still resolve it (a `../../../OGAR` +# path escapes the fetched repository; medcare-rs #565). The OGAR crates take +# the contract from git `main`; the root `[patch]` maps that to the member. +ogar-loco = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" } +ogar-r2il = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" } diff --git a/crates/r2il-mask-abi-probe/Cargo.toml b/crates/r2il-mask-abi-probe/Cargo.toml index b64c9dd9c..8281eab8d 100644 --- a/crates/r2il-mask-abi-probe/Cargo.toml +++ b/crates/r2il-mask-abi-probe/Cargo.toml @@ -22,13 +22,11 @@ lance-graph-quack = { path = "../lance-graph-quack" } # The fold dialect under test (D-SQLP-1). `tests/row_bridge.rs` used to # define it; it now lives in its own crate and this probe tests it. lance-graph-r2il = { path = "../lance-graph-r2il" } -# The oracle in THIS probe — deliberately not yet the delegating side. Reached -# by PATH, not git. Until 2026-10-10 mask-risc path-depped `ndarray` at -# `../../../ndarray`, which no cargo git checkout could resolve, so the -# differential could not live on the OGAR side. The direction -# here matches `crates/symbiont`'s existing `../../../OGAR/crates/...` deps. -ogar-r2il = { path = "../../../OGAR/crates/ogar-r2il" } -ogar-loco = { path = "../../../OGAR/crates/ogar-loco" } +# The oracle in THIS probe — deliberately not yet the delegating side. By git +# `main` since 2026-10-13, the coordinate `lance-graph-r2il` uses, so the +# probe and the dialect it tests see one `ogar-r2il` and one `ogar-loco`. +ogar-r2il = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" } +ogar-loco = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" } # Round 3 (`tests/v3_v4_dual_reading.rs`): the V3 reading — `NodeRow`, # `node_rows_from_le_bytes`, `FacetCascade::ref_from_bytes` — over the same # bytes the loco/R2IL reading projects.