• v1.3.6 6dc0c8bd48

    v1.3.6
    Android APK Release / Build Android APK (push) Successful in 1h16m25s
    Stable

    gongyun released this 2026-06-04 21:40:33 +08:00 | 0 commits to main since this release

    上游源码合并新增自定义线路功能给予付费用户自行选择最优下载加速线路 #9

    Downloads
  • v1.3.5 3b94f40def

    v1.3.5
    Android APK Release / Build Android APK (push) Successful in 1h6m5s
    Stable

    gongyun released this 2026-05-31 10:23:10 +08:00 | 12 commits to main since this release

    add 网络测试功能 #3
    reserved 线路自定义
    optimize 版本更新与检测

    Downloads
  • 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
  • v1.3.3
    Android APK Release / Build Android APK (push) Successful in 1h1m49s
    Stable

    gongyun released this 2026-05-28 03:25:24 +08:00 | 21 commits to main since this release

    桌面端webview验证码支持/分享链接/公告弹窗/剪贴板检测/分类页多选增强/分享面板

    新增功能

    1. 分享链接页面

      • 支持打开 公云存储 分享链接,展示分享者信息、文件列表/单文件卡片
      • 文件夹分享支持面包屑导航、进入子目录
      • 支持下载、转存到自己的网盘、浏览器打开
      • 密码保护分享支持输入密码解锁
      • 分享过期/私密状态展示
      • 同源检测:非同源时头像显示"匿"、转存按钮置灰
    2. 剪贴板分享链接检测

      • App 启动时检测剪贴板,识别 /s/{id} 格式的分享链接
      • App 从后台恢复时重新检测
      • 去重:同一分享 ID 不重复弹窗
    3. 公告弹窗

      • 登录后自动检查站点公告,有变更时弹窗展示
      • 支持指纹去重,同一公告不重复提醒
    4. 对话框队列服务

      • 串行化弹窗展示,避免公告、分享检测等多个弹窗同时弹出
    5. 公云存储 文件应用页面

      • 通过 WebView 打开 公云存储 Web 前端处理文件
      • 自动注入 session ,免二次登录
      • 文件管理器长按菜单添加"在 公云存储 中打开"
    6. 分类文件页多选操作

      • 支持长按选择、全选、批量移动/复制/删除/重命名
      • 选中工具栏含全选按钮和"更多"菜单(重命名+查看详情)
      • 查看详情调用主线 FileInfoPanel(含版本历史)
    7. 分享面板

      • 替换原简单分享对话框为完整 公云存储 分享面板
      • 搜索用户/组、权限矩阵(读/创建/更新/删除)、高级选项(密码/时效/下载限制/付费下载)
      • listGroups 404 优雅降级(Pro 专属 Toast 提示)
    8. SelectionToolbar 增强

      • 新增全选按钮(选中数 < 总数时显示)
      • 新增"更多"按钮(单选时显示,弹出重命名+查看详情)

    Co-authored-by: 上游源码

    UI和界面新功能增强来自有部分合适的改动, 以及新增bug, 缺陷修复和废弃语法

    Bug 修复

    1. listGroups 404 崩溃

      • 新增 silent404 参数,Dio 错误拦截器对预期 404 放行
      • listGroups 捕获 404 返回 null,UI 提示"用户组功能为 Pro 专属"
    2. 分享权限底部弹窗溢出

      • Column 包裹 SingleChildScrollView 防止小屏溢出
    3. 设置页 Row 溢出

      • Text 包裹 Flexible 防止窄屏溢出
    4. 移动/复制对话框空间浪费

      • 对话框宽度改为屏幕 90%,去掉默认 contentPadding
      • FolderPicker 内部水平 padding 从 12-16px 缩到 4px
    5. 分类页 WillPopScope 弃用

      • 替换为 PopScope
    6. 分享页头像加载失败

      • 原裸 NetworkImage 不带 token,改为同源用 UserAvatar 组件(带 token 请求+缓存)同源校验->头像组件or匿名, 匿名转存按钮置灰
    7. 剪贴板分享检测只在启动时触发

      • 添加 WidgetsBindingObserver,App 恢复前台时重新检测
    8. android/app/build.gradle.kts 改动(jniLibs/ndk 配置增加sync_core同步库)

    feat: 桌面端webview验证码支持

          1. pubspec.yaml — 新增 flutter_inappwebview: ^6.2.0-beta.3
          2. captcha_challenge_page.dart — 完整重写:
            - Android 保持 webview_flutter(mobile.WebViewWidget),零侵入
            - Windows/Linux 使用 flutter_inappwebview(InAppWebView)
            - 统一 JS sendBridge:自动检测 CaptchaBridge.postMessage(移动端)或
          flutter_inappwebview.callHandler(桌面端),HTML 模板无需分支
            - 桌面端设置标准 Chrome User-Agent,避免 CAPTCHA 服务拒绝
            - 验证通过后立即调用 _destroyWebView() → controller.dispose() 释放 WebView2 进程内存,然后才 Navigator.pop(token)
            - _disposed 标志防止重复销毁
            - 刷新时桌面端通过 UniqueKey 重建 InAppWebView 实例
          3. windows/CMakeLists.txt — 添加 NuGet 搜索路径辅助,解决 MSBuild 找不到 nuget.exe 的问题
    
        fixed: flutter_inappwebview origin和referer不生效, 黑魔法拦截
        feat: Windows WebView2 代理支持 (平台ffi)
          - 通过环境变量 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 配置代理
        fixed: 修复黑魔法后遗症, 验证完成后会向baseurl发起回调导致长时间卡认证完成页面
        feat: Windows WebView2代理+验证码状态修复 -  环境变量代理、验证状态刷新、Turnstile进度提示`
    
    Downloads
  • Windows-app-v1.3.2
    Android APK Release / Build Android APK (push) Successful in 55m29s
    Stable

    gongyun released this 2026-05-26 17:00:01 +08:00 | 28 commits to main since this release

    实现同步功能

    平台 镜像同步 全量同步 仅上传 仅下载 相册同步
    Android x x x x
    Windows √(WcfApi) x
    Linux x(fuse) x

    日志:

    • UI 日志级别选择器,立即生效无需重启

    重置同步

    • 停止任务 → 清空 DB → 清空本地目录 → 回到初始状态

    Bug 修复

    • SSE 事件流 6 个 bug(跨 chunk 行缓冲/token 刷新/URI 硬编码/多行 data/move 事件/零日志)
    • SSE 事件回环(Rust API 请求附加 X-Cr-Client-Client 抑制自触发)
    • 远程操作自触发抑制(suppress_paths 30s 过期)
    • 同步引擎死锁(OnceCell 替代 Mutex)+ 无日志(tracing 初始化)+ 无进度(后台 spawn + 状态轮询)
    • CMake 自动构建 Rust 引擎修复
    • API 文件列表字段名 objects→files + URI 从 path 推导
    • 冲突判断逻辑(mtime 不可靠 → 有 hash 比 hash,无 hash 比 size)
    • 删除文件夹时递归清理数据库映射
    • stop 后 UI 自动恢复同步(stop 未设置 SyncState::Stopped)
    • 并发 force_sync 导致混乱(sync_lock 互斥保护)
    • force_sync 触发 WCF 重新水合(适配器只初始化一次 + stop 不再 cleanup WCF)
    • MirrorWcf 下 quick_hash 导致 os error 426(CFApi 拦截文件读取超时)
    • 本地扫描 38 秒优化(MirrorWcf 跳过 hash 计算,扫描 <1 秒)
    • _startSync 未传递 wcfDeleteMode 导致始终使用默认值
    • Linux 下无 XDG_DOWNLOAD_DIR 环境变量异常

    代码重构

    • sync_engine.rs (1698 行) → sync_engine/ 目录 7 个文件
    • worker.rs (1668 行) → worker/ 目录 3 个文件
    • event_handler.rs (378 行) → event_handler/ 目录 2 个文件
    • platform_wcf.rs → platform/ 目录
    • Worker::run 拆分为 12 个 step 方法 + 编排器
    • transfer_semaphore 共享(冲突/上传/下载三步骤共用)
    • 跨平台 crate 增加 #![cfg(target_os = xxx)] 编译守卫

    Test plan

    • 全量同步:双向文件同步,冲突按策略处理
    • 仅上传/仅下载模式:事件源过滤正确
    • 镜像同步(WCF):占位符创建、按需水合、脱水
    • WCF 删除模式切换:local_only 不删远程,sync_remote 删远程
    • 强制重新同步:不触发重新水合,持续同步正常恢复
    • 停止/暂停/恢复:状态正确,UI 不自动恢复
    • 重置同步:DB 清空、本地目录清空
    • 相册同步(Android):DCIM/Pictures 自动备份
    • 日志级别热修改
    • Linux 编译通过(无 sync-windows 依赖报错)
    Downloads
  • Android App APK android-app-v1.3.2
    Android APK Release / Build Android APK (push) Successful in 55m29s
    Stable

    gongyun released this 2026-05-26 16:32:18 +08:00 | 28 commits to main since this release

    Android app installation package (APK) for android-app-v1.3.2.

    Downloads
  • Android App APK android-app-v1.3.1
    Android APK Release / Build Android APK (push) Successful in 1h10m20s
    Stable

    gongyun released this 2026-05-21 22:32:49 +08:00 | 31 commits to main since this release

    Android app installation package (APK) for android-app-v1.3.1.

    Downloads