2026-04-06 — Режим простоя, диета Docker и единый брендинг (v2.55.0)
Финальный день недели — релиз с новыми фичами: система режимов простоя, заменившая два запутанных числовых поля одним выпадающим списком с четырьмя понятными стратегиями, масштабная оптимизация Docker-образа и визуальная унификация всех каналов. Двенадцать RC-итераций привели к v2.55.0 стабильному.
Что выпущено
Заголовок раздела «Что выпущено»Режим простоя (idle_mode)
Заголовок раздела «Режим простоя (idle_mode)»Старое поведение имело два независимых параметра: keepalive_interval и idle_disconnect_minutes. Новый enum idle_mode заменяет оба одним выпадающим списком:
| Режим | Поведение | Для чего |
|---|---|---|
| default | Без действий; колонка решает сама | Колонки с хорошим авто-сном |
| power_save | Suspend PA-синка → A2DP освобождается → колонка спит, BT подключён | Быстрое возобновление без реконнекта |
| auto_disconnect | Полное BT-отключение + демон → null-sink | Аналог старого idle_disconnect_minutes |
| keep_alive | Инфразвуковые импульсы для удержания A2DP | Колонки, отключающиеся при цифровой тишине |
Power save — новый режим. Использует инфраструктуру SinkMonitor из v2.54.0: после настраиваемой задержки (1–60 мин) бридж suspend’ит PA-синк через asuspend_sink(). A2DP-транспорт освобождается, колонка засыпает, Bluetooth остаётся.
Инфразвуковой keepalive — улучшение старого режима. Вместо цифровой тишины генерируются импульсы синусоиды 2 Гц на −50 дБ: ниже порога человеческого слуха, но ненулевые PCM-данные удерживают A2DP-транспорт.
Автомиграция конфига при старте: keepalive_interval > 0 → keep_alive, idle_disconnect_minutes > 0 → auto_disconnect.
Docker-образ −51%
Заголовок раздела «Docker-образ −51%»С 916 МБ до ~450 МБ через три раунда оптимизации:
- Раунд 1 (rc.7): Удалён системный FFmpeg — PyAV бандлит свои библиотеки в
av.libs/. −37% (916→580 МБ) - Раунд 2 (rc.9): Глубокая чистка транзитивных зависимостей (FFmpeg/GStreamer/кодеки от PulseAudio), strip символов отладки, чистка stdlib. −51% (916→450 МБ)
- Раунд 3 (rc.10): Возврат
libasound2-plugins— нужен sounddevice/PortAudio для обнаружения аудиовыходов
Единый брендинг
Заголовок раздела «Единый брендинг»Все визуальные активы заменены на дизайн wave-bridge с лендинга (два столба + три волны):
- HA addon иконки: stable=teal-purple, rc=gold, beta=red
- Все логотипы и фавиконы. ~310 КБ → ~55 КБ
Обновления зависимостей
Заголовок раздела «Обновления зависимостей»dbus-fast4.0.0→4.0.4,ruff0.11.13→0.15.8numpyвозвращён к<2.0после краша X86_V2 на QEMU- CI:
docker/build-push-actionv6→v7,actions/download-artifactv4→v8
Активность сообщества
Заголовок раздела «Активность сообщества»- Issue #123: Нет звука после удаления бриджа — null-sink
sendspin_fallbackостался дефолтным - Issue #133: Синки не появляются после перезагрузки на PipeWire/Ubuntu
Хронология
Заголовок раздела «Хронология»| Версия | Ключевое |
|---|---|
| rc.1 | idle_mode enum, инфразвук, PA suspend |
| rc.2–3 | Стилизация, секунды → минуты |
| rc.4 | Исправление config download в Ingress |
| rc.5–6 | Зависимости, NumPy <2.0 |
| rc.7–10 | Docker диета (3 раунда) |
| rc.11–12 | Единый брендинг |
| 2.55.0 | Стабильный релиз |
Почему это важно
Заголовок раздела «Почему это важно»Система idle_mode — кульминация работы над SinkMonitor из v2.53–2.54. Четыре режима дают пользователям понятную модель вместо двух взаимодействующих числовых параметров.
Docker-диета критична для Raspberry Pi — меньше места на SD-карте, быстрее обновления. Единый брендинг закрывает визуальное несоответствие между лендингом и HA addon.
Двенадцать RC за день — рекорд проекта. Каждый решал реальную проблему, обнаруженную в тестировании.
Тестов: 1088 Python. Всего релизов с v2.52.0: 33 (8 стабильных + 25 RC).