dsh-global-todo 0.16.2 → 0.16.3

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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [0.16.3] — 2026-10-23
2
+
3
+ Documentation release: the npm page finally shows the current install instructions.
4
+
5
+ - **npm's README is frozen at publish time**, so the install/per-profile rewrite and the
6
+ 「哪些功能还没有 / Not there yet」 sections (README.zh.md, FAQ, ROADMAP) reach GitHub but not the
7
+ npm page until a new version ships. Nothing in `lib/` changes.
8
+ - **The market index no longer blocks publishing.** Its test required the index's newest version
9
+ to equal `package.json`'s — which cannot hold between a version bump and its publish, and
10
+ `prepack` runs the suite, so the first release after the market index landed could not be
11
+ tagged. The offline rule is now one-directional (the index may not offer a version newer than
12
+ the tree), and staleness moved to `npm run market:fresh`, which asks the registry. AGENTS.md
13
+ documents the two-step order: publish, then regenerate the index and commit it.
14
+
1
15
  ## [0.16.2] — 2026-10-22
2
16
 
3
17
  A date-only deadline is local midnight, so a date bound stops swallowing part of its own day.
package/README.md CHANGED
@@ -172,21 +172,53 @@ What each file shows, and when it is regenerated, is indexed in
172
172
 
173
173
  ## Install
174
174
 
175
+ **Check your profile name first.** The plugin is installed into one profile, not into the
176
+ machine; a wrong profile name still exits 0, and then nothing shows up in the sidebar after a
177
+ restart — the most common first-run trap.
178
+
179
+ ```sh
180
+ ls ~/.dsh/profiles # Windows: dir %USERPROFILE%\.dsh\profiles
181
+ ```
182
+
183
+ Replace `<profile>` below with one of the names that command prints (`web` on most hosts;
184
+ use your desktop or `headless` profile name if that is what you run):
185
+
175
186
  ```sh
176
187
  # from npm
177
- dsh plugin --profile web add dsh-global-todo
188
+ dsh plugin --profile <profile> add dsh-global-todo
178
189
 
179
190
  # or from a checkout, which is also the development path
180
- dsh plugin --profile web add /absolute/path/to/dsh-global-todo
191
+ dsh plugin --profile <profile> add /absolute/path/to/dsh-global-todo
181
192
  ```
182
193
 
183
- The plugin is a Loader row, not a hot-loaded script: **restart the host** (`dsh web`)
184
- after installing, then refresh the page. A "待办 / Todos" entry appears in the sidebar.
194
+ The plugin is a Loader row, not a hot-loaded script: **restart the host** (`dsh web`, or
195
+ whatever start command you use) after installing, then refresh the page. A "待办 / Todos"
196
+ entry appears in the sidebar.
197
+
198
+ > Sidebar still empty? Check three things in order: ① which profiles `ls` actually printed and
199
+ > whether the one you installed into is the one running; ② whether the host really restarted
200
+ > (the Loader is read once at boot); ③ whether the page was refreshed (the client module graph
201
+ > belongs to the release the page booted with).
185
202
 
186
203
  The npm package is the source of truth. A community catalog can lag behind it or point at an
187
- older release; pin the version you want (`dsh plugin --profile web add dsh-global-todo@0.13.1`)
204
+ older release; pin the version you want (`dsh plugin --profile <profile> add dsh-global-todo@0.13.1`)
188
205
  when it matters.
189
206
 
207
+ ### Installing from DSH's Discover tab
208
+
209
+ DSH's Discover tab reads a plugin market index from a URL you add yourself — dsh ships none, and
210
+ a user-added index is the one path that installs without copying a command. This repository
211
+ publishes one:
212
+
213
+ ```text
214
+ https://lugabeeee.github.io/dsh-global-todo/market/index.json
215
+ ```
216
+
217
+ It is generated from npm by `npm run market` (`docs/market/index.json`) and validated against
218
+ dsh's own `@deepseek-ai/dsh-plugin-market-index` before it is written. `npm test` fails when its
219
+ newest version is not the version in `package.json`, so a release that forgets to regenerate it
220
+ is caught before it ships.
221
+
190
222
  **Hand-copied a directory instead?** Check it before wondering why the plugins page looks wrong:
