symfonic.capabilities.memory.turn_scope¶
turn_scope ¶
The scope a turn's memory stages act on, in their composition's identity.
A kernel turn may state its scope (TurnRequest.scope), and that scope wins
over the one the capability was configured with: a bundle is folded once and
serves many tenants. CORE-171 adds the half that was missing. The stated scope
is converted in the identity version the capability was composed with, not
always positionally.
- A native v1 composition keeps every kind/ID pair of the stated scope, at any depth. A stated scope that cannot name its kinds is refused.
- A positional v0 composition takes only a stated positional
MemoryScope. A typed stated scope is refused: the turn's prompt compiles under the typed scope's native key (kernel.contracts.scope_path), so a positional recall could never render into it, and converting would have dropped recall from the prompt silently instead. - A
MemoryScopeof the other version is refused, never compared. The two versions never share visibility, so a mixed turn would read or write rows its composition never declared.
stated_turn_scope ¶
The turn's scope if it stated one, else bound; same version as bound.