Re-pin CultLib to a0813c6
Cut 1 of the Eureka pipeline state campaign. Moves every CultLib dependency from e171eca3 to main a0813c6. - load_envelope was deleted upstream (CultLib 4ed9871). The 12 sites in persona_conversation, persona_social_state and resident_self now call put_envelope. Each site feeds a cache built with CultCache::new() in the same function with no backing store attached, so home_index returns None and put_envelope only inserts into memory, exactly as load_envelope did. validate_envelope is byte-identical across the pins. - add_generic_backing_store now returns Result; the three production sites and five test sites propagate it with ?. No ownership change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
f05686c137
commit
2b76c2e758
15 changed files with 34 additions and 34 deletions
10
Cargo.lock
generated
10
Cargo.lock
generated
|
|
@ -363,8 +363,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cultcache-rs"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/GameCult/CultLib.git?rev=e171eca32329baa928f4a1d810401a8b4c857029#e171eca32329baa928f4a1d810401a8b4c857029"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/GameCult/CultLib.git?rev=a0813c6eed24d30bf88073ef615b633c77ebfcd6#a0813c6eed24d30bf88073ef615b633c77ebfcd6"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
|
|
@ -382,7 +382,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "cultcache-rs-derive"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/GameCult/CultLib.git?rev=e171eca32329baa928f4a1d810401a8b4c857029#e171eca32329baa928f4a1d810401a8b4c857029"
|
||||
source = "git+https://github.com/GameCult/CultLib.git?rev=a0813c6eed24d30bf88073ef615b633c77ebfcd6#a0813c6eed24d30bf88073ef615b633c77ebfcd6"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
|
@ -392,7 +392,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "cultmesh-rs"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/GameCult/CultLib.git?rev=e171eca32329baa928f4a1d810401a8b4c857029#e171eca32329baa928f4a1d810401a8b4c857029"
|
||||
source = "git+https://github.com/GameCult/CultLib.git?rev=a0813c6eed24d30bf88073ef615b633c77ebfcd6#a0813c6eed24d30bf88073ef615b633c77ebfcd6"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"cultcache-rs",
|
||||
|
|
@ -403,7 +403,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "cultnet-rs"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/GameCult/CultLib.git?rev=e171eca32329baa928f4a1d810401a8b4c857029#e171eca32329baa928f4a1d810401a8b4c857029"
|
||||
source = "git+https://github.com/GameCult/CultLib.git?rev=a0813c6eed24d30bf88073ef615b633c77ebfcd6#a0813c6eed24d30bf88073ef615b633c77ebfcd6"
|
||||
dependencies = [
|
||||
"aes-gcm",
|
||||
"anyhow",
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ license-file = "LICENSE"
|
|||
anyhow = "1"
|
||||
chrono = "0.4.44"
|
||||
ctrlc = { version = "3.5.1", features = ["termination"] }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultcache-rs" }
|
||||
cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultnet-rs" }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultcache-rs" }
|
||||
cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultnet-rs" }
|
||||
epiphany-core = { path = "epiphany-core" }
|
||||
epiphany-model-adapter = { path = "epiphany-model-adapter" }
|
||||
epiphany-openai-runtime = { path = "epiphany-openai-runtime", optional = true }
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ path = "src/lib.rs"
|
|||
anyhow = "1"
|
||||
chrono = "0.4.44"
|
||||
ctrlc = { version = "3.5.1", features = ["termination"] }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultcache-rs" }
|
||||
cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultmesh-rs" }
|
||||
cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultnet-rs" }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultcache-rs" }
|
||||
cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultmesh-rs" }
|
||||
cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultnet-rs" }
|
||||
epiphany-model-adapter = { path = "../epiphany-model-adapter" }
|
||||
epiphany-tool-adapter = { path = "../epiphany-tool-adapter" }
|
||||
fs2 = "0.4"
|
||||
|
|
|
|||
|
|
@ -355,7 +355,7 @@ impl AtlasCultCacheStore {
|
|||
cache.register_entry_type::<AtlasEntanglementProjection>()?;
|
||||
cache.register_entry_type::<AtlasImpactDedupeRecord>()?;
|
||||
cache.register_entry_type::<AtlasImpactStateRecord>()?;
|
||||
cache.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&self.path));
|
||||
cache.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&self.path))?;
|
||||
cache.pull_all_backing_stores()?;
|
||||
Ok(cache)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -958,7 +958,7 @@ fn require_store_retirement_receipt(
|
|||
})?;
|
||||
let mut cache = CultCache::new();
|
||||
cache.register_entry_type::<PersonaConversationStoreRetirementReceipt>()?;
|
||||
cache.load_envelope::<PersonaConversationStoreRetirementReceipt>(envelope.clone())?;
|
||||
cache.put_envelope::<PersonaConversationStoreRetirementReceipt>(envelope.clone())?;
|
||||
if cache
|
||||
.get::<PersonaConversationStoreRetirementReceipt>(&expected.receipt_id)?
|
||||
.as_ref()
|
||||
|
|
|
|||
|
|
@ -1042,7 +1042,7 @@ mod tests {
|
|||
let delivery = signed_delivery(&signer, "epiphany")?;
|
||||
let mut source = CultCache::new();
|
||||
source.register_entry_type::<BifrostPersonaFeedbackAdmission>()?;
|
||||
source.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&source_store));
|
||||
source.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&source_store))?;
|
||||
source.put(&delivery.admission_id, &delivery)?;
|
||||
let source_lock = source_store.with_file_name(format!(
|
||||
"{}.lock",
|
||||
|
|
|
|||
|
|
@ -846,19 +846,19 @@ fn is_persona_social_type(document_type: &str) -> bool {
|
|||
fn load_persona_social_envelope(cache: &mut CultCache, envelope: CultCacheEnvelope) -> Result<()> {
|
||||
match envelope.r#type.as_str() {
|
||||
PERSONA_SOCIAL_MENTION_TYPE => {
|
||||
cache.load_envelope::<PersonaSocialMentionDocument>(envelope)?;
|
||||
cache.put_envelope::<PersonaSocialMentionDocument>(envelope)?;
|
||||
}
|
||||
PERSONA_SOCIAL_TURN_REQUEST_TYPE => {
|
||||
cache.load_envelope::<PersonaSocialTurnRequestDocument>(envelope)?;
|
||||
cache.put_envelope::<PersonaSocialTurnRequestDocument>(envelope)?;
|
||||
}
|
||||
PERSONA_SOCIAL_TURN_TERMINAL_TYPE => {
|
||||
cache.load_envelope::<PersonaSocialTurnTerminalDocument>(envelope)?;
|
||||
cache.put_envelope::<PersonaSocialTurnTerminalDocument>(envelope)?;
|
||||
}
|
||||
PERSONA_SOCIAL_RETENTION_HEAD_TYPE => {
|
||||
cache.load_envelope::<PersonaSocialRetentionHeadDocument>(envelope)?;
|
||||
cache.put_envelope::<PersonaSocialRetentionHeadDocument>(envelope)?;
|
||||
}
|
||||
PERSONA_SOCIAL_RETENTION_PLAN_TYPE => {
|
||||
cache.load_envelope::<PersonaSocialRetentionPlanDocument>(envelope)?;
|
||||
cache.put_envelope::<PersonaSocialRetentionPlanDocument>(envelope)?;
|
||||
}
|
||||
_ => unreachable!("caller filtered Persona social document types"),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -788,7 +788,7 @@ mod tests {
|
|||
let store = temp.path().join("mixed.cc");
|
||||
let mut mixed = CultCache::new();
|
||||
mixed.register_entry_type::<ForeignOwnerEntry>()?;
|
||||
mixed.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&store));
|
||||
mixed.add_generic_backing_store(SingleFileMessagePackBackingStore::new(&store))?;
|
||||
let foreign = ForeignOwnerEntry {
|
||||
value: "must survive readiness CAS".into(),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -797,22 +797,22 @@ fn state_cache(path: &Path) -> Result<CultCache> {
|
|||
}
|
||||
match envelope.r#type.as_str() {
|
||||
ResidentSelfState::TYPE => {
|
||||
cache.load_envelope::<ResidentSelfState>(envelope)?;
|
||||
cache.put_envelope::<ResidentSelfState>(envelope)?;
|
||||
}
|
||||
ResidentSelfPressure::TYPE => {
|
||||
cache.load_envelope::<ResidentSelfPressure>(envelope)?;
|
||||
cache.put_envelope::<ResidentSelfPressure>(envelope)?;
|
||||
}
|
||||
ResidentSelfGrant::TYPE => {
|
||||
cache.load_envelope::<ResidentSelfGrant>(envelope)?;
|
||||
cache.put_envelope::<ResidentSelfGrant>(envelope)?;
|
||||
}
|
||||
ResidentSelfTerminalReceipt::TYPE => {
|
||||
cache.load_envelope::<ResidentSelfTerminalReceipt>(envelope)?;
|
||||
cache.put_envelope::<ResidentSelfTerminalReceipt>(envelope)?;
|
||||
}
|
||||
ResidentSelfChildClaim::TYPE => {
|
||||
cache.load_envelope::<ResidentSelfChildClaim>(envelope)?;
|
||||
cache.put_envelope::<ResidentSelfChildClaim>(envelope)?;
|
||||
}
|
||||
ResidentSelfRetentionHead::TYPE => {
|
||||
cache.load_envelope::<ResidentSelfRetentionHead>(envelope)?;
|
||||
cache.put_envelope::<ResidentSelfRetentionHead>(envelope)?;
|
||||
}
|
||||
_ => unreachable!("owned resident Self type was matched above"),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -644,7 +644,7 @@ pub fn runtime_spine_cache(store_path: impl AsRef<Path>) -> Result<CultCache> {
|
|||
let backing_store = runtime_spine_backing_store(store_path)?;
|
||||
validate_runtime_store_epoch(&backing_store.pull_all()?)?;
|
||||
let mut cache = runtime_spine_schema_cache()?;
|
||||
cache.add_generic_backing_store(backing_store);
|
||||
cache.add_generic_backing_store(backing_store)?;
|
||||
Ok(cache)
|
||||
}
|
||||
|
||||
|
|
@ -8655,7 +8655,7 @@ pub(crate) mod tests {
|
|||
let mut historical = CultCache::new();
|
||||
historical.register_entry_type::<crate::EpiphanyMindIdentity>()?;
|
||||
historical.register_entry_type::<EpiphanyRuntimeIdentity>()?;
|
||||
historical.add_generic_backing_store(runtime_spine_backing_store(&store)?);
|
||||
historical.add_generic_backing_store(runtime_spine_backing_store(&store)?)?;
|
||||
historical.put(
|
||||
"epiphany.mind.epoch.v1",
|
||||
&crate::EpiphanyMindIdentity {
|
||||
|
|
@ -8691,7 +8691,7 @@ pub(crate) mod tests {
|
|||
let mut archive_v0 = CultCache::new();
|
||||
archive_v0.register_entry_type::<crate::EpiphanyMindIdentity>()?;
|
||||
archive_v0.register_entry_type::<EpiphanyRuntimeIdentity>()?;
|
||||
archive_v0.add_generic_backing_store(runtime_spine_backing_store(&archive_v0_store)?);
|
||||
archive_v0.add_generic_backing_store(runtime_spine_backing_store(&archive_v0_store)?)?;
|
||||
archive_v0.put(
|
||||
crate::MIND_SCHEMA_EPOCH,
|
||||
&crate::EpiphanyMindIdentity {
|
||||
|
|
@ -8720,7 +8720,7 @@ pub(crate) mod tests {
|
|||
responses_only.register_entry_type::<crate::EpiphanyMindIdentity>()?;
|
||||
responses_only.register_entry_type::<EpiphanyRuntimeIdentity>()?;
|
||||
responses_only
|
||||
.add_generic_backing_store(runtime_spine_backing_store(&responses_only_store)?);
|
||||
.add_generic_backing_store(runtime_spine_backing_store(&responses_only_store)?)?;
|
||||
responses_only.put(
|
||||
crate::MIND_SCHEMA_EPOCH,
|
||||
&crate::EpiphanyMindIdentity {
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ pub fn close_state_branch(
|
|||
fn state_ledger_cache(store_path: &Path) -> Result<CultCache> {
|
||||
let mut cache = CultCache::new();
|
||||
cache.register_entry_type::<EpiphanyStateLedgerEntry>()?;
|
||||
cache.add_generic_backing_store(SingleFileMessagePackBackingStore::new(store_path));
|
||||
cache.add_generic_backing_store(SingleFileMessagePackBackingStore::new(store_path))?;
|
||||
Ok(cache)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ path = "src/lib.rs"
|
|||
[dependencies]
|
||||
anyhow = "1"
|
||||
codex-connector = { git = "https://github.com/GameCult/CodexConnector", rev = "be1776ab455fd79bd74b393518ab07211dc9c1f0", default-features = false }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultcache-rs" }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultcache-rs" }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
sha2 = "0.10"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ path = "src/lib.rs"
|
|||
[dependencies]
|
||||
anyhow = "1"
|
||||
chrono = "0.4.44"
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultcache-rs" }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultcache-rs" }
|
||||
epiphany-core = { path = "../epiphany-core" }
|
||||
epiphany-model-adapter = { path = "../epiphany-model-adapter" }
|
||||
epiphany-tool-adapter = { path = "../epiphany-tool-adapter" }
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@ name = "epiphany_tool_adapter"
|
|||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultcache-rs" }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultcache-rs" }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ anyhow = "1"
|
|||
chrono = "0.4.44"
|
||||
epiphany-tool-adapter = { path = "../epiphany-tool-adapter" }
|
||||
epiphany-core = { path = "../epiphany-core" }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32329baa928f4a1d810401a8b4c857029", package = "cultcache-rs" }
|
||||
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a0813c6eed24d30bf88073ef615b633c77ebfcd6", package = "cultcache-rs" }
|
||||
http = "1"
|
||||
reqwest = { version = "0.13.2", default-features = false, features = ["json", "rustls"] }
|
||||
sha2 = "0.10"
|
||||
|
|
|
|||
Reference in a new issue