Перейти к содержимому

2026-04-04 — v2.54.0 стабильный, десинхрон мьюта и Raspberry Pi

3–5 апреля — плотный RC-цикл, закаливший SinkMonitor, исправивший проблемы рестарта, десинхронизацию мьюта из баг-репорта сообщества и добавивший поддержку Raspberry Pi — итог: v2.54.0, v2.54.1 и v2.54.2 стабильные.

Шесть RC за один день:

  • rc.1: Рестарт-баннер застревал; рестарт падал под S6 overlay (UID 1000 → PID 1); update check ломался на OpenSSL 3.5 (ML-KEM oversized TLS Hello); удалён handoff_mode
  • rc.2: Эндпоинт логов возвращал пустой буфер в Docker (__main__ vs sendspin_client)
  • rc.3: pulsectl EnumValue не поддерживает int() — только строковое сравнение
  • rc.4: Docker update показывал docker pull вместо docker compose pull && up -d
  • rc.5/6: Таймер простоя не перезапускался после пробуждения; онбординг регрессировал в standby

PR #131 (Copilot coding agent) промотировал RC в стабильный с консолидированным чейнджлогом.

Issue #132: десинхрон мьюта после BT-реконнекта

Заголовок раздела «Issue #132: десинхрон мьюта после BT-реконнекта»

Пользователь @mrtoy-me обнаружил: после Bluetooth-реконнекта UI бриджа показывает Mute Off и аудио играет, но Music Assistant показывает Mute On. Причина: демон размьючивал PA-синк, но не уведомлял MA.

Исправление (v2.54.1): Родительский процесс детектирует sink_muted → false и пересылает unmute в MA. MUTE_VIA_MA по умолчанию включён.

  • Процесс зависал после рестарта — loop.stop() не вызывался
  • Bluetooth заблокирован на RPi — rfkill unblock bluetooth в entrypoint
  • Переполнение кнопок на мобильных в тёмной теме
  • Документация встроенных адаптеров RPi 4/5

PipeWire 1.0.5 не генерирует события смены состояния PA-синков для BT. Флаги демона теперь участвуют в управлении таймером параллельно с SinkMonitor — дуальная модель.

Документ в rnd/ анализирует PR #3585 Music Assistant (Local Audio Out) — возможность реализации bluetooth_audio провайдера с удалённой оркестрацией.

ВерсияДатаКлючевое
2.54.0-rc.1–rc.63–4 апрРестарт, TLS, EnumValue, Docker
2.54.04 апрSinkMonitor стабильный
2.54.14 апрЗависание процесса, мьют, RPi
2.54.25 апрPipeWire дуальная модель

Классический паттерн «последней мили»: архитектура SinkMonitor была правильной, но крайние случаи в системе типов pulsectl, модели событий PipeWire, процессном надзоре S6 и пост-квантовом хэндшейке OpenSSL потребовали индивидуальных исправлений. Каждый RC вызван реальным тестированием на разных окружениях (HAOS, Docker/PipeWire, Docker/RPi).