🐼 PastePanda v5.4.5
智能剪贴板管理器 — 轻量、高效、美观
修复
- 快捷粘贴面板(Alt+V)网格卡片被压成一条缝:卡片高度只剩 ~15px、内容被裁切且不产生滚动。成因是
.qp-grid在定高的列方向 flex 父里拿到确定高度,而隐式行默认是 auto 轨道,align-content默认stretch会把它们拉开均分剩余空间(叠上条目overflow:hidden使自动最小尺寸归零)。改用grid-auto-rows: max-content从机制上断开这条路径(stretch 只能拉伸 auto 轨道),并给卡片加min-height兜底 —— 原本只靠align-content: start一条防守,它只管“轨道怎么摆”不管“轨道多高”,一旦失效就复现 - 预览文本上下对半被裁:预览区原用
flex + align-items:center,多行文本会只显示中间几行、首尾各半行,看起来像渲染坏了。改用-webkit-line-clamp: 3从第一行开始截断、末行加省略号 - 从独立窗口删记录后主窗口不刷新:
delete_history命令不广播任何事件(而同文件update_history是广播的),快捷粘贴面板与主窗口是不同的 React 实例、不共享 store,导致在面板里删除/清除后主窗口列表与侧边栏计数一直是脏的。现广播history-items-deleted,前端按 id 精确移除(幂等,不影响主窗口自己的乐观更新与撤销栈)。本修复覆盖所有“从其它窗口删记录”的场景,不只快捷粘贴 - 快捷粘贴面板监听器泄漏:
unlisten在.then()里才赋值而 cleanup 是同步执行,React StrictMode 在 dev 下的 mount→unmount→remount 会留下僵尸监听器,之后每次唤出面板都重复拉数据与重复加缩略图(同一模式在 App.tsx / TrayPopup.tsx 已分别修过,这是第三处) - 快捷粘贴面板的 5 处
console.error改为项目logger.error(写持久日志)。这个面板是热键唤出的独立窗口,出问题时用户不会去开 devtools;尤其粘贴失败时面板已因失焦自动隐藏,toast 本身可能根本看不到,不写日志就彻底无迹可查 - 快捷粘贴面板卸载时未清理 toast 定时器
变更
- 快捷粘贴面板「清除」改为两步确认:原本一点就抹掉全部非置顶历史,无确认;而这里的删除无法撤销(
undoStack是前端 store 状态,本窗口与主窗口是两个独立实例,就算写也不是同一个栈),而按钮就在标题栏右上角紧靠搜索框。现第一次点击变为带危险色描边的「确认清除 N 条?」,4 秒无操作自动复位。没用模态框是因为面板失焦即自动隐藏、且 Escape 已绑定为关闭面板,弹模态框会与这两个行为打架;两步确认失焦时自然重置
待办(本次未解决,如实记录)
- 粘贴失败的 toast 仍可能不可见:面板失焦就被 OS 层隐藏,要让 toast 可见就得抢回焦点,而那会打断用户正在粘贴的目标窗口,比看不到提示更糟。本次只保证失败一定入日志,彻底解决需要 OS 通知或托盘气泡路径(全仓库目前无此能力)
⚠️ 升级提醒
- 升级后所有设置和剪贴板数据保持不变,无需额外操作
📦 下载
- 安装版:下载
PastePanda_*_x64-setup.exe,运行安装程序(支持自动更新) - 绿色便携版:下载
PastePanda_*_x86_64-pc-windows-msvc.zip,解压即用(更新后变为已安装状态)
🤖 本 Release 由 CI 根据 commit 前缀自动生成 | 提交规范:feat: 新功能 · chg: 变更 · fix: 修复 · refactor: 重构 · docs: 文档