Skip to content

v2.10.0 · The SFU is born (experimental audio) · Ctrl+K Search

Latest

Choose a tag to compare

@Pokled Pokled released this 06 Jul 19:05
1493132

Vocal : le SFU est né (audio expérimental)

Quatre jours après le CDC (SPECS/NODYX_SFU_CDC.md), le premier son a traversé le SFU de Nodyx : un PC et un téléphone en 4G (une barre, presque zone blanche), audio dans les deux sens, via l'infrastructure de l'instance, sans un octet chez un tiers. Le mur mathématique du mesh (15 spectateurs × 3 Mbps = impossible) a désormais sa réponse.

  • nodyx-sfu (Rust, zéro dépendance, zéro unsafe) : le cerveau vocal en trois étages hexagonaux, VoiceService (salons, sièges, kick, publish/subscribe, bascule hybride mesh↔SFU) → trait MediaEngine (le port, blobs de signaling opaques jamais lus par le métier) → adaptateur moteur. 25 tests contre un NullEngine : l'orchestration prouvée avant tout moteur réel, et le swap futur vers un moteur full-Rust garanti par construction
  • nodyx-sfu-mediasoup : l'adaptateur mediasoup (licence ISC, notice dans NOTICE) validé par spike (salon réel, pipe de fédération inter-workers, WebRtcTransport ICE/DTLS), et le daemon nodyx-sfud : API interne localhost à jeton obligatoire (comparaison en temps constant), HTTP minimal écrit main (~150 lignes), plage RTC UDP bornée (40000-40999, alignée sur le firewall, leçon nexus-turn), unité systemd durcie
  • Relais de signaling dans nodyx-core : events voice:sfu_* ADDITIFS et DORMANTS (sans VOICE_SFU_URL, tout répond sfu_disabled sans toucher ni daemon ni base), mêmes gardes d'admission que le mesh, identité issue du JWT, payloads bornés, rollback complet sur échec partiel. Le vocal mesh existant : zéro ligne de comportement modifiée, ses 385+ tests en témoignent
  • Client mediasoup-client + laboratoire /admin/sfu-lab : Device → paire de transports send/recv → micro publié → flux consommés, machine à états journalisée en direct, timeout sur chaque échange, nettoyage idempotent
  • Passe de relecture post-MVP : quatre défauts d'états fantômes corrigés (course de création de router, participant orphelin côté daemon après échec partiel, échec de session silencieux côté client, double consume sur annonces croisées)

Recherche Ctrl+K : elle cherche enfin

  • La palette n'appelait jamais le moteur de recherche, et son groupe FORUM interrogeait un endpoint inexistant : chercher un mot du contenu du site donnait toujours zéro résultat
  • Désormais : recherche full-text live dès 2 caractères (titres ET contenu des posts, extraits surlignés, lien direct jusqu'au message), et l'arbre complet des catégories aplati, sous-sous-catégories navigables au clavier