koishi-plugin-market-next 3.3.4 → 3.4.2

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
@@ -2,6 +2,32 @@
2
2
 
3
3
  本文件记录 `koishi-plugin-market-next` 已发布到 npm 的版本差异。
4
4
 
5
+ ## 3.4.2
6
+
7
+ - Debug 性能面板拆分首屏加载与后台刷新,避免缓存耗时和网络刷新耗时混在一起。
8
+ - 市场索引自动路由增加内存评分:成功源加权、失败源降权,并结合压缩方式和平均耗时排序。
9
+ - Debug 面板显示候选源评分、首屏来源、后台刷新来源、压缩方式和传输大小。
10
+
11
+ ## 3.4.1
12
+
13
+ - 新增独立 CI workflow,在普通 push 和 pull request 时验证安装、构建、打包和高危依赖审计。
14
+ - npm 发布 workflow 增加高危依赖审计门禁,继续使用 Trusted Publishing。
15
+ - 升级 `@langchain/core` 到 1.x,移除 `langsmith` 旧版本带来的高危 audit 项。
16
+ - ChatLuna Tool 依赖链随 LangChain 1.x 要求 Node.js 20 或更高版本。
17
+ - 市场索引请求显式声明 `br,gzip,deflate` 压缩能力,debug 面板增加压缩方式、传输大小和压缩比例。
18
+ - 市场索引自动路由会提高上次成功源的优先级,并对后续候选源进行短延迟错峰请求。
19
+ - README 补充 CI、tag 发布、手动发布和高危 audit 策略说明。
20
+
21
+ ## 3.4.0
22
+
23
+ - 市场索引缓存增加 ETag、Last-Modified 和内容 hash 元信息。
24
+ - 自动路由竞速在命中最快源后会取消其他候选源请求,减少弱网下的额外带宽占用。
25
+ - 后台刷新命中 HTTP 304 或相同 hash 时复用已有索引,跳过重复 JSON 解析和缓存写盘。
26
+ - `search.logLevel: debug` 时,市场页显示 debug 性能面板。
27
+ - debug 面板展示后端下载、缓存读取、JSON parse、索引映射、payload 构建,以及前端排序、筛选和虚拟滚动耗时。
28
+ - 详细性能、路由和缓存回退日志仅在 debug 级别输出,默认日志不增加噪音。
29
+ - 后台刷新缓存时,刷新菜单图标会显示旋转状态,避免看起来没有反馈。
30
+
5
31
  ## 3.3.4
6
32
 
7
33
  - 依赖版本获取新增 loading/error 状态,避免请求中误显示“版本获取失败”。
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # koishi-plugin-market-next
2
2
 
