v1.2.3 | Monumental
Release Notes v1.2.3
新增 / Added
-
搜索规则过滤(/ 规则)
重磅功能:在搜索框输入 / 即弹出规则面板(固定在搜索框上方)。列表模式显示 6 个规则,↑↓ / j/k / 1–6 切换高亮,回车插入前缀(app/date/type 或 -app/-date/-type),Esc 关闭面板。插入后光标停在前缀后,可直接输入值;空格结束该值并继续输入搜索词,/ 可继续叠加下一条规则;支持 + 多值与引号包裹含空格的应用名。Delete/Backspace 位于前缀或值边界时会整段删除规则(含值与尾随空格),提示模式下 Esc 也会删除当前规则并回到搜索。
Major feature: type / in the search box to open the rule panel above the field. The list mode shows 6 rules; navigate with ↑↓ / j/k / 1–6, press Enter to insert a prefix (app/date/type or -app/-date/-type), and Esc closes the panel. After insertion, the cursor stays after the prefix for immediate value input; Space ends the value and continues keywords, / chains another rule; supports + multi-values and quoted app names with spaces. Delete/Backspace at the prefix/value boundary removes the whole rule (value + trailing space), and Esc in hint mode deletes the current rule and returns to search.
SearchRuleFilters.swift, TopBarView.swift, TokenSearchTextView.swift, SearchRulePickerView.swift, SearchRulePickerPanelController.swift, DeckViewModel.swift, Localizable.xcstrings


