Herausgelöst aus #60, dessen ursprüngliche Frage — »kommen auf einer DAVE-Gilde entschlüsselte Pakete an?« — mit dem Live-Lauf vom 2026-08-11 mit ja beantwortet ist.
Die Lage
Damit der Sprach-Empfang funktioniert, hängt pyproject.toml an einem festen Commit:
py-cord @ git+https://github.com/Pycord-Development/pycord@326b72acc8d1d952ac002fe07ca65581cf5952bc
Das ist der Kopf von Pycord-PR #3159 (fix/voice-rec-2) vom 2026-07-22. Der PR ist offen, nicht gemergt und kollidiert inzwischen mit dem py-cord-master (mergeable_state: dirty); letzte Bewegung 2026-07-30. Ein Maintainer dort: »Wir sind keine Firma, wir können keinen Termin nennen.«
Warum es nötig ist
Die veröffentlichte 2.8.1 dekodiert in opus.py Opus vor dem Entschlüsseln (_decode_packet Zeile 711 gegen dave.decrypt Zeile 730). Auf einer DAVE-Gilde sieht der Dekoder deshalb Rauschen, wirft OpusError: corrupted stream, und der Empfänger reißt den Mitschnitt ab. Discord erzwingt DAVE seit dem 2026-03-02; ein Versuch, die Fassung 0 zu melden, endet mit WebSocket closed with 4017 — die Sprachverbindung wird dann ganz abgelehnt (am 2026-08-11 ausgeführt und wieder zurückgenommen).
Es gibt also keinen Weg daran vorbei, solange py-cord nichts veröffentlicht.
Was daran das Risiko ist
- Der Fremd-PR kann verschwinden: wird
fix/voice-rec-2 gelöscht oder umgeschrieben, ist der Commit unter Umständen nicht mehr abrufbar und der Image-Bau scheitert. Wir nageln auf den Commit, nicht auf den Branchnamen — das schützt vor stillem Wandern, nicht vor Löschung.
- Der Bau braucht
git im Image (ist ergänzt) und holt bei jedem Bau aus GitHub.
- Sicherheitsnachbesserungen von py-cord erreichen uns nicht, solange wir auf diesem Stand sitzen.
Ausstiegskriterium
Pycord #3159 gemergt und in einer Veröffentlichung enthalten → zurück auf eine Versionsangabe. Bis dahin bleibt dieses Issue der Beobachtungsposten.
Zu entscheiden
Wollen wir uns gegen das Verschwinden des Commits absichern — etwa durch einen eigenen Fork des Stands, aus dem wir bauen? Das kostet Pflege, macht den Bau aber unabhängig von einem fremden offenen PR.
Startpunkt
pyproject.toml (die festgenagelte Zeile mit Begründung), Dockerfile, Pycord #3159, Pycord #3139
Herausgelöst aus #60, dessen ursprüngliche Frage — »kommen auf einer DAVE-Gilde entschlüsselte Pakete an?« — mit dem Live-Lauf vom 2026-08-11 mit ja beantwortet ist.
Die Lage
Damit der Sprach-Empfang funktioniert, hängt
pyproject.tomlan einem festen Commit:Das ist der Kopf von Pycord-PR #3159 (
fix/voice-rec-2) vom 2026-07-22. Der PR ist offen, nicht gemergt und kollidiert inzwischen mit dem py-cord-master (mergeable_state: dirty); letzte Bewegung 2026-07-30. Ein Maintainer dort: »Wir sind keine Firma, wir können keinen Termin nennen.«Warum es nötig ist
Die veröffentlichte 2.8.1 dekodiert in
opus.pyOpus vor dem Entschlüsseln (_decode_packetZeile 711 gegendave.decryptZeile 730). Auf einer DAVE-Gilde sieht der Dekoder deshalb Rauschen, wirftOpusError: corrupted stream, und der Empfänger reißt den Mitschnitt ab. Discord erzwingt DAVE seit dem 2026-03-02; ein Versuch, die Fassung 0 zu melden, endet mitWebSocket closed with 4017— die Sprachverbindung wird dann ganz abgelehnt (am 2026-08-11 ausgeführt und wieder zurückgenommen).Es gibt also keinen Weg daran vorbei, solange py-cord nichts veröffentlicht.
Was daran das Risiko ist
fix/voice-rec-2gelöscht oder umgeschrieben, ist der Commit unter Umständen nicht mehr abrufbar und der Image-Bau scheitert. Wir nageln auf den Commit, nicht auf den Branchnamen — das schützt vor stillem Wandern, nicht vor Löschung.gitim Image (ist ergänzt) und holt bei jedem Bau aus GitHub.Ausstiegskriterium
Pycord #3159 gemergt und in einer Veröffentlichung enthalten → zurück auf eine Versionsangabe. Bis dahin bleibt dieses Issue der Beobachtungsposten.
Zu entscheiden
Wollen wir uns gegen das Verschwinden des Commits absichern — etwa durch einen eigenen Fork des Stands, aus dem wir bauen? Das kostet Pflege, macht den Bau aber unabhängig von einem fremden offenen PR.
Startpunkt
pyproject.toml(die festgenagelte Zeile mit Begründung),Dockerfile, Pycord #3159, Pycord #3139