dsh-todo-time-log 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/lib/client.js +676 -1
- package/lib/index.js +133 -9
- package/lib/store.js +447 -0
- package/lib/transfer.js +573 -0
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -117,6 +117,7 @@
|
|
|
117
117
|
| 📎 `@工作区文件` | 把待办关联到代码文件;只给文件、不给分类时,自动取文件所在目录作为分类 |
|
|
118
118
|
| ✍️ 四种录入 | 面板表单、对话式一句话(`新任务 写周报 #工作`)、`/todo` 斜杠命令、智能体工具 `todo_time_log` |
|
|
119
119
|
| 🤖 智能体工具 | 智能体可 `list / get / create / complete / uncomplete / update / delete / health`,与 UI 共用同一实现 |
|
|
120
|
+
| 📦 导入 / 导出 | 页头「数据」:JSON 无损备份、CSV 给 Excel 统计;导入先预览再写入,支持合并 / 仅新增 / 覆盖全部,自动备份并可直接撤销 |
|
|
120
121
|
| 🔒 本地数据 | `<DSH_PROFILE_DIR 或 ~/.dsh>/todo-time-log/todos.json`;临时文件 + rename 原子替换、写入串行化、跨进程文件锁 |
|
|
121
122
|
| 🌗 主题与无障碍 | 全部颜色走 `--dsw-alias-*` token,明暗主题自适应;`aria-live`、`aria-sort`、键盘操作、减少动效偏好 |
|
|
122
123
|
| ⌨️ 面板快捷键 | `/` 聚焦搜索、`n` 聚焦新建、`f` 循环切换筛选 |
|
|
@@ -212,6 +213,22 @@ curl -s http://127.0.0.1:<port>/api/dsh-todo-time-log/health
|
|
|
212
213
|
|
|
213
214
|
HTTP 接口与智能体工具共用同一个业务实现(`executeTodoAction`),因此不存在「UI 能做的工具做不到」的情况;接口经宿主认证,未登录返回 401、跨站/不可信来源返回 403。
|
|
214
215
|
|
|
216
|
+
### 导入 / 导出
|
|
217
|
+
|
|
218
|
+
面板右上角「数据」打开对话框:
|
|
219
|
+
|
|
220
|
+
| 能力 | 说明 |
|
|
221
|
+
| --- | --- |
|
|
222
|
+
| 导出 JSON | 无损信封(`version: 5` + 全部字段 + 时间戳),可原样回导;导出前会先合并其他窗口刚写入的数据 |
|
|
223
|
+
| 导出 CSV | UTF-8 BOM + CRLF,Excel 直接打开;时间为本地 `YYYY-MM-DD HH:mm:ss`(秒级,毫秒级无损请用 JSON),`文件` 用 `;` 分隔,额外一列只读的 `耗时(分钟)` |
|
|
224
|
+
| 导入 JSON | 支持本插件信封 v1–v5、裸 `Todo[]` 数组;旧版本字段自动迁移 |
|
|
225
|
+
| 导入 CSV | 中英文表头别名(标题/title、分类/project、状态/status、优先级/priority、类型/type、创建时间/createdAt …),中文值「已完成 / 高 / 缺陷」也能识别 |
|
|
226
|
+
| 两段式导入 | 选文件后先 `dryRun` 预览「新增 / 更新 / 跳过 / 移除 / 非法行」,确认后才写盘 |
|
|
227
|
+
| 冲突策略 | **合并**(默认,同 ID 取 `updatedAt` 较新)/ **仅新增**(同 ID 跳过)/ **覆盖全部**(先自动备份再整体替换) |
|
|
228
|
+
| 自动备份 + 撤销 | 每次真正写入前生成 `<dataFile>.bak-<时间戳>`;导入结果的 toast 带「撤销」,恢复前还会再备份一次当前状态 |
|
|
229
|
+
|
|
230
|
+
限制:单次导入最多 5000 条(与列表上限一致),导入请求体上限 8 MiB;备份文件保留在同一目录,可手动删除或恢复。
|
|
231
|
+
|
|
215
232
|
---
|
|
216
233
|
|
|
217
234
|
## 数据与安全
|
|
@@ -219,6 +236,7 @@ HTTP 接口与智能体工具共用同一个业务实现(`executeTodoAction`
|
|
|
219
236
|
- **本地优先**:数据只存在本地 JSON 文件,不联网、不上传、不触发模型调用。
|
|
220
237
|
- **写入可靠**:临时文件 + rename 原子替换;全部写操作串行化;跨进程写入用文件锁 + mtime 合并,避免多窗口互相覆盖。
|
|
221
238
|
- **损坏自愈**:JSON 损坏 / 结构异常 / 版本不支持会分别归档备份,然后重建空列表并给出提示;修复与异常提示只投递一次,不刷屏。
|
|
239
|
+
- **导入可回退**:导入 / 覆盖前自动写入 `<dataFile>.bak-<时间戳>` 备份;撤销只允许恢复同目录下本插件生成的 `.bak-*` 文件,路径穿越与任意文件读取都会被拒绝。
|
|
222
240
|
- **版本迁移**:v1 → v5 全部自动迁移,下一次写入即落盘新版本。
|
|
223
241
|
- **接口边界**:`/files`、`/quick-add` 只接受 `/workspaces` 返回的候选工作区;文件引用只接受工作区相对路径,绝对路径、盘符、`..` 一律拒绝。
|
|
224
242
|
|