Compare
Sorry, something went wrong.
No results found
feat(model-table): 内置模型能力表 + 每模型思考档位 + junction 修复 + 新建会话误报修复
## 模型能力表(src/model_table.zig,编译进程序)
- 919 条(effort 362 / toggle 557):上下文窗口 + 思考档位 + off 表达方式
- 生成:tools/gen_model_table.zig(Zig 无依赖)+ tools/model_corrections.json
(实测修正层,永远优先于 models.dev 数据;含预设自检——新预设忘了加映射会报错)
- 表外模型:全档位可选 + 菜单灰色提示"不在能力表中,请自行尝试"(不拦截)
## 思考档位:表驱动 + 每模型记忆 + 钳制
- 删除旧硬编码档位表(只认 flash 的 needle 启发式)
- 每模型档位记忆(config.json 的 thinking_by_model;顶层 thinking 保留为默认值)
- 未选过强度的模型:全局档位解析到该模型支持的最高档(显示与发送一致)
- 发送前钳制:档位不在可用集时降档(先往高找、再往低找;未知模型放行)
- off 表达方式查表:qwen 系发 reasoning_effort:"none",其余不发该字段
- CLI -thinking:一次性覆盖(优先于每模型记忆);表外档位放行 + 提示
- 菜单动态高度(按当前模型档位数);状态栏 think: 显示走每模型取值
## 上下文窗口
- 取值链:model_overrides > provider 配置 > 能力表 > 128k 兜底
- 删除旧 needle 硬编码表(mimo 曾兜底 128k 错值,现为精确 1,048,576)
- config.json 新增 model_overrides(用户覆盖档位/窗口,最高优先)
## junction 修复(paths.zig,scoop persist 场景)
- 探测先行:已存在(含 junction)直接采用;Zig createDirPath 对 junction 误报
NotDir 导致旧实现退回 cwd(scoop 安装后数据没落 persist 的根因)
- 新增 junction 回归测试(mklink 真实场景)
## 新建会话误报"外部压缩"修复
- 根因:newSession 未复位 last_compaction_id → 新会话首轮 worker 落库引起
data_version 变化 → 轮询把 cp_id=0≠旧会话 id 误判为外部压缩 → 清屏重载+误报
- 修复:newSession 复位压缩/窗口化游标;轮询只认 cp_id > 上次(防御性加固)
- 新增回归测试:残留游标不误报 + 真外部压缩仍识别
## 诊断日志(流式观感问题定位用)
- 流式消息创建 / 首块思考 / 首块正文到达(回合开始后 ms)——区分"上游 TTFT 慢"
与"客户端卡"(实测 mimo TTFT 3~7s,之后 1~2s 内涌完,属上游缓冲特性)
- 外部压缩检测 WARN(带 cp_id 对比)
## 文档
- README/user-guide:数据目录、模型能力表、每模型档位、model_overrides 说明
- architecture:新增 model_table.zig / tools 条目
测试:221/221 通过(新增 config 往返、junction、档位解析、误报回归等测试)