Skip to content

0.3.0-rc4

Choose a tag to compare

@SNIPPIK SNIPPIK released this 01 Aug 12:29

🔄 RC4 — Release Candidate 4

🆕 Новое

  • Изменение структуры, удаление services

🌀 Система Циклов

  • 📚 Реализована новая архитектура: BaseCycle, TaskCycle
  • ⏱️ Адаптивное управление задержками с точным setTimeout и коррекцией дрейфа event loop
  • 🔄 Поддержка step, filter, execute, add, remove — API для кастомизации
  • 🧹 Автоматический и ручной GC после остановки плеера
  • 💾 Повторное использование буфера при инициализации аудио

🔐 End-to-End Шифрование (DAVE)

  • Полноценная интеграция DAVE: инициализация, переходы, ключи, защитные фреймы

⚙️ Команды

  • 🎤 Поддержка соло-команд
  • 🎛️ Пресеты для play: фильтры, громкость и т.д.
  • 🎲 Исправлен редкий баг с проигрыванием случайного трека
  • 📝 Добавлена команда report для отправки жалоб/ошибок
  • Исправлена проверка в команде seek

🌐 REST / API (Платформы)

  • 🔍 Исправлен механизм подбора трека при отсутствии прямого аудио
  • 🔧 Улучшено определение платформы по URL
  • 🛠️ Полностью переписан httpsClient
  • 🚫 Исправлена ошибка с фейковыми платформами (platform spoofing)
  • Теперь RestAPIThread правильно передает данные о платформе
  • Теперь rest/error обрабатывает тип отправки сообщения
  • Теперь yandex search отдает пустой array вместо ошибки

🎙️ Voice

  • Исправлено некорректное удаление голосового подключения

🔊 Audio

  • 🧮 Добавлен highWaterMark в BufferedAudio
  • 🧷 OpusEncoder теперь корректно обрабатывает head, tags сегменты
  • Теперь отправляется 3 SILENT_FRAME вместо 1 при старте

🎼 AudioPlayer

  • 🧠 Автономное управление жизненным циклом
  • 🧩 Поддержка SetArray для работы с фильтрами
  • ⌛ Добавлен timeout при неактивном аудио (автоостановка)
  • Улучшен плеер, теперь функция play является универсальной

🎧 Адаптивный Jitter Buffer

  • ⏳ Смещение времени в зависимости от event loop lag
  • 🔇 Устранение щелчков: автостабилизация буфера
  • 🔄 Переписан на do/while цикл

🌐 WebSocket Voice Gateway

  • 🔄 Переподключение при ошибках, улучшенное логгирование статусов
  • ✅ Полная поддержка Discord Gateway v8
  • 🔢 Добавлены: WebSocketOpcodes, DiscordGatewayCodes, DaveOpcodes
  • 📡 Добавлен User-Agent, включая интеллектуальное автоопределение
  • 🛡️ Установлен setMaxListeners для клиента Discord
  • 🎼 Исправлена рассинхронизация плеера при чтении аудио
  • 🧨 UDP сокеты корректно уничтожаются при новом запуске

📦 ClientSRTPSocket

  • 📊 Корректный расчёт header
  • 🔐 Усилена безопасность SRTP при коротких nonce

📥 Receiver

  • 🗣️ Начальная реализация приема аудио потока

🐞 Исправления (BugFixes)

  • 🖼️ Проблема с изображениями при получении треков автора
  • 🎵 Глобальные исправления поиска и получения аудио
  • Исправлен httpsClient, ранее возникала проблема с yandex
  • Изменено куча комментариев

🛠️ Технические улучшения

  • 🧹 Удалён g флаг у переиспользуемых RegExp
  • 🔢 Вернул Number.prototype.random
  • 🪵 Logger: буквенные префиксы I, W, D, E
  • 🧠 Ручной/динамический GC:
    • global.gc() вызывается при удалении последнего плеера
    • 📉 Потребление памяти снижено с 120MB до ~80MB

⚙️ Оптимизация Node.js

  • 🛠️ --optimize_for_size
  • ♻️ --expose-gc

📝 .env

  • 🗑️ Удалён player.preferred, теперь автоопределение таймера

⚡ Оптимизация

  • 🎨 Удалён discord.js Colors — теперь используется собственный enum

📜 Полный Changelog: GitHub Diff