Skip to content

Zotero TaskFlow 14.3.0

Choose a tag to compare

@groele groele released this 04 Nov 06:46
· 8 commits to main since this release

Zotero TaskFlow v14.3.0 发布说明

发布日期:2026-11-04
适用架构:纯净 TaskFlow 体系架构(生命周期闭环、4.2 栅格对齐、只读防护与安全加固)

1. 核心改进

  • 设置页 Fluent 文案深度治理 (零硬编码) [P1]:
    • \preferences.xhtml\ 全量重构为 100% \data-l10n-id\ 驱动,文本节点与属性中文硬编码全部清零(0 处遗留),严格遵循零硬编码规范;
    • \locale/zh-CN/taskflow.ftl\ 与 \locale/en-US/taskflow.ftl\ 全面扩充并实现 104 对 Fluent 词条严格双向对称无缺失。
  • 代码架构深度解耦与大模块拆分 [P1]:
    • 宿主入口拆分:将 \chrome/content/scripts/index.js\(原 3,477 行)中条目侧栏渲染与生命周期逻辑完全抽离为高内聚独立模块 \chrome/content/scripts/itemPane.js\,宿主入口缩减至 2,692 行(大幅精简近 800 行);
    • UI 模块拆分:将 \chrome/content/js/ui.js\(原 1,980 行)中任务卡片 DOM 构建逻辑解耦为专用卡片渲染器 \chrome/content/js/taskCard.js\,UI 核心精简至 1,757 行。
  • 生命周期闭环:独立伴随窗口与重试定时器纳管 [P1]:
    • 穿透枚举所有独立窗口(Services.wm.getEnumerator(null)),在 shutdown() 时关闭所有通过 Services.ww.openWindow 打开的 Todolist_SubWindow 与 Todolist_Window,彻底根除卸载/禁用后的孤儿窗口泄露问题;
    • 纳管 openStandaloneWindow() 中的递归重试投递定时器(mainWin.setTimeout),登记 timer ID 并在窗口关闭(unload)或插件 shutdown 时自动注销清理。
  • 设置页面板 CSS 类名修复与 4.2 网格标准对齐 [P1]:
    • 彻底解决 preferences.xhtml 与 preferences.css 类名不匹配问题,双向统一支持 .todolist-pref-actions / .todolist-action-group 与 .todolist-pref-release-info / .todolist-release-info,使底部版本信息卡片与导出/操作按钮恢复标准边框与网格排版;
    • 将高级卡片内部的备份导出和自定义标签子控件(.todolist-pref-tags-container、.todolist-tag-creator-bar、.todolist-export-grid、.todolist-import-bar、.todolist-shortcut-help、操作按钮组等)统一声明 margin-inline-start: 24px,精准对齐 40px 黄金基准线。
  • 只读条目子笔记交互假阳性修复 [P2]:
    • 条目详情侧边栏在检测到文献条目处于只读群组或不可编辑状态(!target.isEditable())时,自动将「同步子笔记」按钮置为禁用状态并提示“只读文献无法同步子笔记”;
    • 严格校验 syncTasksToChildNote(target.id) 的返回值,若返回 null 则禁止弹出“同步成功”,明确提示“只读条目或未找到任务清单,跳过同步”;
    • 扩展 getLiteratureItem 适配条目 ID(数值/字符串)直接寻址解析。
  • 重复事件绑定与通知去重 & CSV 安全加固 [P2]:
    • 移除前端 ui.js 中对 #btn-zotero-prefs 冗余的重复 click 监听器绑定;
    • 优化 index.js 与 zoteroBridge.js 数据变更通知机制,宿主发送规范 TASKFLOW_DATA_CHANGED 事件,前端检测若已通过直连数据监听器(_hasDirectDataListener)接收则跳过 postMessage 重复投递,避免 3 次重复处理;
    • 宿主端 Zotero.TaskFlow.exportData('csv') 增加 Excel 宏与公式注入防护,对开头为 =, +, @, - 的单元格文本强制添加 ' 单引号安全转义,与前端导出逻辑保持完全一致。
  • 更新源与打包校验升级至 SHA-512 [P1]:
    • 清理 update.json 中堆叠的历史冗余版本,仅保留代表性演进里程碑(14.3.0, 14.2.3, 14.2.0, 14.1.0, 14.0.0, 13.0.0, 12.6.3);
    • 将 update.json 的 update_hash 以及打包脚本 scripts/build-package.py 输出的哈希全面升级为更安全的 sha512: 算法。

2. 验证结果

  • 包构建:python scripts/build-package.py 严格验证包哈希与结构,产物 zotero-taskflow-14.3.0.xpi 与 update.json 的 sha512 校验和 100% 匹配。
  • 全套自动化测试:npm test 包含 156+ 项单元/集成测试与打包测试全部绿灯通过(0 fail)。
  • 语义化发布标签自检:python scripts/release-tags.py --self-test 校验 14.3.0 版本通过。