pub fn encode_transcript_for_content_hash(
transcript: &[ParticipantMessage],
bot_name: &str,
surface: &str,
) -> Vec<u8> ⓘExpand description
Canonical bytes the participation gate’s envelope binds to.
Covers the judged transcript plus the two prompt inputs that change the verdict: the bot’s own name and the surface wording. Each field is length-prefixed, so no boundary shift can move bytes between fields and leave the hash unchanged.
This is deliberately NOT the turn encoder: a turn binds
AgentStart.messages. Two encodings mean a captured turn envelope cannot
authorize an evaluation, or the reverse.