Fail-fast checkpoint the arbiter mandated before committing to option A (protocol-level selfbot stream receive). dave/gate.mjs proves, live against Discord, that a user token can pass the voice DAVE/MLS handshake: - voice GW v8 IDENTIFY with max_dave_protocol_version=1 -> NO close 4017 - dave_protocol_version=1 negotiated (E2EE active on the channel) - @snazzah/davey drives full MLS membership: op25 external_sender -> op26 key_package -> op27 proposals -> op28 commit_welcome -> op29 announce_commit -> MLS session ready=true, stable 5s, voicePrivacyCode derived Confirms option A is viable: the selfbot can join the E2EE group as a full member, which is the prerequisite for receiving+decrypting the video RTP. PLAN.md updated with gate result, exact binary framing, and next A steps. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
253 B
253 B