Releases: ReturnDM/immerso
Release list
浸词 v1.5.0
修复(数据与同步,防数据丢失)
- 跨时区设备云同步会误删「删除后重收」的词(永久丢失):
added_at/deleted_at此前存机器本地时间,两台设备时区不同时「重收晚于删除」的判定会颠倒,远端新词被当旧卡删掉且无法救回。现在全库时间戳统一为 UTCYYYY-MM-DD HH:MM:SS(due/last_review/reviewed_at/deleted_at同格式),字典序比较即时间序、跨设备一致;FSRS 读库也改按 UTC 解析(新增parseDbTime),消除东八区的整天边界偏斜。 - 复习评分写库非原子 + 双窗口并发会毁掉 FSRS 状态:
UPDATE cards与INSERT reviews此前是两条独立提交,主窗/小窗并发评分会用各自旧快照互相覆盖(重复调度、reps/lapses 虚增)。现在评分走 Rust 原生存事务(execute_tx:BEGIN IMMEDIATE → 全部成功才 COMMIT),并加 CAS 冲突检测(落库前比对最近快照,被另一窗口改过就提示跳过)与进程内评分串行锁。 - 划词捕获失败时 Ctrl/⌘ 卡死全局键盘:模拟复制的三步按键里任一步失败就短路返回,修饰键永不释放。改为 RAII guard——任何提前返回路径都会自动 Release,释放失败仅记日志。
- 备份/云同步合并中途崩溃残留半导入:墓碑应用与复习补插两段改为整段事务提交,失败整体回滚并提示重试。
cards.word唯一约束大小写敏感:'Apple'/'apple' 可同时入书,进度/统计/同步全部按两张卡分裂;匿词同步同词还直接抛约束错误崩掉整次拉取。迁移 v8 重建为COLLATE NOCASE UNIQUE(存量重复行自动收敛保留先插),匿词插入补ON CONFLICT DO NOTHING兜底。- 删除词书/单词多语句无事务:删除段改为事务提交,中断不再残留孤儿数据。
- 查词/搜索的 LIKE 通配符未转义:输入含
%/_会扩大匹配,已转义并显式ESCAPE '\'。
变更与安全
- 备份导出/导入不再信任前端路径:文件对话框移到 Rust 侧自弹,前端被注入也无法借备份命令读写任意文件(堵住权限模型穿透缺口);补充
.json扩展名校验与 20MB 读取上限。 - 内置词典判新旧升级:不再只看文件大小——大小相同但内容不同的新版(同体积重打包)也会正确覆盖。
- 测试体系从零建立:vitest + 94 个单元测试(FSRS 调度 22 / 练习模式 34 / 拼写纠错 13 / 词书 9 / 跨时区同步比较 8 / 数字动画 8),覆盖率 96%+;
npm test/npm run test:coverage脚本。
提醒
- 存量旧备份/旧设备仍是本地时间戳,跨时区比较对旧数据无法完美迁移(新数据已收敛正确);建议两台设备尽快都升级到 1.5.0。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.4.2
修复
- 划词直加选中整句时分流失效:句子从未真正进过小窗原句栏——模拟复制后剪贴板已被还原,小窗再读剪贴板只能读到旧内容,旧剪贴板里的单词甚至会被误当成待收词。句子改为经后端暂存交接(
take_quick_payload),小窗取到就用、取不到才读剪贴板。 - 划词直加可能收错词:目标应用响应慢或忽略 ⌘C 时,固定等待后读到的其实是用户旧剪贴板。Windows 改用剪贴板序号判定复制是否真的发生,macOS 比对内容变化;没等到新内容就明确报「没读到选中文本」,宁可不收也不错收。
- 划词直加会毁掉剪贴板里的截图:剪贴板原是图片时,模拟复制后被文字覆盖且不再还原。现在连图片一起快照、事后还原。
- 热键注册失败静默全灭:改键先注销全部再挂载,一旦新键被占用就两个热键全没了且无提示。现在失败时回落默认键;设置页改为「先注册成功再落库」,失败即还原,不再把注册不了的键存进设置。
- 回到主页就全量云同步:主页每次重新挂载都触发一整趟 GitHub 拉取+合并+推回(近 1MB)。自动同步加 5 分钟节流(手动同步不受影响)。
变更
- 安全收紧:
fs权限从全盘读写(**)收窄到 Token/Key 两个点文件,导出/导入改走 Rust 命令直写对话框选定的路径;csp: null改为严格 CSP(脚本仅限本源、IPC 显式放行)。 - 词书标签主键改大小写不敏感(迁移 v7):同词异大小写不再产生重复标签(「已在:生词本 · 生词本」),存量重复行自动收敛。
- 小窗可见而主窗隐藏时,点 Dock 图标也会唤起主窗(原先只看「有无可见窗口」,此时点了没反应)。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.4.1
修复
- 云同步防重入:开应用自动同步、复习结束同步、手动同步重叠时合并为一次执行,不再因并发各读到旧数据而重复建 Gist 或互相覆盖;「接入已有云端」也会先等在途同步结束再切换目标。
- 同步合并保留词的原始收入时间:不再把旧卡伪装成「删除后重收」而绕过删除记录错误复活;删除墓碑按较晚时间为准,堵住旧卡复活窗口。
- 复习评分防连发:按住回车或快速连点不再重复记一次成绩(此前会产生重复复习记录、打乱 FSRS 调度)。
- 今日进度按词计数:忘记重试的词不再被算成两三次,进度也不会超过 100%;且跟随当前词书筛选。
- 查词清空输入时不再闪回旧结果;快速收词小窗快速输入后回车,不再误收上一个词。
- 词库列表在切换筛选/搜索时不再出现旧请求串台。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.4.0
后台运行
- 关闭窗口不再退出:浸词驻留系统托盘后台,划词直加、查词小窗热键随时可用;托盘左键单击唤起主窗,右键菜单可「显示浸词 / 快速收词 / 退出」。
- 再次点开应用图标会唤起已在后台运行的实例,不会再开第二个进程。
云同步
- 新增「接入已有云端」:换新设备或重装后,在设置里粘贴原来的 Gist 地址或 ID 即可接入同一份云端数据,避免误建新 Gist 造成两台设备数据分叉。
词库
- 词书目录支持整本移除:摘掉整本书的标签,只在这本书里的词连学习记录一并删除(云同步会在另一台设备上同样删除);重新导入即恢复。
- 多本书共有的词移除某本时保留卡片,只是不再属于那本书。
练习
- 句子填空支持词形挖空:原句里是 went / goes / going 而词卡是 go 时照样挖空,填原形或句中词形都算对(不再把答案亮在句子里)。
查词
- 拼写纠错:彻底查不到时,从常用词里给编辑距离相近的候选——recieve → receive、acomodate → accommodate、definately → definitely。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.3.2
收词与词库修复
- 收词必定真正进「生词本」:修复单词已在其他词书(如词书导入过)时点「加入」静默失败的问题——之前只显示「已在库」,词却始终不进生词本。
- 词库列表改为最新收的排最前:新收的词一眼可见,不再沉在列表底部。
- 收词后词库页实时刷新(快速收词小窗、划词直加、查词页都算);导入词书后列表也立即更新。
- 升级后自动修复:历史上因同步问题丢失词书标签的词会按主词书补回,之前「收了却看不见」的词重新出现。
数据与统计修复
- 云同步:一台设备删除、另一台重新收词后,同步不再丢失该词的全部词书标签。
- 每日新词限额:同一天多次练习不再超发(新卡首次复习 10 分钟后到期,复习第二次会让旧计数漏掉它)。
- 「今日复习次数」改为与库内时间格式一致的比较(此前在其他时区可能归零)。
- 快速收词小窗的释义预览不再把换行符原样显示。
- 设置页两个热键选成相同值时,界面不再显示未保存的值。
- 词书导入的词同步清理旧删除墓碑,与手动收词一致,避免下次同步被误删。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.3.1
练习节奏修复
- 评「忘记」的词不再整条序列重来:只重做失败的最后一轮,已经过了的模式不会再次出现。
- 各词的练习模式顺序随机错开(新词仍先教学):同一种模式不再成串连排出现。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.3.0
收词与词库
- 查词页快速收词固定进「生词本」,不再跟随当前浏览的词书;展开面板仍可选其他词书收入。
- 词库页新增删除:每行「删除」按钮,二次确认后连词带学习记录、词书标签一并移除。
- 删除走墓碑机制:云同步会在另一台设备上移除同一个词,且不会在下次同步时「复活」;删错重新收词即可正常恢复。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.2.0
查词:中文查英文
- 查词页直接输入中文即可找到英文单词:苹果 → apple,高兴 → pleasure / glad / joy。
- 核心词义优先(释义开头命中的排前),再按常用度排序,结果不淹没在长尾释义里。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.1.0
查词:前缀联想
- 打两三个字母就能看到常用词:候选按常用度排序(词频 → 牛津/柯林斯 → 词长),不再按字母序淹没在生僻词里。
- 精确命中不再独占结果,置顶后继续展示相近词。
- 前缀候选太少时自动补「包含」匹配(限常用词),忘了单词开头也能找回来。
- 响应更快(防抖 200ms → 100ms),快速连续输入不会旧结果闪回。
练习:间隔式多轮
- 一个单词不再一口气做完所有练习:看完教学卡就过,其余轮次隔着其他词交替回来,符合间隔记忆规律。
- 中间轮次答错的词会更快回来(隔 2 张);最终轮统一记 FSRS 成绩,中途有错的词「简单」档不再可用。
- 进度以词为单位显示(已完成 / 总词数),回顾轮在模式提示里标注「回顾」。
- 忘记的卡仍是本轮内整序列重来;完成屏错词重练不变。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。
浸词 v1.0.0
第一个正式版。
浸词是一个桌面背单词应用:FSRS-5 记忆调度,真实语境学习,单色纸墨的克制设计。Windows 与 macOS 双平台,数据完全属于你。
记忆与练习
- FSRS-5 调度:按你的记忆表现安排每次复习,追求稳定的知识保留率。
- 模式序列:每个单词把设置里勾选的练习方式各过一遍,全部完成才记成绩;新词先教后练,忘记的卡本轮内换式重现,完成屏错词一键重练。
- 七种练习方式:卡片自评、默写拼写、看词选义、看义选词、听音拼写、句子填空、组词成句。后两种基于你收词时的原句,凭语境作答;键盘与鼠标皆可完成全流程。
收词与内容
- 快速收词:在任何应用里选中单词,全局热键直接入书(默认 Alt+Q),或呼出小窗补一句原句(默认 Alt+E);支持词形还原,went 回到 go、puddles 回到 puddle。
- 内置词典:安装包内置约 77 万词的 ECDICT,查词、释义、词形还原全部离线可用。
- 词书目录:内置内容包按需一键导入,自动与现有词库去重。首发八本:四级、六级、考研、托福、雅思、GRE、学术词汇(AWL)、计算机科学词表。一词多书,也可自建词书。
同步与数据
- 双端同步:学习数据经由你自己的 GitHub 私有 Gist 在两台设备间自动收敛,不经任何第三方服务器;Token 存本机。支持手动导出/导入作为兜底。
- 匿词同步:可选拉取匿词(clingword)收藏,新词带原句流入生词本。
设计
- 「砚」:单色纸墨,唯一的彩色是青瓷水色,只给进度水线、焦点与成功态。方向性转场、数字滚动、弹簧形变图标;内置思源宋体,释义按纸质词典的惯例以宋体排印,深浅双主题。
从 0.2 到 1.0
v0.2 单机核心与复习闭环;v0.3 双设备导出合并;v0.4 一词多书架构;v0.5 GitHub Gist 云同步;v0.7 / v0.8 全局热键收词与词形还原;v0.9 「砚」重设计;v0.10 安装包内置词典;v0.11 句子练习;v0.12 / v0.13 原句收词与教学卡、错词小结;v0.14 模式序列化;v0.16 词书目录。
Windows 下载 -setup.exe 安装;macOS 下载 .dmg(通用二进制,未签名:右键 → 打开,或执行 xattr -cr "/Applications/immerso.app")。