fix: 全栈 12 处健壮性修复 + 版本升至 2.0.8 - #3
Merged
Merged
Conversation
Rust 核心(经 cargo clippy 零警告 + 79 测试验证): - transport.rs: send_file 补源文件增长检测,与文件夹路径一致, 防止传输期间追加写入导致接收端拿到旧快照仍校验通过 - service.rs: derive_transfer_id 在 Windows 归一化路径大小写, 保证断点续传复用同一 transfer_id(与 normalize_wormhole_paths 一致) - service.rs: start_lan 幂等清理改 warn 不上抛,确保旧会话 close 失败也能进入创建新会话分支 - discovery.rs: 多宿主对端 goodbye 后等所有 hosts 探测失败才淘汰, 避免首探失败即移除导致列表闪烁/极端下永久丢失 桌面端(Windows 冻结区最小守卫): - main.ts: finishProgress 校验 sendId 匹配当前批次,旧批次完成事件 不再清空新批次状态/隐藏取消按钮 Flutter 移动端: - home_page.dart: identity_private 落盘改 await,首启崩溃或安全存储 写失败不再导致下次冷启生成全新身份(致配对断裂) - home_page.dart: lan.peers/lan.status 加 session_id 守卫,重启期间 旧会话残余事件不再污染状态栏/设备列表 - inkhole_core.dart: call() 的 send 包 try/catch 防 Completer 泄漏 - inkhole_core.dart: close() 加 3s 超时 + kill 兜底,worker 阻塞在 in-flight native 调用时不再永久挂起 Android: - Exporter.kt: 新增 cleanupPendingOrphans,启动时清理上次导出被中断 残留的 IS_PENDING=1 孤儿记录 - Exporter.kt: 文件夹导出回滚只删未发布项,保留已发布到 Download 的文件 - Exporter.kt: SAF 文件夹部分拷贝失败回滚已建子树 版本: 2.0.7 → 2.0.8 / Flutter 2.0.7+8 → 2.0.8+9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
修复内容
本次修复静态审查发现的 12 处健壮性 bug,版本
2.0.7 → 2.0.8/ Flutter2.0.7+8 → 2.0.8+9。Rust 核心(经 cargo clippy 零警告 + 79 测试验证)
transport.rssend_file补源文件增长检测(与文件夹路径一致),防止传输期间追加写入导致接收端拿到旧快照仍校验通过service.rsderive_transfer_id在 Windows 归一化路径大小写,保证断点续传复用同一 transfer_idservice.rsstart_lan幂等清理改warn不上抛,旧会话 close 失败也能进入创建新会话分支discovery.rs桌面端(Windows 冻结区最小守卫)
main.tsfinishProgress校验 sendId 匹配当前批次,旧批次完成事件不再清空新批次状态/隐藏取消按钮Flutter 移动端
home_page.dartidentity_private落盘改 await,首启崩溃或安全存储写失败不再导致下次冷启生成全新身份(致配对断裂)home_page.dartlan.peers/lan.status加 session_id 守卫,重启期间旧会话残余事件不再污染状态栏/设备列表inkhole_core.dartcall()的 send 包 try/catch 防 Completer 泄漏inkhole_core.dartclose()加 3s 超时 + kill 兜底,worker 阻塞时不再永久挂起Android
Exporter.ktcleanupPendingOrphans,启动时清理上次导出被中断残留的 IS_PENDING=1 孤儿记录Exporter.ktExporter.kt验证
cargo fmt --check通过cargo clippy --workspace --all-targets -D warnings零警告cargo test --workspace79 全过(65 核心 + 11 桌面 + 3 FFI),0 回归tsc --noEmit+vite build通过flutter analyze/flutter test/ Android 编译待 CI 验证(本机未装 Flutter,Dart/Kotlin 已人工复查)约束遵守
main.ts一处最小守卫(4 行),rust/apps/inkhole-desktop/零改动#[cfg(windows)]门控