Skip to content

3.0.38

Choose a tag to compare

@github-actions github-actions released this 18 Sep 18:36
· 59 commits to main since this release

3.0.38 发布说明

变更

由提交历史按类型自动生成:新功能 / Bug 修复 / 优化·重构·依赖 / 文档 / 其他。

变更日志 (v3.0.37..v3.0.38)

新功能

  • 13b7bd9 feat(groups): ESPHome 密钥独立弹窗 + 四区块统一「扫描」+ AirPlay 主动扫描
  • 838b1e7 feat(sendspin): 升级迁移——旧版插件页全局密钥继承为已连接设备的密钥
  • ea6828d feat(sendspin): ESPHome 6053 密钥/音量下放到每台设备,移除插件页全局配置
  • af9659e feat(sendspin): 统一「解绑」语义——撤销记住但保留设备行
  • 27e4bb4 feat(peer): Web 页面上下线语义——关掉即清内存态,重开原样恢复
  • a62c17a feat(sendspin): 播放器页 Sendspin 设备行对齐 DLNA 显示语义

优化 / 重构 / 依赖

  • b73ac64 perf(sendspin): 流式解码窗口高水位 60→30 秒,与 MA 对齐

涉及文件与影响面

CHANGELOG.md | 56 ++
backend/package.json | 2 +-
backend/src/db/index.ts | 23 +
backend/src/db/schema.ts | 5 +
backend/src/plugins/types.ts | 3 -
backend/src/routes/api/index.ts | 253 +++++-
backend/src/services/airplay/discovery.ts | 55 +-
backend/src/services/peer.ts | 59 +-
backend/src/services/playerPrefs.ts | 16 +
backend/src/services/plugin/renderers/sendspin.ts | 35 +-
backend/src/services/sendspin/child.ts | 12 +-
backend/src/services/sendspin/childMain.ts | 62 +-
backend/src/services/sendspin/deviceState.test.ts | 290 ++++++-
backend/src/services/sendspin/deviceState.ts | 233 +++++-
.../src/services/sendspin/esphomeBridge.test.ts | 124 ++-
backend/src/services/sendspin/esphomeBridge.ts | 281 +++++--
backend/src/services/sendspin/index.ts | 283 +++++--
backend/src/services/sendspin/ipcProtocol.ts | 8 +-
backend/src/services/sendspin/pluginConfig.test.ts | 41 +-
backend/src/services/sendspin/proxy.ts | 8 +-
backend/src/services/sendspin/streamSource.ts | 11 +-
backend/src/services/sendspin/supervisor.ts | 14 -
backend/src/services/ws/index.ts | 33 +-
backend/tests/airplay/rescan.test.ts | 14 +
backend/tests/routes/peerOffline.test.ts | 174 +++++
backend/tests/routes/sendspinEsphomeDevice.test.ts | 280 +++++++
backend/tests/sendspin/dialTargetForget.test.ts | 189 +++++
backend/tests/services/peerLifecycle.test.ts | 143 ++++
docs/SENDSPIN_MULTIROOM_STREAMING_PLAN.md | 22 +-
frontend/e2e/groups-sendspin.spec.ts | 220 ++++++
frontend/src/components/MfIcon.vue | 4 +-
frontend/src/layouts/MainLayout.vue | 10 +
frontend/src/locales/en-US.json | 54 +-
frontend/src/locales/zh-CN.json | 54 +-
frontend/src/stores/player.ts | 31 +
frontend/src/views/Groups/index.vue | 860 +++++++++++++++++++--
frontend/src/views/admin/Plugins/index.vue | 58 +-
37 files changed, 3514 insertions(+), 506 deletions(-)

镜像

  • ghcr.io/ray5378/musicflow:3.0.38 (Docker Hub 同步: ray5378/musicflow:3.0.38)

升级步骤

  • 加载项/容器直接拉取最新镜像重建重启即可;数据自动迁移保留。
  • 若依赖上一版本新增索引/缓存,首次启动会自动补齐,无需手工操作。

升级步骤(本版专用)

  1. 服务端(Docker / HA 加载项)
    • Docker:docker compose pull && docker compose up -d
    • HA 加载项:点「更新」后重启加载项
    • 数据与插件配置自动迁移保留,无需手工操作。
  2. Web 前端:升级后按 Ctrl + Shift + R 强刷一次。本版改了播放器页的按钮布局与弹窗结构,
    旧的 JS / 资源缓存会让页面停留在旧样子。
  3. 客户端配套版本:client 当前最新为 MusicFlow-client v5.0.15(Android apk + Windows setup),
    建议同步升级。
  4. 预览面板 / 功能开关本次无新增预览面板与功能开关。插件配置页原有
    「流式解码(省内存)」开关保持默认开启 —— 本版只把它的滑动窗口高水位由 60 秒收到 30 秒
    (与 Music Assistant 的 30 秒对齐),内存上限随之从 ~23MB 降到 ~11.5MB。

本版需要你知道的两点变化

  • Sendspin 设备行新增独立的「ESPHome 密钥」入口:原来密钥 / 端口 / 测试连接与设备音量滑杆
    挤在同一个弹窗里,现在拆成两个独立弹窗,行内两个按钮各自反映连接状态。
    已填过的密钥与设备音量原样保留,不需要重新填写(密钥明文只对具备播放器管理权限的账号回显)。
  • seek 回跳的容错略微变小:窗口由 60 秒收窄到 30 秒后,回跳超出窗口会重建解码(约 1 秒空窗)。
    日常整曲播放无影响,长曲频繁回拖时可能更常听到这一下空窗。