Property PinnedMessageKeys
PinnedMessageKeys
A message whose AdditionalProperties carries any of these keys is pinned and
is never evicted, whatever the budget says. Default: one entry,
"qavren.edge.rag.context".
That literal is Qavren.Edge.Rag's RagCitations.ContextMessagePropertyKey,
duplicated here rather than referenced, because this package must not depend on that one.
A tier-1 test asserts the two strings are equal - the same deliberate duplication, with the
same guard, that sub-project 2 uses for its two query-generator service keys.
Pinning is what keeps the RAG block out of the eviction set. Without it the injected context is an unpaired user message at the tail, the reducer's "evict whole groups" rule has no group to put it in, and the first thing a tight budget would throw away is the grounding.
public IList<string> PinnedMessageKeys { get; }