Discord liefert Konversation, nicht Dateiautorschaft. Lernvisite speichert nach OAuth nur die numerische Discord-ID (Scope identify, kein stiller Serverbeitritt). Der Callback ist eine öffentliche HTML-Hülle; die Bestätigung läuft per authentisiertem POST unter Strict-Cookies — gleiches Muster wie bei Hub-Handoffs.
Deployment-Richtlinie (ADR 0024): eine Developer-Application und ein Bot für study-dev, study-qa und study-prod — aber getrennte Guilds, Kanäle, Rollen und Callback-Registrierungen pro Instanz. Bot-Token-Rotation betrifft alle Instanzen gemeinsam und muss operativ abgestimmt werden.
Der Membership-Worker (≈30 s Takt) liest nur aktive Konten mit Engineering-Pack und gespeichertem Discord-Link. Er vergibt verwaltete Rollen (z. B. Lesen vs. Mitarbeit für lokale Admins), zieht veraltete Rollen vor dem Hinzufügen ab und respektiert Guild-Screening: pending members erhalten keine Kursrolle. Der Bot tritt niemandem automatisch bei — Einladung und Serverregeln bleiben beim Menschen.
Kursressourcen in Lernvisite sind Kanal-Deep-Links plus Pack-Filter. Du kannst den Link sehen und trotzdem im Client „Kein Zugriff“ erhalten, wenn die Guild-Mitgliedschaft fehlt — das ist erwartetes Verhalten, kein Bug.