191
223
 
192
224
  ```sh
@@ -200,7 +232,7 @@ the desktop app print `Plugin metadata … ENOENT … \locale` while the plugin
200
232
  To roll back:
201
233
 
202
234
  ```sh
203
- dsh plugin --profile web remove dsh-global-todo
235
+ dsh plugin --profile <profile> remove dsh-global-todo
204
236
  ```
205
237
 
206
238
  Your list is not touched by install or uninstall: it lives outside the plugin, at
package/README.zh.md CHANGED
@@ -151,16 +151,43 @@ HTML(不依赖宿主、零依赖),再以 1280×720 拍进 `docs/screenshot
151
151
 
152
152
  ## 安装
153
153
 
154
+ **先确认 profile 名字。** 插件是装进某个 profile 的,不是装进整台机器;profile 名写错,
155
+ 命令会成功,但重启后侧栏里什么都没有——这是最常见的一次踩坑。
156
+
157
+ ```sh
158
+ ls ~/.dsh/profiles # Windows: dir %USERPROFILE%\.dsh\profiles
159
+ ```
160
+
161
+ 把下面命令里的 `<profile>` 换成上一步列出来的那个(本机常见是 `web`;用桌面端就填桌面端的
162
+ profile 名,用 headless 就填 `headless`):
163
+
154
164
  ```sh
155
165
  # 从 npm 装
156
- dsh plugin --profile web add dsh-global-todo
166
+ dsh plugin --profile <profile> add dsh-global-todo
157
167
 
158
168
  # 或从本地检出装(也是开发路径)
159
- dsh plugin --profile web add /绝对路径/dsh-global-todo
169
+ dsh plugin --profile <profile> add /绝对路径/dsh-global-todo
170
+ ```
171
+
172
+ 插件是宿主组合里的**一行 Loader**,不是热加载脚本:**装完要重启宿主**(`dsh web`,
173
+ 或你用的那个启动命令),再刷新页面。侧栏会出现「待办」入口。
174
+
175
+ > 侧栏还是空的?按顺序查三件事:① 上面的 `ls` 里到底有哪几个 profile,你装的是不是正在跑的那个;
176
+ > ② 宿主有没有真的重启(Loader 只在启动时读一次);③ 页面有没有刷新(客户端模块图属于
177
+ > 启动时那个 release)。
178
+
179
+ ### 从 DSH 的 Discover 标签安装
180
+
181
+ DSH 的 Discover 标签读的是**你自己添加**的一个 JSON 索引(官方不带索引),这也是唯一一条
182
+ 不用手抄命令的安装路径。本仓库发布了一份:
183
+
184
+ ```text
185
+ https://lugabeeee.github.io/dsh-global-todo/market/index.json
160
186
  ```
161
187
 
162
- 插件是宿主组合里的**一行 Loader**,不是热加载脚本:**装完要重启宿主**(`dsh web`),
163
- 再刷新页面。侧栏会出现「待办」入口。
188
+ 它由 `npm run market` 从 npm 生成(`docs/market/index.json`),写入前会用 DSH 自己的
189
+ `@deepseek-ai/dsh-plugin-market-index` 校验一遍。**索引里的最新版本与 `package.json` 不一致时
190
+ `npm test` 会失败** —— 发版后忘了重新生成,会在发出去之前就被拦下。
164
191
 
165
192
  **如果你是手动拷贝目录(而不是从 npm 装)**,先自检一遍,别靠猜:
166
193
 
@@ -174,12 +201,12 @@ npx dsh-global-todo-doctor "$HOME/.dsh/plugins-local/全局待办插件"
174
201
  `Plugin metadata … ENOENT … \locale`。
175
202
 
176
203
  npm 上的包才是事实来源。社区目录可能落后于 npm、或指向某个旧 release;需要确定版本时
