Skip to content

Der Sprach-Empfang haengt an einem unveroeffentlichten py-cord-Commit #145

Description

@mdopp

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    autoloop:blockedParked: blocked/awaiting-user/epic umbrella

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions