Move the Ghostlight pin off the dead cultcache-py submodule
Epiphany pinned ghostlight-persona-projection at 2228189 (2026-08-16), which still carries the vendor/cultcache-py submodule pointing at https://github.com/GameCult/cultcache-py.git. That repo was folded into CultLib's packages/cultcache-py and no longer exists, so a fresh clone that recursively fetches Ghostlight submodules fails cargo's `unable to update` step even though Epiphany's own tree is otherwise clean. Move the pin to 22937b7 (2026-09-13), the nearest Ghostlight revision without a dead submodule: it replaces vendor/cultcache-py with the published cultcache-py PyPI package and keeps only vendor/eve. Between the two revisions the crate's public surface stayed source-compatible for the three call sites Epiphany uses, with three additive/field changes: ProjectorPrompt and PersonaPrompt gained a required word_budget field (set to 180, matching Ghostlight's own PERSONA_WORD_BUDGET convention for narrative Persona controllers), and InterpreterPrompt's output_schema became Option<&str> (wrapped in Some(..) to keep the always-supplied schema). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
b5d9d4fff3
commit
4d1113ef0a
2 changed files with 4 additions and 2 deletions
|
|
@ -20,7 +20,7 @@ cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "e171eca32
|
|||
epiphany-model-adapter = { path = "../epiphany-model-adapter" }
|
||||
epiphany-tool-adapter = { path = "../epiphany-tool-adapter" }
|
||||
fs2 = "0.4"
|
||||
ghostlight-persona-projection = { git = "https://github.com/GameCult/Ghostlight.git", rev = "22281891cbf9258db80c15a9fd465e6fa251e7dd", package = "ghostlight-persona-projection" }
|
||||
ghostlight-persona-projection = { git = "https://github.com/GameCult/Ghostlight.git", rev = "22937b71f056d2000dd7ea1f6af0c45825de495f", package = "ghostlight-persona-projection" }
|
||||
ed25519-dalek = "2"
|
||||
ignore = "0.4.23"
|
||||
rmp-serde = "1"
|
||||
|
|
|
|||
|
|
@ -282,6 +282,7 @@ pub fn build_persona_projector_prompt_with_transcript(
|
|||
typed_context: &typed_context,
|
||||
visible_stimulus: &render_transcript(transcript),
|
||||
domain_guidance: "Project personhood rather than a job label: values, mood, dignity, pressure, needs, fascinations, wounds, bonds, obligations, fatigue, and what repo-body motion feels like from inside. The dependency web may be felt but grants no organ authority. Mind alone admits durable state; Substrate Gate alone grants repo access.",
|
||||
word_budget: 180,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
@ -292,6 +293,7 @@ pub fn build_persona_turn_prompt(input: &PersonaTurnInput) -> String {
|
|||
identity: &input.identity.display_name,
|
||||
lived_stream: input.projected_state.trim(),
|
||||
domain_guidance: "This is Epiphany Persona cognition. Speak, hold silence, wonder, disagree, or form a private thought naturally. A parent Interpreter may propose bounded memory, public speech, or silence; Mind and external gates retain all consequence authority.",
|
||||
word_budget: 180,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
@ -339,7 +341,7 @@ Pending addressed pressure:
|
|||
typed_context: &typed_context,
|
||||
lived_stream: input.persona_prompt.trim(),
|
||||
persona_output: input.persona_output.trim(),
|
||||
output_schema: &persona_interpreter_effect_set_json_schema(),
|
||||
output_schema: Some(&persona_interpreter_effect_set_json_schema()),
|
||||
domain_guidance: &domain_guidance,
|
||||
},
|
||||
)
|
||||
|
|
|
|||
Reference in a new issue