Skip to content

v1.4.0 — 长对话自动收缩上下文;401 不再卡死账号轮换

Choose a tag to compare

@github-actions github-actions released this 24 Sep 04:21
· 72 commits to main since this release

长对话自动收缩上下文;401 不再卡死账号轮换

长对话不再撞死在上下文上限上

以前聊到一定长度就会弹 400 context_length_exceeded 然后被送回主页。根因是:DSH 自带的
compaction-basic 只在错误文本命中 isContextWindowExceededError() 时才启动恢复路径,
而插件原来报的那句友好英文恰好一条正则都不匹配——DSH 以为是个普通坏请求,跳过恢复直接
把 400 抛给用户。

现在溢出时输出它认得的措辞,并加了第二层保险:插件自己先丢最旧回合 → 交模型摘要 → 硬截断
兜底,摘要失败也只会降级成截断,不会让这一轮请求失败。

「API 密钥无效」不再把所有账号卡死在第一个上

HTTP 401 原先只有在响应体含两条特定标记时才被认成「登录态失效」(可刷新、可轮换),上游换个
说法(api密钥无效 / invalid api key / unauthorized)就掉进兜底的 client 类——而
client 在轮换循环里是终态(break),一个坏号把整个池钉死在首号,2/3/4 号全废。

现在 401/403 无条件算「登录态失效」,并补齐了常见的中英文失效措辞。

顺带修出的真 bug

compactMessages 用同一个变量同时表示「留下来的」和「被丢掉的」,砍到只剩几条却报告
「没有变化」,导致摘要功能整个跳过、根本没执行。

测试:164 → 173。