Skip to content

v1.12.0

Choose a tag to compare

@chenbin3625 chenbin3625 released this 28 Aug 14:58
· 17 commits to main since this release

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