Skip to content

znaide v1.0.6

Choose a tag to compare

@twowb twowb released this 15 Sep 16:23

znaide v1.0.6(2026-09-16)

三件事:模型干活时打的字不再丢(排队,下一个轮边界带上);修掉"配置都齐了却说没配置";ctx 占用条不再拿 0% 冒充"空"。

一、新:工作中的输入排队

以前:回合跑着的时候输入框能打字,但按 Enter 什么都不发生 —— 不发送、输入框不清空、也没有提示,只能等这轮跑完再按一次。

现在:忙时按 Enter 直接排队。消息区提示 ⏳ 已排队,输入框清空,状态栏显示 队列 N。模型下一次调用就会带上它,当前这轮不停。

"轮"就是状态栏的 轮 N/200:模型要一次结果算一轮,一条消息可能跑几十轮,所以插入时机是"本轮工具跑完、下次调用之前",不用等这条消息干完。插进去的位置紧跟工具结果 —— 实测一条 4 秒的命令跑完,下一次请求就带上了排队的那句话。如果这轮之后没有下一轮(模型已经给出答复,比如纯问答),排队的内容就在回合结束时当新的一条发出去。

排队的内容不会打断正在跑的工具(它可能正改文件改到一半);想立刻停按 Esc,队列里剩下的接着发。

二、修:provider / model / key 都配了,界面却说"尚未完成配置"

用环境变量(或命令行)配好启动时,状态栏已经显示出模型,按 Enter 却回:

⚠ 尚未完成配置,不能对话。先输入 /config 完成配置。

原因是有两处判断"配置好没好":弹向导那处认配置文件、环境变量和命令行,对话这道闸门只认 config.json 在不在。现在闸门改用同一个判断,只用命令行(--provider/--model/--api-key)的情况也一样。真的什么都没配时行为不变:照旧弹向导、不让对话。

三、修:ctx 占用条不再拿 0% 冒充"空"

/resume 恢复会话后,状态栏的 ctx 占用条画的是一条空条 0%。但那是"还没量到"的占位:恢复出来的历史明明占着上下文,要等你发下一条、请求返回,它才跳到真实值(比如 43%)。/compact 之后同理 —— 摘要占多少也要下一轮才知道。

现在这两种情况画 ctx ?,不再冒充 0%。新会话和 /clear 之后照旧画 0%(那两种情况的上下文里确实没有对话)。压缩提示也跟着只认量到的数:没测到就不劝你压缩 —— 拿一个偏小的数字劝你别压缩,比不提醒更误事。

四、验证

  • 测试 221 项全绿(core 108 / mock-e2e 18 / tui 95),编译零警告。新增用例盯着两条最容易搞错的边界:插话必须紧跟工具结果之后(顺序错了会让历史留下孤儿调用,恢复会话时端点直接 400)、以及"占用未知"必须画 ? 而不是 0%。
  • 真机跑了五条:① 4 秒的命令一结束就带上排队的内容(轮次 1→2→3 不重置,说明还在同一个回合里);② 排两条,各在下个轮边界插入;③ 这轮之后没有下一轮时,回合结束当新消息发;④ Esc 中断后剩下的一条紧接着发;⑤ 恢复会话后 ctx ?,发一条(端点报 prompt 20.5k、窗口 40k)变成 ctx █████░░░░░,再 /clear 确认后回到 0%。
  • 配置判定两个方向:仅环境变量 → 请求真的发出、不弹向导;什么都没配 → 仍弹向导、0 请求。

五、说明

  • 忙时输入框不再变灰,标签显示 Enter 排队。
  • 以前忙时按 Enter 什么都不发生;现在会把字发出去,不想发就按退格删掉。
  • /compact、技能这类命令不进队列,仍按原路径交给会话引擎。
  • 恢复会话、压缩上下文之后,状态栏的 ctx 条显示 ctx ?,发一条消息就变回真实百分比。
  • 没动依赖和配置格式,旧配置直接可用。