dsh-select-quote 0.3.1 → 0.3.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.
Files changed (3) hide show
  1. package/README.md +23 -9
  2. package/lib/client.js +600 -358
  3. package/package.json +5 -3
package/README.md CHANGED
@@ -30,7 +30,7 @@ dsh --profile web
30
30
 
31
31
  ```bash
32
32
  git clone https://github.com/latte03/dsh-select-quote && cd dsh-select-quote
33
- npm install && npm run build
33
+ pnpm install && pnpm run build
34
34
  dsh web --patch "$PWD/dev.patch.yml"
35
35
  ```
36
36
 
@@ -51,14 +51,14 @@ dsh web --patch "$PWD/dev.patch.yml"
51
51
 
52
52
  ## 已知限制
53
53
 
54
- - **待发批注只在内存里**:刷新页面或切换会话后会丢,卡片不持久化;已发送消息里的批注不受影响。
54
+ - **待发批注按会话持久化**:刷新页面、重启客户端后回到原会话,未发送的批注会原样回来(和草稿同一套机制);保留最近 20 个会话、7 天。发送即清除,切换会话跟着切,hero 里换工作区等于换会话,批注不跟着搬。
55
55
  - **占用了用户气泡的渲染**:本插件以最低优先级替换内置 `user` 节点。其它插件若替换同一个键(例如 `dsh-easyrewrite` 用 `-1`),会被本插件屏蔽。
56
56
  - **卡片宽度有限**:输入框内每条摘要最宽约为输入框的 1/4,超长标题走省略号。
57
57
  - **划词只在对话区生效**:不介入编辑器、终端等面板。
58
58
 
59
59
  ## 常见问题
60
60
 
61
- **升级 dsh 之后功能不对?** 先 `npm run check`;产物没问题就对照 [`docs/internals.md`](docs/internals.md) 的「依赖的产品内部约定」逐条复核,那里列了所有产品内部名。
61
+ **升级 dsh 之后功能不对?** 先 `pnpm run check`;产物没问题就对照 [`docs/internals.md`](docs/internals.md) 的「依赖的产品内部约定」逐条复核,那里列了所有产品内部名。
62
62
 
63
63
  **划词没有工具条?** 确认选区在对话区而不是编辑器里;刷新页面(样式与观察者是幂等注入的);宿主 boot 日志里应出现 `dsh-select-quote`。
64
64
 
@@ -73,22 +73,36 @@ dsh web --patch "$PWD/dev.patch.yml"
73
73
  ## 开发
74
74
 
75
75
  ```bash
76
- npm install
77
- npm run check # typecheck + build + verify
78
- npm run watch # 增量重建
76
+ pnpm install
77
+ pnpm run check # typecheck + build + verify
78
+ pnpm run watch # 增量重建
79
79
  ```
80
80
 
81
- `npm run verify` 无头执行产物,断言 8 项贡献都注册上,并检查三份词典的键与 `{placeholder}` 在每种语言里都齐备(复数消息必须有 `.other` 兜底)。
81
+ 依赖用 pnpm 管理(锁文件 `pnpm-lock.yaml`);构建产物 `lib/` 随源码一起提交,运行时直接读它。
82
+
83
+ `pnpm run verify` 无头执行产物,断言 8 项贡献都注册上,并检查三份词典的键与 `{placeholder}` 在每种语言里都齐备(复数消息必须有 `.other` 兜底)。
84
+
85
+ ### 热更新到桌面客户端
86
+
87
+ 宿主每半秒比较一次各插件 client 产物的文件状态,一旦变化就通过 `/plugins/events` 让页面只重载这个模块,所以运行中的客户端不用重启:
88
+
89
+ ```bash
90
+ pnpm run sync:desktop # 把 lib/ 推给已安装的副本
91
+ pnpm run sync:desktop -- --watch # 常驻:lib/ 一变就推
92
+ pnpm dev:desktop # 增量重建 + 推送,一条命令
93
+ ```
94
+
95
+ 目标路径按 `$DSH_HOME`(默认 `~/.dsh`)与 profile 名推导,profile 用 `--profile <name>` 或 `$DSH_PROFILE` 指定,默认 `desktop`。字节没变就不写,避免空重载。模块级重载会重置内存状态,但未发送的批注已按会话持久化,重新挂载后会自己回来。
82
96
 
83
97
  发布:先把源码与产物 `lib/` 一起提交,再跑
84
98
 
85
99
  ```bash
86
- npm run release # check → 追加 CHANGELOG.md → 提升版本号并打 tag
100
+ pnpm run release # check → 追加 CHANGELOG.md → 提升版本号并打 tag
87
101
  ```
88
102
 
89
103
  ## 贡献
90
104
 
91
- fork 后开分支,提交前跑 `npm run check`。一个 PR 只讲一件事,功能与文档分开,方便追溯。PR 里写清复现方式(环境、dsh 版本、操作步骤)。
105
+ fork 后开分支,提交前跑 `pnpm run check`。一个 PR 只讲一件事,功能与文档分开,方便追溯。PR 里写清复现方式(环境、dsh 版本、操作步骤)。
92
106
 
93
107
  ## 致谢
94
108