Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .claude/board/LATEST_STATE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# LATEST_STATE — What Just Shipped (read this FIRST)


> **2026-07-07 — NO-PIN + plug-and-play OGAR arming:** all OGAR deps
> (symbiont / lance-graph-ogar / cognitive-stack) switched from
> `git+branch=main` (which always pins a rev in Cargo.lock) to PATH deps on
> the local sibling `/home/user/OGAR` — operator policy: "wenn's knallt,
> dann einmal — nicht 200 Pins monitoren". `lance-graph-contract` gained the
> optional `ogar` feature (`ogar_codebook::armed`): arming pulls `ogar-vocab`
> transitively and activates a contract-side compile-time `COUNT_FUSE`
> (+ per-entry parity test). lance-graph-ogar arms it; the contract stays
> zero-dep by default. Fuse verified green vs OGAR main `68d85f02` (84==84,
> entry-for-entry).

> **Auto-injected at session start via SessionStart hook.**
> Updated after every merged PR.
> **Last updated:** 2026-05-14 (PR #372 merged: sprint-10 spec sprint, 12-worker CCA2A fleet + Opus meta-review + 8 knowledge docs, governance-only (zero .rs changes), mirrors PR #365 pattern. Sprint-11 implementation wave gated on 5 spec patches + 4 user ratifications: CSI-1 CausalEdge64 bit-reclaim Option, OQ-1 Σ4-Σ5 banding, OQ-3 plasticity granularity, OQ-5 rayon vendor. **Major findings:** (1) dual `CausalEdge64` types in workspace — `causal_edge::CausalEdge64` SPO-palette layout ≠ `thinking_engine::layered::CausalEdge64` 8-channel cascade, same name different semantics, surfaced as duplication entry #13 in TYPE_DUPLICATION_MAP and E-META-7 in EPIPHANIES; (2) p64 drift origin pinpointed at `crates/lance-graph-planner/src/cache/convergence.rs:18-22 #[allow(unused_imports)]` annotation — wiring intended for hot-path convergence never finished; (3) three-zone hot-path mental model corrects prior framing — Zone-1 thinking-engine MatVec 200-500ns + AriGraph entity_index O(1) ~20-200ns is the actual cycle-speed path, not DataFusion. Prior: 2026-05-13 (PR #366 merged: sprint-7 7-worker implementation wave for the sprint-5/6 specs + AuditSink trait unification, ~5 KLOC across 5 crates +2 new (`lance-graph-supervisor`, `lance-graph-consumer-conformance`), ~70 new tests, workspace clippy --tests --no-deps -D warnings exits 0; Opus meta verdict 4A/2B/1B-minus; OQ-7-1/2/3 all locked pre-merge; `UnifiedAuditSink` D-SDR-4 placeholder dropped, all sinks unified on `AuditSink` trait; `UnifiedBridge::with_jsonl_audit()` ergonomic constructor added for MedCare-rs sprint-2 item 5. **Adjacent landings (same day):** MedCare-rs sprint-1 10-PR sweep (#113-#122) including E1-1 OQ-3 direct migration (6 RoleGroups) consuming our `0d725d4` decision. MedCare-rs sprint-2 (5 PRs) is queued on user "go" — item 5 consumes this PR's new constructor. Prior same-day: PR #365 (13 sprint-5/6 specs + meta). Prior: PR #364 (D-SDR-3/4/5 + sprint-log-4 governance + sprint-5-9 roadmap + codex P1/P2 fixes). lance-graph #364 ships D-SDR-3/4/5 + sprint-log-4 governance + sprint-5-9 roadmap + codex P1/P2 surgical fixes (OwlIdentity 3-byte canonical, UnifiedAuditEvent 26 bytes, OgitFamilyTable sparse `HashMap<u16, FamilyEntry>`, audit super_domain via AuditChain). MedCare-rs#112 (PR-B) wires `UnifiedBridge<MedcareBridge>` + medcare-rbac + medcare-realtime substrate (+2963 LOC, 17 files, §73 SGB V + BMV-Ä §57 + BtM regulatory tests). smb-office-rs#31 (PR-C) wires `UnifiedBridge<OgitBridge>` (+111 LOC). ndarray#142 ships VBMI gate for `permute_bytes` (P0 SIGILL fix on Skylake-X / Cascade Lake / Ice Lake-SP) + Inf clamp for `simd_exp_f32`. D-SDR-5 `UnifiedBridge` surface is now consumed end-to-end across MedCare + smb-office. Prior: 2026-05-07 (PR #354). Prior: 2026-05-07 (PR #353). Prior: 2026-05-07 (PR #352). Prior: 2026-05-06 (splat-osint-ingestion-v1 PR 1+2 of 6 in flight). Prior: 2026-04-21 post PR #243.
Expand Down
5 changes: 1 addition & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

143 changes: 135 additions & 8 deletions crates/cognitive-stack/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions crates/cognitive-stack/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ ndarray = { path = "../../../ndarray" }
# surrealdb to main matches OGAR's own surrealdb pin so they resolve to ONE source.
ractor = { git = "https://github.com/AdaWorldAPI/ractor", branch = "claude/jirak-math-theorems-harvest-rfii13" }
surrealdb-core = { git = "https://github.com/AdaWorldAPI/surrealdb", branch = "main", default-features = false, features = ["kv-lance"] }
ogar-vocab = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" }
ogar-ontology = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main" }
ogar-adapter-surrealql = { git = "https://github.com/AdaWorldAPI/OGAR", branch = "main", features = ["surrealdb-parser"] }
ogar-vocab = { path = "../../../OGAR/crates/ogar-vocab" }
ogar-ontology = { path = "../../../OGAR/crates/ogar-ontology" }
ogar-adapter-surrealql = { path = "../../../OGAR/crates/ogar-adapter-surrealql", features = ["surrealdb-parser"] }

# The OGAR activation crate (in-repo, path) — links the full Active-Record surface
# (ogar-class-view's `impl lance_graph_contract::ClassView` + codebook parity-guard).
Expand Down
13 changes: 12 additions & 1 deletion crates/lance-graph-contract/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,15 @@ keywords = ["lance", "graph", "contract", "orchestration", "thinking"]
build = "build.rs"

[dependencies]
# Zero dependencies by design — this is a trait-only crate.
# Zero dependencies by DEFAULT — this is a trait-only crate.
# Consumers depend on this; implementations depend on lance-graph-planner.
#
# The ONE sanctioned optional dep: arming the `ogar` feature pulls the live
# OGAR codebook (ogar-vocab, PATH dep to the local sibling — NO PINS, operator
# policy 2026-07-07) into the same binary, which activates the compile-time
# COUNT_FUSE in `ogar_codebook::armed`. Plug-and-play: a consumer that arms
# `ogar` gets mirror-vs-vocab drift as a BUILD FAILURE, once, at compile time.
ogar-vocab = { path = "../../../OGAR/crates/ogar-vocab", optional = true }

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep default contract builds independent of OGAR checkout

This path dependency makes the default workspace require a sibling OGAR checkout even when the new ogar feature is not enabled. lance-graph-contract is a workspace member, and Cargo still resolves optional path dependency manifests during workspace resolution; in a normal checkout without /workspace/OGAR, cargo metadata --manifest-path crates/lance-graph-contract/Cargo.toml --no-deps aborts with failed to read /workspace/OGAR/crates/ogar-vocab/Cargo.toml. That breaks the documented zero-dep/default CI-gated contract build unless every environment now provisions OGAR, so the optional dependency needs to remain resolvable without that sibling or be moved out of the default workspace path.

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.

Confirmed and fixed in 9608151 (before this thread landed — same failure hit CI directly): the optional path dep + ogar feature are removed entirely; the contract is strictly zero-dep again, with the workspace-load lesson documented in the manifest comment. The armed tier (fuses + live-vocab access) lives in the workspace-EXCLUDED lance-graph-ogar crate, whose path deps cannot affect workspace resolution.


Generated by Claude Code


[build-dependencies]
# serde_yaml: used ONLY in build.rs to parse modules/*/manifest.yaml.
Expand All @@ -31,6 +38,10 @@ name = "i4_batch"
harness = false

[features]
# Arm the live OGAR codebook: pulls ogar-vocab (local sibling path dep) and
# activates the compile-time mirror↔vocab fuse in `ogar_codebook::armed`.
ogar = ["dep:ogar-vocab"]

# A-unlock-stepdomain — `step_trajectory_hash` forward stub for the E4
# cross-PR bridge between PR #278 audit log + PR #279 grammar trajectory.
# No-op alias today; concrete impl lands once the bridge PR ships.
Expand Down
40 changes: 40 additions & 0 deletions crates/lance-graph-contract/src/ogar_codebook.rs
Original file line number Diff line number Diff line change
Expand Up @@ -952,3 +952,43 @@ mod tests {
);
}
}

