dsh-global-todo 0.6.7 → 0.6.8
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 +14 -0
- package/README.md +11 -0
- package/README.zh.md +10 -0
- package/docs/screenshots/panel-detail.png +0 -0
- package/docs/screenshots/panel-empty.png +0 -0
- package/docs/screenshots/panel-filtered.png +0 -0
- package/docs/screenshots/panel-inbox.png +0 -0
- package/docs/screenshots/panel-reminders.png +0 -0
- package/docs/screenshots/panel-select.png +0 -0
- package/docs/screenshots/panel-settings.png +0 -0
- package/docs/screenshots/panel.png +0 -0
- package/lib/client.js +3 -2
- package/lib/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [0.6.8] — 2026-10-20
|
|
2
|
+
|
|
3
|
+
Every conditional state now has a baseline image, and the harness refuses to render a blank
|
|
4
|
+
one.
|
|
5
|
+
|
|
6
|
+
- **Four new preview scenarios**: empty list, filter with no match, inbox, and a due reminder.
|
|
7
|
+
`tools/preview.mjs` grew a `SCENARIOS` table the fake fetch reads, so a state that used to be
|
|
8
|
+
reachable only by clicking can be rendered and photographed like any other.
|
|
9
|
+
- **`npm run screenshots` writes eight images** (list, detail, selection, settings + the four
|
|
10
|
+
above). Both READMEs index them in a state table instead of embedding all eight.
|
|
11
|
+
- **`npm run check:render` asserts each state's marker** (`记第一条`, `清除筛选`, the inbox
|
|
12
|
+
explanation, the reminder title), so a regression shows up as a failing check rather than a
|
|
13
|
+
silently blank picture.
|
|
14
|
+
|
|
1
15
|
## [0.6.7] — 2026-10-20
|
|
2
16
|
|
|
3
17
|
Copy safety, and the last orphan of the old footer.
|
package/README.md
CHANGED
|
@@ -35,6 +35,17 @@ one record:
|
|
|
35
35
|
|
|
36
36
|

|
|
37
37
|
|
|
38
|
+
Every state that only appears under a condition has a fixed baseline image, rendered by the same
|
|
39
|
+
preview and photographed by the same tool:
|
|
40
|
+
|
|
41
|
+
| State | Image |
|
|
42
|
+
|---|---|
|
|
43
|
+
| Empty list | [`panel-empty.png`](docs/screenshots/panel-empty.png) |
|
|
44
|
+
| Filter with no match | [`panel-filtered.png`](docs/screenshots/panel-filtered.png) |
|
|
45
|
+
| Inbox (awaiting confirmation) | [`panel-inbox.png`](docs/screenshots/panel-inbox.png) |
|
|
46
|
+
| Due reminder | [`panel-reminders.png`](docs/screenshots/panel-reminders.png) |
|
|
47
|
+
| Selection mode | [`panel-select.png`](docs/screenshots/panel-select.png) |
|
|
48
|
+
|
|
38
49
|
These are produced by `npm run screenshots` (which chains `npm run preview`): the real client
|
|
39
50
|
half is rendered to static HTML with no Host and no dependencies, then photographed at 1280×720
|
|
40
51
|
into `docs/screenshots/`. Playwright is not a dependency — the tool borrows the copy a DSH
|
package/README.zh.md
CHANGED
|
@@ -32,6 +32,16 @@ DSH 自带的 `todo_write` 属于**某一个 agent 会话**:整表替换、三
|
|
|
32
32
|
|
|
33
33
|

|
|
34
34
|
|
|
35
|
+
每个「只在特定情况下出现」的面板状态都有一张固定基线图,由同一套预览渲染、同一支工具拍摄,改样式时可以直接对比:
|
|
36
|
+
|
|
37
|
+
| 状态 | 图片 |
|
|
38
|
+
|---|---|
|
|
39
|
+
| 清单为空 | [`panel-empty.png`](docs/screenshots/panel-empty.png) |
|
|
40
|
+
| 筛选无结果 | [`panel-filtered.png`](docs/screenshots/panel-filtered.png) |
|
|
41
|
+
| 收件箱(待确认) | [`panel-inbox.png`](docs/screenshots/panel-inbox.png) |
|
|
42
|
+
| 到点提醒 | [`panel-reminders.png`](docs/screenshots/panel-reminders.png) |
|
|
43
|
+
| 批量选择 | [`panel-select.png`](docs/screenshots/panel-select.png) |
|
|
44
|
+
|
|
35
45
|
图都由 `npm run screenshots`(内部串起 `npm run preview`)生成:先把真实的客户端半区渲染成静态
|
|
36
46
|
HTML(不依赖宿主、零依赖),再以 1280×720 拍进 `docs/screenshots/`。Playwright 不是依赖——工具
|
|
37
47
|
借的是 DSH profile 里已经装好的那份,或 `DSH_PLAYWRIGHT` 指向的那份。
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/client.js
CHANGED
|
@@ -50,7 +50,7 @@ window.__ModuleLoader__.load({
|
|
|
50
50
|
* different mechanisms (restart vs. hot reload), so "which one am I looking
|
|
51
51
|
* at" needs an answer that the bundle itself carries.
|
|
52
52
|
*/
|
|
53
|
-
const UI_REV = '
|
|
53
|
+
const UI_REV = 'ui44'
|
|
54
54
|
/** Last language resolved for the shell; module-level so a fetch failure can be worded too. */
|
|
55
55
|
let activeLang = 'zh'
|
|
56
56
|
|
|
@@ -2253,7 +2253,8 @@ button.gt-chip[data-on="1"] { color: var(--dsw-alias-label-primary); border-colo
|
|
|
2253
2253
|
const [state, setState] = useState({ todos: [], counts: null, health: null, matched: 0, truncated: false })
|
|
2254
2254
|
const [loading, setLoading] = useState(true)
|
|
2255
2255
|
const [error, setError] = useState(null)
|
|
2256
|
-
|
|
2256
|
+
// The static preview asks for a starting view it cannot click its way into.
|
|
2257
|
+
const [filter, setFilter] = useState(typeof props.initialFilter === 'string' ? props.initialFilter : 'active')
|
|
2257
2258
|
const [query, setQuery] = useState('')
|
|
2258
2259
|
// Multi-select for batch assignment. A separate mode, because the round control on
|
|
2259
2260
|
// each row already means "done".
|
package/lib/index.js
CHANGED
|
@@ -36,7 +36,7 @@ import { createStore, resolveStorePath } from './store.js'
|
|
|
36
36
|
import { createTools } from './tools.js'
|
|
37
37
|
|
|
38
38
|
/** Must equal `package.json`'s version; `npm run check` enforces that. */
|
|
39
|
-
export const VERSION = '0.6.
|
|
39
|
+
export const VERSION = '0.6.8'
|
|
40
40
|
|
|
41
41
|
/** Plugin id. Also the Loader row id in `cordis.patch.yml`. */
|
|
42
42
|
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.6.
|
|
3
|
+
"version": "0.6.8",
|
|
4
4
|
"icon": "./docs/icon.svg",
|
|
5
5
|
"description": "Global, cross-session todos for DeepSeek Harness: one list owned by the human and the agent together, with creation time, attached documents and links, and one-click hand-off to an agent session. 全局待办:跨会话一份清单,记录加入时间,可挂文档与地址,可一键交给 Agent 继续干。",
|
|
6
6
|
"type": "module",
|