Skip to content

Releases: chenbin3625/OpenSync

v1.13.2

Choose a tag to compare

@chenbin3625 chenbin3625 released this 10 Sep 03:45

What's Changed in v1.13.2

发布流程 (Release Pipeline)

  • 前端只构建一次:内嵌 Web 静态资源不再在 7 个矩阵任务里各自执行 npm ci && npm run build,改为构建一次并以 artifact 分发给各平台,缩短发布耗时并避免各平台产物分叉。
  • Node 版本统一ci.ymlrelease-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

Choose a tag to compare

@chenbin3625 chenbin3625 released this 08 Sep 08:02

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

Choose a tag to compare

@chenbin3625 chenbin3625 released this 02 Sep 06:48

修复自定义 Webhook 无法访问内网服务的问题。\n\n- 允许自定义 Webhook 使用 HTTP 或 HTTPS。\n- 允许 Webhook 指向内网、回环和局域网地址。\n- 钉钉、飞书等专用渠道继续要求 HTTPS。\n- 更新配置文档和回归测试。

v1.12.0

Choose a tag to compare

@chenbin3625 chenbin3625 released this 28 Aug 14:58

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/testPOST /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

Choose a tag to compare

@chenbin3625 chenbin3625 released this 26 Aug 13:45

Full Changelog: v1.11.1...v1.11.2

v1.11.1

Choose a tag to compare

@chenbin3625 chenbin3625 released this 26 Aug 02:34

Full Changelog: v1.11.0...v1.11.1

v1.11.0

Choose a tag to compare

@chenbin3625 chenbin3625 released this 25 Aug 16:38

基于 v1.10.7 重新发布。

  • 代码基线回退至 v1.10.7
  • 发布文档、Docker 镜像标签和工作流版本更新至 1.11.0
  • 自动构建跨平台发布附件并重新推送 Docker Hub 镜像

OpenSync v1.10.11

Choose a tag to compare

@chenbin3625 chenbin3625 released this 25 Aug 14:54

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

Choose a tag to compare

@chenbin3625 chenbin3625 released this 19 Aug 18:46

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

Choose a tag to compare

@chenbin3625 chenbin3625 released this 19 Aug 17:27

OpenSync v1.10.7 发布说明

安全与网络增强

  • 支持局域网/NAS 私网 Webhook 通知(AllowInternalWebhook),放行私网 IP 与 HTTP 协议,适配 Home Assistant、Gotify 等自建服务
  • 密码验证与恢复密钥验证成功后自动重置失败错误计数器,避免正常登录后偶发被锁
  • ReadOrSetFile 增加空文件防损坏检测,保护密钥文件异常置空

后端性能与稳定性

  • authUserCache 增加容量上限约束(1024 条)与超限自动淘汰机制,防止内存无界增长
  • 规范化 job_stream.go API 错误信封,统一错误数据结构
  • 修正 job_mapper.go 任务明细未分页时的真实 COUNT(*) 统计
  • 优化 db.ExecuteMany 空切片短路处理与 util.ToFloat64 类型兼容性

前端视觉与交互优化

  • 顶部导航栏升级现代毛玻璃模糊(backdrop-filter: blur(12px))与当前登录账号徽标展示
  • 全面优化卡片圆角规范(10px)、微悬浮动效与平滑阴影过渡
  • 登录页新增品牌主色调径向环境光晕背景,增强第一视觉质感
  • 优化任务管理概览卡片、实时指标卡与文件列表排版
  • 本地存储键名规范化升级为 opensync_ 前缀并保持平滑向后兼容