3
- ![Version](https://img.shields.io/badge/version-3.3.4-blue)
3
+ ![Version](https://img.shields.io/badge/version-3.4.2-blue)
4
4
  ![Koishi](https://img.shields.io/badge/Koishi-%5E4.18.11-6f42c1)
5
5
  ![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178c6)
6
6
  ![License](https://img.shields.io/badge/license-AGPL--3.0-orange)
@@ -19,6 +19,7 @@
19
19
  - [和原版 market 的区别](#和原版-market-的区别)
20
20
  - [常见问题](#常见问题)
21
21
  - [开发](#开发)
22
+ - [自动发布](#自动发布)
22
23
  - [发布包内容](#发布包内容)
23
24
  - [版本更新](#版本更新)
24
25
  - [许可证](#许可证)
@@ -36,6 +37,9 @@
36
37
  - **列表浏览更自然**:使用无限滚动加载更多插件,减少分页带来的空页和跳转成本。
37
38
  - **筛选行为更清楚**:分类可以再次点击取消,关键词或筛选变化后会重置列表位置。
38
39
  - **失败原因更可读**:市场加载失败时尽量展示实际 registry 和错误原因,而不是只给一个笼统的 fetch 失败。
40
+ - **缓存更有判断力**:缓存优先显示后,后台刷新会利用 ETag、Last-Modified 和内容 hash 判断索引是否变化,未变化时跳过重复 JSON 解析和写盘。
41
+ - **弱网少做无用功**:自动路由会提高上次成功源的优先级,并在命中可用源后取消其他候选源请求,减少额外带宽占用。
42
+ - **慢在哪里能看见**:`search.logLevel: debug` 时,市场页会拆分首屏与后台刷新,并显示下载、压缩方式、传输大小、路由评分、缓存读取、JSON parse、索引映射、前端筛选和虚拟滚动耗时。
39
43
  - **安装后自动尝试补配置**:安装完成后等待 config 插件识别新包,再自动调用配置补齐逻辑,减少手动去依赖页点“配置”的次数。
40
44
  - **AI 可以查市场**:可选注册 ChatLuna 只读工具,让 AI 按关键词、分类、状态、创建/更新时间、评分、下载量等条件查询插件。
41
45
 
@@ -49,6 +53,7 @@
49
53
  - 查看版本、评分、月下载量、创建时间、更新时间、维护者、npm 链接和 homepage / repository 链接。
50
54
  - 检查依赖版本和 peer dependency 兼容结果。
51
55
  - 支持批量模式、移除配置确认和 Gravatar 镜像配置。
56
+ - 支持缓存优先显示、后台校验和 debug 性能面板。
52
57
  - 安装后自动尝试创建插件配置节点。
53
58
  - 可选启用 ChatLuna 插件市场查询工具。
54
59
 
@@ -156,6 +161,8 @@ plugins:
156
161
  logLevel: debug
157
162
  ```
158
163
 
164
+ `debug` 级别会额外在市场页显示性能面板,并在后端日志输出分段耗时;面板中的“解压大小”是 JSON 文本大小,“传输大小”来自响应头 `Content-Length`,压缩流或分块响应没有该响应头时会显示为空。默认 `warn` 不会输出这些诊断日志。
165
+
159
166
  市场搜索输入已做 120ms 防抖,并设置 500ms 最大等待上限;连续输入时不会每个字符都触发完整筛选,但长时间连续输入也会定期同步结果。
160
167
 
161
168
  ## ChatLuna 市场查询 Tool
@@ -168,6 +175,8 @@ koishi_plugin_market_search
168
175
 
169
176
  它只读取市场索引,不会安装插件、卸载插件、写配置或修改 `package.json`。
170
177
 
178
+ 为移除旧版 LangSmith 带来的高危 audit 项,`3.4.1` 起 ChatLuna Tool 使用 `@langchain/core` 1.x;该依赖要求 Node.js 20 或更高版本。较新的 Koishi Desktop / Node 22 环境可以直接使用。
179
+
171
180
  支持的输入:
172
181
 
173
182
  | 参数 | 说明 |
@@ -217,6 +226,8 @@ koishi_plugin_market_search
217
226
  | 分类筛选 | 再次点击可能无法取消 | 可切换、可取消 |
218
227
  | 搜索/筛选变化 | 可能停在空页 | 自动回到列表起点 |
219
228
  | 首屏加载 | 可能被依赖刷新拖慢 | 市场索引和依赖刷新解耦 |
229
+ | 缓存校验 | 不明显 | 缓存优先显示,后台校验未变化时跳过重复解析 |
230
+ | 性能诊断 | 主要看日志猜测 | debug 模式显示后端和前端分段耗时 |
220
231
  | 安装后配置 | 常需要去依赖页手动点配置 | 自动尝试补配置节点 |
221
232
  | AI 查询 | 不支持 | 可选 ChatLuna Tool |
222
233
 
@@ -250,7 +261,11 @@ plugins:
250
261
 
251
262
  ### 刷新 WebUI 后市场才显示
252
263
 
253
- 这通常表示后端已经拿到市场索引,但第一次 Console 连接时数据没有及时同步到前端,或者依赖刷新、前端过滤占用了较长时间。`3.3.4` 会优先返回缓存或市场索引,并在当前源失败时尝试备用源;手动刷新时也会重新读取本地 `package.json` 并清理旧的依赖版本请求状态。
264
+ 这通常表示后端已经拿到市场索引,但第一次 Console 连接时数据没有及时同步到前端,或者依赖刷新、前端过滤占用了较长时间。`3.4.0` 会优先返回缓存或市场索引,并在当前源失败时尝试备用源;手动刷新时也会重新读取本地 `package.json` 并清理旧的依赖版本请求状态。
265
+
266
+ ### 缓存真的有用吗
267
+
268
+ 有用,但它解决的是两类问题:打开市场时先显示旧索引,避免白屏;后台校验发现索引没变时,跳过重复 JSON 解析和缓存写盘。它不能解决首次安装后的冷启动下载,也不能让一个特别慢的源变快。冷启动仍然依赖源质量、网络和索引体积。
254
269
 
255
270
  ### 网络正常但显示 failed to fetch
256
271
 
@@ -306,6 +321,31 @@ dist/ Console 前端构建产物
306
321
  lib/ 后端与类型构建产物
307
322
  ```
308
323
 
324
+ ## 自动发布
325
+
326
+ 仓库内置两个 GitHub Actions workflows:
327
+
328
+ - `.github/workflows/ci.yml`:普通 push 和 pull request 运行 `npm ci`、`npm audit --audit-level=high`、`npm run build` 和 `npm pack --dry-run`,只验证,不发布。
329
+ - `.github/workflows/publish.yml`:`v*` tag 或手动触发时运行同样的校验,然后通过 npm Trusted Publishing 发布到 npm。
330
+
331
+ 首次使用前,需要在 npm 包设置里添加 Trusted Publisher:
332
+
333
+ - Package:`koishi-plugin-market-next`
334
+ - Repository:`qinfeng365/koishi-plugin-market-next`
335
+ - Workflow:`publish.yml`
336
+ - Environment:留空
337
+
338
+ 发布新版本时先提交 `package.json`、`README.md`、`CHANGELOG.md` 等版本变更,再推送匹配版本号的 tag:
339
+
340
+ ```bash
341
+ git tag v3.4.2
342
+ git push origin v3.4.2
343
+ ```
344
+
345
+ 也可以在 GitHub Actions 页面手动运行 `Publish to npm`,但输入版本必须与 `package.json` 一致,并且只能从默认分支触发。workflow 会先检查 npm 上是否已经存在同版本,存在则直接失败,避免覆盖发布。
346
+
347
+ 当前安全策略是把高危 audit 作为发布门禁;中危来自 Koishi Console、Vite、Element Plus 等上游链路时不强行降级处理,避免为了 audit 破坏插件兼容性。
348
+
309
349
  ## 发布包内容
310
350
 
311
351
  `package.json` 的 `files` 字段会发布:
@@ -318,6 +358,16 @@ lib/ 后端与类型构建产物
318
358
 
319
359
  ## 版本更新
320
360
 
361
+ ### 3.4.0
362
+
363
+ - 市场索引缓存增加 ETag、Last-Modified 和内容 hash 元信息。
364
+ - 自动路由竞速在命中最快源后会取消其他候选源请求,减少弱网下的额外带宽占用。
365
+ - 后台刷新命中 HTTP 304 或相同 hash 时复用已有索引,跳过重复 JSON 解析和缓存写盘。
366
+ - `search.logLevel: debug` 时,市场页显示 debug 性能面板。
367
+ - debug 面板展示后端下载、缓存读取、JSON parse、索引映射、payload 构建,以及前端排序、筛选和虚拟滚动耗时。
368
+ - 详细性能、路由和缓存回退日志仅在 debug 级别输出,默认日志不增加噪音。
369
+ - 后台刷新缓存时,刷新菜单图标会显示旋转状态,避免看起来没有反馈。
370
+
321
371
  ### 3.3.4
322
372
 
323
373
  - 依赖版本获取新增 loading/error 状态,避免请求中误显示“版本获取失败”。