Skip to content

Zotero TaskFlow 14.1.2

Choose a tag to compare

@groele groele released this 31 Oct 06:24
· 15 commits to main since this release

Zotero TaskFlow v14.1.2 发布说明

发布日期:2026-10-31
适用架构:纯净 TaskFlow 体系架构(文献右键菜单功能开关强化与偏好设置响应性修复)

1. 核心改进

  • 修复偏好设置控件响应状态(Disabled)恢复机制:
    • 修复 preferences.js 中 saveControl 在异步保存偏好后未能恢复 control.disabled = false 的问题,确保用户在设置面板切换“添加为待办”与“批量加入研读待办”复选框后控件保持可交互状态,杜绝永久冻结。
  • 强化文献列表右键菜单动态隐藏与双端兼容性:
    • 新增 setElementVisibility 统一显隐辅助方法,在 XUL/Gecko 环境中同步维护 DOM hidden 属性、setAttribute('hidden', 'true') / removeAttribute('hidden') 以及 style.display = 'none !important',彻底解决仅依赖 JS 属性时 XUL 原生菜单可能漏显的问题。
    • 确保“添加为待办”与“批量加入研读待办”默认均为未开启状态(false),默认不占用文献库右键菜单;开启后即时生效。
    • 在 setPrefs 保存偏好时自动调用 refreshContextMenuVisibility(),实现设置修改后无需重启 Zotero 即刻刷新已打开窗口中的右键菜单状态。
    • 现代化 MenuManager(Zotero 8+)菜单注册与命令执行中,强化 context.items 参数直通与 onCommand Promise 链路,确保批量加入和单篇创建操作的原子性与可靠性。
  • 完善本地化与设置页说明文案:
    • 在 Fluent 本地化资源(zh-CN 与 en-US)中补充 taskflow-item-menu-batch 与 todolist-item-menu-batch 词条。
  • 彻底移除 Todolist for Zotero 痕迹字段,使用 TaskFlow 最新标签替代:
    • 清除 scripts/index.js、css/variables.css、css/redesign.css、css/animations.css 中的 Todolist for Zotero 旧品牌注释与文件头元信息,全面统一为 Zotero TaskFlow。
    • 彻底移除同步文献子笔记时对 Todolist for Zotero 与 [Todolist] 痕迹字段的内容检索依赖,全面升级为通过最新 TaskFlow 标签(noteItem.hasTag('TaskFlow'))以及 [TaskFlow] 标识进行精确检测与自愈。
    • 在更新笔记时自动为历史笔记补充最新 TaskFlow 标签,并自动剥离清理残留的旧 Todolist 标签。
    • 清理内部核心方法调用与日志前缀,统一使用 openTaskFlow / triggerTaskFlowOpen 与 [TaskFlow] 日志前缀,保留 openTodolist 作为透明兼容别名。
  • 架构健壮性与安全只读防护(Read-only Guard):
    • 在 openTaskFlow 与 triggerTaskFlowOpen 引入 _inOpenDispatch 与 _inTriggerDispatch 防重入保护,杜绝宿主或外部测试覆盖方法相互调用时的递归溢出风险。
    • 在 syncTasksToChildNote 与 tagItemOnTaskEvent 中增加 target.isEditable() 原生安全检查,对只读群组与回收站条目实行只读保护,杜绝跨端写入异常。

2. 验证结果

  • 包构建:python scripts/build-package.py 构建通过,产物 zotero-taskflow-14.1.2.xpi(335,676 字节),SHA-256:53348e5023972ac3a0973b670482a92945218d6e14c08de522ac646d951b7a96。
  • 单元测试:npm test 包含 153 项核心测试与打包测试 100% 全部通过。