From 7cbb9e37a6de722bb72ef47b64fdda405fe42084 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Wed, 16 Sep 2026 10:59:31 +0200 Subject: [PATCH] Say what the library means, not who consumes it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four error strings and four comments named Eve, which is a consumer's interface and not a concept the kernel has. The errors now say what they refuse — a command ID, an opportunity, persisted controller work — and the comments name an operator interface or a consumer's payload. Nothing pins these strings: the four `#[error(...)]` literals appear only at their definitions, and no test reads a `Display` of them. Co-Authored-By: Claude Opus 5 --- crates/ghostlight/src/controllers.rs | 8 ++++---- crates/ghostlight/src/lib.rs | 8 +++++--- crates/ghostlight/src/patch.rs | 3 ++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/crates/ghostlight/src/controllers.rs b/crates/ghostlight/src/controllers.rs index 1a6c629..6e4b346 100644 --- a/crates/ghostlight/src/controllers.rs +++ b/crates/ghostlight/src/controllers.rs @@ -1491,7 +1491,7 @@ fn persona_request_shape_is_valid(request: &PreparedInference) -> bool { #[derive(Clone, Debug, Error, PartialEq, Eq)] pub enum ControllerWorkStoreError { - #[error("Eve command ID already belongs to the other controller mode")] + #[error("command ID already belongs to the other controller mode")] CommandModeConflict, #[error("{detail}")] Fault { detail: String }, @@ -2573,15 +2573,15 @@ pub enum ControllerError { NoOpportunity { expected: ControllerMode }, #[error("subject has more than one current decision opportunity")] AmbiguousOpportunity, - #[error("Eve opportunity does not match this exact controller command")] + #[error("opportunity does not match this exact controller command")] OpportunityMismatch, #[error("controller opportunity has no Speak affordance")] SpeakUnavailable, #[error("controller opportunity grants no affordance")] NoGrantedAffordance, - #[error("Eve command ID does not match persisted controller work")] + #[error("command ID does not match persisted controller work")] CommandMismatch, - #[error("no persisted controller work exists for this Eve command")] + #[error("no persisted controller work exists for this command")] MissingControllerWork, #[error("{purpose:?} inference failed: {source}")] Inference { diff --git a/crates/ghostlight/src/lib.rs b/crates/ghostlight/src/lib.rs index 9b9f500..0df8612 100644 --- a/crates/ghostlight/src/lib.rs +++ b/crates/ghostlight/src/lib.rs @@ -1100,7 +1100,8 @@ pub struct WorldSnapshot { pub resources: Vec, pub routes: Vec, /// Already ordered by pressure, then attention debt, then id: one owner, so - /// Eve, the mesh projection, and any future driver read the same order and + /// an operator interface, the mesh projection, and any future driver read + /// the same order and /// none computes its own. pub opportunities: Vec, /// Everyone in a world shares the clock, and no controller can read a `due` @@ -1671,7 +1672,8 @@ fn require_system_capability(caller: &CallerId, body: &CommandBody) -> Result<() } } -/// The owner may tick from Eve; the tick task may tick with no session. Nothing +/// The owner may tick from an interface; the tick task may tick with no +/// session. Nothing /// else may tick. fn require_clock_caller(state: &WorldState, caller: &CallerId) -> Result<(), KernelError> { if caller == &CallerId::System(SystemCapability::Clock) { @@ -12939,7 +12941,7 @@ mod clock_tests { assert!(matches!(error, KernelError::Unauthorized), "{error:?}"); } - // The owner may tick from Eve. + // The owner may tick from an interface. submit_owner( &mut kernel, &active, diff --git a/crates/ghostlight/src/patch.rs b/crates/ghostlight/src/patch.rs index fd3f7ca..5cb1b8d 100644 --- a/crates/ghostlight/src/patch.rs +++ b/crates/ghostlight/src/patch.rs @@ -2270,7 +2270,8 @@ pub(super) fn kernel_speak_grant() -> BTreeSet> { /// Zero roles, zero slots, one empty band, one utterance, and one audience: a /// voice fills the room it is standing in. Zero roles is load-bearing — the -/// Interpreter lane submits no bindings and Eve's speak payload carries only +/// Interpreter lane submits no bindings and a consumer's speak payload carries +/// only /// text. The precondition is not vacuous: an unplaced subject has no /// co-location audience and fails with `NoAudience`. pub(super) fn kernel_speak_entry() -> Affordance {