Open a mind fail-closed over an owned redb store
Cut 8, Huginn half, commit 1 of 4: the store port, the opener and the identity rules. `huginn-mind` gains its dependencies (`cultcache-rs` at Epiphany's pin `a0813c6`, `epiphany-pipeline` at `a65c6420`, the Epiphany half of this cut), `store.rs` with the one narrow `MindStore` trait that injects compare-and-swap, `mind.rs` with `Mind::open` and `open_with`, and `refusal.rs` with the organ's refusal vocabulary. The opener refuses in order and attaches nothing until every gate passes: a foreign type, a foreign epoch, a missing identity, an identity naming another instance. The path under the state root is derived from the slug; the `instance` document is the authority, so a store copied into another instance's directory is refused. The owned store's exclusive lock is the single-writer mechanism: a second `Mind::open` of the same path is `MindAlreadyOwned`. The receipt type and the two provenance shapes (`Faculty`, `PipelineProvenance`) land here rather than in the later commits because the opener registers the receipt's type id, and their only consumer is the receipt; the commit primitive itself is the next commit. `MindRefusal` carries a serde remote definition of the leaf's `PipelineRefusal`, which derives neither `Serialize` nor `JsonSchema` at the pinned rev; it is compiled against the leaf's type so a leaf change breaks the build rather than drifting. `Cargo.lock` is regenerated and gains 90 packages. The map predicted a CRLF-to-LF rewrite of the whole file; the file was already LF in the index and stays LF, so the diff is additions only. README and AGENTS now say `huginn-mind` is live and the other two crates are stubs. Builds: `cargo check -p huginn-mind --lib --tests` and `cargo test -p huginn-mind --lib` (4 tests) pass. This commit carries dead-code warnings on the store and cache accessors and the refusing test store; commits 2 and 3 consume them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
4094e689c6
commit
946758f666
10 changed files with 1732 additions and 7 deletions
|
|
@ -13,10 +13,10 @@ Studio's job, not Huginn's.
|
|||
- Upstream: `https://github.com/GameCult/Huginn.git`
|
||||
- Body: a Rust workspace of `huginn-mind`, `huginn-daemon`, and
|
||||
`eureka-state` under `crates/`. Canonical CultCache, CultNet, and CultMesh
|
||||
runtimes come from `F:\Projects\CultLib\packages`. The crates are stubs
|
||||
with no dependencies; each named cut of the Eureka pipeline-state campaign
|
||||
fills one in. Until then nothing here persists, admits, publishes, or
|
||||
connects.
|
||||
runtimes come from `F:\Projects\CultLib\packages`. `huginn-mind` is live:
|
||||
it persists and admits an instance's mind, over `cultcache-rs` and
|
||||
`epiphany-pipeline` pinned by git rev. `huginn-daemon` and `eureka-state`
|
||||
are stubs with no dependencies; nothing here publishes or connects yet.
|
||||
- Owned: an instance's memory documents, their admission, and their CultNet
|
||||
publication.
|
||||
- Depends on: Qdrant, directly. Unreachable Qdrant is a loud refusal, never a
|
||||
|
|
|
|||
Loading…
Reference in a new issue