dsh-notify-me 1.1.3 → 1.1.5
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 +35 -0
- package/LICENSE +21 -21
- package/README.en.md +2 -1
- package/README.md +2 -1
- package/cordis.patch.yml +7 -7
- package/lib/client.js +999 -815
- package/lib/index.js +18 -18
- package/package.json +95 -94
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to **dsh-notify-me** are documented here.
|
|
4
4
|
|
|
5
|
+
## [未发布]
|
|
6
|
+
|
|
7
|
+
### 文档
|
|
8
|
+
- 新增 `docs/listing.md`:记录各插件目录/市场的收录方式(提交物、合并方式),以及本插件当前的收录状态;并记下 `awesome-dsh-plugin` 站点构建失败的排查入口(`build-site.yml` 最近一次运行 / issue #4731)。
|
|
9
|
+
- issue #1 / #2 报告的「等待审批 / 提问 / 方案确认不提醒」查清并修复(见 1.1.5)。
|
|
10
|
+
|
|
11
|
+
## [1.1.5] — 2026-09-14
|
|
12
|
+
|
|
13
|
+
### 修复
|
|
14
|
+
- **「模型在等你操作」这一路提醒在 DSH `0.1.2-alpha.2` 及以后的运行时上完全不触发**(现象:审批卡片出现、模型停下等待时,没有系统通知、没有提示音、标签页标题也不变;而「回复完成」提醒一直正常)。根因是两个待办数据源同时被上游搬走:
|
|
15
|
+
- 选中会话的快照 —— `SessionSnapshot.pending` 已不存在(0.1.2-alpha.2 起只剩 `queue / pendingSubmissions / running / …`);
|
|
16
|
+
- 会话列表行摘要 —— `SessionSummary.pendingInteraction` 已不存在(只剩 `running / completed`)。
|
|
17
|
+
|
|
18
|
+
待办交互改为由 `dsh-client-ui-approval` / `dsh-client-ui-user-questions` 经 `ctx.uiSession.registerPendingInteraction()` 发布到**独立 store** `ctx.uiSession.pendingInteractions`(`Map<sessionId, interaction>`,`interaction.kind` 为 `approval | question | plan-review`)。本版改为订阅该 store:新出现的交互弹一次提醒(`PendingApproval` 取 `toolName` / `reason`,`PendingQuestion` 取 `questions[0].question`),交互消失时释放标签页标记,挂载时已存在的等待也提醒一次。
|
|
19
|
+
- **为什么不把 `uiSession` 写进 `inject`**:客户端条目的 `inject` 是**硬门控**——服务不存在时条目会永远停在 `pending`,而 web 启动断言会因「有条目未激活」直接抛错(这正是 1.1.3/1.1.4 两次踩过的坑)。`uiSession` 只存在于 `0.1.2-alpha.2` 及以后,写进 `inject` 会让本插件在 `0.1.1-rc.2` 上彻底失效。因此改为**惰性查找**:拿得到就订阅交互 store,拿不到就静默走旧的快照路径,两代宿主都保留完整功能。
|
|
20
|
+
- 保留 `@deepseek-ai/dsh-client-ui-session` 在 `dsh.client.inject` 中(它是客户端加载图里的 bundle 条目,与服务门控无关);实测该条目在加载图顺序上位于 `@deepseek-ai/dsh-client-ui-session` 之后(54 个条目中第 44 位 vs 第 10 位),且官方 `dsh-client-ui-approval` / `dsh-client-ui-user-questions` / `dsh-client-ui-open-in-app` / `dsh-client-ui-layout` 等同样以 `"uiSession"` 为服务依赖。
|
|
21
|
+
|
|
22
|
+
### 变更
|
|
23
|
+
- 两条来源同时可用时按交互 key 去重:同一次等待只提醒一次、也只有一个标签页标记;标题标记的归属固定给交互 store(可用时),避免两路各记一个标记。
|
|
24
|
+
- 测试:`smoke/smoke-test.cjs` 拆成**两代宿主**各跑一遍——旧宿主(无 `uiSession`,快照带 `pending`)与新宿主(`uiSession.pendingInteractions`),新增「重复通知不重复提醒」「挂载前已存在的等待仍提醒一次」「多会话并发等待各提醒一次并逐个释放标记」「两路去重」「主开关关闭时交互通道同样静音」等回归用例。
|
|
25
|
+
|
|
26
|
+
## [1.1.4] — 2026-09-13
|
|
27
|
+
|
|
28
|
+
### 修复
|
|
29
|
+
- **插件在 DSH `0.1.2-rc.1` 及以后的运行时上一直没有真正激活**(表现为:桌面端/网页端都不弹提醒、设置里也没有「通知提醒」分区,而启动清单里又能看到条目)。根因是 `dsh.client.inject` 里残留了 `@deepseek-ai/dsh-client-runtime`:该包从 `0.1.2-rc.1` 起已从官方客户端依赖图移除(`sessions` 服务改由 `@deepseek-ai/dsh-client-ui-session` 提供),而客户端条目的 `inject` 目标是**硬门控**——解析不到就停在 `pending (waiting for services: …)`,`apply` 永不执行。1.1.3 为兼容 0.1.0/0.1.1 线而保留该条目,正是这一处让插件在 0.1.2-rc.1 起的版本上全程哑火。
|
|
30
|
+
- 相应地,`dsh.client.inject` 现在只保留 `@deepseek-ai/dsh-client-ui-session` / `@deepseek-ai/dsh-client-locale` / `@deepseek-ai/dsh-client-ui-conversation` 三个官方包。
|
|
31
|
+
|
|
32
|
+
### 变更
|
|
33
|
+
- 兼容声明补到实测激活的 `0.1.5-rc.1` / `0.1.5-rc.2`(DSH Desktop 2.0.9 内置 0.1.5-rc.2 线);`peerDependencies` 范围同步放宽到 `^0.1.5-rc.1`。
|
|
34
|
+
- 兼容性验证口径改为**「插件真的激活」**:在独立 `DSH_HOME` + 独立 profile 里启动目标版本,检查设置页出现本插件注册的「通知提醒」分区,而不只是看启动清单里有没有这个条目。
|
|
35
|
+
|
|
36
|
+
### 更正
|
|
37
|
+
- 1.1.3 的验证记录不成立:当时只确认了「条目进入 `__DSH_BOOT__`、`/plugins/??dsh-notify-me/client.js` 返回 200」,**没有验证插件是否被激活**,因此 `0.1.2-rc.1: compatible` 的声明与事实不符(该版本上插件同样被同一处 inject 门控)。同版条目里「原条目保留,供 0.1.0/0.1.1 线使用」的判断作废——保留即致命。
|
|
38
|
+
|
|
5
39
|
## [1.1.3] — 2026-09-09
|
|
6
40
|
|
|
7
41
|
### 新增
|
|
@@ -62,6 +96,7 @@ All notable changes to **dsh-notify-me** are documented here.
|
|
|
62
96
|
<!-- versions -->
|
|
63
97
|
> 1.0.0 与 1.0.1 早于本仓库的 GitHub 标签历史(tag 从 `v1.1.0` 起,且 npm 上只有 1.0.0 / 1.1.0 / 1.1.1),故不附链接。
|
|
64
98
|
|
|
99
|
+
[1.1.4]: https://github.com/chromoany/dsh-notify-me/compare/v1.1.3...v1.1.4
|
|
65
100
|
[1.1.3]: https://github.com/chromoany/dsh-notify-me/compare/v1.1.2...v1.1.3
|
|
66
101
|
[1.1.2]: https://github.com/chromoany/dsh-notify-me/compare/v1.1.1...v1.1.2
|
|
67
102
|
[1.1.1]: https://github.com/chromoany/dsh-notify-me/compare/v1.1.0...v1.1.1
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 chromoany
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 chromoany
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.en.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|

|
|
8
8
|

|
|
9
9
|

|
|
10
|
+
[](https://awesome-dsh-plugin.com)
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
@@ -73,7 +74,7 @@ dsh plugin --profile web add dsh-notify-me
|
|
|
73
74
|
|
|
74
75
|
Restart `dsh web`, then hard-refresh the page (Ctrl+Shift+R).
|
|
75
76
|
|
|
76
|
-
**Compatibility** — verified on `0.1.
|
|
77
|
+
**Compatibility** — verified to actually activate on `0.1.2-rc.1` and `0.1.5-rc.2` (each booted in its own profile: the Settings → Notifications section registers, i.e. the plugin's `apply` really runs), and previously on `0.1.1-rc.2`. Per-release declarations live in `package.json` under `dsh.compatibility.dshReleases`. If a plugin's client entry lists a package that a newer runtime no longer ships in `dsh.client.inject`, the entry parks at `pending (waiting for services: …)` and never runs — which is what broke 1.1.3 on `0.1.2-rc.1` and later.
|
|
77
78
|
|
|
78
79
|
**Verify** — open the DevTools console and run:
|
|
79
80
|
|
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|

|
|
8
8
|

|
|
9
9
|

|
|
10
|
+
[](https://awesome-dsh-plugin.com)
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
@@ -73,7 +74,7 @@ dsh plugin --profile web add dsh-notify-me
|
|
|
73
74
|
|
|
74
75
|
重启 `dsh web` 后硬刷新页面(Ctrl+Shift+R)。
|
|
75
76
|
|
|
76
|
-
**兼容性** —
|
|
77
|
+
**兼容性** — 实测**真正激活**(各自独立 profile 启动:设置里出现「通知提醒」分区,即插件的 `apply` 确实执行)于 `0.1.2-rc.1` 与 `0.1.5-rc.2`;更早的 `0.1.1-rc.2` 亦验证过。逐版本声明见 `package.json` 的 `dsh.compatibility.dshReleases`。注意一个坑:若 `dsh.client.inject` 里列了新版运行时已不再提供的包,客户端条目会停在 `pending (waiting for services: …)` 而永不执行——1.1.3 在 `0.1.2-rc.1` 及以后正是这样失效的。
|
|
77
78
|
|
|
78
79
|
**验证** — F12 控制台执行:
|
|
79
80
|
|
package/cordis.patch.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# dsh-notify-me profile patch layer — insert one loader entry for the
|
|
2
|
-
# plugin package. The entry is a normal cordis loader entry (id + package
|
|
3
|
-
# name); the browser half is picked up by dsh-client-modules through the
|
|
4
|
-
# package's dsh.client declaration, exactly like the shipped ui-* packages.
|
|
5
|
-
- insert:
|
|
6
|
-
- id: notify-me
|
|
7
|
-
name: 'dsh-notify-me'
|
|
1
|
+
# dsh-notify-me profile patch layer — insert one loader entry for the
|
|
2
|
+
# plugin package. The entry is a normal cordis loader entry (id + package
|
|
3
|
+
# name); the browser half is picked up by dsh-client-modules through the
|
|
4
|
+
# package's dsh.client declaration, exactly like the shipped ui-* packages.
|
|
5
|
+
- insert:
|
|
6
|
+
- id: notify-me
|
|
7
|
+
name: 'dsh-notify-me'
|