177
- 直接钉版本(`dsh plugin --profile web add dsh-global-todo@0.13.1`)。
204
+ 直接钉版本(`dsh plugin --profile <profile> add dsh-global-todo@0.13.1`)。
178
205
 
179
206
  回滚:
180
207
 
181
208
  ```sh
182
- dsh plugin --profile web remove dsh-global-todo
209
+ dsh plugin --profile <profile> remove dsh-global-todo
183
210
  ```
184
211
 
185
212
  装卸都不会碰你的清单——它在插件之外:`$DSH_HOME/global-todo/todos.json`。
package/docs/FAQ.md CHANGED
@@ -68,18 +68,18 @@ CSV 没有直接入口:先转成 JSON 或 Markdown。Markdown 解析是容错
68
68
 
69
69
  没有 Agent 参与时用不上的只有四件事:抓取、派发、Agent 的完成声明、会话回读。
70
70
 
71
- ## 8. 哪些事它明确不做?
71
+ ## 8. 哪些功能目前还没有?
72
72
 
73
- | 不做 | 现状 |
73
+ | 目前没有 | 现状 |
74
74
  |---|---|
75
- | 看板 / 日历视图 | 只有列表,加三种分组(对话 / 时间 / 级别);没有拖拽看板,没有日历 |
76
- | 重复任务 | `dueAt` 是单个时间点,没有 recurrence 字段;同一截止只提醒一次,改了时间才会重新提醒 |
77
- | 子任务树 | 只有扁平的 `steps`,最多 20 条 |
78
- | 上传附件 | 只存引用(绝对路径或 URL),不复制字节 |
79
- | 多清单 / 项目 | 只有一份全局清单(ROADMAP 的 Later) |
80
- | 自动开工 | 明确不计划:那是任务队列,不是个人清单(ROADMAP 的 Explicitly not planned) |
81
- | 桌面端面板 | 只有 Web 客户端 |
82
- | 账号 / 多用户 | 没有;只有一个本机(或受信网络)可访问的 HTTP 面 |
75
+ | 看板 / 日历视图 | 现在只有列表,加三种分组(对话 / 时间 / 级别);没有拖拽看板,没有日历 |
76
+ | 重复任务 | `dueAt` 是单个时间点,还没有 recurrence 字段;同一截止只提醒一次,改了时间才会重新提醒 |
77
+ | 子任务树 | 现在只有扁平的 `steps`,最多 20 条 |
78
+ | 上传附件 | 现在只存引用(绝对路径或 URL),不复制字节 |
79
+ | 多清单 / 项目 | 现在只有一份全局清单 |
80
+ | 自动开工 | 现在没有;它是一份个人清单,不是任务队列 |
81
+ | 桌面端面板 | 现在只有 Web 客户端 |
82
+ | 账号 / 多用户 | 现在没有;只有一个本机(或受信网络)可访问的 HTTP 面 |
83
83
 
84
84
  ## 9. 两个进程同时写这个文件会怎样?
85
85
 
@@ -122,7 +122,7 @@ CSV 没有直接入口:先转成 JSON 或 Markdown。Markdown 解析是容错
122
122
  ## 12. 怎么干净卸载?
123
123
 
124
124
  ```sh
125
- dsh plugin --profile web remove dsh-global-todo
125
+ dsh plugin --profile <profile> remove dsh-global-todo
126
126
  ```
127
127
 
128
128
  然后重启宿主、刷新页面,侧栏入口消失。清单和设置都还在原处——这是刻意的。
@@ -15,14 +15,26 @@ headless / ACP / SDK 组合里没有面板,只剩 Agent 工具。
15
15
 
16
16
  ## 1. 安装
17
17
 
18
+ 先看你实际有哪些 profile(插件是装进某一个 profile,不是装进整台机器):
19
+
20
+ ```sh
21
+ ls ~/.dsh/profiles # Windows: dir %USERPROFILE%\.dsh\profiles
22
+ ```
23
+
24
+ 把打印出来的名字填进去(大多数是 `web`):
25
+
18
26
  ```sh
19
- dsh plugin --profile web add dsh-global-todo
27
+ dsh plugin --profile <profile> add dsh-global-todo
20
28
  ```
