Skip to content

Commit f045d7f

Browse files
committed
fix(symbiont): wire lance-graph-ogar into the golden image (+ contract patch)
The golden image was missing lance-graph-ogar: symbiont git-dep'd raw ogar-vocab/ogar-ontology/ogar-adapter-surrealql but NOT the activation crate, so it never linked ogar-class-view (impl lance_graph_contract::ClassView) or the codebook parity-guard — i.e. the unified binary wasn't proving the OGAR Active-Record surface compiles. - add `lance-graph-ogar = { path = "../lance-graph-ogar", features = ["surrealql-parser"] }` (transitively pulls ogar-class-view + the parity guard). - add `[patch."https://github.com/AdaWorldAPI/lance-graph"] lance-graph-contract = { path = "../lance-graph-contract" }` — REQUIRED (PR #564 CONSUMER REQUIREMENT): symbiont is the workspace root, so lance-graph-ogar's own patch is ignored; ogar-class-view git-deps contract@main and must unify onto symbiont's path copy, else OgarClassView's `impl ClassView` won't typecheck against the engine's. Docker needs no change: the Dockerfile runs `cargo build` on symbiont's manifest and lance-graph-ogar is in-repo (already COPY'd in) — cargo-missing == docker-missing. Verified by resolve (`cargo metadata` exit 0): lance-graph-ogar + ogar-class-view now in the golden-image graph; lance-graph-contract instances = 1 (the path copy) → patch folded the git contract onto one source; no "patch not used" warning. Full compile is the Railway/CI build-validation job (protoc + lance7 + surrealdb). Board: AGENT_LOG (cont.18). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
1 parent dcdc1f9 commit f045d7f

2 files changed

Lines changed: 30 additions & 3 deletions

File tree

.claude/board/AGENT_LOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## 2026-06-20 (cont.¹⁸) — golden image was MISSING lance-graph-ogar — wired it (+ contract [patch])
2+
3+
**Main thread (Opus), autoattended.** Operator: "check if the golden image is missing lance-graph-ogar from cargo/docker." **Confirmed missing:** `crates/symbiont/Cargo.toml` git-dep'd raw `ogar-vocab`/`ogar-ontology`/`ogar-adapter-surrealql` but NOT `lance-graph-ogar` (nor `ogar-class-view`, nor the parity-guard) — so the golden image was NOT proving the AR `ClassView` bridge or the codebook drift-guard link in the unified binary. Docker has no separate gap: `Dockerfile` just runs `cargo build --release` on symbiont's manifest (+ clones ndarray sibling); lance-graph-ogar is in-repo (`COPY . /build/lance-graph`), so cargo-missing = docker-missing, one fix.
4+
5+
**Fix:** added `lance-graph-ogar = { path = "../lance-graph-ogar", features = ["surrealql-parser"] }` + the mandatory `[patch."https://github.com/AdaWorldAPI/lance-graph"] lance-graph-contract = { path = "../lance-graph-contract" }` (the CONSUMER REQUIREMENT from PR #564: symbiont is the workspace root so lance-graph-ogar's own patch is ignored; ogar-class-view git-deps contract@main and must unify onto symbiont's path copy or the impl ClassView won't typecheck). Kept the 3 raw ogar deps (resolve to the same git#main source via the activation crate's re-export — no conflict; collapsing them into the one activation dep is a future cleanup).
6+
7+
**Verified by resolve** (`cargo metadata --manifest-path crates/symbiont/Cargo.toml`, exit 0): `lance-graph-ogar` + `ogar-class-view` now IN the golden-image graph; **lance-graph-contract instances = 1** (source=None = path copy) → the [patch] folded the git contract onto the one path copy; **no "patch not used" warning** (P0 policy clean). Full compile is the Railway/CI build-validation job (protoc + lance7 + surrealdb tree). symbiont Cargo.lock stays gitignored (living harness). Branch jirak.
18
## 2026-06-20 (cont.¹⁷) — kanban×Rubicon SoA tenant + per-tenant counters (capstone S1 green)
29

310
**Main thread (Opus), autoattended.** Operator go on the canon-locked change ("first the kanban X Rubicon wired inside the SoA" + "add counters for each tenant"). Confirmed aiwar/OSINT/mixin-family on main first (q2 can test: `contract::aiwar` + `soa_graph::project_snapshot(&OSINT_GOTHAM)` → GraphSnapshot, family nodes = categories, cross-category edges → out_family `references` slots = the O(1) mixin model; example `aiwar_family_poc`). Built:

crates/symbiont/Cargo.toml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,28 @@ ogar-vocab = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" }
5656
ogar-ontology = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" }
5757
ogar-adapter-surrealql = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main", features = ["surrealdb-parser"] }
5858

59-
# No [patch] needed: this dep and OGAR's transitive surrealdb (ast/parser/core)
60-
# all resolve to https://github.com/AdaWorldAPI/surrealdb#main — ONE source —
61-
# and cargo unions the features so kv-lance is enabled on the shared
59+
# The OGAR activation crate (in-repo, path) — the golden image's whole point is to
60+
# prove the FULL AR surface links: ogar-class-view's `impl lance_graph_contract::
61+
# ClassView` + the codebook parity-guard, not just raw ogar-vocab. Pulling this
62+
# crate (which transitively pulls ogar-class-view) is what makes the unified binary
63+
# exercise the Active-Record bridge. features=["surrealql-parser"] matches the
64+
# ogar-adapter-surrealql parser pin above (one surrealdb#main source).
65+
lance-graph-ogar = { path = "../lance-graph-ogar", features = ["surrealql-parser"] }
66+
67+
# ── [patch] — unify lance-graph-contract to the ONE in-repo path copy ──
68+
# CONSUMER REQUIREMENT (codex P2, PR #564): `ogar-class-view` (pulled via
69+
# lance-graph-ogar) hard-git-deps `lance-graph-contract` @ AdaWorldAPI/lance-graph#main,
70+
# while this crate + lance-graph path-dep it. Cargo treats path and git as DISTINCT
71+
# crates even at the same version, so without this patch `OgarClassView` would impl
72+
# a DIFFERENT `ClassView` than the engine expects (won't typecheck). The patch
73+
# folds the git contract onto the path copy = exactly one contract source.
74+
# (Applies here because symbiont is the workspace root; lance-graph-ogar's own
75+
# identical patch is ignored when it is not the root.)
76+
[patch."https://github.com/AdaWorldAPI/lance-graph"]
77+
lance-graph-contract = { path = "../lance-graph-contract" }
78+
79+
# No surrealdb [patch] needed: this crate's surrealdb-core and OGAR's transitive
80+
# surrealdb (ast/parser/core) all resolve to https://github.com/AdaWorldAPI/surrealdb#main
81+
# — ONE source — and cargo unions the features so kv-lance is enabled on the shared
6282
# surrealdb-core. (cargo forbids patching a git URL to the same git URL, which is
6383
# why the earlier jirak-redirect patch failed; aligning on main removes the need.)

0 commit comments

Comments
 (0)