c0c76a4715
The per-message ephemeral context prompt re-renders every turn, and any byte change (Discord auto-thread rename, reset notes, voice channel state) both breaks the provider prompt-cache prefix at the head of every request and changes the gateway agent-cache signature, forcing a full agent rebuild per message. Pin the rendered block per session keyed by a hash of exactly the fields it renders, so only a real input change (rename, topic edit, /sethome, redact_pii flip) re-renders; deliver one-shot per-turn facts (auto-reset note, first-contact intro, voice-channel changes) on the current user message via the api_content sidecar instead of the system prompt; sort get_connected_platforms for byte-stable ordering.