Repository navigation
v1.4.0 — 长对话自动收缩上下文;401 不再卡死账号轮换
长对话自动收缩上下文;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。