dsh-better-notice 5.1.8 → 5.1.9
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 +7 -7
- package/README.zh.md +7 -7
- package/client.js +1 -1
- package/icon.svg +10 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +9 -4
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ dsh plugin --profile <profile> add dsh-better-notice
|
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
- Package: `dsh-better-notice` (module id is the same string)
|
|
16
|
-
- Version: `5.1.
|
|
16
|
+
- Version: `5.1.9` (see [CHANGELOG.md](CHANGELOG.md))
|
|
17
17
|
- License: MIT
|
|
18
18
|
- Settings live in **account menu → Settings → “Better Notice”** (a `settings.section` entry, id `hotlist`, order `30`)
|
|
19
19
|
|
|
@@ -125,7 +125,7 @@ dsh plugin --profile <profile> add dsh-better-notice
|
|
|
125
125
|
dsh --profile <profile>
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
- **Published on npm:** [dsh-better-notice](https://www.npmjs.com/package/dsh-better-notice) (current `5.1.
|
|
128
|
+
- **Published on npm:** [dsh-better-notice](https://www.npmjs.com/package/dsh-better-notice) (current `5.1.9`). If npm is unreachable, the same tarball is attached to the [latest release](https://github.com/MeruSu/better-notice/releases) — `dsh plugin --profile <profile> add <absolute path>/dsh-better-notice-5.1.9.tgz` gives the same result and the same restart.
|
|
129
129
|
- **Use an absolute path, forward slashes** when you install from a local directory instead of the registry: `dsh plugin` forwards the argument to pnpm *inside the profile directory*, so a relative path points into the profile.
|
|
130
130
|
- Installing from a directory uses `link:` — code edits need no reinstall. `client.js` changes apply on page refresh; `index.js` / `cordis.patch.yml` / `package.json` changes need a GUI restart.
|
|
131
131
|
- Install from a git checkout when you also want the TTS helper (see [Sounds](#sounds-and-the-bundled-tts-tool)). The npm package's `files` field only ships `index.js`, `client.js`, `cordis.patch.yml` and `assets`, so `tools/` is **not** in it.
|
|
@@ -150,7 +150,7 @@ The host route is created during process start-up, so a page refresh is not enou
|
|
|
150
150
|
|
|
151
151
|
In the GUI's browser console:
|
|
152
152
|
|
|
153
|
-
1. `window.__HOTLIST_VERSION__` → the version string, e.g. `'5.1.
|
|
153
|
+
1. `window.__HOTLIST_VERSION__` → the version string, e.g. `'5.1.9'`.
|
|
154
154
|
2. `Object.keys(window.__HOTLIST__)` → `['version','settings','assets']`.
|
|
155
155
|
3. Settings → the left nav has **“Better Notice”**, and the page shows a global block plus **6** collapsible category cards.
|
|
156
156
|
4. Session rows in the sidebar now start with a status glyph.
|
|
@@ -500,7 +500,7 @@ s.lastError() // last storage write error (string or null)
|
|
|
500
500
|
|
|
501
501
|
// settings + the three asset pools
|
|
502
502
|
const api = window.__HOTLIST__;
|
|
503
|
-
api.version // '5.1.
|
|
503
|
+
api.version // '5.1.9'
|
|
504
504
|
api.settings.get() / .set(patch) / .reset() / .subscribe(fn)
|
|
505
505
|
api.settings.backups() // → [{ at, version }]
|
|
506
506
|
api.settings.restore(index) // → { ok, at? }
|
|
@@ -684,7 +684,7 @@ The same ground as the pitfall list at the bottom of this file, in checklist for
|
|
|
684
684
|
```powershell
|
|
685
685
|
node --check client.js # syntax. client.js lives inside a module loader, so a syntax error only explodes when the real page boots
|
|
686
686
|
node --check index.js
|
|
687
|
-
node test/classify.test.mjs # expect a final line: PASS —
|
|
687
|
+
node test/classify.test.mjs # expect a final line: PASS — 107 groups
|
|
688
688
|
```
|
|
689
689
|
|
|
690
690
|
Plus a **static gate before saving**, available on the maintainer's machine only (not shipped with the repo):
|
|
@@ -700,7 +700,7 @@ cd <the directory you cloned into>
|
|
|
700
700
|
|
|
701
701
|
node --check client.js # client.js lives inside a module loader, so a syntax error only explodes when the real page boots
|
|
702
702
|
node --check index.js
|
|
703
|
-
node test/classify.test.mjs # expect a final line: PASS —
|
|
703
|
+
node test/classify.test.mjs # expect a final line: PASS — 107 groups
|
|
704
704
|
```
|
|
705
705
|
|
|
706
706
|
The unit tests read the real `client.js` source, wrap it in a stub `window.__ModuleLoader__` and run it: the fake browser is hand-written (`window` / `document`, no jsdom, `React` is a stub too), the code under test is the real source. They also include a few static scans: undeclared constants, CSS selector legality, and “shortcut labels must be thunks”.
|
|
@@ -715,7 +715,7 @@ index.js host side: registers the /hotlist-sound/ audio route
|
|
|
715
715
|
cordis.patch.yml bundle insert line
|
|
716
716
|
assets/ 3 categories with 4 raster tiers of popout art + svg for all six
|
|
717
717
|
assets/sounds/ bundled cues (attention.wav / complete.wav)
|
|
718
|
-
test/classify.test.mjs unit tests (
|
|
718
|
+
test/classify.test.mjs unit tests (107 groups)
|
|
719
719
|
docs/ architecture, testing, extending
|
|
720
720
|
tools/meru-tts/ TTS helper (generates cues; not part of the running plugin)
|
|
721
721
|
```
|
package/README.zh.md
CHANGED
|
@@ -13,7 +13,7 @@ dsh plugin --profile <profile> add dsh-better-notice
|
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
- 包名:`dsh-better-notice`(模块 id 与包名相同)
|
|
16
|
-
- 版本:`5.1.
|
|
16
|
+
- 版本:`5.1.9`(见 [CHANGELOG.md](CHANGELOG.md))
|
|
17
17
|
- 许可:MIT
|
|
18
18
|
- 设置位置:**账号菜单 →「设置」→ 左导航「热表」**(`settings.section`,id `hotlist`,order `30`)
|
|
19
19
|
|
|
@@ -125,7 +125,7 @@ dsh plugin --profile <profile> add dsh-better-notice
|
|
|
125
125
|
dsh --profile <profile>
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
- **已发布到 npm:**[dsh-better-notice](https://www.npmjs.com/package/dsh-better-notice)(当前 `5.1.
|
|
128
|
+
- **已发布到 npm:**[dsh-better-notice](https://www.npmjs.com/package/dsh-better-notice)(当前 `5.1.9`)。如果 npm 拉不动,同样的 tarball 也附在[最新 Release](https://github.com/MeruSu/better-notice/releases) 里——`dsh plugin --profile <profile> add <绝对路径>/dsh-better-notice-5.1.9.tgz`,效果一样,同样要重启。
|
|
129
129
|
- 从**本地目录**安装时要用**绝对路径、正斜杠**:`dsh plugin` 是把参数在 profile 目录里转交给 pnpm 的,相对路径会指到 profile 里去。
|
|
130
130
|
- 装目录用的是 `link:`,之后改代码不用重装:`client.js` 改完刷新页面即生效;`index.js` / `cordis.patch.yml` / `package.json` 改完要重启 GUI。
|
|
131
131
|
- 想连 TTS 小工具一起用就装 git 仓库(见[提示音](#提示音与仓库自带的-tts-工具))。npm 包的 `files` 只有 `index.js`、`client.js`、`cordis.patch.yml`、`assets`,`tools/` **不在包里**。
|
|
@@ -150,7 +150,7 @@ host 路由在进程启动时创建,只刷新页面不够。
|
|
|
150
150
|
|
|
151
151
|
在 GUI 的浏览器控制台里依次确认:
|
|
152
152
|
|
|
153
|
-
1. `window.__HOTLIST_VERSION__` → 版本号,例如 `'5.1.
|
|
153
|
+
1. `window.__HOTLIST_VERSION__` → 版本号,例如 `'5.1.9'`;
|
|
154
154
|
2. `Object.keys(window.__HOTLIST__)` → `['version','settings','assets']`;
|
|
155
155
|
3. 打开设置,左导航有**「热表」**,页面里是一块全局区 + **6** 张可折叠的类别卡;
|
|
156
156
|
4. 侧栏的会话行前面出现了状态图标;
|
|
@@ -500,7 +500,7 @@ s.lastError() // 最近一次写盘错误(字符串或 null)
|
|
|
500
500
|
|
|
501
501
|
// 设置 + 三个素材池
|
|
502
502
|
const api = window.__HOTLIST__;
|
|
503
|
-
api.version // '5.1.
|
|
503
|
+
api.version // '5.1.9'
|
|
504
504
|
api.settings.get() / .set(patch) / .reset() / .subscribe(fn)
|
|
505
505
|
api.settings.backups() // → [{ at, version }]
|
|
506
506
|
api.settings.restore(index) // → { ok, at? }
|
|
@@ -684,7 +684,7 @@ window.__HOTLIST_SETTINGS__.set({
|
|
|
684
684
|
```powershell
|
|
685
685
|
node --check client.js # 语法。client.js 包在模块加载器里,语法错只在真机 boot 时炸
|
|
686
686
|
node --check index.js
|
|
687
|
-
node test/classify.test.mjs # 期望最后一行:PASS —
|
|
687
|
+
node test/classify.test.mjs # 期望最后一行:PASS — 107 groups
|
|
688
688
|
```
|
|
689
689
|
|
|
690
690
|
外加一道**保存前的静态闸门**(只在维护者机器上有,不随仓库分发):
|
|
@@ -700,7 +700,7 @@ cd <你 clone 下来的那个目录>
|
|
|
700
700
|
|
|
701
701
|
node --check client.js # client.js 包在模块加载器里,语法错只在真机 boot 时炸
|
|
702
702
|
node --check index.js
|
|
703
|
-
node test/classify.test.mjs # 期望最后一行:PASS —
|
|
703
|
+
node test/classify.test.mjs # 期望最后一行:PASS — 107 groups
|
|
704
704
|
```
|
|
705
705
|
|
|
706
706
|
单测把真实的 `client.js` 源文件读进来,塞进 `window.__ModuleLoader__` 的桩里执行:假的是浏览器(手写的极简 `window` / `document`,不引 jsdom,`React` 也是桩),跑的是真源码。里面还带几道静态扫描:引用未声明的常量、注入样式选择器合法性、快捷键 label 必须是 thunk。
|
|
@@ -715,7 +715,7 @@ index.js 宿主侧:注册 /hotlist-sound/ 音频路由
|
|
|
715
715
|
cordis.patch.yml bundle 插入行
|
|
716
716
|
assets/ 3 类各 4 档弹出图素材 + 六类各一份 svg
|
|
717
717
|
assets/sounds/ 内置音效(attention.wav / complete.wav)
|
|
718
|
-
test/classify.test.mjs 单测(
|
|
718
|
+
test/classify.test.mjs 单测(107 组)
|
|
719
719
|
docs/ 架构、测试、扩展三份维护者文档
|
|
720
720
|
tools/meru-tts/ TTS 小工具(生成提示音用,不参与插件运行)
|
|
721
721
|
```
|
package/client.js
CHANGED
|
@@ -79,7 +79,7 @@ window.__ModuleLoader__.load({
|
|
|
79
79
|
|
|
80
80
|
const SLOT = 'conversation.view';
|
|
81
81
|
const NS = 'hotlist';
|
|
82
|
-
const VERSION = '5.1.
|
|
82
|
+
const VERSION = '5.1.9';
|
|
83
83
|
/** Seat view ids are namespaced so a persisted leftover can be recognised and repaired. */
|
|
84
84
|
const SEAT_PREFIX = 'hotlist-seat-';
|
|
85
85
|
/** Every prefix ever written for a seat id; a persisted one is repaired back to `chat` on load. */
|
package/icon.svg
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none">
|
|
2
|
+
<rect x="3.5" y="7" width="25" height="18" rx="4" stroke="#5B6B7C" stroke-width="2"/>
|
|
3
|
+
<path d="M3.5 12.5h25" stroke="#8FA3B5" stroke-width="2"/>
|
|
4
|
+
<circle cx="8" cy="9.75" r="1.15" fill="#B7C4CF"/>
|
|
5
|
+
<rect x="7" y="15.5" width="7" height="2.4" rx="1.2" fill="#5B6B7C"/>
|
|
6
|
+
<rect x="16.5" y="15.5" width="7" height="2.4" rx="1.2" fill="#8FA3B5"/>
|
|
7
|
+
<rect x="7" y="20" width="4.5" height="2.4" rx="1.2" fill="#C3CED8"/>
|
|
8
|
+
<path d="M22.5 21.6c0-1.4 1.1-2.4 2.4-2.4" stroke="#E0A03A" stroke-width="2" stroke-linecap="round"/>
|
|
9
|
+
<circle cx="24.9" cy="21.6" r="1.5" fill="#E0A03A"/>
|
|
10
|
+
</svg>
|
package/locale/en.json
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"title": "Better Notice",
|
|
4
|
+
"description": "Turn session state into something you can see and hear: a hot-session table page, top-strip chips, sidebar state glyphs, six per-state sounds and popout artwork, with an export API for your own tooling."
|
|
5
|
+
}
|
|
6
|
+
}
|
package/locale/zh.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-better-notice",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.9",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Better Notice — unified visual and audible session notices for DeepSeek Harness: hot-session tab seats, sidebar state glyphs, per-state sounds and popout artwork",
|
|
6
6
|
"type": "module",
|
|
@@ -9,13 +9,17 @@
|
|
|
9
9
|
".": "./index.js",
|
|
10
10
|
"./client": "./client.js",
|
|
11
11
|
"./assets/*": "./assets/*",
|
|
12
|
-
"./package.json": "./package.json"
|
|
12
|
+
"./package.json": "./package.json",
|
|
13
|
+
"./locale/*.json": "./locale/*.json",
|
|
14
|
+
"./icon": "./icon.svg"
|
|
13
15
|
},
|
|
14
16
|
"files": [
|
|
15
17
|
"index.js",
|
|
16
18
|
"client.js",
|
|
17
19
|
"cordis.patch.yml",
|
|
18
|
-
"assets"
|
|
20
|
+
"assets",
|
|
21
|
+
"locale",
|
|
22
|
+
"icon.svg"
|
|
19
23
|
],
|
|
20
24
|
"keywords": [
|
|
21
25
|
"dsh",
|
|
@@ -39,5 +43,6 @@
|
|
|
39
43
|
"@deepseek-ai/dsh-client-ui-conversation"
|
|
40
44
|
]
|
|
41
45
|
}
|
|
42
|
-
}
|
|
46
|
+
},
|
|
47
|
+
"icon": "./icon.svg"
|
|
43
48
|
}
|