Repository navigation
Second Desk v1.3.1
v1.3.0 - 多文件夹监控 & 性能优化
✨ 新功能
多文件夹监控
- 支持同时监控多个文件夹,一键切换查看
- 聚合视图:合并显示所有文件夹的内容
- 每个文件夹独立的收藏、排序、虚拟分组配置
- 重复文件名自动添加来源文件夹后缀
- 懒加载机制:同一时刻只有一个活跃的文件监控器
⚡ 性能优化
Rust 后端
- tokio 运行时按需加载,减少 1-3MB 内存占用
- 图标缓存尺寸优化(256→192px),每图标节省约 44% 存储
- 环境变量 OnceLock 缓存,避免重复系统调用
- 文件排序使用缓存键,减少临时内存分配
- 文件分类返回静态字符串,零分配
- 移除不必要的 Mutex 锁,消除无意义的锁竞争
- image 库关闭未用格式支持,减小二进制体积
Vue 前端
- 7 个核心状态改为 shallowRef,减少 Vue 响应式代理开销
- 文件路径查找从 O(n) 优化到 O(1)(Map 索引)
- localStorage 写入防抖(500ms),降低序列化频率
- 删除未使用的 autoCategories 计算属性
- 拖拽状态非响应式字段提取,减少不必要的追踪
🔧 修复
内存泄漏修复
- 修复 FileWatcher channel 发送端未释放导致的任务泄漏
- 修复 ActiveWatcher 切换路径时旧任务未终止的泄漏
- 修复 EdgeDetector 无限循环无法优雅退出(引入 CancellationToken)
- 修复 App.vue 事件监听器和定时器未清理的泄漏(4处)
- 修复 active_watcher 嵌套写锁的潜在死锁风险
其他修复
- tray 图标生命周期管理改用 Box::leak(类型安全)
- EdgeDetector 轮询频率优化(20FPS→10FPS),CPU 占用减半
- 拖拽意图检测频率优化(50ms→100ms)
📦 构建优化
- Vite 构建目标设为 ES2020,CSS 合并为单文件
- Tauri 打包目标精简为 NSIS + MSI
- 资源协议作用域收窄,提升安全性
- 移除未使用的依赖(dashmap、notify-debouncer-mini)