21
29
 
22
- 装完**重启宿主**(`dsh web`),再**刷新页面**。插件是 Loader 里的一行,不是热加载脚本。
30
+ 装完**重启宿主**(`dsh web`,或你用的那个启动命令),再**刷新页面**。插件是 Loader 里的一行,
31
+ 不是热加载脚本。
23
32
 
24
33
  验证:侧栏出现「待办」入口。
25
34
 
35
+ 侧栏还是空的?按顺序查三件事:① 你装的是不是正在跑的那个 profile;② 宿主有没有真的重启;
36
+ ③ 页面有没有刷新。三件都对还是没有,跑 `npx dsh-global-todo-doctor <插件目录>` 自检。
37
+
26
38
  ## 2. 打开面板
27
39
 
28
40
  点侧栏的「待办」。这是**全局面板**:不绑定某个会话,切到别的对话、关掉再开,清单还是同一份。
package/docs/ROADMAP.md CHANGED
@@ -246,10 +246,15 @@ mislead.
246
246
  | Drag to reorder | Manual order is meaningful to some people; it also needs a stable `position` field and a decision about how it interacts with due-date grouping. |
247
247
  | Multi-list / projects | A `list` field with one default list; deferred because "global single list" is the current identity. |
248
248
 
249
- ## Explicitly not planned
250
-
251
- - **Auto-running todos.** A schedule that starts work without a person is a job queue,
252
- and this is a personal list.
253
- - **Copying attachment bytes.** See `DESIGN.md`: references beat stale copies.
254
- - **A second source of truth.** Anything that mirrors this list elsewhere (a database, a
255
- remote service) has to justify why the file is not enough.
249
+ ## Not there yet
250
+
251
+ Things the list does not have today. Some may arrive later; none of them is a promise.
252
+
253
+ - **Calendar and board views.** The panel is a list with three groupings today. There is no
254
+ calendar view and no drag-and-drop board.
255
+ - **Auto-running todos.** Nothing starts work on a schedule today; the list records what a
256
+ person intends to do.
257
+ - **Copying attachment bytes.** Attachments are references (absolute path or URL) today; see
258
+ `DESIGN.md` for why references beat stale copies.
259
+ - **A second source of truth.** Everything reads and writes the one JSON file today; anything
260
+ that mirrors it elsewhere (a database, a remote service) would have to justify itself.
package/lib/index.js CHANGED
@@ -37,7 +37,7 @@ import { createStore, resolveStorePath } from './store.js'
37
37
  import { createTools, normalizeToolGroups, selectTools } from './tools.js'
38
38
 
39
39
  /** Must equal `package.json`'s version; `npm run check` enforces that. */
40
- export const VERSION = '0.16.2'
40
+ export const VERSION = '0.16.3'
41
41
 
42
42
  /** Plugin id. Also the Loader row id in `cordis.patch.yml`. */
43
43
  export const name = 'dsh-global-todo'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-global-todo",
3
- "version": "0.16.2",
3
+ "version": "0.16.3",
4
4
  "icon": "./docs/icon.svg",
5
5
  "description": "Cross-session todo list for DeepSeek Harness: one JSON file a person and an agent both write to, with step plans that ship as a numbered hand-off, session read-back, and a human confirmation before an agent's \"done\" counts.",
6
6
  "type": "module",
@@ -83,7 +83,10 @@
83
83
  "prepack": "npm run verify",
84
84
  "check:render": "node tools/preview.mjs --check",
85
85
  "check:live": "node tools/live-check.mjs",
86
- "check:matrix": "node scripts/matrix.mjs"
86
+ "check:matrix": "node scripts/matrix.mjs",
87
+ "market": "node tools/market.mjs",
88
+ "market:check": "node tools/market.mjs --check",
89
+ "market:fresh": "node tools/market.mjs --fresh"
87
90
  },
88
91
  "dsh": {
89
92
  "manifestVersion": 1,