• v1.3.4 c583c51d80

    v1.3.4
    Android APK Release / Build Android APK (push) Successful in 1h2m9s
    Stable

    gongyun released this 2026-05-28 23:13:18 +08:00 | 17 commits to main since this release

    fixed: 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