-
released this
2026-08-08 00:54:36 +08:00 | 2 commits to master since this releasev8.0.4 (2026-08-08) — 稳定性 & 存储升级
🚀 重大改进:会话数据改用 SQLite 存储
- 新增
xcli_core/session.pySQLite 后端:库文件chat_history/conversations.db,启用 WAL 模式 - 两张表:
sessions(id,title,created_at,updated_at,engine,model,messages)与snapshots(name,saved_at,messages) - 首次启动自动迁移:扫描旧
chat_history/*.json,id+messages写入sessions、纯conversation写入snapshots,迁移后移入_migrated_json/并写.migrated标记;迁移包在 try/except 中,绝不阻塞启动 /chat save|list|open与/resume改走 SQLite;memory.py关键词搜索同时检索数据库会话,向后兼容未迁移的 JSONSessionManager类名与new_session/save/list_sessions/resolve/load接口不变,旧调用方零改动
🐛 Bug 修复 / 体验:去掉「一直打印加载动画」的根源
- 移除流式显示:
_typeprint改为一次整段打印(去掉逐字符time.sleep打字机循环) - 移除常驻加载动画:
_generate_response_with_animation去除show_animation线程、love_sentences、animation_running事件与逐帧输出;TTY 仅打印一行静态💭 思考中… (按 ESC 取消),完成后清除该行 - 经核查 OpenAI / Ollama 引擎本就用
stream: False,「流式」实为打字机 + 逐帧动画,本次一并去除
✨ 新功能:展示消息过长自动截断(仅展示层,存储完整)
cli_display.py新增_truncate_for_display:超过 4000 字符 / 160 行时保留前若干并追加… (展示已折叠,完整内容共 N 字符 / M 行,已完整保存到会话)- 底层会话数据(
messages)不做任何截断,完整保存
🛠 工程:工具调用解析更稳,减少因格式错误浪费 token
_loads_json升级 4 级兜底修复:①标准 → ②未配对反斜杠转义 → ③字符串内未转义换行/制表符 → ④多余尾逗号删除,全局统一复用- 新增
_extract_last_action_json:扫描所有成对错括号对象(字符串感知),返回键集合与CONTROL_KEYS相交的最后一个候选;开头即[纯数组(多次工具调用)直接返回数组;替代脆弱的「方法5/6/7」正则抓取 _build_fc_tools去除「续轮剥离 Function Calling 工具」逻辑,续轮也始终下发 FC 工具,模型可用结构化调用而非散文 JSON- 配套独立校验 8 用例全过(未转义换行、纯数组、尾逗号、正文误触发不应判为工具等边界)
完整会话历史与代码保持不变,升级后旧 JSON 会话会在首次启动时自动迁入 SQLite,无需手动操作。
Downloads
- 新增
-
v8.0.3 Stable
released this
2026-08-07 23:35:42 +08:00 | 3 commits to master since this release小狸 Pro-CLI v8.0.3 — Vim 键位
本次为体验增强版本,给 TUI 带来 Vim 风格键位,向 opencode 的「纯键盘流」交互进一步靠拢。
✨ 新功能:Vim 风格键位(默认开,
/vim可开关)输入框模态编辑 ——
Esc在 NORMAL / INSERT 间切换:- 移动:
h j k l、w / b(跳词)、0 / $(行首/行尾)、^(首个非空白)、gg / G(文首/文尾) - 进入插入:
i / a / o(插入/追加/下方新行)、I / A / O(行首/行尾/上方新行) - 编辑:
dd(删行)、x(删字)、dw(删词)、d$(删到行尾)、u(撤销) - 普通模式下
回车= 下移一行(与 vim 一致)
聊天区导航(输入框未聚焦时生效):
j / k逐行滚动、Ctrl+F / B翻页、Ctrl+D / U半页Ctrl+Space在输入框与聊天区之间切换焦点、i聚焦并进入插入
其它:输入框下方提示栏实时显示
-- INSERT --/-- NORMAL --;/help已补充 Vim 键位说明;可用config.json的vim_mode: false默认关闭。🛠 工程
- 核心状态机抽成纯模块
xcli_core/vim_keys.py(VimInputState,不依赖 textual),配tests/test_vim_keys.py,18 项动作单测全部通过 - 版本号统一升至 v8.0.3
注:本环境未安装 textual,无法在此跑通 TUI 实机冒烟;核心 vim 逻辑已单测覆盖,TUI 集成请在装有 textual 的环境验证。
Downloads
- 移动:
-
v8.0.2 Stable
released this
2026-08-07 19:53:16 +08:00 | 4 commits to master since this release小狸 Pro-CLI v8.0.2(小修复版本)
🐛 Bug 修复
-
加载动画在非 TTY 环境不再污染输出流(提交
c81914a)_generate_response_with_animation的show_animation用print("\r...")逐帧(约 10 帧/秒)输出love.txt情话 + spinner,仅真终端能原地覆盖;被聊天前端 / WebSocket 桥 / 管道 / 日志镜像捕获时每帧变成一行垃圾混进对话显示- 加
sys.stdout.isatty()守卫:非 TTY 只输出单行提示、不跑逐帧\r动画 - TUI 模式(
tui_output_callback)本就跳过动画,不受影响
-
非 TTY 环境保留情话「人味」(提交
1c52482)- 上一版修复导致聊天界面完全看不到情话,改为:非 TTY 在请求开始输出一句随机情话(
💭前缀,只打一次、零残帧) love.txt读取时过滤http/https行,避免把反战标语 / 网址当情话甩出- 真 TTY 逐帧情话 + spinner 动画、TUI 模式均不受影响
- 上一版修复导致聊天界面完全看不到情话,改为:非 TTY 在请求开始输出一句随机情话(
-
修复文件管理器跨平台路径串台(提交
6f4fa50)- 模型在 Windows 主机上常给出 Linux/Mac 风格绝对路径(如
/home/user/Desktop、/Users/<谁>/Desktop、/root/Desktop),os.path.abspath在 Windows 下会错误拼成C:\home\user\Desktop并报「路径不存在」 - 新增
_resolve_cross_platform_path:Windows 下把/home/<用户>/…、/Users/<用户>/…、/root/…映射到当前用户家目录对应位置(~/Desktop等);Linux/Mac 下这些路径本身合法,原样保留 file_manager全部 10 个操作(list/read/write/append/copy/move/delete/search/info/mkdir)的路径解析均改用该归一化函数
- 模型在 Windows 主机上常给出 Linux/Mac 风格绝对路径(如
🛠 工程
- 版本号统一更新至 v8.0.2(README 中英 badge /
about.txt/ 中央VERSION/ TUI banner / LSP·MCPclientInfo.version)
详见 CHANGELOG.md
Downloads
-