dsh-model-rotator 0.2.3 → 0.2.4
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 +32 -0
- package/CHANGELOG.zh.md +32 -0
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/package.json +3 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Changelog (dsh-model-rotator)
|
|
2
|
+
|
|
3
|
+
> [简体中文](./CHANGELOG.zh.md) | **English**
|
|
4
|
+
|
|
5
|
+
User-visible changes, newest first. Commit hashes in brackets.
|
|
6
|
+
|
|
7
|
+
## 0.2.4
|
|
8
|
+
- **Docs**: adds this bilingual changelog, listed in the manifest and gated by release-check; the README and repository description were refreshed too. The npm package now carries the changelog with each release. Also fixes a crash in this gate: the SHA check fed a comment line to readFileSync, so the gate died with ENOENT and hid every other check behind it. [`fc14e99`]
|
|
9
|
+
|
|
10
|
+
## 0.2.3
|
|
11
|
+
- **Fixed**: in the model-list search, a one-character term inside a multi-term query was almost unconstrained (25 of 36 characters matched some name; `a b` returned 264 and `d s` 528) — it is now anchored to the start of a word, while a lone `a` still searches the whole table as a substring. Measured: `a b` 264→2, `d s` 528→42, `flash a` 182→36, `ds fl` unchanged at 309. [`5aec752`]
|
|
12
|
+
|
|
13
|
+
## 0.2.2
|
|
14
|
+
- **New**: matching now normalises first (case and separators) and ranks hits by quality, with exact matches first.
|
|
15
|
+
- **New**: a length-guarded subsequence fallback, so a query without separators still reaches a hyphenated name (`ds-flash`); a single character does not trigger it. [`b9c9e57`]
|
|
16
|
+
|
|
17
|
+
## 0.2.1
|
|
18
|
+
- **New**: queries are split on whitespace and matched token by token with AND (previously one substring over the whole query), which sharpens multi-word results considerably across 950 models. [`f04d13f`]
|
|
19
|
+
|
|
20
|
+
## 0.2.0
|
|
21
|
+
- **New**: a search box for the model roster, with a hit counter and a clear button. [`c691a4f`]
|
|
22
|
+
- **Fixed**: two counters — one read data that was still `null` and showed "1 / 0"; the other walked only the flat model list and reported "no match" while rows were plainly visible when the host omitted that field.
|
|
23
|
+
- **Fixed**: the schema loader accepted a copy on the strength of `object()` alone, and this machine carries a stale copy under the user home without `.volatile()` that was resolved first, so Config threw at load; it now capability-tests the exact chain.
|
|
24
|
+
- **Fixed**: the tests imported the dev tree through a hardcoded absolute path, so the published bytes were never covered by their own suites; all suites are self-relative now. [`6de1b05`]
|
|
25
|
+
|
|
26
|
+
## 0.1.0 (with the 0.1.x fixes folded in)
|
|
27
|
+
- First release: ranks the models an install has already discovered by measured connectivity and speed, and switches to the next candidate inside the same turn when the current one fails without producing any output; ships a channel-grouped model list with per-channel switches.
|
|
28
|
+
- Fixed: `ctx.llm` is resolved once and reused, so discovery and dispatch survive a deactivated fiber; keep dispatching after deactivation; one candidate per model family and one notice per destination. [`78431f7` `1c52df1`]
|
|
29
|
+
- Fixed: a **plugin-internal** dispatch error was recorded as model evidence and restored as one; the two are now distinguished. [`4a50ba9`]
|
|
30
|
+
- Fixed: a healed stats row was not written back to disk; it is written back, and saved when healed. [`1174bc0`]
|
|
31
|
+
- Fixed: **a host-side refusal is not evidence about the model** — refusals raised at the provider boundary by the harness or another plugin were written into the route's counters, cooling down a channel that had done nothing wrong and overwriting the real provider failure; they are dropped now (no failures, no cooldown, no lastError). [`ac87505`]
|
|
32
|
+
- Fixed: a host-side refusal still went through the whole retry budget and exponential backoff (measured: four dispatches and 1.8s of sleeping); it now stops after one dispatch. [`8c5ec94`]
|
package/CHANGELOG.zh.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# 更新说明(dsh-model-rotator)
|
|
2
|
+
|
|
3
|
+
> **简体中文** | [English](./CHANGELOG.md)
|
|
4
|
+
|
|
5
|
+
本文件按版本记录用户可感知的变化。方括号内为对应提交。
|
|
6
|
+
|
|
7
|
+
## 0.2.4
|
|
8
|
+
- **文档**:新增中英双语更新说明(本文件),并纳入发布清单与发布门;README 与仓库首页说明同步更新。npm 包开始随版本携带 CHANGELOG。同时修复发布门自身的一处崩溃:SHA 校验把清单注释行当成文件名读,导致整门以 ENOENT 中止、掩盖其余全部检查。[`fc14e99`]
|
|
9
|
+
|
|
10
|
+
## 0.2.3
|
|
11
|
+
- **修复**:模型列表搜索里,多词查询中的**单字符词项**几乎无约束(36 个字符里 25 个名字命中;`a b` 返回 264、`d s` 返回 528)⇒ 改为**词首锚定**,单独一个 `a` 仍按子串搜全表。实测 `a b` 264→2、`d s` 528→42、`flash a` 182→36、`ds fl` 309 不变。[`5aec752`]
|
|
12
|
+
|
|
13
|
+
## 0.2.2
|
|
14
|
+
- **新增**:匹配前先**归一化**(大小写与分隔符),并按**命中质量排序**(精确命中优先)。
|
|
15
|
+
- **新增**:带长度门槛保护的**子序列兜底**——无分隔符查询也能命中连字符名(`ds-flash`),单字符不触发兜底。[`b9c9e57`]
|
|
16
|
+
|
|
17
|
+
## 0.2.1
|
|
18
|
+
- **新增**:查询**按空格分词、逐词 AND**(此前是整串子串匹配),950 个模型下多词查询命中数大幅收敛。[`f04d13f`]
|
|
19
|
+
|
|
20
|
+
## 0.2.0
|
|
21
|
+
- **新增**:设置页**模型列表搜索框**,带命中计数与清除按钮。[`c691a4f`]
|
|
22
|
+
- **修复**:命中计数器两处——读仍为 `null` 的数据导致显示「1 / 0」;只遍历扁平模型列表,宿主省略该字段时行明明可见却报「无匹配」。
|
|
23
|
+
- **修复**:schema 加载器只凭 `object()` 就接受副本,而本机 user-home 有一份**缺 `.volatile()` 的旧副本**且被优先命中 ⇒ 配置在加载期抛错;现改为**能力探测**。
|
|
24
|
+
- **修复**:测试用硬编码绝对路径导入开发树,导致**发布字节从未被自己的套件覆盖**;现全部改为相对自身。[`6de1b05`]
|
|
25
|
+
|
|
26
|
+
## 0.1.0(含 0.1.x 修复合入)
|
|
27
|
+
- 首个版本:按实测连通性与速度**排序已发现模型**,当前模型无输出失败时在**同一回合内**切到下一个候选;附按渠道分组的模型列表与逐渠道开关。
|
|
28
|
+
- 修复:`ctx.llm` 只解析一次并复用,使发现与派发在 fiber 失活后仍可用;失活后继续派发;每个模型家族只取一个候选、每次只发一条通知。[`78431f7` `1c52df1`]
|
|
29
|
+
- 修复:**插件内部**的派发错误被当作模型证据记录并据此恢复 ⇒ 现区分开来。[`4a50ba9`]
|
|
30
|
+
- 修复:修复过的统计行未写回磁盘 ⇒ 现写回并在修复时保存。[`1174bc0`]
|
|
31
|
+
- 修复:**宿主侧的拒绝不是模型证据**——宿主/其他插件在 provider 边界的拒绝此前被写进路由计数,使**无辜渠道被冷却、显示为坏**,还会覆盖真正的 provider 失败;现直接丢弃(不计失败、不冷却、不留 lastError)。[`ac87505`]
|
|
32
|
+
- 修复:宿主侧拒绝此前仍走满重试预算与指数退避(实测 4 次派发 + 1.8 s 睡眠)⇒ 现一次派发即止。[`8c5ec94`]
|
package/README.md
CHANGED
package/README.zh.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dsh-model-rotator · 模型自动排序与故障转移
|
|
2
2
|
|
|
3
|
-
> **简体中文** | [English](./README.md)
|
|
3
|
+
> **简体中文** | [English](./README.md) | [更新说明](./CHANGELOG.zh.md)
|
|
4
4
|
|
|
5
5
|
给 DeepSeek Harness 装上一个「换模型的自动驾驶」:当前模型撞上额度墙、密钥失效、被限流,或者网络刚好抖动时,插件会在**同一轮对话之内**换到下一个最合适的已配置模型,继续把这轮回答完——用户看到的仍然是一条普通回复,不会中途断掉。
|
|
6
6
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-model-rotator",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Model auto-ranking and transparent failover for DeepSeek Harness: ranks discovered models by measured connectivity and speed, switches to the next candidate inside the same turn when the current one is unusable, and ships a grouped model list with per-channel switches. Never modifies model or provider configuration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
"cordis.patch.yml",
|
|
17
17
|
"README.md",
|
|
18
18
|
"README.zh.md",
|
|
19
|
+
"CHANGELOG.md",
|
|
20
|
+
"CHANGELOG.zh.md",
|
|
19
21
|
"LICENSE",
|
|
20
22
|
"vendor"
|
|
21
23
|
],
|