生产力插件: dashboard.html 在每次重新加载时都会忘记 TASKS.md/内存文件夹

作者: velkss-uk创建于 2026年9月9日更新于 2026年9月17日

问题 dashboard.html (来自生产力插件) 使用文件系统访问 API (showOpenFilePicker / showDirectoryPicker) 加载 TASKS.md 和 memory/ 文件夹。每次重新打开 dashboard 时 - 新的浏览器选项卡,重启,甚至只是关闭和重新打开文件 - 它会忘记上次选择的文件/文件夹,并让您从头开始重新选择。对于一个每天使用的 dashboard,这意味着有一些有意义的摩擦。 提出的修复 dashboard-reconnect.patch 文件系统访问 API 支持在 IndexedDB 中保存 FileSystemFileHandle / FileSystemDirectoryHandle 并随后重新查询其权限 (handle.queryPermission() / handle.requestPermission()),而无需再次显示选择器对话框。我已经在 dashboard.html 的自己的副本中实现了这一点: 成功选择后,处理器被保存到一个小的 IndexedDB 存储中 (productivity-dashboard / handles)。页面加载时,dashboard 尝试恢复保存的 TASKS.md 处理器和 memory 文件夹处理器: 如果仍然允许访问,它将默默地重新加载 - 根本没有提示。 如果需要重新确认权限 (提示状态),空状态屏幕将其按钮切换为单击 "重新连接",而不是完整的文件选择器。无论如何,第二个按钮 - "选择不同的文件" / "选择不同的文件夹" - 仍然可见,因此切换到不同的文件从来不会被重连流程阻止。 如果文件已被移动/删除,它将自动回退到正常的选择器。 这只涉及 dashboard.html (在空状态标记中添加两个新的小按钮,以及在脚本中添加 IndexedDB 协助程序 + 重构加载函数)。没有对 TASKS.md/Claude.md 格式进行任何更改,没有新的依赖项,也没有构建步骤。 已附上一个 patch (dashboard-reconnect.patch),它是针对当前 productivity/skills/dashboard.html 生成的,如果首选直接将其作为 PR 提交,我非常乐意这样做。 审阅者需要注意的警告 此方法依赖于文件系统访问 API,因此仅在基于 Chromium 的浏览器中有效(Chrome、Edge 等) - dashboard 今天对于选择器本身也有同样的限制。 保存的处理器位于页面源的浏览器的 IndexedDB 中(通常在 Chromium 中共享本地 file:// 页面),而不是在 markdown 文件本身中,因此它是浏览器/机器级的,永远不会随文件一起传输 - 已经确认此做法不会泄露给其他用户,如果共享或复制相同的 dashboard.html。

内容来源: anthropics/knowledge-work-plugins