/// **Armed mode** (`feature = "ogar"`) — the live OGAR codebook in the same
/// binary, with the mirror↔vocab drift fuse at compile time.
///
/// Arming this feature pulls `ogar-vocab` (a PATH dep to the local OGAR
/// sibling checkout — no git pin, no rev to monitor) and makes any
/// count drift between [`CODEBOOK`] (the zero-dep wire mirror) and
/// `ogar_vocab::class_ids::ALL` (the canonical codebook) a **build
/// failure** — it bangs once, at compile time, instead of requiring
/// pin monitoring. Per-entry (name, id) parity is asserted by the
/// `armed` tests; consumers can also call [`armed::vocab`] re-exports
/// directly instead of carrying their own `ogar-vocab` dep line.
#[cfg(feature = "ogar")]
pub mod armed {
/// Re-export of the live codebook crate — a consumer arming `ogar` on
/// the contract pulls vocab through HERE, plug-and-play, instead of
/// declaring its own dependency line.
pub use ogar_vocab as vocab;

/// Compile-time drift fuse: the wire mirror and the live codebook must
/// carry the same number of concepts. Fails ANY armed build on drift.
pub const COUNT_FUSE: () = assert!(
super::CODEBOOK.len() == ogar_vocab::class_ids::ALL.len(),
"ogar_codebook mirror drifted from ogar_vocab::class_ids::ALL \
(concept count mismatch) — update the mirror PAIRED with the OGAR change"
);

#[cfg(test)]
mod tests {
/// Per-entry parity: every (concept, id) row identical, both orders.
#[test]
fn mirror_matches_live_vocab_entry_for_entry() {
let mirror: std::collections::BTreeMap<&str, u16> =
super::super::CODEBOOK.iter().copied().collect();
let live: std::collections::BTreeMap<&str, u16> =
ogar_vocab::class_ids::ALL.iter().copied().collect();
assert_eq!(mirror, live, "mirror and live codebook disagree");
}
}
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
Loading
Loading