diff --git a/crates/ghostlight-dungeon/src/persona.rs b/crates/ghostlight-dungeon/src/persona.rs index 322dcff..7f383d7 100644 --- a/crates/ghostlight-dungeon/src/persona.rs +++ b/crates/ghostlight-dungeon/src/persona.rs @@ -869,6 +869,7 @@ impl CellProjectionEngine { .await?; let verifier_context = serde_json::json!({ "local_attempt_contract":"A targetless local communicate at the source's exact current location faithfully records speech, an offer, a permission request, or a notice directed to an unnamed ordinary role. It records no listener, reply, acceptance, or outcome and must not be rejected merely because target_subject_ids is empty.", + "spatial_effect_contract":"A prepare, investigate, or other activity may include incidental walking, approaching, queuing, carrying, or repositioning around an unnamed local feature while the source remains inside the effect's supplied canonical location. The activity records the attempt and need not serialize every footstep. Reject omitted movement only when the Persona clearly commits the subject to a different supplied canonical location or population destination; local texture does not create topology or establish arrival.", "lived_stream":lived.text, "persona_turn":persona.narrative, "candidate_actions":appraisal.actions.iter().enumerate().map(|(index, action)| serde_json::json!({ @@ -1671,6 +1672,7 @@ mod tests { .lived_stream .contains("targetless local communicate") ); + assert!(request.lived_stream.contains("incidental walking")); assert!( request .lived_stream diff --git a/docs/architecture/ghostlight-multiresolution-agency.md b/docs/architecture/ghostlight-multiresolution-agency.md index 7abfd94..aed891a 100644 --- a/docs/architecture/ghostlight-multiresolution-agency.md +++ b/docs/architecture/ghostlight-multiresolution-agency.md @@ -399,6 +399,10 @@ environment or an unnamed ordinary role. Targetless `communicate` records the source speaking, offering, requesting permission, or notifying such a role. Neither form creates a listener, reply, acceptance, discovery, or target agency. All other target-bearing activity uses exact canonical subject IDs. +Activities may include incidental motion around unnamed local features while +remaining inside the source's canonical location. This does not create +topology or establish arrival. Only a clear commitment to a different supplied +canonical location or population destination requires a movement effect. The shared validators run in the Interpreter membrane, wave resolver, and kernel. One gestalt can contribute at most one selected pressure transition or diff --git a/notes/fresh-workspace-handoff.md b/notes/fresh-workspace-handoff.md index ae47c51..442bde4 100644 --- a/notes/fresh-workspace-handoff.md +++ b/notes/fresh-workspace-handoff.md @@ -186,6 +186,14 @@ canonical constituent reference set, including active reachable migration destinations. Scheduler slicing and wave admission consume that same derivation; the scheduler's private migration-destination helper was deleted. +That fix let the next strict run commit its preflight. In a sustained wave the +effect verifier then called two faithful local activities reversals because +their prose included walking to an embankment or nearby cove. The verifier now +receives the missing spatial contract: incidental motion within the supplied +canonical location belongs to the activity and creates no topology or arrival; +only movement to a different supplied canonical location requires a movement +effect. + The multiresolution body is deployed on Starfire. Typed health matched the immutable release, DeepSeek was ready, and the disposable live strategic-cell smoke committed three offscreen events plus three accessible news items without diff --git a/notes/ghostlight-current-system-map.md b/notes/ghostlight-current-system-map.md index 2bfbb99..d6e7006 100644 --- a/notes/ghostlight-current-system-map.md +++ b/notes/ghostlight-current-system-map.md @@ -128,6 +128,11 @@ permission, or notifies an unnamed ordinary role. Both admit ordinary texture without inventing a listener, response, acceptance, discovered fact, or target agency. +Activity effects operate at canonical-location granularity. Incidental motion +around unnamed local features remains part of the source-attributed attempt +and does not create topology or assert arrival. A different supplied canonical +location or population destination still requires the exact movement path. + Salient dormant members have their own `member_activity` path for ordinary local attempts. It uses the same bounded verbs, the member's exact location, their current leaf plus explicitly related or exactly co-located targets, and