
anarlog 1.0.4 版本解析撤销删除、时区设置与转录迁移的工程实现【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog导读本文以 anarlog开源 Granola AI 替代品1.0.4 版本发布说明 为骨架逐项拆解本次迭代在笔记管理、设置、日历、AI 转录、稳定性和系统依赖六个方向上的改进。通过对照桌面端源码apps/desktop/src与 Rust 工作区配置你将掌握撤销删除的软删除 倒计时墓碑机制、手动时区覆盖的实现原理、转录多段聚合计数的修复思路以及本次关键依赖升级Tauri 2.10.1、cpal 0.17 等的实际影响。版本概览1.0.4 发布于 2026-02-04官方摘要将其定位为一次体验与健壮性迭代撤销删除、时区设置、重复性日历事件、自动增强auto-enhance、下拉组件与转录迁移均得到改进。全部变更按七个领域组织笔记管理、设置、日历、AI 与转录、UI 与体验、稳定性与性能、系统依赖。笔记管理面向误删场景的 5 秒撤销机制软删除与倒计时墓碑1.0.4 为笔记删除引入撤销删除能力删除后弹出提示条附 5 秒倒计时超时前可通过Restore撤销按钮或CmdZ恢复倒计时剩余时间以溶解动画直观呈现。源码层面这套机制由三层构成状态层store/zustand/undo-delete.ts定义UNDO_TIMEOUT_MS 5000删除请求进入pendingDeletions后setTimeout在 5 秒后自动触发confirmDeletion完成最终删除若同一会话重复删除会先清除旧计时器clearTimeout(existing.timeoutId)再重建避免计时器堆积。confirmAllPendingDeletions()还保证应用退出时不会遗留已软删除但共享链接仍存活的笔记。数据层session/queries/deletion.ts中softDeleteSession()先将sessions及session_documents、transcripts、session_participants、session_tags、action_items、session_attachments、entity_mentions七类关联数据统一打上deleted_at时间戳墓碑而非物理删除restoreDeletedSession()则把deleted_at置回NULL并处理删除写入尚未提交的竞态先等待挂起的软删除落盘失败最多重试 10 次。呈现层sidebar/toast/undo-delete-toast.tsx负责把pendingDeletions聚合成 Toast 分组——单条删除与批量删除batchId分组分别渲染底部进度条通过 CSS 变量--undo-delete-progress展示剩余时长点击 Undo 采用乐观更新先关闭 Toast 并重新打开标签页再异步执行恢复写操作失败时回滚并重新登记待删除项。CmdZ 与标签页恢复CmdZ 走的是另一条链路标签页存储中间件store/zustand/tabs/restore.ts维护closedTabs栈上限MAX_CLOSED_TABS 10任何关闭标签页操作都会自动记录restoreLastClosedTab()弹出最近关闭的标签重新打开其中shared_note_preview类型会被过滤掉不进入恢复栈。配套交互细节Space 快捷键控制音频播放器的播放/暂停方便在听录音时快速暂停。Recent 区域最近打开的笔记会出现在 Open Note 对话框CmdO顶部的 Recent 区减少翻找成本。设置手动时区覆盖与可搜索下拉侧边栏时间线的时区语义1.0.4 新增手动时区配置默认跟随系统时区但可针对会议时间在侧边栏时间线中的展示单独覆盖。实现位于settings/general/timezone.tsx通过useConfigValue(timezone)读取配置、useSetSettingValue(timezone)写入若用户选择的值与Intl.DateTimeFormat().resolvedOptions().timeZone得到的系统时区一致则存空字符串表示回退到系统时区选择器不显示当前值时会回落到系统时区作为展示值保证设置界面的直观性。常用时区预设发布说明记载为 18 个常用时区预设当前源码中COMMON_TIMEZONES已扩展为 22 项覆盖 UTC-10 至 UTC13含夏令时标注例如值IANA 名称显示名UTC 偏移Pacific/HonoluluHawaiiUTC-10America/Los_AngelesPacific TimeUTC-8America/New_YorkEastern TimeUTC-5Europe/LondonLondonUTC0/1Europe/ParisParisUTC1/2Asia/KolkataIndiaUTC5:30Asia/ShanghaiChinaUTC8Asia/TokyoTokyoUTC9Australia/SydneySydneyUTC10/11Pacific/AucklandAucklandUTC12/13AI 设置快捷键与可搜索下拉AI 设置快捷键调整为CmdShiftComma与系统设置快捷键Cmd,区分开语言与时区选择统一迁移到新的可搜索下拉组件SearchableSelect位于apps/desktop/src/settings/general/目录支持输入过滤替代原先的普通下拉框。日历重复事件调整后的去重修复此前调整reschedule某个重复日历事件的单个实例后侧边栏会同时出现旧时间与新时间的两个条目。1.0.4 修复了该问题——调整实例后不再残留旧发生时间。该修复位于日历相关查询与事件展示链路如calendar/queries.ts、calendar/hooks.ts确保按originalStartTime关联的实例在被移动后正确更新而不再复制。AI 与转录自动增强计数与 LM Studio 报错引导多段转录的自动增强阈值自动增强auto-enhance功能此前按单段转录字数判断是否触发增强导致较短分段永远达不到触发阈值。本次修复改为跨多个转录分段transcript segments累计统计字数短分段也能在总量达标时正常触发。这也与后续 1.0.4 中转录迁移需支持单会话多转录的修复同源——增强逻辑必须建立在完整的转录集合之上。LM Studio 上下文长度报错引导当 LM Studio 后端返回上下文长度context length超限错误时界面现在会显示Learn how to fix this链接指向带逐步操作说明的官方文档用户无需自行搜索解决方案。UI 与体验键盘可达性打磨侧边栏折叠按钮新增悬浮提示tooltip并附键盘快捷键提示聆听listening进行中隐藏重新转录按钮减少视觉干扰下拉组件支持Tab 键键盘导航并显示当前选中项的可视指示器下拉选项自动滚动保证被选中的条目始终可见配合可搜索下拉长列表场景体验明显改善。稳定性与性能泄漏、观察器与迁移内存泄漏修复修复了两类资源未释放问题actor 订阅与计时器累积未清理——对应store/zustand/undo-delete.ts中addDeletion对旧timeoutId的clearTimeout以及删除确认后clearDeletion的定时器清理逻辑全局监听整棵 DOM 树的 MutationObserver 造成高 CPU 占用已改为针对性的ResizeObserver只观察需要感知尺寸变化的节点。转录数据迁移修复了转录迁移逻辑保证迁移后保留说话人标记speaker hints并支持单会话包含多条转录的数据结构——这与上述buildSessionTombstoneStatements中对transcripts表的按会话批量处理方式一致迁移不会丢段或丢失说话人归属。系统Tauri 与核心依赖升级依赖版本变化说明Tauri2.10.1桌面壳升级位于apps/desktop/src-tauri的 Cargo 配置中锁定版本cpal0.17音频采集库改用上游版本不再依赖项目内 patch 分支reqwest0.13HTTP 客户端大版本升级cidre0.14macOS 系统绑定升级tokio-tungstenite0.28WebSocket 客户端升级这些依赖由仓库根目录 Cargo.toml 的 workspace 统一管理升级后需保证各 crate尤其crates/下的音频、转录相关模块编译一致。如何验证与跟进变更记录的渲染逻辑位于packages/changelog/srcprocess.ts负责解析 frontmatter 与正文、renderer.tsx/components.tsx负责展示1.0.4 的正文与摘要可直接在 content/1.0.4.md 查看撤销删除与恢复行为可通过删除一条笔记后观察 5 秒倒计时 Toast、按 CmdZ 或点击 Undo 验证时区覆盖可在设置中改选非系统时区回到侧边栏时间线确认会议时间展示偏移。小结1.0.4 是一次典型的防误删 配置灵活性 资源健康迭代撤销删除机制在软删除墓碑与5 秒乐观恢复之间取得平衡时区设置把时间展示语义从系统绑定中解放出来而 MutationObserver 换 ResizeObserver、actor 订阅与计时器清理则直击桌面应用长时运行时的 CPU 与内存问题。对于关心应用健壮性的开发者undo-delete状态机与buildSessionTombstoneStatements的多表事务式墓碑处理是值得直接阅读的参考实现。【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考