Changelog
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[v2.13.1] - 2026-10-08
✨ New Features
🐛 Bug Fixes
76ae4d3- hls: seek 流增加 Content-Length 与 Range 支持 (commit by @hanxi)5670554- jsplugin: 同步 MIoT 对话轮询修复 (commit by @hanxi)fb0d644- lynx: 同步安卓通知栏歌词修复 (commit by @hanxi)8797dc3- jsplugin: 更新 MIoT 切歌复播修复 (commit by @hanxi)5479a2d- miot: 同步语音序号口令误匹配修复 (commit by @hanxi)7503495- miot: 同步播放失败标记恢复修复 (commit by @hanxi)69bd9e5- jsplugin: 同步 MIoT 后台返回后状态恢复修复 (commit by @hanxi)ea4f258- jsplugin: 同步 Lynx Android 插件前台恢复修复 (commit by @hanxi)e3d837b- miot: 更新插件以修复继续播放单曲循环 (commit by @hanxi)81ea9a5- dlna: 同步投屏接收兼容与客户端控制修复 (commit by @hanxi)d4cd66b- jsplugin: 修复客户端断开后的插件激活 (commit by @hanxi)395ff17- docs: 补齐落地页路由器安装入口 (commit by @hanxi)b4460b4- clients: 同步投屏修复与错误日志优化 (commit by @hanxi)38631c2- lynx: 同步 Android 原生插件加载与恢复验收 (commit by @hanxi)ddd5669- web: 修复子路径部署时静态资源前缀丢失 (commit by @hanxi)aa59317- metadata: 同步 MP3 时长精度与 MIoT 尾部切歌修复 (commit by @hanxi)4dd7ef4- miot: 同步歌曲搜索状态修复 (commit by @hanxi)0dadaba- jsplugin: 同步客户端跨仓库发布包支持和开发文档 (commit by @hanxi)09043ab- jsplugin: 同步根清单空哈希兼容和开发文档 (commit by @hanxi)
📝 Documentation Changes
68732b8- update CHANGELOG for v2.13.0 (commit by @github-actions[bot])bb7c225- lynx: 同步双语客户端指南与文档站入口 (commit by @hanxi)5945a02- lynx: 同步已验证的 dev 发布说明 (commit by @hanxi)37e1530- lynx: 同步 Firefox 验收与环境限制记录 (commit by @hanxi)68d6465- lynx: 同步 Firefox 音频环境与快捷键验收 (commit by @hanxi)cd1f6fe- lynx: 同步 Android 隔离设备复测记录 (commit by @hanxi)d5df76a- lynx: 同步 Android 系统复制与恢复验收 (commit by @hanxi)1630290- plugins: 补充 GitHub topic 自动发现发布提醒 (commit by @hanxi)
🔧 Chores
2866ec2- bump clients/player 子模块 (commit by @hanxi)8d44742- clients: 同步两端插件管理入口改进 (commit by @hanxi)f9a8c21- player: 同步商店无限滚动与底部导航避让修复 (commit by @hanxi)28c899b- lynx: 同步弹窗布局修复 (commit by @hanxi)724b420- plugins: 更新 MIot 提前切歌修复 (commit by @hanxi)782a31a- plugins: 同步 miot 定时任务日志时间修复 (commit by @hanxi)eaa1ad2- plugins: 更新 miot 子模块修复 DLNA 投屏 (commit by @hanxi)443dc3b- player: 更新客户端子模块以同步 Windows WebView 窗口位置 (commit by @hanxi)b17bbba- lynx: 同步多音轨与客户端更新实现 (commit by @hanxi)2517651- lynx: 同步 Android 设备缓存基础实现 (commit by @hanxi)7381b77- lynx: 同步 iOS 设备缓存源码与验证配置 (commit by @hanxi)12b8270- lynx: 同步 HarmonyOS 缓存源码与新版兼容声明 (commit by @hanxi)cacf684- lynx: 同步批量缓存与下载任务管理 (commit by @hanxi)90c231b- lynx: 同步离线缓存管理与播放 (commit by @hanxi)db167c0- lynx: 同步 Web 歌单导入导出 (commit by @hanxi)2be5c7b- lynx: 同步 Web 播放快捷键 (commit by @hanxi)71220b9- lynx: 同步剪贴板写入确认 (commit by @hanxi)30cf5cf- lynx: 同步通知歌词与音频契约补齐批次 (commit by @hanxi)7d462a4- lynx: 同步插件前台恢复与 SDK 注册修复 (commit by @hanxi)78ce304- lynx: 同步 HarmonyOS 编译修复与验收文档 (commit by @hanxi)fd9c624- lynx: 同步本地交付包验收记录 (commit by @hanxi)d2f4fb0- lynx: 同步 WebKit 验收证据 (commit by @hanxi)c1b846d- lynx: 同步原生验收文档与环境条件 (commit by @hanxi)d49aff1- lynx: 同步 Web 部署实测文档 (commit by @hanxi)2b8f360- lynx: 同步插件真实可见性验收文档 (commit by @hanxi)00d5b78- lynx: 同步 HarmonyOS 插件模板加载修复 (commit by @hanxi)d1d8938- lynx: 同步 iOS 模板加载与壳兼容声明 (commit by @hanxi)d3e28c3- lynx: 同步模板能力回归与新壳交付记录 (commit by @hanxi)dbdfa6f- lynx: 同步 Web 子路径修复与交付记录 (commit by @hanxi)96eb82b- lynx: 同步 Android 暂停定位修复与锁屏验收 (commit by @hanxi)b71861d- lynx: 同步封面验收与 Firefox 观察文档 (commit by @hanxi)9cec269- plugins: 同步 MIoT 对话轮询优化 (commit by @hanxi)e9b2315- clients: 同步长歌名滚动开关客户端版本 (commit by @hanxi)f88076d- plugins: 同步 MIoT 状态查询限流修复 (commit by @hanxi)65f6104- clients: 同步 GitHub 社区插件发现与原生修复 (commit by @hanxi)454ba85- clients: 同步社区插件发布标签兼容修复 (commit by @hanxi)513483e- clients: 同步 dev 服务端插件兼容规则 (commit by @hanxi)37afed3- lynx: 同步自动热更新功能子模块指针 (commit by @hanxi)d8d41c8- miot: 同步播放兼容设置说明 (commit by @hanxi)a09bbca- release version 2.13.1 (commit by @hanxi)
[v2.13.0] - 2026-09-30
💥 BREAKING CHANGES
due to
20cf441- 彻底移除 WebF 渲染引擎支持 (commit by @hanxi):声明 renderEngine: "webf" 的插件在新宿主上安装/更新
会被拒绝;存量已安装条目由客户端回落到系统 WebView。
songloft-org/songloft#341
✨ New Features
2b8bbf2- jsplugin: 主页插件网格新增自定义排序设置 (commit by @hanxi)0606c81- cover: 视频无封面时从视频抽帧兜底 (commit by @hanxi)0b8c0d2- jsplugin: songs.create 透传 is_video;同步 player/lynx/sdk 子模块 (commit by @hanxi)e69fe70- jsplugin: 向插件下发主题外观参数,支撑胶囊播放器等非颜色样式 (commit by @hanxi)
🐛 Bug Fixes
93b20b0- playlist: 歌单歌曲排序增加二级排序键,修复等值行下升降序无效 (commit by @hanxi)1d34f77- ci: 修复 Pages 构建与 Release 发布两个失败 (commit by @hanxi)a156dca- jsplugin: 修插件商店 icon 显示为首字符 (commit by @hanxi)81c582e- rename: 手动编辑同步重命名文件包含歌手前缀 (commit by @hanxi)f8aec42- backend: 修复关键功能 Bug(MarshalJSON 变异、Logout clientID、随机数安全) (commit by @hanxi)4c6b219- jsplugin: 插件安全加固——请求 body、下载、解压、文件追加、进程数限制 (commit by @hanxi)27bf3c9- backend: 系统性修复 9 处并发安全问题 (commit by @hanxi)a932463- handlers: 统一错误处理与 API 响应一致性 (commit by @hanxi)947a6f5- backend: 输入校验与资源管理加固(Batch 5) (commit by @hanxi)002ef2a- scan: 按 mtime 触发扫描重提取;客户端歌词缓存按 updatedAt 失效 (PR #477 by @hanxi)5b9ef13- source: 补全音源解析缓存键,避免跨排除集/时长串缓存 (PR #486 by @tangsong404)
♻️ Refactors
📝 Documentation Changes
171e928- update CHANGELOG for v2.12.1 (commit by @github-actions[bot])437fc90- 整理 CHANGELOG.md (commit by @hanxi)c57fb25- repowiki: 同步 Batch 1-6 代码修改到文档 (commit by @hanxi)6f27a69- 全仓库文档与实现一致性同步 (commit by @hanxi)494b375- player: 同步胶囊迷你播放器重构后的前端架构说明并 bump 子模块 (commit by @hanxi)c8939d4- 修正 Linux webview 口径与许可证,跟进 player 子模块 (commit by @hanxi)3f46307- 同步落后于代码的文档 (commit by @hanxi)
🔧 Chores
c6ed3e6- submodule: 升级 clients/player 与 clients/player-lynx 至插件排序版本 (commit by @hanxi)033964b- submodules: bump player / player-lynx / tv (commit by @hanxi)a68fbf3- home: bump player 子模块(首页定位到正在播放歌单) (commit by @hanxi)449d65f- miot: bump 子模块(诊断日志 + X08E 兼容 + v2026.9.16)e565c66- miot: 更新子模块指针到 bb1e962 (commit by @hanxi)06f054a- miot: bump 子模块(播放时支持从歌单删除歌曲) (commit by @hanxi)4ac6f09- submodules: 更新 5 个子模块指针 (commit by @hanxi)6adc74e- submodules: 更新 clients/player 指针修复 CI iOS 构建 (commit by @hanxi)308bac0- miot: 升级 miot 插件子模块指针,修复定时任务起始歌曲不刷新 (commit by @hanxi)5cc57f3- miot: 升级 miot 插件子模块指针,新增"播放第 N 首"语音口令 (commit by @hanxi)d78fb9e- deps: 升级子模块指针,长歌单添加可拖动滚动条 (commit by @hanxi)6532d34- miot: 更新 songloft-plugin-miot 指针至 df0b74c (commit by @hanxi)eb63aee- subs: 更新 miot 与 player 子模块指针至滚动条修复 (commit by @hanxi)c5ca49b- miot: 更新 miot 插件子模块指针至 89e9bd7(切歌尾部校验修复 #481) (commit by @hanxi)7333a06- player: 更新 player 子模块指针至 f705992(单尖括号逐字 LRC 支持 #483) (commit by @hanxi)5f82458- 更新 player/lynx/miot 子模块指针 (commit by @hanxi)c70c547- 更新 player/miot 子模块指针(插件主题外观与页面样式优化) (commit by @hanxi)c29b654- submodule: 更新 player/lynx/tv/toolchain 子模块指针 (commit by @hanxi)536e764- release version 2.13.0 (commit by @hanxi)
[v2.12.1] - 2026-09-14
✨ New Features
fbba7e4- play-history: 支持 tag 上下文并删标签时级联清理历史 (commit by @hanxi)f98ac60- 歌曲支持按文件大小排序、指纹失败详情查看、修复 401 重复弹窗 (commit by @hanxi)3bbdeca- 曲库新增文件夹浏览视图(后端) (commit by @hanxi)799b0d5- library: 曲库新增 tag 视图,修复 PUT library-browse 的 400 (commit by @hanxi)08b9ab7- theme: 主题包 schema 加独立 glassColor 字段 (commit by @hanxi)01e4830- theme: 主题包数据增加 navigationStyle 字段 (commit by @hanxi)fff2188- playlist: 歌单列表支持按歌单内歌曲来源筛选 (commit by @hanxi)01a8454- scan: 多值歌手关联与按歌手检索 (commit by @hanxi)
🐛 Bug Fixes
6e1b354- scan: Windows 路径处理导致重复导入与自动歌单无限循环 (commit by @hanxi)c14cbc6- playlist: 修复"按一级子目录"自动歌单在绝对路径下不分组 (commit by @hanxi)a551fba- bubble_up 自动歌单越过 music_path 创建上级目录歌单 (PR #428 by @hanxi)9c27613- jsplugin: 自动更新在插件忙时推迟热重载 (commit by @hanxi)75fc772- jsplugin: songs.create 桥接导入补元数据探测,避免 duration 长期为 0 (commit by @hanxi)e7807ff- play: 转码播放不再阻塞首个请求,实时流补上 Range 支持 (commit by @hanxi)4e6c9bc- scan: 大曲库扫描流式入库,取消不再丢弃已导入成果 (commit by @hanxi)67a22ef- playlist: CUE 专辑歌单使用目录封面图片 (commit by @hanxi)38b837e- jsplugin: 修复 HarmonyOS 插件认证问题 (commit by @hanxi)d9c2a78- metadata: 优化 ffprobe 远程探测并添加 Range 回退 (PR #456 by @deerwan)09feebf- mobile: 内嵌后端监听所有网卡,修复本地模式投屏小爱音箱失败 (commit by @hanxi)
⚡ Performance Improvements
♻️ Refactors
📝 Documentation Changes
19d6ec0- update CHANGELOG for v2.12.0 (commit by @github-actions[bot])b93f918- frontend: 补宿主页视口滚动条这层抖动坑,订正插件公共资源过期引用 (commit by @hanxi)
🔧 Chores
b2ab664- 更新 songloft-player 子模块指针(歌单排序升降序切换) (commit by @hanxi)3955bb9- 更新 songloft-player 子模块(文件夹根视图修复) (commit by @hanxi)c676a4a- bump clients/player-lynx — P1b 设置行彩色色调图标 (commit by @hanxi)c648c4a- bump clients/player-lynx — P2 SongRow Apple 曲目行形态 (commit by @hanxi)6d537aa- bump clients/player-lynx — P3 导航度量令牌化 + 配色 (commit by @hanxi)df307dd- bump clients/player-lynx — P4 首页排版 + 统计卡 (commit by @hanxi)c2d0429- bump clients/player-lynx — P5 歌单列表与详情 (commit by @hanxi)fffdea9- bump clients/player-lynx — P6 播放器迁 Apple (commit by @hanxi)fee14a9- bump clients/player-lynx — P7 登录页迁 Apple (commit by @hanxi)b8ea573- bump clients/player-lynx — P8 对话框/抽屉/菜单 + 全仓别名扫荡 (commit by @hanxi)92447c9- bump clients/player-lynx — P9 硬编码 px 清零 (commit by @hanxi)0a6eeb9- bump clients/player-lynx — P10 删除 Muse 颜色别名层 (commit by @hanxi)216af44- bump clients/player-lynx — Docker Chrome 真机验证记录 (commit by @hanxi)ff1db97- bump clients/player-lynx — font-role 扫荡删 legacy --font-* (commit by @hanxi)13fe0ff- bump clients/player-lynx — 修复计划文档中文乱码 (commit by @hanxi)dc923b3- player: 更新 songloft-player 子模块指针(WebF 桌面端最小化恢复重载修复) (commit by @hanxi)c9a9931- bump clients/player-lynx — 实机前 Apple 风格五项收尾cac5a30- bump clients/player-lynx — 登录页全屏白底无卡(Apple 登录式)ad23166- bump clients/player-lynx — 实机前收尾五项 + 截图审计 + 宽屏侧栏 iPad 化 + 登录页白边修复a5e50e6- bump clients/player-lynx — 设置圆角对齐 iOS 26 + 外观页全面 iOS 化6f0c05b- bump clients/player-lynx — 勾选列表选中项去背景只留对勾 + Icon accent 修正1b37ad2- bump clients/player-lynx — Icon PALETTES 全部对齐 Apple(完成迁移遗漏)13b89b5- bump songloft-plugin-miot 子模块指针(修复语音设置按钮超宽 #440) (commit by @hanxi)c00d8ef- bump clients/player — 宿主页禁掉视口滚动条根治整页抖动 (PR #439 by @hanxi)c29f7f3- bump clients/player — 曲库宽屏行内与多选工具栏补「管理标签」入口 (PR #441 by @hanxi)1161ecf- bump clients/player-lynx — 播放队列抽屉改虚拟化 <list>,修 500+ 首打开卡死 (commit by @hanxi)74fdb6a- bump songloft-plugin-miot 子模块指针(15acf85..d67fe74) (commit by @hanxi)e55b46a- plugins: bump miot 子模块(v2026.9.8 + 歌单回滑到顶空白修复) (commit by @hanxi)499b37d- deps: 更新 miot 子模块至 0940c11 (commit by @hanxi)90c20b9- update player-lynx submodule (title unification + iOS font-scale fix) (commit by @hanxi)aae23a2- update player-lynx submodule (#9 播放全部队列补全 + mini/全屏播放 UI) (commit by @hanxi)bd60164- update player-lynx submodule (harmony webview DOM storage patch) (commit by @hanxi)88cab5d- update player-lynx submodule (auto-apply harmony webview patch) (commit by @hanxi)c2ec614- bump songloft-plugin-miot for #455 (commit by @hanxi)e2b505e- subrepo: 升级 player-lynx 子模块(插件商店无限滚动) (commit by @hanxi)96eb892- bump clients/player to fix lyric race condition (commit by @hanxi)cc05f58- miot: 更新子模块至 aefb02d (commit by @hanxi)d74ab2e- submodule: 升级 clients/player-lynx 至多歌手编辑版本 (commit by @hanxi)b769f4c- release version 2.12.1 (commit by @hanxi)
[v2.12.0] - 2026-08-31
✨ New Features
747468c- jsplugin: 新增 net:insecure-tls 权限,支持 fetch 跳过 TLS 证书校验 (commit by @hanxi)ba43f5b- 自定义歌曲标签功能 (Phase 1) (PR #414 by @hanxi)636c35f- tags: 标签同步写入音频文件 SONGLOFT_TAGS (PR #414 by @hanxi)644353e- tags: 开放 JS 插件 tags Bridge API (PR #414 by @hanxi)5afffc6- Lynx native rendering — docs, backend validation, and submodule bump (commit by @hanxi)
🐛 Bug Fixes
253ac00- jsplugin: 修复 Docker 环境 MIoT 初始化失败 (commit by @hanxi)8bc0030- jsplugin: common.js 公开 favorite 与 invokeHost 出口 (commit by @hanxi)1275d2e- fingerprint: 修复大曲库重复检测超时 (commit by @hanxi)393f151- update github.com/hanxi/tag to include CustomTags field (commit by @hanxi)ab149e3- nav: 修正底部 Tab 配置限额口径,清理孤儿条目 (PR #416 by @hanxi)ef61d7a- jsplugin: 插件页适配 COEP 宿主与嵌入态滚动条不占宽 (commit by @hanxi)a75a9ff- restore corrupted Chinese characters (U+FFFD mojibake) (commit by @hanxi)3827bb0- strip v prefix from version API to prevent "vv2.11.6" display (commit by @hanxi)dcd774e- prevent double v prefix in version display (vv2.11.6) (commit by @hanxi)e9b53af- upgrade: 本地开发构建不再误报有可用更新 (commit by @hanxi)
♻️ Refactors
📝 Documentation Changes
c0a36c8- update CHANGELOG for v2.11.6 (commit by @github-actions[bot])4853a5e- community: 补充 Telegram 群组和频道 (commit by @hanxi)
🔧 Chores
4f5c804- jsplugin: 更新 MIoT 子模块指针 (commit by @hanxi)faf9811- 更新 miot 与 player 子模块指针 (commit by @hanxi)2de3e9a- 更新 miot 子模块指针(修复发版 job 的推送竞态与 tag 指向) (commit by @hanxi)9a09f15- 更新 miot 与 player 子模块指针(恢复歌单下拉搜索) (commit by @hanxi)ebbd1a2- 更新 songloft-player 子模块 (fix #409) (commit by @hanxi)5e7dd52- bump songloft-plugin-miot 子模块指针 (commit by @hanxi)638936d- 更新 songloft-player 子模块指针(修复歌单搜索框首次输入乱跳 #361) (commit by @hanxi)eaca864- 更新 songloft-player 子模块指针(播放速度按钮改回图标 + Flutter 界面取证 runner) (commit by @hanxi)1f25011- 去除品牌名称引用 (commit by @hanxi)8be28e9- 更新 songloft-player 子模块指针(首页底部改为曲库统计面板) (commit by @hanxi)8348d1f- 更新子模块指针(歌单转标签迁移) (commit by @hanxi)8bc6240- bump songloft-player (fix Korean tofu on web, #425) (commit by @hanxi)95217c1- release version 2.12.0 (commit by @hanxi)
[v2.11.6] - 2026-08-21
✨ New Features
31a4d18- jsplugin: fetch 响应头支持多值无损与标准 Headers 读取方法 (commit by @hanxi)85d4330- GET /api/v1/songs/{id}/tracks 音轨枚举端点 (commit by @hanxi)825f70f- scan: 外部封面图片查找 + 歌单封面优先外部图片 (commit by @hanxi)a954521- jsplugin: 新增 songs.refreshMetadata 桥接,支持带 Headers 的远程元数据提取 (commit by @hanxi)caecb48- playlist: 新增歌单置顶接口 (commit by @hanxi)
🐛 Bug Fixes
5deae33- services: MoveFile 跨盘检测兼容 Windows ERROR_NOT_SAME_DEVICE (commit by @hanxi)25786f9- app: 加 CORP 头,修 Web 端跨源封面/音频被 COEP 静默阻断 (commit by @hanxi)6c905f7- database: :memory: 限制为单连接,修并发用例随机报 no such table (commit by @hanxi)27ded61- fileutil: 修复 Windows 编译错误,syscall.ERROR_NOT_SAME_DEVICE 未定义 (commit by @hanxi)f474555- ci: 修复发版时 tag run 被 dev run 阻塞导致正式版延迟发布 (commit by @hanxi)
⚡ Performance Improvements
📝 Documentation Changes
0620d3e- update CHANGELOG for v2.11.5 (commit by @github-actions[bot])e01f2df- 更新宿主桥接文档,补充 favorite namespace 说明 (commit by @hanxi)
🔧 Chores
cb8f5ef- 更新 songloft-player 子模块指针 (commit by @hanxi)15a62a1- docker: entrypoint 启动时输出完整版本信息 (commit by @hanxi)14fe330- 更新 songloft-player 子模块(播放速度按钮样式优化) (commit by @hanxi)c9d31d4- bump plugin-toolchain 子模块(songs.refreshMetadata 类型) (commit by @hanxi)8146f43- player: 更新 songloft-player 子模块指针 (commit by @hanxi)8316d53- jsplugin: 更新 songloft-plugin-miot 子模块指针 (commit by @hanxi)52f098d- miot: 更新 songloft-plugin-miot 子模块指针 (commit by @hanxi)c5df438- release version 2.11.6 (commit by @hanxi)
[v2.11.5] - 2026-08-16
✨ New Features
888fb48- add PUT /playlists/{id}/songs/move endpoint for single-song reposition (commit by @hanxi)c5bf861- songs: 新增 GET /songs/random 随机歌曲接口 (commit by @hanxi)
🐛 Bug Fixes
ff42922- 修复项目中所有 UTF-8 乱码字符 (commit by @hanxi)a4b906b- app: 修复 Close() 资源泄漏 + .js MIME 补 charset + 注释乱码修正 (PR #393 by @xiaoniao427)198bc51- docs: 清理 Swagger @Router 注释中冗余的 /api/v1 前缀,并写入规范文档 (commit by @hanxi)
♻️ Refactors
👷 Build System
📝 Documentation Changes
3f0c21e- update CHANGELOG for v2.11.4 (commit by @github-actions[bot])a7f471c- 第三方客户端新增流云音盒 (xgplayer.com) (commit by @hanxi)3fa51d2- TV 客户端章节补充车机支持说明 (commit by @hanxi)73ff669- 第三方客户端新增流云音乐(Cloudflow Music) (commit by @hanxi)c69ae1b- landing: 优化第三方客户端响应式布局 (commit by @hanxi)
🔧 Chores
ce116e1- 更新 miot 插件 (设置页双栏独立滚动 + 默认选中歌单) (commit by @hanxi)b024a84- bump songloft-plugin-miot (修复输入框/下拉框焦点边框 & 自动填充) (commit by @hanxi)5e8ec9f- release version 2.11.5 (commit by @hanxi)
[v2.11.4] - 2026-08-12
✨ New Features
e35df74- docker: 支持 PUID/PGID 非 root 运行 (commit by @hanxi)658b3df- jsplugin: playlists.getSongs bridge 支持 sort/order 排序参数 (commit by @hanxi)ef4bbd7- play: 后端支持倍速播放转码 (0.5x–2x) (commit by @hanxi)8506c11- 登录页新增同意协议勾选功能 (commit by @hanxi)6633cec- normalize: 开放音量均衡目标响度自定义 (commit by @hanxi)a7efc92- proxy: 新增 /proxy/transcode 实时转码代理;radio 转码接入 http_proxy (commit by @hanxi)
🐛 Bug Fixes
d27d727- player: 修复 Web 播放错位并优化日志导出 (commit by @hanxi)a60878c- player: 更新 Windows 首帧尺寸修复 (commit by @hanxi)56c7562- scan: 修复自动创建歌单重复的问题 (commit by @hanxi)d8efd8f- build: armv7 交叉编译跳过 UPX 压缩,避免运行时 futex 崩溃 (commit by @hanxi)674d0f3- jsplugin: 更新 MIoT 插件子模块指针,修复歌曲定位跳回第一屏 (commit by @hanxi)6cabc75- player: 更新 songloft-player 子模块指针 (songloft-org/songloft#361) (commit by @hanxi)58e174a- playlist: song-ids 接口支持自定义 sort/order (commit by @hanxi)45c4985- play: 修复音量均衡切歌截断音频被误判为完整缓存并永久保留 (commit by @hanxi)038ccdf- docs: 安装落地页 Scoop 章节与 README 同步 (PR #384 by @altman08)1a65f5b- cover: 限制缩略图并发解码防止弱设备 OOM (commit by @hanxi)4ede17d- app: 修复 Tracely 初始化多余逗号导致编译失败 (commit by @hanxi)866478f- metadata: ProbeForValidation 使用 tag.FileType 替代临时文件扩展名识别格式 (commit by @hanxi)604bb82- miot: 修复 miot 插件 webf 重写后的前端 bug 与宿主返回键通路 (commit by @hanxi)
📝 Documentation Changes
9360a43- update CHANGELOG for v2.11.3 (commit by @github-actions[bot])33e8e25- 新增第三方客户端板块(音乐方舟、箭头音乐) (commit by @hanxi)6dd7673- 第三方客户端Logo改用官网图标 (commit by @hanxi)8d74c11- 修正隐私宣传措辞,对齐 PRIVACY.md 实际口径 (commit by @hanxi)6ebc26d- player: 记录播放按钮形状设计规范 (commit by @hanxi)c42cdbb- 第三方客户端新增音流(Stream Music) (commit by @hanxi)
🔧 Chores
322a631- player: 更新子模块修复冷启动首次点歌错歌 (commit by @hanxi)a397bd3- player: 同步插件商店刷新修复 (commit by @hanxi)486498d- player: 更新播放器子模块指针 (commit by @hanxi)b36328e- 更新 songloft-player 子模块指针 (commit by @hanxi)9073f29- 更新子模块 - 清理GitHub加速代理预设,添加AI Prompt复制功能 (commit by @hanxi)5c198a7- player: 更新 songloft-player 子模块指针 (commit by @hanxi)e47d96d- player: 更新 songloft-player 子模块指针 (commit by @hanxi)7739690- bump songloft-plugin-miot (commit by @hanxi)a42a361- release version 2.11.4 (commit by @hanxi)
[v2.11.3] - 2026-08-09
🐛 Bug Fixes
42b0906- plugin-builder: 更新前端源码监听修复 (commit by @hanxi)faf0a38- player: 同步 Web 更新检测修复 (commit by @hanxi)eb30e90- 修复客户端更新问题 (commit by @hanxi)
🔧 Chores
[v2.11.1] - 2026-08-03
💥 BREAKING CHANGES
due to
a9a5938- 本地 .lrc 歌词文件优先适配 (commit by @hanxi):扫描/重新导入时若读不到歌词,不再清空库中已有歌词。
要清空歌词请使用 PUT /api/v1/songs/{id}/lyrics 接口。
Fixes songloft-org/songloft-plugin-miot#62
✨ New Features
85ccbbe- backend-patch: Bundle 版 Android 后端热更发布流水线 + 导出面守卫 (commit by @hanxi)5ddbeca- proxy: 私网代理白名单,允许 /proxy 代理指定内网地址*(PR #313 by @hanxi)*53bcf8c- 支持音量均衡 songloft-org/songloft#315 (commit by @hanxi)e87eb77- expand audio/video format support and Web HLS video playback (commit by @hanxi)169aa77- playlist: 删除歌单支持连带清理孤儿歌曲 (PR #325 by @hanxi)b9109fc- release: bundled 热更前后端 manifest 写入原生契约哈希 (commit by @hanxi)3570c44- player: bump songloft-player 子模块,首页歌单网格行列可自定义 (PR #332 by @hanxi)e1cdfca- play: /songs/{id}/play 支持 seek 参数,服务端 input seek 流式续播 (commit by @hanxi)970619d- fingerprint: 指纹计算支持仅重试失败项,不清空已算指纹 (commit by @hanxi)faa5eb4- play-history: 新增按播放上下文的播放历史(歌单/歌手/专辑等) (commit by @hanxi)4af1a8e- jsplugin: 私有仓库 Release 资源下载支持走 github_proxy 加速 (commit by @hanxi)ef025ee- songs: 新增曲库歌名/歌手名清单接口 GET /songs/names (commit by @hanxi)cd87296- theme pack backend with online catalog support (PR #337 by @hanxi)a0109f8- api: add library stats summary endpoint (PR #349 by @hanxi)
🐛 Bug Fixes
6fe2426- 播放伪 mp3(WebM 存为 .mp3)时按内容校验强制转码 (songloft-org/songloft#300) (commit by @hanxi)961a6b2- cover: 本地封面支持 ?w= 服务端缩略,配合 Web 端 <img> 修封面空白 (PR #309 by @hanxi)e046edc- release: 修 Bundle Android 补丁 pack 缺失的 --target-version-code (commit by @hanxi)a635989- release: soname 校验放宽为「空或 libgojni.so」(gomobile 产物无 DT_SONAME) (commit by @hanxi)9313dc1- video-hls: fix containsEndList boundary bug, early-fail detection, path traversal hardening (commit by @hanxi)4ec2af8- player: 更新 songloft-player 子模块,修复原生构建的 dart:js_interop 编译失败 (commit by @hanxi)c6676b3- ci: bundled 热更 manifest 写入分 ABI APK 的真实 versionCode (commit by @hanxi)28c5e9a- playlist: 歌单封面 URL 补版本号,修复替换封面后不刷新 (PR #327 by @Jsongcloud)f61a9e7- fingerprint: 扫描后指纹计算默认关闭并限制开销,修 CPU 长期占满 #323 (commit by @hanxi)a7bc950- fingerprint: 指纹去重聚簇改进 + Cancel 竞态修复 + 文件不可达容错 (songloft-org/songloft#323) (commit by @hanxi)8e83998- entrypoint: 非语义化版本按底包覆盖,避免误判为旧而跳过热更 (PR #331 by @Jsongcloud)eff80fa- docker: bump ffmpeg-builder 子模块,Docker 内 ffmpeg 支持视频解码转 HLS,修 mpg 无法播放 (commit by @hanxi)fddcd4d- player: bump songloft-player 子模块 + 补踩坑文档(修 iOS Safari 登录页不弹软键盘 songloft-org/songloft-player#26) (commit by @hanxi)0a2adaf- player: bump songloft-player 子模块(原生端老旧视频容器改走 video-hls,修手机播 mpg 卡顿) (commit by @hanxi)5694025- video-hls: 边转边播 playlist 改为 EVENT 类型,修首次播放 mpg 必卡 (commit by @hanxi)df58cc8- docs: 适配 GitHub 代理重构——附件前缀改为根路径且带主机名 (commit by @hanxi)536f9fb- play: 音量均衡不再阻塞首个播放请求,预热也带上 normalize songloft-org/songloft-plugin-miot#61 (commit by @hanxi)8ce8a1f- jsplugin: LoadPlugin 幂等化,消除启动期与懒加载竞态导致的 env already exists (commit by @hanxi)187acdc- jsplugin: 去掉 LoadPlugin 的 singleflight,修正与 EnsureLoaded 的契约冲突 (commit by @hanxi)dc494e7- jsplugin: 修复 JSService.timerStop 的 data race (commit by @hanxi)a9a5938- lyric: 本地 .lrc 歌词文件优先适配 (commit by @hanxi)6481996- GitHub 代理仅对 GitHub 域名生效,非 GitHub 订阅源直连 (commit by @hanxi)e3ccc49- upgrade: GitHub 代理失败自动降级直连,修复死代理导致更新检查 500 (commit by @hanxi)acb8a44- metadata: 批量刷新元数据改为纯本地提取,只处理本地有文件的歌曲 (commit by @hanxi)b58bc72- jsplugin: 插件商店按 entry_path + 作者身份去重,撞名不再静默覆盖 (commit by @hanxi)7f8b0a0- ci: 热更补丁资产改带 commit 的不可变文件名,同步前端子模块 (commit by @hanxi)
⚡ Performance Improvements
♻️ Refactors
✅ Tests
👷 Build System
10e2f6c- Bundle 版 Android 统一为单个 universal APK (commit by @hanxi)fcbf4dc- release: Bundle Android 热更补丁改为随 release 自动发布(无基线) (commit by @hanxi)76888e5- release: bundled 热更补丁与 gomobile 产物扩展到 x86_64 (commit by @hanxi)
📝 Documentation Changes
07fd163- update CHANGELOG for v2.11.0 (commit by @github-actions[bot])5685e11- site: 同步 flutter_patcher 热更新文档到文档站 (commit by @hanxi)5e247e8- issue-template: Bug 报告引导用户附上「设置→关于与更新→导出日志」的日志 zip (commit by @hanxi)3b21f19- agents: 补充前端 UI 验证走 Docker 无头浏览器的方法与踩坑 (commit by @hanxi)84c22ff- remove Flutter TV references, recommend songloft-tv client (commit by @hanxi)917af15- 落地页安装选择器添加 TV 客户端下载链接 (commit by @hanxi)bb2c503- agents: 补充「子模块同步页」类别到文档站结构章节 (commit by @hanxi)8482492- add theme pack guide and update color system docs (commit by @hanxi)
🎨 Code Style Changes
d27fd3a- format all go/dart code and add formatting rules to AGENTS docs (commit by @hanxi)281dc09- 同步前端子模块(dart format 补齐未格式化文件) (commit by @hanxi)
🔧 Chores
c7fdf56- addon: sync HA add-on version to 2.11.0 (commit by @github-actions[bot])28a5ccc- bump songloft-player 修复分类列表播放全部无歌曲 (commit by @hanxi)fbb04ea- 更新 songloft-player 子模块,含 #309 封面回滚修复与 CanvasKit auto 变体 (commit by @hanxi)0041f20- player: bump songloft-player 子模块(播放队列自动定位当前项 songloft-org/songloft#311) (commit by @hanxi)0138426- player: 更新 songloft-player 子模块指针 (commit by @hanxi)b1738f7- player: 更新 songloft-player 子模块指针(修复 iOS 构建) (commit by @hanxi)eefe4c7- player: bump songloft-player 子模块(首屏加载韧性兜底,修偶发无限骨架屏卡死 #314) (commit by @hanxi)1da7e78- player: 更新 songloft-player 子模块指针(已是最新时也可下载完整安装包) (commit by @hanxi)7d40530- miot: bump 插件子模块(修全屏播放器收藏按钮状态无法区分) (commit by @hanxi)611c733- player: bump songloft-player 子模块(迷你播放条按钮 #25 + 取消指纹时序修复 #323) (commit by @hanxi)94221e0- player: bump songloft-player 子模块(修 Windows 桌面歌词打开即秒退 #318) (commit by @hanxi)c16ff65- plugin: bump songloft-plugin-miot 子模块(硬停/语音打断按位置续播 songloft-org/songloft-plugin-miot#60) (commit by @hanxi)d7f2ac8- submodule: 更新 songloft-player——HLS 视频卡死修复与指纹失败项重试入口 (commit by @hanxi)4a3bca8- submodule: 更新 songloft-player——GitHub 加速代理统一到设置网络页 (commit by @hanxi)fd81082- submodule: 更新 songloft-plugin-miot——对话去重基线改用服务端时间戳 (commit by @hanxi)b5e6b4f- submodule: 更新 songloft-player——启动热更检查三道闸与设置页手动入口 (commit by @hanxi)fa37468- submodule: 更新 songloft-plugin-miot——语音搜歌不再误判本地歌曲 songloft-org/songloft-plugin-miot#62 (commit by @hanxi)ea9596f- submodule: 更新 songloft-plugin-miot——响应优先模式补上播放失败回落 (commit by @hanxi)4d2d655- update pkg/tag submodule (gofmt) (commit by @hanxi)c3c35a2- release version 2.11.1 (commit by @hanxi)
[v2.11.0] - 2026-07-22
✨ New Features
7dc4d92- jsplugin: 为 JS 插件 SDK 增加 TCP Socket API (PR #276 by @hanxi)8687a3e- jsplugin: 插件自动更新开关 + 源列表「全部」聚合 (PR #270 by @hanxi)09c292a- songs: 按流派/语种/风格等标签分类浏览曲库 (PR #277 by @hanxi)548bee6- scan: 支持 mp4 格式音频扫描与播放 (PR #281 by @hanxi)338d574- scan: 支持视频容器扫描、播放与 DLNA 视频投屏 (PR #76 by @hanxi)1aa9936- songs: 网络歌曲/电台创建与更新端点支持 is_video (PR #76 by @hanxi)89b788e- playlist: ListPlaylists 支持 keyword 搜索,并同步前端子模块 (commit by @hanxi)a6d7441- songs: facets 支持分页/搜索/封面 + 新增 /settings/library-browse 配置端点 (commit by @hanxi)a650185- songs: 下载支持可选转码(format/quality),复用 GetOrTranscode hanxi/songloft-plugin-bili#1 (commit by @hanxi)692ded7- songs: library-browse 放行歌单三视图 key,默认顺序按组连续 (commit by @hanxi)edf6d99- jsplugin: 客户端 SDK 宿主桥接(common.js) + 文档 (PR #285 by @hanxi)441f1a6- 支持 MKA 导入/播放与双音轨切换 (commit by @hanxi)c3b62e3- lyric: /songs/{id}/lyric 支持 refresh 强制重抓歌词 (PR #303 by @hanxi)d219948- CUE 按需提取替代预分割,解决磁盘空间占用问题 (PR #306 by @hanxi)b964bbf- cache: 缓存网络歌曲支持统一转码落盘格式 #300 (commit by @hanxi)9da8d62- logs: 新增日志落盘与脱敏导出端点 (commit by @hanxi)a221545- radio: 电台流支持服务端实时转码,兼容仅支持 MP3 的播放设备 #275 (commit by @hanxi)88e9abb- 插件sdk新增封面提供者接口 (commit by @hanxi)
🐛 Bug Fixes
878d9c0- radio: 电台代理改为 ICY 元数据透传,修复 web 端播放 1 秒即停 (PR #275 by @hanxi)387058e- download: 缓解导入探测与批量下载争用导致的下载失败 (PR #265 by @hanxi)a6509fa- download: 用停滞检测替代整请求硬超时,避免慢速网络下载被误掐 (PR #265 by @hanxi)2c14108- jsplugin: 自动更新用 GetJSON 读 github_proxy 配置,修正代理前缀拼接 (commit by @hanxi)91a1e44- web: app shell 静态资源改用 no-cache,修复升级后浏览器仍跑旧 main.dart.js (commit by @hanxi)c63531f- player: 更新子模块修复 Web 插件 Tab iframe 反复重载抖动 (PR #278 by @hanxi)e40b702- player: 更新子模块修复移动端插件 Tab 再次打开黑屏/底栏消失 (PR #273 by @hanxi)5df23a2- radio: 去交织浏览器路径 ICY 元数据,修复 web 端非 m3u8 电台 2-3 秒断流 (PR #275 by @hanxi)8ecddd4- source: 下载链路加同源重试与 Content-Length 截断校验 (PR #265 by @hanxi)26fb2e1- jsruntime: 修复 youtube 歌单串号/标题被改/缓存不全 songloft-org/songloft#286 (commit by @hanxi)aa5fc0e- radio: 电台代理支持 hls=direct 绕过反代 + 归一化 audio/aacp (commit by @hanxi)14e662c- jsplugin: 慢端点支持 X-Plugin-Timeout-Ms 放宽调用超时,修复 extract 504 (PR #265 by @hanxi)3980309- play: 慢音源播放解析被切歌/客户端超时误杀致 502 (songloft-org/songloft#271) (commit by @hanxi)3b1c97b- radio: 直连电台流改用非浏览器 UA,修复防盗链源约 3 秒断流 (PR #275 by @hanxi)dba7966- docker cache (commit by @hanxi)2b6f113- flutter web 后台回来黑屏问题修复 (commit by @hanxi)e32844b- lyric: 修复歌词插件自动抓取失效(测试成功但播放抓不到)#303 (commit by @hanxi)0e97a99- jsplugin: 修复插件市场分页顺序随机跳变 #302 (commit by @hanxi)bf21354- jsplugin: 插件页预留滚动条槽根除内容抖动 #278 (commit by @hanxi)15fb3f8- source: 分块 Range 下载绕过 YouTube 单连接限速 (songloft-org/songloft#305) (commit by @hanxi)d5d4102- source: 流式代理去掉整请求硬超时,避免音箱播到中途重拉/切歌 (songloft-org/songloft-plugin-miot#55) (commit by @hanxi)6f7e528- jsplugin: 插件页 html 常驻纵向滚动条根除抖动 #278 (commit by @hanxi)1cea176- playactivity: Activate 不再取消下一首的 prefetch 转码 #300 (commit by @hanxi)07cea28- jsplugin: 公共资源 URL 加内容哈希版本号,修复 immutable 缓存致 common.css 更新不下发 #278 (commit by @hanxi)3d660d0- download: 歌名含斜杠不再拆目录、目标冲突追加序号防覆盖 #265 (commit by @hanxi)6f373b2- 下载歌曲后保留 plugin_entry_path,修复重复导入时唯一约束冲突 (commit by @hanxi)b83464b- 客户端超时断开时触发后台缓存,避免未缓存歌曲反复失败 (commit by @hanxi)4446b0c- 修复开发版本更新问题 (commit by @hanxi)ecce7c5- 修复无法添加超过3万首歌到歌单的问题 (PR #308 by @hanxi)cbb00c4- 已是 MP3 格式的缓存歌曲在设备上播放失败 (songloft-org/songloft#300) (commit by @hanxi)
⚡ Performance Improvements
b5f44e1- docker: 交叉编译替代 QEMU 编译 + 分层重排提速镜像打包与更新 (commit by @hanxi)9b0c733- docker: pin alpine base 与 ffmpeg 镜像 digest 稳定前置层缓存 (commit by @hanxi)
♻️ Refactors
34b0f7f- jsplugin: 清理既有 lint (commit by @hanxi)791812f- 修正 prefetch 兜底注释并清理两处 lint #300 (commit by @hanxi)
👷 Build System
80d136a- web 构建走 beta 3.47(修复切后台白屏),原生升 stable 3.44.6 (commit by @hanxi)f9ab2bd- web 也统一 stable 3.44.6(撤回 web 专用 beta 3.47) (commit by @hanxi)
📝 Documentation Changes
21ef81d- update CHANGELOG for v2.10.0 (commit by @github-actions[bot])7b4e6ba- faq: 新增电台 HLS 流无法播放时开启 HLS 代理的说明 (commit by @hanxi)e0c4e70- faq: 补充应用内视频画面渲染的平台支持说明 (songloft-org/songloft#76) (commit by @hanxi)de95b87- frontend: 更新音频后端与视频画面架构描述 (PR #76 by @hanxi)d3cef86- agents: 约定直接提交 main 分支,不建功能分支 (commit by @hanxi)1526608- js-plugin: 更新客户端 SDK host bridge 适用范围 (commit by @hanxi)87dbec4- repowiki: 同步 Web 插件页改为 iframe 内嵌 (commit by @hanxi)4a7fbec- 全面同步文档与代码并将 repowiki 改为手动维护 (commit by @hanxi)18135f7- repowiki: 接入文档站并补全英文版 (commit by @hanxi)102936c- repowiki: 将 file:// 源码链接改为 GitHub blob 链接 (commit by @hanxi)bbe3ab0- 同步文档为原生平台统一 media_kit 后端 + 更新子模块指针 (songloft-org/songloft#76) (commit by @hanxi)86a70a4- 声明项目纯为爱发电、无收费/赞助渠道,提醒防诈骗 (commit by @hanxi)
🔧 Chores
c724aa7- addon: sync HA add-on version to 2.10.0 (commit by @github-actions[bot])6e3e285- 同步 songloft-player 子模块 (web 端 hls.js 电台修复 songloft-org/songloft#275) (commit by @hanxi)c19b54b- 同步 songloft-player 子模块 (Windows 退出/播放/日志修复 songloft-org/songloft#271) (commit by @hanxi)7dd8a1c- 更新 songloft-player 子模块指针(分类页播放全部+多选) (commit by @hanxi)76442a6- 更新 miot 子模块指针(补搜索源注册开发者文档) (commit by @hanxi)869a06d- 更新 songloft-player 子模块指针(桌面播放快捷键 #279) (commit by @hanxi)edf3e72- 更新 songloft-player 子模块指针(全屏播放页快捷键修复 #279) (commit by @hanxi)fcf741b- 更新 songloft-player 子模块指针(打开后自动进入全屏歌词 songloft-org/songloft-player#19) (commit by @hanxi)4b453ce- 更新 songloft-player 子模块指针(插件 Tab 关闭 Android Hybrid Composition 修复菜单栏黑屏 #273) (commit by @hanxi)2c5bded- 更新 songloft-player 子模块指针(libmpv 日志接入 FileLogger 排查桌面端 HLS 电台失败 #249) (commit by @hanxi)0026796- 更新 songloft-player 子模块指针(桌面端应用内视频画面渲染 songloft-org/songloft#76) (commit by @hanxi)64a51ab- 更新 songloft-player 子模块指针(侧边/TV 播放器接入视频画面 songloft-org/songloft#76) (commit by @hanxi)3945bf1- 更新 songloft-player 子模块指针(macOS/移动/Web 视频画面 songloft-org/songloft#76) (commit by @hanxi)ab42a92- 更新 songloft-player 子模块指针(macOS/移动默认启用 media_kit) + FAQ 视频画面全平台默认支持 (songloft-org/songloft#76) (commit by @hanxi)eada187- 更新 songloft-player 子模块指针(视频画面架构文档 + Web 后端决策记录 songloft-org/songloft#76) (commit by @hanxi)9c0c1b2- 更新 songloft-player 子模块指针(移除测试未使用 import) (commit by @hanxi)051663b- 更新 songloft-player 子模块指针(添加歌曲/电台是否视频开关 songloft-org/songloft#76) (commit by @hanxi)2b4d17f- 更新 songloft-player 子模块指针(修复 macOS 视频黑屏与首次播放失败 songloft-org/songloft#76) (commit by @hanxi)8bc9950- 更新 songloft-player 子模块指针(单曲循环修复 songloft-org/songloft#284) (commit by @hanxi)087ca92- 更新 songloft-player 子模块指针(TerminateProcess 根治退出报警框 songloft-org/songloft#271) (commit by @hanxi)fa1217b- 更新 songloft-player 子模块指针(自定义视图入口收进更多菜单) (commit by @hanxi)cfd8f01- 更新 plugin-toolchain 子模块指针(SDK v2.12.1 + 修复发布 workflow) (commit by @hanxi)df63057- 更新 songloft-player 子模块指针(歌曲行统一为共享 SongTile) (commit by @hanxi)173bd83- 更新 songloft-player 子模块指针(facet 卡片加播放按钮) (commit by @hanxi)7808602- 更新 plugin-toolchain 子模块指针(v2.12.2:修复 Vue 模板 dev 死循环与重复安装) (commit by @hanxi)f2ca805- 更新 songloft-player 子模块指针(歌单视图工具栏上移顶部 AppBar) (commit by @hanxi)143cc44- 更新 songloft-player 子模块指针(歌单搜索提示词修正) (commit by @hanxi)bdf69b3- 更新 songloft-player 子模块指针(修复切换歌单子视图 GlobalKey 报错) (commit by @hanxi)7bb2946- 更新 songloft-player 子模块指针(WebView2 环境/托盘残留/电台直连) (commit by @hanxi)9854627- 更新 songloft-player 子模块指针(切后台黑屏无 reload 修复) (commit by @hanxi)23eba04- 更新 songloft-player 子模块指针(切后台白屏 Dart 侧重绘修复) (commit by @hanxi)dc6a229- 更新 songloft-player 子模块指针(切后台白屏补发 webglcontextlost 修复) (commit by @hanxi)f3ba3fe- 更新 songloft-player 子模块指针(悬浮 console 调试面板) (commit by @hanxi)cf25c55- 更新 songloft-player 子模块指针(悬浮 console 增强错误抓取) (commit by @hanxi)e603860- 更新 songloft-player 子模块指针(TV D-pad 焦点专属布局 + isTv 门控修复) (commit by @hanxi)3a48de9- 更新 songloft-player 子模块指针(收尾清理 MultiSurface/恢复 band-aid) (commit by @hanxi)42d899c- 更新 songloft-player 子模块指针(onReorder→onReorderItem 迁移,Flutter 3.44.6) (commit by @hanxi)79e2fd9- 更新 songloft-player 子模块指针(修复最小化残留 HWND 拦截桌面右键 #293) (commit by @hanxi)9e99919- 更新 songloft-player 子模块至逐字歌词版本 (PR #294 by @hanxi)a2b98b9- update miot plugin submodule (commit by @hanxi)a833d63- update miot plugin submodule (commit by @hanxi)a5e5d08- 更新 songloft-player 子模块 (修复 Web 语义节点遮挡插件 iframe #295) (commit by @hanxi)7fc4cbe- 更新 songloft-player 子模块 (修复移动端 media_kit 后端 Android 全曲无法播放 songloft-org/songloft#76) (commit by @hanxi)2ae3be6- 更新 songloft-player 子模块 (media_kit 后端实现 setAndroidAudioAttributes,修复 Android 全曲无法播放 songloft-org/songloft#76) (commit by @hanxi)f2f9afa- 更新 songloft-player 子模块 (原生平台统一 media_kit 后端,移除原生后端回退 songloft-org/songloft#76) (commit by @hanxi)b46fe0f- 更新 songloft-player 子模块(修复 NextConsole UMD 全局实例化,Web 调试面板悬浮按钮恢复显示) (commit by @hanxi)b411685- 更新 songloft-player 子模块(修复 Web 切后台回来封面偶发纯黑,resume 驱逐图片缓存+重解码) (commit by @hanxi)d08205b- 更新 songloft-player 子模块(修复 Web 应用内切页面回来列表封面纯黑,导航时驱逐图片缓存重解码) (commit by @hanxi)3137005- 更新 songloft-player 子模块(修复 Web 封面切插件 WebView 页返回后变黑,按封面精准驱逐缓存重解码) (commit by @hanxi)eb4c9ba- 更新 songloft-player 子模块(Web 强制 CanvasKit CPU 渲染根治封面偶发纯黑,回退应用层缓解) (commit by @hanxi)adecd8b- 更新 songloft-player 子模块(封面切tab/筛选丢失根治:调大imageCache+缩略解码,回退CPU渲染) (commit by @hanxi)80bd72f- 更新 songloft-player 子模块(CoverImage 加临时诊断日志排查封面三态) (commit by @hanxi)3f74c1e- 更新 songloft-player 子模块(Web 封面走 HttpGet 解码缩小 GPU 纹理 + 删冗余 imageBuilder + 加 WebGL context 丢失诊断日志) (commit by @hanxi)df4e1d4- 更新 songloft-player 子模块(所有封面卡片统一走 HttpGet 缩略解码,修专辑/歌手/歌单列表封面黑) (commit by @hanxi)1df7170- 更新 songloft-player 子模块(清理封面诊断日志 + 文档记录 CanvasKit 大纹理封面变黑坑) (commit by @hanxi)05601ea- 更新 songloft-player 子模块(修复歌单单曲播放队列被截断到已加载页 #299) (commit by @hanxi)0094f1a- 更新 songloft-player 子模块(修复分类页点击单曲播放队列被截断 #299) (commit by @hanxi)f6c87d6- 更新 songloft-player 子模块(文档记录分页列表点单曲播放队列构建铁律 #299) (commit by @hanxi)55ca279- 更新 downloader 子模块(按歌单/艺术家/专辑筛选下载 #304) (commit by @hanxi)d124f88- 更新 songloft-player 子模块(桌面折叠播放栏补齐拖动滑块 #301) (commit by @hanxi)1ba55a4- 更新 songloft-player 子模块(插件 iframe 抖动诊断埋点 #278) (commit by @hanxi)1233bf5- 更新 songloft-player 子模块(设置页显示后端构建时间) (commit by @hanxi)cb64286- 更新 songloft-player 子模块(加整页抖动尺寸振荡探针 #278) (commit by @hanxi)d60d15a- release version 2.11.0 (commit by @hanxi)
[v2.10.0] - 2026-07-11
✨ New Features
510f309- songs: 支持按歌单 label 排除歌曲,默认排除隐藏歌单 songloft-org/songloft-player#18 (commit by @hanxi)cf84ae0- addon: 新增 Home Assistant 加载项 (commit by @hanxi)7e938d0- organize: 目录整理新增 preview 与插件 bridge,修复 file_path 双前缀 (PR #261 by @hanxi)b6b42c4- metadata: 网络歌曲导入即探测时长,修复音箱无法自动切歌 (PR #264 by @hanxi)90c964e- scan: 目录级定向扫描,过期清理按作用域收敛 (PR #262 by @hanxi)617ff39- songs: 支持编辑本地歌曲改名,修复插件音源歌曲编辑 (commit by @hanxi)e377144- tags: WriteSongTags 支持 track 音轨号字段 (PR #269 by @hanxi)0a00903- scan: 支持 mov 格式音频 (commit by @hanxi)
🐛 Bug Fixes
26aa89f- miot: update plugin for touchscreen lyrics playback (commit by @hanxi)1f4f57e- radio: prevent stuck radio streams (commit by @hanxi)e1efc32- upgrade: enforce matching update channels (commit by @hanxi)99152f0- jsplugin: deliver host events during awaits (commit by @hanxi)87be549- release: repair bundled macos signing (commit by @hanxi)11fb982- docs: 修复英文 README 同步后 docs/en/ 链接多套一层导致死链 (commit by @hanxi)adeb8b0- jsplugin: sync plugin toolchain permissions (commit by @hanxi)2e0b21f- cover: prevent slow cover requests from hanging (commit by @hanxi)c60bebb- cover: 修复自动歌单封面重新扫描后随机变化 (commit by @hanxi)0774040- server: 支持 port=0 由系统自动分配监听端口 (commit by @hanxi)09c569e- ci: mac bundle 兜底重签给 songloft-server 补 inherit entitlements (commit by @hanxi)2c1ae52- server: 新增 -music flag 供 Bundle 桌面模式传入音乐目录 (commit by @hanxi)a4b209d- playlist: 隐藏歌单后支持可见子集重排,修复排序报错 (PR #266 by @hanxi)66b2e62- upgrade: 检查更新加短超时并持久化 GitHub 代理 (commit by @hanxi)ffabd30- release: package valid bundled iOS app (commit by @hanxi)
⚡ Performance Improvements
📝 Documentation Changes
756d048- update CHANGELOG for v2.9.6 (commit by @github-actions[bot])f8858fb- 重构文档网站首页 (commit by @hanxi)9a7d875- 添加截图08bc3d2- 新增界面截图一览并在 README 补充截图与语言切换 (commit by @hanxi)e63fcf8- faq: 说明 Firefox 下 Web 端点击偏移的兼容性限制 (commit by @hanxi)555fb12- agents: 补充 addon 目录说明与文档站结构章节 (commit by @hanxi)d25d8a6- Windows 客户端支持 Scoop 安装 (commit by @hanxi)
🔧 Chores
f866fb4- miot: update plugin submodule (commit by @hanxi)1b66d48- plugins: update miot submodule for search priority (songloft-org/songloft-plugin-miot#30) (commit by @hanxi)d69ef52- player: update auth wallet fix (commit by @hanxi)30c1d02- submodules: update player and radio plugin refs (commit by @hanxi)a8c730f- player: update submodule for Windows HLS fix #249 (commit by @hanxi)839606a- player: update submodule for hidden-playlist song filtering songloft-org/songloft-player#18 (commit by @hanxi)6dba52d- deps: 更新 songloft-player 修复 mac 本地模式 (commit by @hanxi)b173f91- deps: 更新 songloft-player 修复 iOS 本地模式 (commit by @hanxi)eb934af- deps: 更新 songloft-player 修复退出登录与桌面本地扫描 (commit by @hanxi)f3886cf- deps: 更新 songloft-player 支持编辑本地歌曲与修复编辑入口 (commit by @hanxi)11e9ff4- player: 更新子模块,记住 GitHub 代理并抽取选择 mixin (commit by @hanxi)0890f59- player: 更新子模块,统一 GitHub 代理选择为顶部下拉 (commit by @hanxi)607e381- deps: 更新 songloft-player 修复 iOS 本地模式扫描沙盒报错 (commit by @hanxi)b607701- release version 2.10.0 (commit by @hanxi)
[v2.9.6] - 2026-07-04
✨ New Features
🐛 Bug Fixes
846a19a- miot: update auto-next playback fix (commit by @hanxi)d2305ff- player: 更新 Windows 客户端退出修复 #246 (commit by @hanxi)
📝 Documentation Changes
e2bcdcb- update CHANGELOG for v2.9.5 (commit by @github-actions[bot])349dfdb- jsruntime: document AES decrypt follow-ups (commit by @hanxi)
🔧 Chores
0bd87dd- submodules: update miot plugin and toolchain (commit by @hanxi)07e089b- submodules: update miot plugin (commit by @hanxi)2810ceb- submodules: update plugin-toolchain (commit by @hanxi)c3a3be6- release version 2.9.6 (commit by @hanxi)
[v2.9.5] - 2026-07-03
✨ New Features
836ddc7- CUE Sheet 整轨音乐支持 (PR #33 by @hanxi)850c996- 歌曲支持按文件修改时间排序 #242 (commit by @hanxi)b29d052- jsplugin: support inbound websocket handlers (commit by @hanxi)e24c2e2- jsruntime: 新增原生 __go_crypto_sha256_bytes 与 __go_crypto_rc4 (commit by @hanxi)da9158f- jsruntime: 新增原生 __go_crypto_sha1 (commit by @hanxi)e2e6206- source: 插件音源可返回自定义请求头并在代理/下载时应用 (commit by @hanxi)
🐛 Bug Fixes
46c57dc- 修复内存泄漏和性能问题 (commit by @hanxi)3ce474d- auto-create 歌单按名复用 ID 避免每次扫描重建 (commit by @hanxi)0e2bfef- jsruntime: support binary fetch payloads (commit by @hanxi)
⚡ Performance Improvements
📝 Documentation Changes
e9d03e5- update CHANGELOG for v2.9.4 (commit by @github-actions[bot])
🔧 Chores
95575d9- update pkg/tag submodule (FLAC CUESHEET 支持) (commit by @hanxi)28bdb36- update songloft-plugin-miot submodule (关闭口令修复) (commit by @hanxi)56d08d6- update songloft-plugin-miot submodule (搜索接口选项修复) (commit by @hanxi)6dd6cc6- update songloft-plugin-miot submodule (歌单 ID 失效重试) (commit by @hanxi)7994aed- update songloft-plugin-subsonic submodule (修复外部歌曲歌词 404) (commit by @hanxi)28614d1- update songloft-plugin-subsonic submodule (bump v2.2.1) (commit by @hanxi)b5201ce- update songloft-plugin-miot submodule (新增触屏歌词开关 #239) (commit by @hanxi)7b1e58a- release version 2.9.5 (commit by @hanxi)
[v2.9.4] - 2026-06-30
✨ New Features
7da4a96- 删除歌曲支持删除本地文件、歌单隐藏功能 #235 (commit by @hanxi)f28d4ee- jsplugin: 新增 UDP socket Bridge API (songloft.net) #222 (commit by @hanxi)3919550- jsplugin: 插件常驻运行白名单 #237 (commit by @hanxi)
✅ Tests
📝 Documentation Changes
0c3d882- update CHANGELOG for v2.9.3 (commit by @github-actions[bot])d8b3fd6- 补充 Bundle 本地模式文档 (commit by @hanxi)
🔧 Chores
[v2.9.3] - 2026-06-30
🐛 Bug Fixes
📝 Documentation Changes
c661b00- update CHANGELOG for v2.9.2 (commit by @github-actions[bot])91e03e7- clarify issue references in commits (commit by @hanxi)
🔧 Chores
[v2.9.2] - 2026-06-29
📝 Documentation Changes
be5455d- update CHANGELOG for v2.9.1 (commit by @github-actions[bot])
🔧 Chores
03ea947- player: update songloft-player submodule (commit by @hanxi)0047882- release version 2.9.2 (commit by @hanxi)
[v2.9.1] - 2026-06-29
🐛 Bug Fixes
📝 Documentation Changes
9534a8e- update CHANGELOG for v2.9.0 (commit by @github-actions[bot])
🔧 Chores
[v2.9.0] - 2026-06-29
✨ New Features
993a3e7- scan: 歌单创建方式支持三种模式(按文件夹/按顶层文件夹/包含子目录) (commit by @hanxi)e858260- plugin: 新增自动下载 bridge API,支持插件注册缓存完成后自动下载 (PR #224 by @hanxi)2989703- equalizer: 添加 EQ 均衡器 settings 端点 (PR #217 by @hanxi)8f82ef7- 将 Go 后端嵌入客户端,支持本地模式播放 (PR #225 by @hanxi)7cf670d- plugin: 插件持久化存储 API + 卸载保留数据 + 孤儿清理 (PR #220 by @hanxi)0f732ed- player: 更新子模块实现按服务器隔离凭证 (commit by @hanxi)
🐛 Bug Fixes
0456bbf- scan: 修复元数据提取失败时标题含扩展名、空数据覆盖已有记录的问题 (commit by @hanxi)02a866b- cache: 修复插件来源歌曲缓存/下载时扩展名始终为 .mp3 的问题 (commit by @hanxi)0eeb224- cache: ffprobe format_name 未标准化导致 M4A 文件可能获得 .mov 扩展名 (commit by @hanxi)f3aa113- subsonic: 修复 Subsonic 服务端模式无法播放远程歌曲和电台 (PR #219 by @hanxi)c5f2cb2- scan: 扫描完成后返回本地歌曲总数,解决与歌曲库计数不一致的困惑 (commit by @hanxi)49fff2e- plugin: EnablePlugin 前先卸载残留环境,避免 env already exists 错误 (commit by @hanxi)e14cae5- cover: 封面 URL 追加时间戳参数穿透客户端缓存 (PR #218 by @hanxi)5e36bf0- ci: 添加 gomobile tool 依赖修复 iOS/Android 构建 (commit by @hanxi)73e28ec- plugin: playlists.getSongs 桥接增加诊断日志和重试 (PR #21 by @hanxi)a3811da- ci: 更新 songloft-player 子模块修复 macOS 构建 (commit by @hanxi)412b28c- plugin: 私有 GitHub 仓库插件通过 API 端点下载 (commit by @hanxi)90f5a79- player: 更新 songloft-player 子模块修复本地模式 (commit by @hanxi)f812e1d- player: 更新子模块修复 Xcode 26.5 编译 (commit by @hanxi)a48b776- player: 更新子模块修复 macOS linker 错误 (commit by @hanxi)1c27231- player: 更新子模块修复 iOS 构建 (commit by @hanxi)a0b8c1b- player: 更新子模块修复 iOS EqualizerPlugin 和 SongloftBackendPlugin 编译 (commit by @hanxi)da65db1- 修复 Android bundled 模式下 covers 目录路径解析错误 (commit by @hanxi)8739e1a- local: 修复 Android 本地模式扫描 + 更新子模块 (commit by @hanxi)039bdf5- player: 更新子模块修复本地模式设置页入口 (commit by @hanxi)56e042c- scan: 扫描文件发现阶段增加进度报告 (PR #227 by @hanxi)281a8d5- settings: 更新子模块修复歌单创建方式下拉竖排显示 (PR #228 by @hanxi)e5ac251- web: 更新子模块修复移动端浏览器切后台黑屏 (PR #229 by @hanxi)7c13a31- player: 更新子模块修复桌面端播完不自动切歌 (commit by @hanxi)bd84888- 标签解析与扫描稳定性修复 (songloft-org/songloft-player#14) (commit by @hanxi)e433aa3- jsplugin: serveFile 支持非本地歌曲 + removeSongs 容错 (songloft-org/songloft-plugin-subsonic#6) (commit by @hanxi)e58358d- Subsonic 远程歌曲格式显示与电台列表修复 + Windows 缓存兼容 (PR #231 by @hanxi)
📝 Documentation Changes
dd2f902- update CHANGELOG for v2.8.10 (commit by @github-actions[bot])1fd17f5- 在 README 中增加 Kodi 插件客户端描述 (PR #232 by @altman08)
🔧 Chores
[v2.8.10] - 2026-06-24
📝 Documentation Changes
e015dba- update CHANGELOG for v2.8.9 (commit by @github-actions[bot])
🔧 Chores
[v2.8.9] - 2026-06-24
✨ New Features
34a6e4c- remote 歌曲播放时自动提取元数据 (commit by @hanxi)0b19732- jsplugin: implement remaining Bridge API operations (commit by @hanxi)0984246- jsplugin: add yt-dlp music import plugin (commit by @hanxi)15dbb79- support AIF/AIFF format scanning and metadata extraction (commit by @hanxi)15b47b8- add AIFF write support and update docs (commit by @hanxi)c9cf78e- subsonic: 补全 Subsonic 协议支持,修复音流等客户端兼容性问题 (commit by @hanxi)bd98b73- jsplugin: 新增 plugin.getNetworkAddresses bridge API 并更新 miot 插件 (commit by @hanxi)
🐛 Bug Fixes
96a1718- 解决 http proxy 问题 (commit by @hanxi)9048266- jsplugin: 修复禁用插件后状态被自愈机制覆盖回 active 的竞态问题 (commit by @hanxi)962950c- jsplugin: 电台插件 M3U 导入大小限制从 5MB 提升到 20MB (commit by @hanxi)
📝 Documentation Changes
0aaf384- update CHANGELOG for v2.8.8 (commit by @github-actions[bot])f162a8f- update supported formats to include AIF/AIFF (commit by @hanxi)
🔧 Chores
e371ff7- update radio plugin submodule (v2026.6.23) (commit by @hanxi)8391804- update songloft-player submodule (commit by @hanxi)15a7f33- update subsonic plugin submodule (歌单浏览功能) (commit by @hanxi)5b87148- update miot plugin submodule (升级 SDK 2.6.3) (commit by @hanxi)ec153c9- update subsonic/dav plugin submodules (icon + v2.1.1/v1.1.1) (commit by @hanxi)aa3a4e8- update miot plugin submodule (设置页 UI 补全) (commit by @hanxi)b5b7021- update miot plugin submodule (外部搜索下拉列表) (commit by @hanxi)b1ae529- update miot plugin submodule (外部搜索超时可配置) (commit by @hanxi)f5aef4e- release version 2.8.9 (commit by @hanxi)
[v2.8.8] - 2026-06-22
✨ New Features
6e36dcb- jsplugin: 插件源支持 Bearer Token 认证,用于私有源分发 (commit by @hanxi)90a3f19- 封面支持插件相对 URL 解析 + AddRemoteSongs 新增 lyric_remote_url 直传字段 (PR #203 by @hanxi)9f7eaf7- 添加 songloft-plugin-radio 子模块 + 更新 registry (commit by @hanxi)
🐛 Bug Fixes
5f0cec3- models: LyricURLPath 对 remote 歌曲始终返回歌词端点 URL (PR #201 by @hanxi)8a73b0a- services: 避免 exec.LookPath 使用 faccessat2 导致 Termux 上 SIGSYS 崩溃 (PR #202 by @hanxi)ce441f2- miot: 更新子模块引用,修复密码/Token登录 token 续期问题 (PR #200 by @hanxi)b3e077f- jsplugin: 私有源 token 仅对同 host 的 includes 透传,防止跨域泄露 (commit by @hanxi)046cf14- 修正开发版下载链接,release tag 应为 dev 而非 main (commit by @hanxi)
📝 Documentation Changes
947881b- update CHANGELOG for v2.8.7 (commit by @github-actions[bot])738adfd- 补充插件源私有认证文档 (commit by @hanxi)ab06610- 免责声明新增侵权举报渠道(GitHub Issues + 邮箱) (commit by @hanxi)
🔧 Chores
7ab59e3- legal: 补全字体许可证,清理插件子模块,更新文档引用 (commit by @hanxi)ffec8e9- 更新 songloft-player 子模块引用 (commit by @hanxi)9ee94e0- release version 2.8.8 (commit by @hanxi)
[v2.8.7] - 2026-06-20
✨ New Features
5e79cdc- settings: 用户偏好跨设备同步 (PR #196 by @hanxi)66748b0- metadata: 扩展远程歌曲元数据刷新 (PR #195 by @hanxi)
🐛 Bug Fixes
dcaf549- miot: 播放控制栏底部安全区域适配 (PR #192 by @hanxi)a135f18- miot: 修复 Web 端停止播放后进度条持续走动 (PR #191 by @hanxi)7d00a65- miot: 修复语音口令含歌手名时误匹配其他歌曲 (PR #199 by @hanxi)37860bd- miot: 语音口令歌单匹配优化 (PR #198 by @hanxi)
📝 Documentation Changes
f65c86b- update CHANGELOG for v2.8.6 (commit by @github-actions[bot])
🔧 Chores
[v2.8.6] - 2026-06-19
✨ New Features
🐛 Bug Fixes
6db9455- player: 随机播放模式下全部播放不再固定从第一首开始 (PR #184 by @hanxi)6c9590a- cache: 流式播放缓存后自动回填歌曲时长 (PR #185 by @hanxi)
📝 Documentation Changes
d036d02- update CHANGELOG for v2.8.5 (commit by @github-actions[bot])
🔧 Chores
50e9ce9- update songloft-player submodule (commit by @hanxi)925a2a7- update songloft-plugin-miot submodule (commit by @hanxi)15ebc80- release version 2.8.6 (commit by @hanxi)
[v2.8.5] - 2026-06-16
✨ New Features
5744cc3- nav: 放宽 tab 数量限制至 10,移动端支持「更多」溢出菜单 (commit by @hanxi)389be4a- playlist: 更新 songloft-player 子模块,歌单列表高亮当前播放歌单 (close #182) (commit by @hanxi)3c37727- plugin: 新增歌词提供者回调机制和 lrclib 歌词插件 (close #183) (commit by @hanxi)
🐛 Bug Fixes
bec658c- web: 更新 songloft-player 子模块,修复 embedded 模式字体缺失 (close #177) (commit by @hanxi)e1b7d40- playlist: 修复从歌曲选择封面后预览空白及缓存不刷新 (close #176) (commit by @hanxi)4c01988- plugin: 更新 songloft-player 子模块,修复 Windows 最小化后插件 WebView 拦截桌面右键 (close #181) (commit by @hanxi)1eb05ac- plugin: 修复 DAV 插件 buildStreamUrl 路径双重前缀导致播放 404 (close #180) (commit by @hanxi)d5ec3cc- plugin: URLSearchParams polyfill 支持对象参数,修复歌词插件精确搜索参数丢失 (commit by @hanxi)
📝 Documentation Changes
690c6cc- update CHANGELOG for v2.8.4 (commit by @github-actions[bot])
🔧 Chores
12b565d- plugin: 更新歌词插件子模块,补全元数据和发布流程 (commit by @hanxi)841fffc- plugin: 更新插件源子模块,添加歌词搜索插件 (commit by @hanxi)27be42d- release version 2.8.5 (commit by @hanxi)
[v2.8.4] - 2026-06-15
🐛 Bug Fixes
422c968- miot: 更新 miot 插件 - 修复语音搜歌匹配错误 (close #83) (commit by @hanxi)e127621- playlist: 修复编辑歌单从歌曲选择封面无效的问题 (close #176) (commit by @hanxi)
📝 Documentation Changes
ca6eae8- update CHANGELOG for v2.8.3 (commit by @github-actions[bot])
🔧 Chores
[v2.8.3] - 2026-06-15
✨ New Features
00763f2- 下载歌曲时拉取 URL 歌词写入文件,实现 MP4/OGG 元数据写入 (commit by @hanxi)7f98bae- APE 封面读写支持,更新 tag 写入文档 (commit by @hanxi)
🐛 Bug Fixes
80d6a8f- player: 低码率音质下播放按钮需按两次才能播放 (close #170) (commit by @hanxi)fc03e78- player: 所有播放来源广播 onPlayEvent 事件 (close #173) (commit by @hanxi)69554eb- player: 歌词加载后立即推送到灵动岛 (close #98) (commit by @hanxi)
📝 Documentation Changes
8cf69a9- update CHANGELOG for v2.8.2 (commit by @github-actions[bot])e7d1341- 添加 Issue 模板和模板选择器配置 (commit by @hanxi)f2e6777- 移除网络歌曲转本地功能宣传,downloader 插件定位为示例 (commit by @hanxi)
🔧 Chores
[v2.8.2] - 2026-06-13
✨ New Features
feb75bb- jsplugin: add onPlayEvent callback for play event subscription (close #164) (commit by @hanxi)23311d3- transcode: 支持多音质转码与按码率缓存 (close #169) (commit by @hanxi)7ea30d2- playlist: 歌单歌曲支持排序与搜索 (close #168) (commit by @hanxi)
🐛 Bug Fixes
0737849- miot: 修复语音调音量"百分之X"被误解析为100% (close #166) (commit by @hanxi)e31f67d- jsruntime: HealthProbe 污染 eval 超时导致定时器驱动操作被误中断 (close songloft-org/songloft-plugin-miot#10) (commit by @hanxi)
📝 Documentation Changes
136fbf3- update CHANGELOG for v2.8.1 (commit by @github-actions[bot])
🔧 Chores
0bac21d- submodule: update jsplugins and player submodules (commit by @hanxi)cecabad- submodule: update player and plugin-toolchain for play event support (PR #164 by @hanxi)65d806d- release version 2.8.2 (commit by @hanxi)
[v2.8.1] - 2026-06-12
✨ New Features
9705163- cache: remove convert-to-local feature and add custom cache directory (commit by @hanxi)6c35b39- cache: streaming proxy with cache_path + song download plugin (commit by @hanxi)2a1ef4e- model: 添加 source_cover_url 字段并统一编辑表单短域显示 (commit by @hanxi)86d1805- jsplugin: 新安装插件默认启用 (commit by @hanxi)de30985- 新增自动创建歌单排除目录 (commit by @hanxi)
🐛 Bug Fixes
821aa41- jsplugin: refresh publicPaths at runtime without restart (PR #158 by @hanxi)f3a28bc- fingerprint: remove invalid length threshold in ExtractFingerprintbd2aec9- cache: 修复 Windows 编译失败 — syscall.Statfs 不跨平台 (commit by @hanxi)
📝 Documentation Changes
b023c27- update CHANGELOG for v2.8.0 (commit by @github-actions[bot])dc661e8- repowiki: regenerate wiki from latest codebase (commit by @hanxi)
🔧 Chores
8bb65ea- miot: update submodule ref for #157 fix (commit by @hanxi)95dd299- miot: update submodule ref for #155 indicator light fix (commit by @hanxi)2396230- submodule: update songloft-plugin-downloader (commit by @hanxi)83555f4- submodule: update songloft-plugin-downloader (commit by @hanxi)49eb151- submodule: update jsplugins package-lock.json (commit by @hanxi)6213546- release version 2.8.1 (commit by @hanxi)
[v2.8.0] - 2026-06-11
✨ New Features
da56b08- scan: add toggle to enable/disable auto-create playlists on scan (commit by @hanxi)f2a6c1e- jsplugin: externalPaths 改为 manifest 声明,删除管理员 API (PR #151 by @hanxi)f313243- api: 暴露 lyric_remote_url 字段,支持编辑网络歌曲歌词 URL (PR #141 by @hanxi)afc45a6- tracely: 支持安装/升级统计上报,配置改为三变量注入 (commit by @hanxi)
🐛 Bug Fixes
99a4d4f- #145 #147 - WriteTags damaged cover cleanup + playlist cover fallback to songs (PR #150 by @laihya)1e76796- jsplugin: resolveFSPath 支持 music:// 和绝对路径 (PR #151 by @hanxi)d0c7140- scan: chromaprint 指纹被歌词/元数据污染 (PR #146 by @hanxi)
📝 Documentation Changes
e43a1c9- update CHANGELOG for v2.7.0 (commit by @github-actions[bot])
🔧 Chores
a2c4860- bump plugin submodules (tag v1.0.6, dav v1.0.4, subsonic v2.0.1) (commit by @hanxi)dceab9e- release version 2.8.0 (commit by @hanxi)
[v2.7.0] - 2026-06-09
✨ New Features
9b3fb55- jsplugin: support pathPrefix param in songs.list bridge (commit by @hanxi)59f8d0c- song: add ISRC field to Song model and extract from audio tags (commit by @hanxi)4ccbc0c- scan: add auto-scan with file stability detection (commit by @hanxi)24f934d- 核心镜像缺ALSA用户态运行文件 (PR #135 by @huaimi123)5b8d062- jsplugin: add serveFile directive, file serve route, and publicPaths (commit by @hanxi)139b667- jsplugin: add external-paths settings API (commit by @hanxi)e7c365c- subsonic: add Subsonic server mode (commit by @hanxi)b5ebe57- subsonic: add server mode settings UI (commit by @hanxi)afd326e- subsonic: add getGenres endpoint (commit by @hanxi)51eab49- subsonic: add getSong, getStarred, getIndexes endpoints (commit by @hanxi)383b6c1- subsonic: getStarred reads from built-in favorites playlist (commit by @hanxi)f3f9b85- subsonic: add copy button for server URL (commit by @hanxi)fdddf45- jsplugin: add plugin icon support (PR #139 by @hanxi)
🐛 Bug Fixes
fc52d35- miot: embed模式下搜索框被遮挡 (commit by @hanxi)4e06ba5- plugin-toolchain: add fs:music, fs:external to builder permission whitelist (commit by @hanxi)59e2f65- jsplugin: publicPaths bypass via AuthMiddleware checker (commit by @hanxi)1997a90- subsonic: server URL display should not include /rest suffix (commit by @hanxi)48d4939- subsonic: fix field mapping and add getAlbum/getArtist endpoints (commit by @hanxi)a927818- subsonic: add required song fields for client compatibility (commit by @hanxi)66a0114- subsonic: fix cover art and add lyrics support (commit by @hanxi)e26f71e- subsonic: playlist cover art display (commit by @hanxi)
♻️ Refactors
📝 Documentation Changes
d5810c5- update CHANGELOG for v2.6.4 (commit by @github-actions[bot])
🔧 Chores
eda34ed- subsonic: rename plugin title (commit by @hanxi)59b7541- release version 2.7.0 (commit by @hanxi)
[v2.6.4] - 2026-06-07
✨ New Features
27aeb03- jsplugin: 支持插件强制更新(跳过版本检查) (commit by @hanxi)0cce183- fingerprint: 支持重新计算全部音频指纹 (commit by @hanxi)
🐛 Bug Fixes
📝 Documentation Changes
f63c93a- update CHANGELOG for v2.6.3 (commit by @github-actions[bot])
🔧 Chores
[v2.6.3] - 2026-06-07
✨ New Features
5dbbff9- 用 ffmpeg chromaprint 替代 fpcalc,扫描后自动计算指纹 (commit by @hanxi)fe7810c- 更新 miot 插件,支持定时开关对话监听 (commit by @hanxi)4fbfdcb- 重构插件主题 (commit by @hanxi)ca52f4e- dedup: 指纹去重删除时同步删除音频文件 (commit by @hanxi)
🐛 Bug Fixes
cec5a8a- 设置 PKG_CONFIG_PATH 让 ffmpeg configure 找到 libchromaprint (commit by @hanxi)d4a8cc4- 设置 PKG_CONFIG_PATH 让 ffmpeg configure 找到 libchromaprint (commit by @hanxi)872abaf- tag: 移除与 common.css 重复的导航样式,修复非 embed 模式 tab 异常 (commit by @hanxi)8336676- tag: 移除与 common.css 重复的 card 样式定义 (commit by @hanxi)9c8db18- settings: 缓存管理操作区域默认折叠,防止误触 (commit by @hanxi)
⚡ Performance Improvements
♻️ Refactors
a4459ad- tag: 导航改为底部 tab-bar,统一插件 UI 风格 (commit by @hanxi)87c217f- tag-plugin: 移除 fpcalc 依赖,改用主程序指纹 (commit by @hanxi)
📝 Documentation Changes
9882bb0- update CHANGELOG for v2.6.2 (commit by @github-actions[bot])bd688b2- faq: 添加多音乐目录配置方法 (commit by @hanxi)
🔧 Chores
316bbd6- 更新 dav/subsonic 子模块,清理死代码 (commit by @hanxi)28da741- 更新 miot 子模块,搜索前打断音箱播报 (commit by @hanxi)3306c2c- release version 2.6.3 (commit by @hanxi)
[v2.6.2] - 2026-06-06
✨ New Features
🐛 Bug Fixes
🔧 Chores
[v2.6.0] - 2026-06-05
✨ New Features
7bfe806- 扫描歌曲支持用文件名作为标题 songloft-org/songloft#100 (commit by @hanxi)b140863- 实现自定义tab songloft-org/songloft#103 (commit by @hanxi)e9419a8- 插件新增 websocket 接口 (commit by @hanxi)d433bd2- 插件适配嵌入到主程序 (commit by @hanxi)
🐛 Bug Fixes
4cf8a77- 修复插件无法运行的问题 (commit by @hanxi)2db9ac8- 统一插件打包脚本 (commit by @hanxi)236ec5b- convert: 接入全局 HTTP 代理,修复代理环境下歌曲/封面下载失败 (commit by @hanxi)
📝 Documentation Changes
d387aaa- update CHANGELOG for v2.5.1 (commit by @github-actions[bot])
🔧 Chores
93d8f56- 更新插件子模块及构建脚本 (commit by @hanxi)ae2b657- 更新插件子模块引用 (commit by @hanxi)5e52336- release version 2.6.0 (commit by @hanxi)
[v2.5.1] - 2026-06-04
✨ New Features
cba096f- 支持全局HTTP代理 (commit by @hanxi)a0fd898- 新增标签内容写入接口和歌曲文件整理接口 (commit by @hanxi)eabba1d- 插件新增 fs 接口 (commit by @hanxi)
🐛 Bug Fixes
1c48c37- 部分歌曲标签信息识别不出来 #95 (commit by @hanxi)adc0019- 修复编码问题 songloft-org/songloft#104 (commit by @hanxi)
📝 Documentation Changes
58a4ffd- update CHANGELOG for v2.5.0 (commit by @github-actions[bot])
🔧 Chores
[v2.5.0] - 2026-06-04
✨ New Features
8cd86bb- 支持一键更新所有插件 songloft-org/songloft#61 (commit by @hanxi)bda6f9c- 新增插件下载和执行命令 #90 (commit by @hanxi)22a7270- 新增插件源 songloft-org/songloft#89 (commit by @hanxi)635787a- 新增官方插件源地址 (commit by @hanxi)4f01f2c- 优化版本升级逻辑 (commit by @hanxi)7bd92c5- 继续优化首次加载页面速度 (commit by @hanxi)
🐛 Bug Fixes
1596210- 优化首次加载 songloft-org/songloft#91 (commit by @hanxi)2d85024- http: 修复 URL userinfo 丢失及 JS URL polyfill 相对路径解析缺陷 (commit by @hanxi)f268fe3- proxy: add basic auth handling and update User-Agent for remote resources (PR #93 by @Dev-Wiki)38174a4- 修复打包镜像报错 (commit by @hanxi)5e971b3- scan: 检测并跳过垃圾 tag,回退使用文件名作为标题 (PR #94 by @hanxi)
📝 Documentation Changes
c3cde9f- update CHANGELOG for v2.4.0 (commit by @github-actions[bot])
🔧 Chores
[v2.4.0] - 2026-06-02
✨ New Features
4f80073- 规范设置接口 (commit by @hanxi)7ff3c77- 支持设置日志等级 (commit by @hanxi)d3b48ac- 新增歌词调整 songloft-org/songloft#49 (commit by @hanxi)b1acd65- 继续优化快速切歌卡顿问题 #49 (commit by @hanxi)1df746a- 网络歌单转本地优化 (commit by @hanxi)
🐛 Bug Fixes
c0751a2- 解决m3u8格式的电台无法播放问题 (commit by @hanxi)aca70a4- access log 改用 slog 输出,解决日志等级控制问题 (commit by @hanxi)
👷 Build System
📝 Documentation Changes
0a5af24- update CHANGELOG for v2.3.0 (commit by @github-actions[bot])
🔧 Chores
[v2.3.0] - 2026-06-01
✨ New Features
dad2d9c- 电台支持走后端代理 (commit by @hanxi)2d10351- 快速切多次歌曲时抖动优化 songloft-org/songloft#79 (commit by @hanxi)8bedce2- 添加歌曲支持目录筛选和类型筛选 songloft-org/songloft#57 (commit by @hanxi)
🐛 Bug Fixes
📝 Documentation Changes
f0df02e- update CHANGELOG for v2.2.5 (commit by @github-actions[bot])
🔧 Chores
[v2.2.5] - 2026-06-01
📝 Documentation Changes
bb299cf- update CHANGELOG for v2.2.4 (commit by @github-actions[bot])
🔧 Chores
[v2.2.4] - 2026-05-31
🐛 Bug Fixes
📝 Documentation Changes
5e4c594- update CHANGELOG for v2.2.3 (commit by @github-actions[bot])
🔧 Chores
[v2.2.3] - 2026-05-31
🐛 Bug Fixes
cebaeb5- 修复电台无法播放问题 (commit by @hanxi)b9564f7- 修复ffmpeg转码问题 (commit by @hanxi)ed70e1e- 上传封面问题 #78 (commit by @hanxi)
📝 Documentation Changes
18b47a8- update CHANGELOG for v2.2.2 (commit by @github-actions[bot])
🔧 Chores
[v2.2.2] - 2026-05-31
✨ New Features
📝 Documentation Changes
1187bc9- update CHANGELOG for v2.2.1 (commit by @github-actions[bot])
🔧 Chores
[v2.2.1] - 2026-05-31
🐛 Bug Fixes
📝 Documentation Changes
9cecfe9- update CHANGELOG for v2.2.0 (commit by @github-actions[bot])
🔧 Chores
[v2.2.0] - 2026-05-31
🐛 Bug Fixes
📝 Documentation Changes
4e664c8- update CHANGELOG for v2.1.2 (commit by @github-actions[bot])
🔧 Chores
[v2.1.2] - 2026-05-31
🐛 Bug Fixes
📝 Documentation Changes
c688fa7- update CHANGELOG for v2.1.1 (commit by @github-actions[bot])
🔧 Chores
[v2.1.1] - 2026-05-30
📝 Documentation Changes
22f154b- update CHANGELOG for v2.1.0 (commit by @github-actions[bot])
🔧 Chores
[v2.1.0] - 2026-05-30
✨ New Features
🐛 Bug Fixes
📝 Documentation Changes
587abc9- update CHANGELOG for v2.0.2 (commit by @github-actions[bot])
🔧 Chores
[v2.0.2] - 2026-05-30
✨ New Features
🐛 Bug Fixes
📝 Documentation Changes
b8e513e- update CHANGELOG for v2.0.1 (commit by @github-actions[bot])
🔧 Chores
[v2.0.1] - 2026-05-29
✨ New Features
🔧 Chores
[v2.0.0-alpha.1] - 2026-05-29
✨ New Features
🐛 Bug Fixes
♻️ Refactors
65c53cb- rename Go module mimusic -> songloft (v2.0) (commit by @hanxi)fc2d601- rename JS plugin global ABI mimusic.* -> songloft.* (v2.0) (commit by @hanxi)c9f05cd- rename runtime literals MiMusic -> Songloft (v2.0) (commit by @hanxi)c32ab18- retire jsplugins aggregator, plugins self-host releases (commit by @hanxi)
👷 Build System
📝 Documentation Changes
1b766d2- add NOTICE and PRIVACY.md for license and privacy compliance (commit by @hanxi)2f5bbf8- tighten README disclaimers and remove demo site link (commit by @hanxi)85244b1- announce planned v2.0 rebrand to Songloft (commit by @hanxi)5da054a- add MIGRATION.md for v2.0 Songloft rebrand (commit by @hanxi)79c6df9- swagger: regenerate Swagger after v2.0 rebrand (commit by @hanxi)b3b17d7- add V2 release playbook + update-remotes helper (commit by @hanxi)7bc6fdd- playbook: fix gh CLI command + add transfer helper script (commit by @hanxi)432632d- complete link migration to songloft-org / songloft.hanxi.cc (commit by @hanxi)392fdc4- remove 'formerly MiMusic' from AGENTS.md (commit by @hanxi)
🔧 Chores
07fada7- remove lxmusic plugins and rename xiaomi plugin (legal cleanup) (commit by @hanxi)a12a765- bump jsplugins submodule to drop xiaomi.json (commit by @hanxi)8027762- bump plugin-toolchain, jsplugin-musicsdk, pkg/tag submodules (commit by @hanxi)6c80981- wire up songloft-player submodule rename (v2.0) (commit by @hanxi)abb6ade- wire up songloft-plugin-miot submodule rename (v2.0) (commit by @hanxi)68a497f- gitignore songloft-player-build (Phase 3h follow-up) (commit by @hanxi)95e3c0e- bump submodule pointers to alpha-published commits (commit by @hanxi)
[1.4.1] - 2026-05-28
✨ New Features
🐛 Bug Fixes
🔧 Chores
[1.4.0] - 2026-05-27
✨ New Features
4483c45- 自动创建歌单功能简化 (commit by @hanxi)6cfd245- 歌曲下载功能优化 (commit by @hanxi)f8dcd21- 简化歌曲歌词封面的url逻辑 (commit by @hanxi)9148dc9- 重构url (commit by @hanxi)e8c91b1- 优化url路径 (commit by @hanxi)7ff56ff- 移除wasm插件模块 (commit by @hanxi)81c618f- 网络歌曲转本地歌曲支持写入tag (commit by @hanxi)
🐛 Bug Fixes
8de0455- 修复 js fetch 接口问题 (commit by @hanxi)55e6818- 歌曲去重 (commit by @hanxi)f612c13- 修复歌单名重复问题 (commit by @hanxi)e450a56- 修复歌单名重复问题 (commit by @hanxi)c4951d3- sqlite问题 (commit by @hanxi)97bc3de- 修复url问题 (commit by @hanxi)43b2431- 修复插件接口问题 (commit by @hanxi)
♻️ Refactors
a37070b- test: 删除手写 mock,全切 :memory: 真实 DB (commit by @hanxi)c7e2032- database: 引入 UnitOfWork,下线 database.Tx/SQLiteTx (commit by @hanxi)d58e1d4- database: playlist_songs 表切到 PlaylistSongRepository (commit by @hanxi)8c23575- database: playlists 表切到 PlaylistRepository (commit by @hanxi)10337aa- database: songs 表切到 SongRepository (commit by @hanxi)9d995cc- database: js_plugins 仓储改用 sqlc.Queries (commit by @hanxi)7094d5f- database: configs 表切到 ConfigRepository (commit by @hanxi)ea352cd- database: tokens 表切到 TokenRepository (commit by @hanxi)b004464- database: 引入 sqlc + goose + squirrel 基础设施 (commit by @hanxi)1910fd0- 抽取 InternalURLResolver,让歌词代理 URL 也能带 token 访问 (commit by @hanxi)
📝 Documentation Changes
50a67b1- database: 新增 DATABASE_MIGRATIONS 操作指南 + 集成 sqlc 命令到 Makefile (commit by @hanxi)703d2bc- agents: 同步数据库重构后的开发约定 (commit by @hanxi)
🔧 Chores
3c07269- release version 1.4.0 (commit by @hanxi)96aa6c4- bump musicsdk v1.1.0 + lxmusic 用上 LyricFetcher.lyricParams (commit by @hanxi)
[1.3.50] - 2026-05-25
✨ New Features
🔧 Chores
[1.3.49] - 2026-05-24
🐛 Bug Fixes
🔧 Chores
[1.3.48] - 2026-05-22
🐛 Bug Fixes
🔧 Chores
[1.3.47] - 2026-05-22
✨ New Features
🐛 Bug Fixes
🔧 Chores
[1.3.46] - 2026-05-21
✨ New Features
🔧 Chores
[1.3.45] - 2026-05-20
✨ New Features
989769c- 自动创建的歌单默认按照数字前缀排序 (commit by @hanxi)5c47ffc- 新增js虚拟机 (commit by @hanxi)39dab1b- 新增js api (commit by @hanxi)ac27696- 新增 lxmusic 插件 (commit by @hanxi)
🐛 Bug Fixes
🔧 Chores
[1.3.43] - 2026-05-16
🔧 Chores
[1.3.42] - 2026-05-16
✨ New Features
1349f40- js插件性能优化 (commit by @hanxi)170a793- js插件支持jsc (commit by @hanxi)6058a32- 新增JS插件管理 (commit by @hanxi)bca3678- js插件开发 (commit by @hanxi)9a2dc3a- 新增js插件机制 (commit by @hanxi)1352e6e- 插件休眠更激进 (commit by @hanxi)
🐛 Bug Fixes
1528474- 修复js插件相关问题 (commit by @hanxi)71565f6- 修复js插件问题 (commit by @hanxi)ea95c15- JS插件问题修复 (commit by @hanxi)
♻️ Refactors
🔧 Chores
📝 Other Changes
[1.3.41] - 2026-05-11
✨ New Features
a04fb2f- 内存优化:空闲插件自动休眠 (commit by @hanxi)fc60dfd- 内存优化 (commit by @hanxi)4f77b55- 内存优化 (commit by @hanxi)
🔧 Chores
[1.3.40] - 2026-05-07
🐛 Bug Fixes
🔧 Chores
[1.3.39] - 2026-05-06
✨ New Features
🔧 Chores
[1.3.38] - 2026-05-06
✨ New Features
🐛 Bug Fixes
🔧 Chores
[1.3.37] - 2026-04-30
🐛 Bug Fixes
🔧 Chores
[1.3.35] - 2026-04-29
✨ New Features
🔧 Chores
[1.3.34] - 2026-04-27
🐛 Bug Fixes
🔧 Chores
[1.3.33] - 2026-04-26
🔧 Chores
[1.3.32] - 2026-04-26
🐛 Bug Fixes
🔧 Chores
[1.3.31] - 2026-04-25
🔧 Chores
[1.3.30] - 2026-04-25
🐛 Bug Fixes
🔧 Chores
📝 Other Changes
[1.3.29] - 2026-04-20
✨ New Features
🐛 Bug Fixes
🔧 Chores
[1.3.28] - 2026-04-20
✨ New Features
🔧 Chores
[1.3.24] - 2026-04-19
🔧 Chores
📝 Other Changes
[1.3.22] - 2026-04-17
✨ New Features
1110184- 优化启动速度 (commit by @hanxi)9dc1eda- 删除 entry_path 字段 (commit by @hanxi)1e880a1- 新增插件重置功能 (commit by @hanxi)
🔧 Chores
[1.3.21] - 2026-04-17
✨ New Features
🐛 Bug Fixes
🔧 Chores
[1.3.20] - 2026-04-16
🔧 Chores
📝 Other Changes
[1.3.18] - 2026-04-15
✨ New Features
dd8887d- 新增批量删除歌单接口 (commit by @hanxi)5abf830- 缓存功能优化 (commit by @hanxi)4b74298- 服务端资源缓存优化 (commit by @hanxi)
🐛 Bug Fixes
🔧 Chores
[1.3.16] - 2026-04-10
✨ New Features
🐛 Bug Fixes
db0e395- 修复升级问题 (commit by @hanxi)00ff400- 修复升级问题 (commit by @hanxi)b904424- 修复更新问题 (commit by @hanxi)3d9ac57- 修复更新问题 (commit by @hanxi)eb69df6- 修复更新问题 (commit by @hanxi)7b6b45a- 修复更新问题 (commit by @hanxi)67e8840- 修复更新问题 (commit by @hanxi)a09c6a9- 修复端内更新问题 (commit by @hanxi)
🔧 Chores
3b6a91d- release version 1.3.16 (commit by @hanxi)a478a02- release version 1.3.14 (commit by @hanxi)
📝 Other Changes
[1.3.13] - 2026-04-09
✨ New Features
4e3ec57- 新增发布内容 (commit by @hanxi)c912ace- 支持断点续传 (commit by @hanxi)03a67b4- 新增异步下载接口 (commit by @hanxi)a381643- 写入 server_platform 到数据库 (commit by @hanxi)720a06e- 新增执行命令协议 (commit by @hanxi)d124fd9- 优化无参数启动方式 (commit by @hanxi)
🐛 Bug Fixes
d060619- 解决文件权限问题 (commit by @hanxi)326b618- 网络歌曲导入问题修复 (commit by @hanxi)1fcce62- 修复导入歌曲问题 (commit by @hanxi)
🔧 Chores
📝 Other Changes
4cfb584- update doc (commit by @hanxi)0ea9351- update doc (commit by @hanxi)3baf9e9- 歌单排序优化 (commit by @hanxi)a2f5968- 调试 (commit by @hanxi)
[1.3.12] - 2026-04-08
✨ New Features
🔧 Chores
📝 Other Changes
[1.3.10] - 2026-04-06
🐛 Bug Fixes
3aee951- 修复报错 (commit by @hanxi)d80dda2- sql error (commit by @hanxi)c908f4e- 修复问题 (commit by @hanxi)
♻️ Refactors
12e3c76- 优化扫码登录 (commit by @hanxi)825ceaa- 优化超时 (commit by @hanxi)77578cc- 优化网络歌曲播放时长 (commit by @hanxi)
🔧 Chores
📝 Other Changes
54ff2b8- update http (commit by @hanxi)96559c5- update http (commit by @hanxi)daa2ca3- 插件时间问题 (commit by @hanxi)
[1.3.9] - 2026-04-03
✨ New Features
🔧 Chores
📝 Other Changes
[1.3.8] - 2026-04-03
✨ New Features
🔧 Chores
📝 Other Changes
[1.3.7] - 2026-04-02
🔧 Chores
📝 Other Changes
[1.3.6] - 2026-04-02
♻️ Refactors
🔧 Chores
[1.3.5] - 2026-04-02
🔧 Chores
[1.3.4] - 2026-04-01
✨ New Features
🐛 Bug Fixes
🔧 Chores
[1.3.3] - 2026-03-31
✨ New Features
🔧 Chores
📝 Other Changes
[1.3.2] - 2026-03-30
✨ New Features
🔧 Chores
📝 Other Changes
[1.3.1] - 2026-03-30
🔧 Chores
[1.3.0] - 2026-03-30
🔧 Chores
[1.2.8] - 2026-03-30
✨ New Features
e195111- 网络歌曲支持导入图片 (commit by @hanxi)de1c838- 重构jsruntime (commit by @hanxi)b78130f- use ccgo quickjs (commit by @hanxi)
♻️ Refactors
🔧 Chores
📝 Other Changes
fb424e2- 提交wiki (commit by @hanxi)3972cad- 接入cqjs (commit by @hanxi)cffb54e- 插件健康检测 (commit by @hanxi)
[1.2.7] - 2026-03-26
✨ New Features
🔧 Chores
📝 Other Changes
[1.2.6] - 2026-03-25
🔧 Chores
[1.2.5] - 2026-03-25
✨ New Features
♻️ Refactors
🔧 Chores
96b42c5- release version 1.2.5 (commit by @hanxi)7b00668- convert frontend from directory to submodule (commit by @hanxi)
📝 Other Changes
c9d741d- 版本发布脚本 (commit by @hanxi)c1ce566- 版本发布脚本 (commit by @hanxi)6025f4b- 新版本 (commit by @hanxi)54ad790- 新版本 (commit by @hanxi)51d43a4- 新版本 (commit by @hanxi)ca53020- 新版本 (commit by @hanxi)90ed646- 新版本 (commit by @hanxi)00ff846- 新版本 (commit by @hanxi)568c5c0- 新版本 (commit by @hanxi)fdf177e- update frontend (commit by @hanxi)029c4d6- 新版本 (commit by @hanxi)aa66e98- 新版本 (commit by @hanxi)0833807- frontend 支持独立部署 (commit by @hanxi)f61d74e- 更新文档 (commit by @hanxi)72e5c97- 修改名字 (commit by @hanxi)1b73996- remove mobile (commit by @hanxi)d97a16a- update mobile (commit by @hanxi)
[1.2.4] - 2026-03-19
🔧 Chores
[1.2.3] - 2026-03-19
✨ New Features
🐛 Bug Fixes
7ee9c74- build failed (commit by @hanxi)d8afe4a- 修复paw (commit by @hanxi)be6c2c4- 修复通知栏丢失的问题 (commit by @hanxi)aa01b1d- 修复pwa更新问题 (commit by @hanxi)154ad14- 修复通知栏消失的问题 (commit by @hanxi)4bbf98e- 修复乱码问题 (commit by @hanxi)
♻️ Refactors
43ff722- 优化界面 (commit by @hanxi)586049a- 优化移动端播放器 (commit by @hanxi)1d4b350- 优化移动端播放器 (commit by @hanxi)43b20a8- 优化移动端播放器 (commit by @hanxi)7abfe93- 优化移动端播放器 (commit by @hanxi)2cf5923- 优化移动端播放器 (commit by @hanxi)e6d7afe- 优化移动端播放器 (commit by @hanxi)6ee93ee- 优化播放器界面 (commit by @hanxi)7836361- 重构错误捕获 (commit by @hanxi)dda851a- 优化播放列表 (commit by @hanxi)0f3adee- 优化主页 (commit by @hanxi)3bd566e- 优化日志 (commit by @hanxi)e1da51d- 优化插件管理 (commit by @hanxi)1aa8bfa- 优化插件管理 (commit by @hanxi)892fb58- 优化插件管理 (commit by @hanxi)
🔧 Chores
eec45bf- release version 1.2.3 (commit by @hanxi)84cefea- release version 1.2.2 (commit by @hanxi)
📝 Other Changes
8fbf17f- 尝试修复后台通知栏丢失问题 (commit by @hanxi)30ab1c0- 尝试修复后台通知栏丢失问题 (commit by @hanxi)53cd756- 强制更新pwa (commit by @hanxi)a572312- 测试 tracely sdk (commit by @hanxi)eb48e8b- 测试 tracely sdk (commit by @hanxi)5309e1c- 测试 tracely sdk (commit by @hanxi)af8bfbe- 测试 tracely sdk (commit by @hanxi)9991da4- 接入tracely (commit by @hanxi)472c300- 接入tracely (commit by @hanxi)4c8719f- 细节优化 (commit by @hanxi)5485f4e- 标题超长则循环滚动 (commit by @hanxi)c31da28- 修改菜单按钮颜色 (commit by @hanxi)3f974c7- 尝试修复通知栏消失问题 (commit by @hanxi)
[1.2.1] - 2026-02-26
🐛 Bug Fixes
🔧 Chores
[1.2.0] - 2026-02-26
🔧 Chores
[1.1.0] - 2026-02-25
✨ New Features
391d4dd- 新增接口获取token (commit by @hanxi)21aeff9- Add mimusic-plugin-musictag as submodule (commit by @hanxi)
🐛 Bug Fixes
893e880- 解决标题问题 (commit by @hanxi)2092853- 修复乱码问题 (commit by @hanxi)af4454f- 解决编码乱码问题 (commit by @hanxi)4894785- 解决编码乱码问题 (commit by @hanxi)148d36a- 解决编码乱码问题 (commit by @hanxi)430bb64- 解决编码乱码问题 (commit by @hanxi)f8cf809- 解决编码乱码问题 (commit by @hanxi)
♻️ Refactors
767c806- 优化歌单体验 (commit by @hanxi)57020cf- 优化图片 (commit by @hanxi)87a88b7- 优化图片 (commit by @hanxi)
🔧 Chores
f5690fc- release version 1.1.0 (commit by @hanxi)d3cc78b- release version 1.0.12 (commit by @hanxi)1b9a285- release version 1.0.11 (commit by @hanxi)e49b9f3- release version 1.0.10 (commit by @hanxi)
📝 Other Changes
4d35862- 处理歌曲封面 (commit by @hanxi)10739d8- 网络歌曲播放时长 (commit by @hanxi)bf35fa5- close cgo (commit by @hanxi)2234e30- update no cgo sqlite (commit by @hanxi)
[1.0.9] - 2026-02-21
🔧 Chores
[1.0.8] - 2026-02-21
🔧 Chores
415b5ef- release version 1.0.8 (commit by @hanxi)c507f93- release version 1.0.7 (commit by @hanxi)
[1.0.6] - 2026-02-21
🔧 Chores
823f5db- release version 1.0.6 (commit by @hanxi)34ca5d4- release version 1.0.5 (commit by @hanxi)caa1448- release version 1.0.4 (commit by @hanxi)1321d73- release version 1.0.3 (commit by @hanxi)ad8d269- release version 1.0.2 (commit by @hanxi)1892189- release version 1.0.1 (commit by @hanxi)
📝 Other Changes
338cd69- upate (commit by @hanxi) [v2.0.0-alpha.1]: https://github.com/songloft-org/songloft/compare/e0a9fd8a53e21bc17982323664e10f8d9549531a...v2.0.0-alpha.1 [v2.0.1]: https://github.com/songloft-org/songloft/compare/v2.0.0...v2.0.1 [v2.0.2]: https://github.com/songloft-org/songloft/compare/v2.0.1...v2.0.2 [v2.1.0]: https://github.com/songloft-org/songloft/compare/v2.0.2...v2.1.0 [v2.1.1]: https://github.com/songloft-org/songloft/compare/v2.1.0...v2.1.1 [v2.1.2]: https://github.com/songloft-org/songloft/compare/v2.1.1...v2.1.2 [v2.2.0]: https://github.com/songloft-org/songloft/compare/v2.1.2...v2.2.0 [v2.2.1]: https://github.com/songloft-org/songloft/compare/v2.2.0...v2.2.1 [v2.2.2]: https://github.com/songloft-org/songloft/compare/v2.2.1...v2.2.2 [v2.2.3]: https://github.com/songloft-org/songloft/compare/v2.2.2...v2.2.3 [v2.2.4]: https://github.com/songloft-org/songloft/compare/v2.2.3...v2.2.4 [v2.2.5]: https://github.com/songloft-org/songloft/compare/v2.2.4...v2.2.5 [v2.3.0]: https://github.com/songloft-org/songloft/compare/v2.2.5...v2.3.0 [v2.4.0]: https://github.com/songloft-org/songloft/compare/v2.3.0...v2.4.0 [v2.5.0]: https://github.com/songloft-org/songloft/compare/v2.4.0...v2.5.0 [v2.5.1]: https://github.com/songloft-org/songloft/compare/v2.5.0...v2.5.1 [v2.6.0]: https://github.com/songloft-org/songloft/compare/v2.5.1...v2.6.0 [v2.6.2]: https://github.com/songloft-org/songloft/compare/v2.6.1...v2.6.2 [v2.6.3]: https://github.com/songloft-org/songloft/compare/v2.6.2...v2.6.3 [v2.6.4]: https://github.com/songloft-org/songloft/compare/v2.6.3...v2.6.4 [v2.7.0]: https://github.com/songloft-org/songloft/compare/v2.6.4...v2.7.0 [v2.8.0]: https://github.com/songloft-org/songloft/compare/v2.7.0...v2.8.0 [v2.8.1]: https://github.com/songloft-org/songloft/compare/v2.8.0...v2.8.1 [v2.8.2]: https://github.com/songloft-org/songloft/compare/v2.8.1...v2.8.2 [v2.8.3]: https://github.com/songloft-org/songloft/compare/v2.8.2...v2.8.3 [v2.8.4]: https://github.com/songloft-org/songloft/compare/v2.8.3...v2.8.4 [v2.8.5]: https://github.com/songloft-org/songloft/compare/v2.8.4...v2.8.5 [v2.8.6]: https://github.com/songloft-org/songloft/compare/v2.8.5...v2.8.6 [v2.8.7]: https://github.com/songloft-org/songloft/compare/v2.8.6...v2.8.7 [v2.8.8]: https://github.com/songloft-org/songloft/compare/v2.8.7...v2.8.8 [v2.8.9]: https://github.com/songloft-org/songloft/compare/v2.8.8...v2.8.9 [v2.8.10]: https://github.com/songloft-org/songloft/compare/v2.8.9...v2.8.10 [v2.9.0]: https://github.com/songloft-org/songloft/compare/v2.8.10...v2.9.0 [v2.9.1]: https://github.com/songloft-org/songloft/compare/v2.9.0...v2.9.1 [v2.9.2]: https://github.com/songloft-org/songloft/compare/v2.9.1...v2.9.2 [v2.9.3]: https://github.com/songloft-org/songloft/compare/v2.9.2...v2.9.3 [v2.9.4]: https://github.com/songloft-org/songloft/compare/v2.9.3...v2.9.4 [v2.9.5]: https://github.com/songloft-org/songloft/compare/v2.9.4...v2.9.5 [v2.9.6]: https://github.com/songloft-org/songloft/compare/v2.9.5...v2.9.6 [v2.10.0]: https://github.com/songloft-org/songloft/compare/v2.9.6...v2.10.0 [v2.11.0]: https://github.com/songloft-org/songloft/compare/v2.10.0...v2.11.0 [v2.11.1]: https://github.com/songloft-org/songloft/compare/v2.11.0...v2.11.1 [v2.11.3]: https://github.com/songloft-org/songloft/compare/v2.11.2...v2.11.3 [v2.11.4]: https://github.com/songloft-org/songloft/compare/v2.11.3...v2.11.4 [v2.11.5]: https://github.com/songloft-org/songloft/compare/v2.11.4...v2.11.5 [v2.11.6]: https://github.com/songloft-org/songloft/compare/v2.11.5...v2.11.6 [v2.12.0]: https://github.com/songloft-org/songloft/compare/v2.11.6...v2.12.0 [v2.12.1]: https://github.com/songloft-org/songloft/compare/v2.12.0...v2.12.1 [v2.13.0]: https://github.com/songloft-org/songloft/compare/v2.12.1...v2.13.0 [v2.13.1]: https://github.com/songloft-org/songloft/compare/v2.13.0...v2.13.1
