053-host-library-mode
Host-library mode: named migrations, operator-authorized vocabulary, and one caller-owned transaction
Lifecycle approvedImplementation completeVerification unknownQualification unknown
Expose Aicortex as a linked library inside another Rahi cell without giving up migration identity, operator authority, or transaction ownership. The library exports the immutable named migration set `aicortex`, makes predicate registration an explicit operator-configured act, and stages observations, admission records, claim history, erasure records, and outbox work into the caller's `rahi_store::TxnBuilder`. A separate host fixture proves that Rahi ingress state, Aicortex history, a host-owned projection revision, and outbox work share one commit and one rollback.
Read the full pinned specification ↗Relationships
depends on
Claimed units
- establishes
{ "kind": "file", "path": "crates/aicortex-store/src/host.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-store/tests/host_library.rs" } - establishes
{ "id": "aicortex-external-host-fixture", "kind": "crate" } - extends
{ "nature": "additive", "spec": "010-chassis-adoption-and-workspace", "unit": { "anchor": "workspace", "file": "Cargo.toml", "kind": "section" } } - extends
{ "nature": "additive", "spec": "010-chassis-adoption-and-workspace", "unit": { "kind": "file", "path": "apps/aicortex/src/cell.rs" } } - extends
{ "nature": "additive", "spec": "010-chassis-adoption-and-workspace", "unit": { "kind": "file", "path": "apps/aicortex/tests/migrate.rs" } } - extends
{ "nature": "additive", "spec": "012-store-schema-and-repositories", "unit": { "kind": "file", "path": "crates/aicortex-store/src/lib.rs" } } - extends
{ "nature": "additive", "spec": "012-store-schema-and-repositories", "unit": { "kind": "file", "path": "crates/aicortex-store/src/migrations.rs" } } - extends
{ "nature": "additive", "spec": "012-store-schema-and-repositories", "unit": { "kind": "file", "path": "crates/aicortex-store/src/memory_repo.rs" } } - extends
{ "nature": "additive", "spec": "012-store-schema-and-repositories", "unit": { "kind": "file", "path": "crates/aicortex-store/tests/schema.rs" } } - extends
{ "nature": "additive", "spec": "014-memory-lifecycle-and-erasure", "unit": { "kind": "file", "path": "crates/aicortex-store/src/erasure.rs" } } - extends
{ "nature": "additive", "spec": "014-memory-lifecycle-and-erasure", "unit": { "kind": "file", "path": "crates/aicortex-store/tests/erasure.rs" } } - extends
{ "nature": "additive", "spec": "050-typed-claims-and-predicate-registry", "unit": { "kind": "file", "path": "crates/aicortex-store/src/predicate_registry_repo.rs" } } - extends
{ "nature": "additive", "spec": "050-typed-claims-and-predicate-registry", "unit": { "kind": "file", "path": "crates/aicortex-store/tests/predicate_registry.rs" } } - extends
{ "nature": "additive", "spec": "051-claim-admission-and-authority", "unit": { "kind": "file", "path": "crates/aicortex-store/src/claim_proposal_repo.rs" } } - extends
{ "nature": "additive", "spec": "051-claim-admission-and-authority", "unit": { "kind": "file", "path": "crates/aicortex-store/src/claim_admission_repo.rs" } } - extends
{ "nature": "additive", "spec": "051-claim-admission-and-authority", "unit": { "kind": "file", "path": "crates/aicortex-store/tests/claim_admission.rs" } } - extends
{ "nature": "additive", "spec": "052-bitemporal-claim-history-and-projection", "unit": { "kind": "file", "path": "crates/aicortex-store/src/claim_repo.rs" } } - extends
{ "nature": "additive", "spec": "052-bitemporal-claim-history-and-projection", "unit": { "kind": "file", "path": "crates/aicortex-store/tests/claim_history.rs" } } - extends
{ "nature": "additive", "spec": "052-bitemporal-claim-history-and-projection", "unit": { "kind": "file", "path": "crates/aicortex-store/tests/claim_erasure.rs" } } - extends
{ "nature": "additive", "spec": "052-bitemporal-claim-history-and-projection", "unit": { "kind": "file", "path": "crates/aicortex-claims/tests/projection.rs" } } - constrains
{ "flavor": "invariant-freeze", "note": "the library migration set is named aicortex, preserves migrations 1 through 8 byte for byte as its immutable prefix, appends later approved migrations monotonically, and requires rahi.receipts and rahi.coordination at version 1 or later", "unit": { "kind": "file", "path": "crates/aicortex-store/src/host.rs" } } - constrains
{ "flavor": "invariant-freeze", "note": "only explicit operator configuration authorizes predicate registration; domain input, model output, and caller-selected subjects do not", "unit": { "kind": "file", "path": "crates/aicortex-store/src/predicate_registry_repo.rs" } } - constrains
{ "flavor": "invariant-freeze", "note": "the host owns the TxnBuilder and the only commit; aicortex repositories stage and never commit host work", "unit": { "kind": "file", "path": "crates/aicortex-store/src/claim_repo.rs" } }
Source headings
- 053: Host-library mode
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 One named migration set
- 3.2 Operator-authorized predicate registration
- 3.3 One caller-owned transaction
- 3.4 Bounded reads and pure projection
- 3.5 External-host proof
- 4. Functional requirements
- 5. Acceptance criteria
- 6. Out of scope
- 7. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.