Releases: chenbin3625/OpenSync
Releases · chenbin3625/OpenSync
Release list
v1.13.2
What's Changed in v1.13.2
发布流程 (Release Pipeline)
- 前端只构建一次:内嵌 Web 静态资源不再在 7 个矩阵任务里各自执行
npm ci && npm run build,改为构建一次并以 artifact 分发给各平台,缩短发布耗时并避免各平台产物分叉。 - Node 版本统一:
ci.yml、release-assets.yml与 Dockerfile 统一到 Node 24,确保 CI 验证过的前端与最终发布的产物出自同一套工具链。 - 预发布修复:版本校验此前只接受
X.Y.Z,发布预发布版本(如v1.14.0-rc1)会直接失败;现在预发布可以正常发布,且只推送精确版本 tag,不会生成次版本别名与latest。 - 手动触发参数:
version/ref不再有写死的默认值,必须显式指定,避免误重发旧版本;输入改由环境变量传入,不再直接插入 shell 脚本。 - 校验与稳健性:改用
sha256sum生成校验文件,新增并发控制与 job 超时。
安全 (Security)
- Go 工具链升级到 1.26.6:以仓库自身工具链执行
govulncheck时发现 net/http、crypto/tls、net/url、encoding/xml 中可达的标准库漏洞,均已在该版本修复;发布二进制不再携带这些漏洞。
其他 (Other)
- 更新文档与 Docker Hub 说明中的镜像版本至
v1.13.2。
Full Changelog: v1.13.0...v1.13.2
v1.13.0
What's Changed in v1.13.0
界面与交互优化 (UI & Presentation)
- 移除深色模式:去掉暗色模式切换入口、状态持久化逻辑及深色样式分支,界面统一采用清晰清爽的浅色视觉风格。
- 重构用户菜单:将用户名和登出操作整合为统一的右上角用户下拉菜单(支持点击/悬停展示、退出二次确认,并针对小屏移动端做了紧凑自适应)。
- 样式与 CSS 精简:消除重复规则,合并卡片表面、页面头部、列表空状态和通用面板样式,保持页面表现和视觉一致的同时降低样式体积。
同步引擎 (Sync Engine)
- 子目录同步层级保留:修复并优化多源路径同步时的目标目录映射逻辑(
dstPathForSrcSelection),当勾选多个子路径或兄弟目录时,保留其共有的相对父级目录层级结构,避免平铺丢失目录层级。
其他 (Other)
- 更新文档与发布工作流配置至
v1.13.0。
Full Changelog: v1.12.1...v1.13.0
v1.12.1
修复自定义 Webhook 无法访问内网服务的问题。\n\n- 允许自定义 Webhook 使用 HTTP 或 HTTPS。\n- 允许 Webhook 指向内网、回环和局域网地址。\n- 钉钉、飞书等专用渠道继续要求 HTTPS。\n- 更新配置文档和回归测试。
v1.12.0
Highlights
本版本修复了一次全量代码 review 中发现的数据完整性、安全与正确性问题。
同步数据完整性
- 修复 AList 驱动压缩分页(返回条目数少于请求的 per_page)时静默丢失目录后半部分文件的问题
- 目录列表在任务中断时不再把"不完整列表"当作成功返回;服务端 total 与实际内容不一致时会显式报错,而不是悄悄漏文件
- 复制响应未返回任务 ID 时,会先验证目标文件确实存在才判定成功
- 远端复制任务状态改为显式映射(tache.State),不再依赖枚举数值巧合
安全
- 行为变更:
allow_internal_webhook默认值改为false。通知 Webhook 默认只能指向公网 HTTPS 地址;如需通知内网自建服务(ntfy / Bark / Home Assistant 等),请在data/config.ini或环境变量OPENSYNC_ALLOW_INTERNAL_WEBHOOK=true显式开启 data/secret.key写入失败时启动即报错退出,避免密钥静默轮换导致所有登录态与引擎令牌失效- 通知配置回显脱敏补齐:请求体模板、短 URL 路径 token 不再泄露;Server酱 sendKey 做 URL 转义
- 免认证路由前缀精确匹配;登录 Cookie 写入失败时如实返回错误
错误契约
- 删除/编辑不存在或重复的资源(通知、引擎、任务)时返回可操作的错误信息,不再是笼统的 internal server error
- 新增专用测试端点
POST /svr/notify/test;POST /svr/notify不再兼任测试发送
其他修复
config.ini重写时保留手工注释、未知键和其它分段;文档说明其与环境变量的优先级关系- HTTP/3 失败后不再透明重放复制/移动/删除等非幂等请求,避免远端重复执行
- 前端启用 TypeScript strict;修复历史任务列表翻页竞态、目录树加载失败静默、vuex 遗留 localStorage 双写等问题
- 移除未使用的依赖(echarts、js-cookie);新增 CI(go vet/test + 前端 test/build)
Full Changelog: v1.11.2...v1.12.0
v1.11.2
v1.11.1
v1.11.0
基于 v1.10.7 重新发布。
- 代码基线回退至 v1.10.7
- 发布文档、Docker 镜像标签和工作流版本更新至 1.11.0
- 自动构建跨平台发布附件并重新推送 Docker Hub 镜像
OpenSync v1.10.11
OpenSync v1.10.11
本次版本聚焦大目录与实时进度的性能优化,覆盖任务详情分页、统计查询、AList 分页拉取与 SSE 实时进度流。
性能优化
- 任务详情新增
(taskId, type, createTime)与(taskId, isPath, createTime)复合索引:按类型/路径过滤时可直接按创建时间顺序流式分页,不再扫描并排序任务全部条目;同时移除旧的 type 单列索引 - 任务统计查询(各状态计数、总大小)由字符串 map 行扫描改为类型化结构体扫描,减少热路径分配
- AList 多页目录拉取改为固定 worker 池 + 任务通道,并按首个响应条数预分配结果容量,避免合并分页时反复扩容 rehash
- AList 客户端 baseURL 只解析一次;路径首段提取、目录结果构造不再产生临时切片
- 实时进度流:进度帧 key 由格式化字符串改为可比较结构体,patch 生成单趟 O(n) 完成(含消失条目清理),无订阅者时立即释放进度帧
- 前端运行中任务列表分页不再每帧全量排序,SSE 增量 patch 保持既有顺序,仅历史页保留防御性排序
质量
- 为复合索引迁移、统计查询、AList 分页、进度流与前端分页逻辑新增/补齐单元测试
OpenSync v1.10.8
OpenSync v1.10.8
本次版本基于一次全量 Code Review,对同步引擎、网络层、前端实时视图与 CI 流程做了一轮加固与优化。
稳定性 / 性能
- AList HTTP 客户端增加单主机连接上限(MaxConnsPerHost)与响应头超时,高并发下不再无限堆积连接,挂起请求不再长时间占用 worker
- AList 目录清单响应上限由 10MB 提升到 32MB,并支持
OPENSYNC_MAX_LIST_BYTES环境变量调整,超大目录同步不再被硬上限中断 - 复制进度轮询优化:watcher 较少时直接按任务查询,且只保留本任务关心的任务 ID,避免反复拉取 AList 上全部未完成任务
- 前端非运行中任务列表轮询间隔放宽至 15s,降低大任务集对后端聚合查询的压力
- 任务历史计数回填改为合并队列,并发刷新不再丢更新
安全
- AList 客户端新增 SSRF 防护(与通知渠道同款);新增
allow_internal_alist/OPENSYNC_ALLOW_INTERNAL_ALIST开关,默认开启以保证局域网 AList 正常使用
可观测性 / 运维
- worker panic 日志附带调用堆栈,便于排障
- 新增
./opensync healthcheck子命令与容器 HEALTHCHECK,可非特权运行 - Dockerfile 前端构建镜像与 CI 统一到 Node 22
工程与 CI
- 统一 gofmt 格式化(含此前未格式化文件),CI 增加 gofmt / go vet / ESLint 门禁
- 前端
usePathTree稳定onLoadData引用,减少不必要的重复加载
关联
- 全量审查与逐项落地说明见仓库内
docs/code-review-202608.md
v1.10.7
OpenSync v1.10.7 发布说明
安全与网络增强
- 支持局域网/NAS 私网 Webhook 通知(
AllowInternalWebhook),放行私网 IP 与 HTTP 协议,适配 Home Assistant、Gotify 等自建服务 - 密码验证与恢复密钥验证成功后自动重置失败错误计数器,避免正常登录后偶发被锁
ReadOrSetFile增加空文件防损坏检测,保护密钥文件异常置空
后端性能与稳定性
authUserCache增加容量上限约束(1024 条)与超限自动淘汰机制,防止内存无界增长- 规范化
job_stream.goAPI 错误信封,统一错误数据结构 - 修正
job_mapper.go任务明细未分页时的真实COUNT(*)统计 - 优化
db.ExecuteMany空切片短路处理与util.ToFloat64类型兼容性
前端视觉与交互优化
- 顶部导航栏升级现代毛玻璃模糊(
backdrop-filter: blur(12px))与当前登录账号徽标展示 - 全面优化卡片圆角规范(10px)、微悬浮动效与平滑阴影过渡
- 登录页新增品牌主色调径向环境光晕背景,增强第一视觉质感
- 优化任务管理概览卡片、实时指标卡与文件列表排版
- 本地存储键名规范化升级为
opensync_前缀并保持平滑向后兼容