-
released this
2026-05-28 23:13:18 +08:00 | 17 commits to main since this releasefixed: Windows/Linux WebView 兼容
- 使用 InAppWebView 替代 webview_flutter
- 开屏公告/文件应用/分享下载三个页面桌面端支持
fixed: 改进 sync-core 网络错误信息
- 区分连接失败/超时/解码失败等,附带 URL 和底层错误链
- 同时日志中还会包含请求的 URL 和底层错误链(source),方便定位是 DNS 解析失败、TLS 握手错误、连接被重置等具体原因
feat: 增强同步引擎网络错误诊断, 区分reqwest错误类型+附带URL和source链+修复空msg问题
服务端错误码映射+上传业务错误跳过重试 80+错误码中文映射,40006等业务错误不再盲目重试
errors.rs
- 新增 4 个 SyncError 变体:
- StoragePolicyDenied — 40006/40035/40057(存储策略不允许/不存在/已变更)
- UploadFailed — 40002/40011/40012/40013/40054(上传失败/会话过期/分片错误/同名上传中)
- FileNotFound — 40044/40077(文件/实体不存在)
- PermissionDenied — 40017/40018/40007/40008(封禁/未激活/组限制/需管理员)api_client.rs
- 新增 server_code_desc() 映射 80+ 个服务端错误码到中文
- api_code_to_error() 将错误码分类为对应的 SyncError 变体。
- parse_response 使用新映射,日志显示如 存储策略不允许: 当前存储策略不允许 而非单纯网络错误uploader.rs
- 上传重试逻辑中,业务错误(StoragePolicyDenied/UploadFailed/FileNotFound/PermissionDenied)直接失败不再重试fixed: 上传失败后清理远端碎片
- 删除远端可能残留的部分文件,delete_files遇锁自动解锁
- worker_impl.rs:上传失败(Ok(Err) 或 JoinError)后调用 cleanup_failed_upload
- cleanup_failed_upload:拼接远端 URI → 调 api.delete_files,其内部遇到 40073 锁冲突会自动解锁重试;删除失败用 debug 级别(文件可能不存在,属正常情况)
feat: 上传支持远程存储策略
- 根据storage_policy.type自动路由上传地址
fixed: 上传失败清理远端碎片时防止SSE事件误删本地文件
- suppress_paths抑制机制
fixed: 远程存储上传添加Content-Range头
- 修复OneDrive等外部存储400错误
- 循环自然继续传下一个分片。202/200/201 的区分日志,方便观察上传进度
feat: 远程存储上传完成后回调服务端
- POST /callback/{policy}/{session_id}/{secret}
fixed: 远程存储上传日志加task_id+文件名前缀
- 并发时区分不同文件,创建会话也显示policy类型
Downloads