github yuzeguitarist/Deck v1.1.9
v1.1.9 | Rock-Solid

latest releases: v1.4.5, v1.4.4, v1.4.3...
5 months ago

Deck

Deck

A modern, native, privacy-first clipboard OS for macOS


Release Notes v1.1.9

优化 / Improvements

  • 安全模式性能大幅优化(CPU / IO)
    在加密模式下,对密钥处理、搜索扫描路径、文本分析、链接预取、Blob IO、语义排序等关键路径进行了系统性优化,显著降低 CPU 与 IO 开销。
    Applied encryption-mode performance optimizations across key handling, search scan paths, text analysis, link preview prefetching, blob IO, and semantic ranking to reduce CPU/IO overhead.

  • Keychain 访问削减(短 TTL 内存缓存)
    为对称密钥引入短 TTL 的内存缓存,并在鉴权重置 / 密钥删除时主动清空,减少突发场景下的 Keychain 往返。
    SecurityService.swift

  • 搜索与向量计算优化

    • 正则扫描仅选择 id / search_text,再按需拉取完整行
    • 安全模式下启用搜索缓存,并在 App / Session 失活时清空
    • 向量归一化与查询范数计算统一使用 vDSP,避免重复计算
      DeckSQLManager.swift / SemanticSearchService.swift
  • 文本分析加速
    缓存 NSDataDetector 并加入快速预检查,在明显不匹配时跳过高成本检测。
    SmartTextService.swift

  • 链接预览与电量感知
    低电量模式下跳过图片预取,且预取逻辑迁移至 utility 队列,降低主线程与能耗压力。
    ClipboardService.swift

  • 大文件 IO 与内存峰值控制

    • 大 Blob 写入避免使用 .atomic
    • 读取时优先使用 .mappedIfSafe,减少 IO 与内存抖动
      BlobStorage.swift

内存 / 网络 / UI 深度优化

  • 内存与生命周期管理

    • 缓存引入 LRU + 内存压力清理
    • 数据层补齐内存压力降载
    • 剪贴板解析与粘贴改为 lazy 读取大数据,避免 OOM
    • 链接卡片快照加入总量 / 单类型预算,避免大图瞬时占用
      SmartContentCache.swift / DeckDataStore.swift / ClipboardService.swift
  • 网络与电量优化

    • 多端连接改为指数退避 + jitter
    • 新增 sleep / wake 发现管理,已连接时停止扫描
    • 编码 / 加密统一移至后台队列,主线程仅保留快路径
      MultipeerService.swift / DirectConnectService.swift
  • 列表与渲染性能

    • History 列表将高频交互状态移出 @State,避免滚动重算
    • 缩略图 / 图标缓存 + 后台降采样
    • Base64 检测仅执行一次
    • 代码高亮异步缓存
    • 大文本 / Markdown 预览支持取消与销毁清理
      HistoryListView.swift / ClipItemCardView.swift / SmartContentView.swift / LargeTextPreviewView.swift

行为调整 / Behavior Changes

  • 已连接时默认停止 Browsing(省电优先)
    如需恢复原行为,可通过开关控制。
    MultipeerService.swift

  • 大图片写入策略调整
    当已存在 fileURL 时,不再强制写入 inline bytes,降低瞬时内存峰值。
    ClipboardService.swift


并发与 Swift 6 兼容性修复 / Swift 6 Fixes

  • Sendable 与隔离修正
    为多种 Payload / Snapshot / Decoded 类型补齐 Sendable,避免后台编解码触发主线程隔离错误。
    MultipeerService.swift

  • 日志与工具类型隔离调整

    • AppLogger 标记为 @unchecked Sendable
    • 部分方法显式退出 MainActor 隔离,避免后台任务报错
      AppLogger.swift / MultipeerService.swift
  • URL 检测彻底去除 NSDataDetector
    改为正则匹配并统一去除尾部标点,消除 Swift 6 主线程隔离问题,同时保持快速预检查与去重。
    SmartTextService.swift


更新系统 / Updater

  • 每日 20:00(北京时间)自动检查更新
    定时检查改为系统通知提醒,点击通知进入更新详情。
    UpdateCoordinator.swift

  • 更新提示 UI 升级

    • 完整 Markdown 渲染(标题 / 引用 / 列表 / 分割线)
    • 保留自然换行并压缩多余空行
    • 深色模式下按钮对比度优化
      UpdatePromptView.swift
  • 更新可靠性增强

    • 启动验证等待时间延长(2s → 8s)
    • 旧进程等待加入超时与 PID 复用保护
    • 下载临时文件先落盘到稳定路径,避免被系统清理
    • 新版本启动后自动清理当前版本前缀的旧更新缓存
      UpdateService.swift / AppDelegate.swift

修复 / Fixes

  • Finder 多文件复制回归修复
    修复从 Finder 复制多文件后,再复制文本并从历史记录粘贴时只剩第一个文件的问题。

  • 面板关闭后焦点未恢复
    修复复制后关闭面板但焦点未返回之前 App 的问题,并补齐 ⌘W 关闭设置窗口行为。
    MainWindowController.swift / SettingsWindowController.swift

  • PasteNow 剪贴板数据迁移支持
    新增对 PasteNow App 剪贴板数据的迁移兼容。

  • Markdown 预览任务修复
    修复 parseTask 重复声明与类型不匹配问题,并清理无效任务。
    LargeTextPreviewView.swift


兼容性与说明 / Compatibility & Notes

  • iCloud / CloudKit entitlement 已移除,避免签名依赖;同步功能代码仍保留但默认关闭。
    Deck.entitlements

  • 本版本包含大量性能、并发与稳定性改进,强烈建议所有用户升级

Don't miss a new Deck release

NewReleases is sending notifications on new releases.