-
自定义标题(端到端)
支持为每条记录设置自定义标题,贯通模型、存储、搜索与 UI,并在卡片/预览头部显示。
Add per-item custom titles across model, storage, search, and UI, shown in card/preview headers.
DeckSQLManager.swift, ClipboardItem.swift, DeckDataStore.swift, SearchService.swift, ClipItemCardView.swift -
自定义标题同步与导出
自定义标题会随同步、导出与快捷指令流转,保证跨设备一致。
Custom titles now flow through sync, export, and intents for cross-device consistency.
CloudSyncService.swift, DataExportService.swift, DeckIntents.swift -
智能规则新增“有自定义标题”条件
Smart Rules 可按“有自定义标题”筛选,并在编辑器中可选。
Smart Rules now include a “has custom title” condition selectable in the editor.
SmartRuleService.swift, SmartRulesView.swift, Localizable.xcstrings -
Figma 剪贴板识别与专用预览
识别 Figma 剪贴板内容,卡片与预览展示专用图标/信息视图,并仅在预览打开时解析。
Recognize Figma clipboard payloads with dedicated card/preview UI and parse only when the preview opens.
ClipboardItem.swift, ClipItemCardView.swift, FigmaClipboardRenderService.swift, FigmaClipboardPreviewView.swift, PreviewWindowController.swift -
链接二维码入口
预览底部信息条新增“显示二维码”按钮(仅链接项显示),行为与右键菜单一致。
Add a “Show QR Code” button in the preview info bar for links, matching the context menu behavior.
PreviewWindowController.swift -
设置直达“局域网”栏目
“前往设置添加设备”改为直达“局域网”页,并引入共享的设置导航状态。
“Go to Settings to add a device” now opens the LAN tab via shared settings navigation state.
SettingsView.swift, SettingsWindowController.swift, ClipItemCardView.swift -
模拟键盘输入粘贴开关 + 自定义快捷键
新增开关与可配置快捷键(默认 ⌘⌥V),关闭后不再拦截该组合键。
Add a toggle and configurable hotkey (default ⌘⌥V); when off, the combo is no longer intercepted.
UserDefaultsManager.swift, HotKeyManager.swift, PasteQueueService.swift, SettingsView.swift, Localizable.xcstrings -
文件缺失提示与自动清理
文件/图片缺失时显示警告提示,并在面板关闭后自动清理缺失记录。
Show missing-file warnings and auto-purge missing items after the panel closes.
ClipboardItem.swift, ClipItemCardView.swift, PreviewOverlayView.swift, PreviewWindowController.swift, DeckDataStore.swift, MainWindowController.swift
Deck × Orbit
- Orbit 摘要携带自定义标题
Orbit 摘要输出包含 customTitle,保持 CLI/集成一致。
Orbit summaries now include customTitle for consistent CLI/integration output.
OrbitCLIBridgeService.swift
优化 / Improvements
-
搜索框与标签编辑快捷键
搜索框支持 ⌘A 全选与 ⌘V 粘贴(仅在有搜索内容时全选),标签编辑也支持 ⌘A/⌘V。
Search supports ⌘A select-all (only with a non-empty query) and ⌘V paste; tag editing also supports ⌘A/⌘V.
HistoryListView.swift, TopBarView.swift, DeckViewModel.swift -
搜索焦点与输入调度优化
面板打开时抑制自动抢焦点,重命名期间不触发自动搜索;关键 UI 调度提升为 userInteractive。
Suppress auto-focus on panel open, avoid auto-search during rename, and elevate UI dispatch to userInteractive.
MainWindowController.swift, HistoryListView.swift, TopBarView.swift, DeckViewModel.swift -
Figma 预览与图标细节
Figma 预览改为两列布局、信息更简洁并支持多语言;暗黑模式下图标自动反白。
Figma preview uses a two-column layout with simplified localized info, and auto-inverts the icon in dark mode.
FigmaClipboardPreviewView.swift, FigmaClipboardRenderService.swift, ClipItemCardView.swift, Localizable.xcstrings -
链接元数据缓存优化
LinkMetadataService 加入 LRU + 上限(500),并在命中时刷新顺序以降低内存。
Add an LRU cache with a 500-item cap for link metadata and refresh order on hits to reduce memory.
LinkPreviewCard.swift -
数据库备份一致性
WAL checkpoint 与文件复制在同一 dbQueue 执行,避免备份期间写入穿插导致不一致。
Run WAL checkpoint and file copy in the same dbQueue to avoid inconsistent backups during writes.
DeckSQLManager.swift
变更 / Changes
-
标题长度上限与显示策略
自定义标题限制为 12 个字符(保存时截断),标题过长会自动缩放以适配卡片头部。
Custom titles are capped at 12 characters (trimmed on save) and auto-scale to fit the header.
ClipItemCardView.swift, Constants.swift -
搜索排序与匹配规则
搜索会同时匹配自定义标题;标题命中项会稳定置顶,但保留原有排序。
Search now matches custom titles; title hits are stably promoted to the front without reordering within groups.
DeckDataStore.swift, SearchService.swift -
标题重命名触发规则重评估
保存标题后会重新评估智能规则,但 ignore/transform 仍仅在入库时触发。
Renaming a title re-evaluates Smart Rules, while ignore/transform actions remain ingestion-only.
DeckDataStore.swift -
规则语法识别范围
仅 / 插入的规则前缀会被解析,手动输入 app:/date:/type: 会视为普通搜索文本。
Only rule prefixes inserted via / are parsed; manually typed app:/date:/type: is treated as plain text.
SearchRuleFilters.swift, TopBarView.swift, TokenSearchTextView.swift -
规则语义扩展
规则支持 -app/-date/-type 排除与 + 多值叠加;type 去掉 email/phone,新增 color;app 多词需引号。
Rules now support -app/-date/-type exclusion and + multi-values; type drops email/phone and adds color; multi-word app names require quotes.
SearchRuleFilters.swift, Localizable.xcstrings, DeckViewModel.swift -
模拟键盘粘贴换行策略
模拟键盘输入粘贴遇到换行时改为发送 Shift+Enter,避免直接回车提交。
Simulated typing paste sends Shift+Enter for newlines instead of a direct Return.
PasteQueueService.swift -
Focus 模式内容记录
专注模式不再仅记录文本,富文本/文件/图片也会被保留。
Focus mode no longer records only text; rich text, files, and images are retained.
ClipboardService.swift -
Figma 记录不进入搜索
新产生的 Figma 记录不写入搜索文本,避免污染搜索结果。
New Figma entries no longer write search text to avoid polluting search results.
ClipboardService.swift
修复 / Fixes
-
SQL LIKE 可选值类型错误
通过 IFNULL 处理 custom_title,避免 .like 的可选类型导致 Expression 报错。
Wrap custom_title with IFNULL to keep .like as Expression and avoid optional-type errors.
DeckDataStore.swift -
重命名输入状态与焦点问题
修复重命名时跳入搜索框、Esc 失效与关闭面板残留输入框;回车保存后 UI 立即刷新标题。
Fix rename focus jumps, Esc failures, and lingering edit fields on close; Enter now updates the title immediately in UI.
DeckViewModel.swift, ClipItemCardView.swift, HistoryListView.swift, MainWindowController.swift -
file:// 解析与安全处理
统一 file:// 归一化与本地解析逻辑,避免路径含空格解析失败,并移除不安全的 propertyList 回退。
Normalize and locally resolve file:// paths to handle spaces, and remove the unsafe propertyList fallback.
Extensions.swift, ClipboardItem.swift, ClipboardService.swift, PreviewWindowController.swift -
文件/图片粘贴与缩略图稳定性
修复 fileURL 大小计算错误、缩略图对不存在文件的生成,以及大图安全读取与去重。
Fix fileURL size calculation, skip thumbnails for missing files, and harden large-image reads and de-dup.
ClipboardItem.swift, PreviewOverlayView.swift, ClipItemCardView.swift -
搜索规则输入与索引崩溃
修复规则前缀带空格失效、UTF-16/Emoji 索引崩溃与删除范围不完整的问题。
Fix rule prefixes with trailing spaces, UTF-16/emoji index crashes, and incomplete delete ranges.
SearchRuleFilters.swift, TopBarView.swift, TokenSearchTextView.swift -
搜索分页与缓存一致性
修复新搜索未取消旧分页导致结果混入,并在结果不足时自动扩容拉取。
Fix result mixing from stale pagination and auto-expand fetches when results are insufficient.
DeckDataStore.swift -
并发与主线程隔离编译报错
修复 Swift 6 并发/隔离相关编译问题,包括主线程调用、非隔离上下文访问与必要 await。
Resolve Swift 6 concurrency/isolation compile errors, including main-thread access, nonisolated calls, and required awaits.
PreviewWindowController.swift, SteganographyService.swift, BlobStorage.swift, DataExportService.swift, DeckDataStore.swift, SearchService.swift, DeckSQLManager.swift -
安全与稳定性修补
防止 TOTP 计数下溢、停止在 UserDefaults 存 PSK、补齐 blob 文件回收与目录创建保护。
Prevent TOTP underflow, stop persisting PSK in UserDefaults, and tighten blob cleanup and directory creation.
MultipeerService.swift, DirectConnectService.swift, DeckDataStore.swift, BlobStorage.swift, DirectConnectService.swift -
搜索缓存失效与内存压力
标题/OCR 更新仅失效对应缓存,内存压力时正确清空缓存,避免旧结果残留。
Invalidate cache per updated item (title/OCR) and clear properly on memory pressure to avoid stale results.
SearchService.swift, DeckDataStore.swift -
拖拽临时文件可靠性
拖拽回退为同步生成临时文件,确保拖拽可用,并引入统一临时目录与自动清理。
Revert drag export to synchronous temp file creation for reliability, with unified temp storage and auto cleanup.
TemporaryFileManager.swift, ClipItemCardView.swift -
Figma 解析鲁棒性
增强 Figma HTML 容错解码与缓存策略,解析失败不再永久缓存为 false,并记录更清晰日志。
Improve tolerant HTML decoding and caching for Figma payloads, avoiding permanent false caches and adding clearer logs.
UnsupportedPasteboardPayload.swift, ClipboardItem.swift -
设置与预览细节修补
补齐 SettingsView.swift 的 Combine 引入与二维码按钮点击区域/间距修正。
Fix missing Combine import in SettingsView.swift and refine QR button hit area/spacing.
SettingsView.swift, PreviewWindowController.swift -
存储路径初始化退避
存储路径初始化失败后增加 60 秒退避,避免重复重试风暴。
Add a 60s backoff after storage path init failures to avoid retry storms.
DeckSQLManager.swift
说明 / Notes
- 规则提示已全面本地化
规则提示/帮助文案覆盖德/英/法/日/韩/繁体/简体,并统一说明“输入值后空格继续搜索词,/ 添加下一规则”。
Rule hints/help text are localized across DE/EN/FR/JA/KO/zh-Hant/zh-Hans with consistent guidance on spacing and chaining.
Localizable.xcstrings
兼容性与行为说明 / Compatibility & Behavior Notes
-
规则使用示例
示例:app:\"Google Chrome\"+Safari -type:code+text -date:26-01-01+26-01-02(+ 多值,- 排除)。
Example:app:\"Google Chrome\"+Safari -type:code+text -date:26-01-01+26-01-02(+ multi-values, - exclusion).
SearchRuleFilters.swift -
Figma 预览范围
当前仅展示基础信息列表,不进行图形/元素渲染。
The Figma preview currently shows basic info only, without rendering graphics/elements.
FigmaClipboardPreviewView.swift
升级建议 / Upgrade Notes
- 数据库迁移与索引重建
升级后会迁移 SQLite 并重建 FTS,以支持自定义标题搜索;首次启动请等待索引完成。
Upgrade migrates SQLite and rebuilds FTS for custom-title search; allow time for initial indexing.
DeckSQLManager.swift