shuiyu1123
de15b54b19
release: v6.1.0 - TUI 体验全面升级 + 背景自定义
...
TUI 界面改进:
- 全面中文化: CommandPalette/HelpPanel/Footer/Chatbox 边框标题等所有用户可见英文汉化
- 辅助中心 (Ctrl+P/F9): 原"设置"重命名, 含 6 项可切换设置
- 独立帮助浮层 (? 键): 重写帮助页面逻辑, 全中文, 带滑入淡入动画
- 背景切换: 辅助中心 [5] 预设背景, [6] 自定义背景; 新增 /bg 命令支持图片提取主色调
- 换行修复: Ctrl+J 作为主推换行键 (Windows 终端不区分 Shift+Enter)
- 引擎切换修复: 解决 call_from_thread 在主线程崩溃的 RuntimeError
技术改进:
- 文本工具调用解析: 检测模型用 <tool_call> 标签返回的工具调用
- 网络工具优化: network_tools.py 和 ai_search.py 改进请求头/重试/编码
- 流式输出修复: append_chunk 的 refresh 改为 layout=True
- 取消响应修复: 引擎层 _cancelled 标志 + TUI 层 worker 身份跟踪
融合 v6.0.0 工作:
- 保留 terminal 模拟器/operit 桥接/深度思考/工作模式/记忆模式等 v6.0.0 全部功能
- 在此基础上叠加本会话的 TUI 改进
2026-06-29 13:00:19 +08:00
shuiyu1123
b5f638cffc
fix: 修复TUI界面多个问题,添加记忆模块模式选择功能
...
- 修复ToolResult对象的get方法错误
- 修复TUI版本号显示错误(v5.4.1 -> v6.0)
- 修复Shift+Enter换行功能
- 修复AI回复颜色显示问题
- 添加记忆模块模式选择功能(陪伴模式/工作模式)
- 清理项目文件,准备上传到Gitee
2026-06-26 22:26:13 +08:00
xiaoli-cli bot
810a057d25
feat: 工作模式系统 - 整合安全模式 + 计划模式
...
工作模式 (/mode 或 /safe 切换):
- 普通: AI识别风险,有风险才确认 (原安全模式)
- 人工确认: 所有指令都需确认 (原安全模式)
- 无限制: 直接执行 (原安全模式)
- 计划模式: 全自动 + 审查 + 重试 + 引擎切换 (新增)
计划模式行为:
- 全自动执行,不询问用户
- 引擎错误10次自动切换到其他引擎
- 无其他引擎时继续重试,但不把引擎错误加入上下文
- 任务完成后自动审查结果
- 审查发现问题自动重试
实现:
- safety.py: SafetyLayer → WorkMode,新增 MODE_PLAN
- cli_core.py: 新增 _plan_generate / _plan_review
- /safe 和 /mode 命令均可切换
2026-06-23 10:11:06 +00:00
xiaoli-cli bot
346f5fdcb4
feat: 系统提示词增加兜底策略
...
遇到能力不足时的三级解决路径:
1. 查插件仓库 (/plugin search → install)
2. 网上搜索 (ai_search)
3. 自己写插件 (Liugin 类)
原则: 放弃是最后的选择。能装就装,能搜就搜,能写就写。
2026-06-23 09:33:49 +00:00
shuiyu1123
b8faaae0c6
release: v5.4.1
2026-06-19 00:30:15 +08:00
shuiyu1123
bac5ea01a9
feat: 统一错误处理 - ToolResult 类
...
- 新增 xcli_core/tool_result.py: ToolResult + ErrorCode
- unified_tool_manager: execute/mcp_call 返回 ToolResult
- cmd_executor: 所有返回改为 ToolResult
- file_manager: 所有返回改为 ToolResult
- 兼容旧接口: execute_dict() 返回 dict, handler 可返回 str 或 ToolResult
2026-06-19 00:26:49 +08:00
shuiyu1123
161ab9d3a8
feat: MCP stdio server + TUI回车发送 + 子Agent无限制 + 安全引擎优化 + diff弹窗绿红背景
...
- 新增 mcp_server.py: 标准 MCP stdio 传输层入口
- TUI: 回车发送消息,Shift+回车换行 (SendTextArea子类)
- 子Agent: 移除 max_steps=20 限制
- 安全引擎: 移除 ALWAYS_CONFIRM 关键词强制拦截
- code_editor: diff弹窗绿底(+)/红底(-)背景色
2026-06-19 00:10:27 +08:00
xiaoli-cli
b0d9a24003
release: v5.4.0 - 跨平台进程保护机制
2026-05-09 20:33:14 +08:00
xiaoli-cli
97cc2bb0f7
feat: 跨平台进程保护机制 v5.3.0
...
- 新增 process_protection.py 模块
- 单实例保护: Windows命名Mutex / macOS+Linux fcntl文件锁
- 进程优先级提升: Windows SetPriorityClass / POSIX os.nice()
- Windows PPL风格保护: SetErrorMode抑制错误弹窗
- POSIX信号保护: 忽略SIGHUP/SIGPIPE, 注册SIGTERM优雅关闭
- 看门狗监控: 后台线程监控父进程状态
- 关闭钩子系统: 进程退出时自动执行清理
- /protect 命令查看保护状态
- 更新 platform_utils.py 新增进程工具函数
- 集成到 cli_base.py 启动时自动初始化
- 更新 CHANGELOG.md / README.md 至 v5.3.0
2026-05-09 20:28:17 +08:00
xiaoli-cli bot
a7f64cd797
refactor: 移除插件内存管理系统 + 新增工作流引擎
...
移除内容:
- 删除 plugin_memory_manager.py (TTL淘汰 + 懒加载系统)
- unified_tool_manager.py 精简为直接加载,去掉内存管理器集成
- tui.py 移除内存管理状态显示
新增内容:
- plugins/workflow.py: YAML 工作流引擎
- 顺序执行多步骤 (tool/shell/echo/wait/set/if)
- 步骤间变量传递 ({{steps.name.output}})
- 条件分支 (if/then/else)
- 错误处理 (continue_on_error / on_fail)
- 断点续跑 (状态持久化)
- 调用其他插件作为步骤
- workflows/example.yaml: 示例工作流
修复:
- unified_tool_manager.shutdown() 增加 graceful cleanup
- unregister_tool() 增加实例清理
2026-05-08 18:07:55 +08:00
OpenClaw
bfefbef475
release: v5.2.0 - 插件内存管理 + TUI 修复
2026-05-08 00:47:38 +08:00
OpenClaw
fb41c79b14
feat: 插件内存管理 - TTL自动淘汰 + 懒加载
...
新增 plugin_memory_manager.py:
- 后台线程定期扫描空闲插件,超过TTL自动从内存卸载
- AI调用已卸载插件时自动重新加载(懒加载)
- 核心插件(tool_search)可钉住永不淘汰
- 可配置: TTL(300s), 最大空闲数(10), 扫描间隔(60s), 钉住列表
改造 unified_tool_manager.py:
- 集成 PluginMemoryManager
- execute/mcp_call/search_tools/get_tool 统一走 _ensure_loaded
- search_tools 可搜索已卸载插件(使用缓存信息)
- 新增 get_all_tools_info/get_tool_by_name/memory_manager 属性
改造 tui.py:
- /status 命令显示内存管理详细状态
- 侧栏显示已加载/已卸载工具数
2026-05-08 00:40:01 +08:00
OpenClaw
038fbe24c8
fix(tui): 修复set_timer(0)导致的ZeroDivisionError
...
_render_welcome_animated中delay=i*0.1在i=0时为0.0,
Textual 8.x的set_timer(0,...)内部interval为0导致除零崩溃。
使用max(0.01, delay)确保最小延迟。
2026-05-08 00:24:26 +08:00
OpenClaw
fe79f0e5d4
fix(tui): 修复消息分类、侧栏切换、动画失效、TextArea导入
...
- _write_raw: 空字符串'' in msg永远为True导致所有消息归类为tool-ok,
替换为正确的emoji标记(✅ /❌ /🤖 )
- action_toggle_sidebar: Textual无.visible属性,改用has_class/addClass
- CSS .hidden: display:none阻止transition动画,改用width+opacity方案
- constants.py: 添加TextArea、Rule到Textual可用性检查导入列表
2026-05-08 00:17:36 +08:00
xiaoli-cli bot
0b19ec64a4
fix: 修复 Gitee 下载支持,通过 API + token 下载插件
...
- Gitee raw URL 返回 403,自动转为 API 调用
- 从 GITEE_TOKEN 环境变量读取访问令牌
- 修复 Fore.DIM → Style.DIM
- 测试通过: install / list / remove 全流程正常
2026-04-30 02:42:52 +08:00
xiaoli-cli bot
6f13d41c11
feat: 添加 /plugin 插件市场命令
...
功能:
- /plugin list - 列出可用插件(自动同步远程源)
- /plugin search <关键词> - 搜索插件
- /plugin info <插件码> - 查看插件详情
- /plugin install <插件码|URL> - 安装插件(自动下载、启用、动态加载)
- /plugin remove <名称> - 卸载插件
- /plugin update <插件码> - 更新插件
- /plugin add-source <URL> - 添加远程插件源
文件:
- xcli_core/plugin_market.py - PluginMarketMixin 核心逻辑
- plugin_registry.json - 本地插件码注册表
- xcli_core/cli_core.py - 集成 PluginMarketMixin
- HELP.md - 添加插件市场文档
2026-04-30 02:37:05 +08:00
xiaoli-cli-bot
0d27f2b774
feat: add /manual command + fix cross-engine command routing
...
- /manual → switch to manual engine (CLI + TUI)
- /manual status → run manual engine sub-commands
- /manual restart → restart manual terminal
- /engine.manual status → now works from any engine (not just manual)
- Fixed handle_engine_command to route to correct engine by name
2026-04-29 20:04:40 +08:00
xiaoli-cli-bot
7a72a5c69e
fix: Ollama model validation, TUI CSS, WebUI overhaul
...
1. Ollama: validate model is configured before API call, show helpful error
2. TUI: remove unsupported scroll-behavior CSS property
3. WebUI server: add full tool calling loop (FC + JSON action)
4. WebUI HTML: complete redesign
- Modern dark theme with better typography
- Markdown rendering via marked.js
- Tool call/result visualization with colored cards
- Dynamic sidebar (engines + tools from server)
- Better input area with gradient send button
- Responsive layout
2026-04-29 19:51:42 +08:00
xiaoli-cli-bot
baa2cbc49a
feat: diff display mode - popup or inline (SSH compatible)
...
- Startup prompt asks user to choose popup or inline diff mode
- Added inline diff display in main terminal with colored output
- Green for added lines, red for deleted lines (both modes)
- TUI mode uses Rich markup, CLI mode uses ANSI colors
- New commands: diff_popup popup / diff_popup inline
- Default: inline mode (SSH compatible)
2026-04-29 19:40:07 +08:00
xiaoli-cli-bot
f41d5d5a7c
fix: remove unsupported @keyframes from Textual CSS
...
Textual CSS parser does not support @keyframes syntax (it's a Web CSS feature).
These keyframes were unused - all animations are implemented via Python's
set_interval() and animate() methods. Removing them fixes the stylesheet
parse error that prevented TUI mode from starting.
2026-04-29 19:28:53 +08:00
shuiyu1123
9048b0e813
feat: 自动语法检查 + Diff弹窗 + Web UI + 默认模型更新
...
- 自动语法检查: 编辑操作完成后自动检查代码语法(11种语言)
- Diff弹窗: 编辑后弹出新窗口显示修改前后对比(可开关)
- 主动语法检查: 新增 syntax_check/check 操作
- Web UI: 纯静态HTML界面(对话/编辑器/文件浏览/状态面板)
- 默认模型: Ollama默认从qwen2.5更新为gemma4:31b
- 更新README/HELP/CHANGELOG文档
2026-04-27 01:08:27 +08:00
shuiyu1123
6de5c6f202
feat: Function Calling 兼容
...
新增 xcli_core/fc_tools.py:
- MCP 定义 → OpenAI FC 格式转换
- FC 响应解析 (tool_calls 提取)
- 自动收集所有插件 FC 定义
- 400 错误自动降级为普通模式
引擎层改动 (openai_engine + ollama_engine):
- generate_response 新增 tools 参数
- 请求体自动注入 tools/tool_choice
- 响应检测 tool_calls 并返回 FC 标记
- 对话历史支持 tool 角色消息和 assistant.tool_calls
- _build_messages_with_history 兼容 FC 消息格式
cli_core.py 集成:
- _handle_fc_response: FC 响应 → 工具执行 → 结果回传
- _execute_tool_by_name: FC 调用路径的安全检查+工具分发
- process_conversation 循环自动处理 FC 工具调用
- TUI/CLI 双模式 FC 支持
2026-04-27 00:29:34 +08:00
shuiyu1123
15e35ca8ad
feat: 持久化记忆系统
...
新增 xcli_core/memory.py (20KB):
- MEMORY.md: 长期记忆,AI 可追加备忘
- memory/YYYY-MM-DD.md: 每日日记,AI 可写观察日记
- chat_history/: 自动保存聊天记录 (JSON)
- 全局关键词搜索 (日记+记忆+聊天记录)
- 上下文自动压缩 (超50条时AI摘要)
- /memory 命令入口
cli_core.py 集成:
- process_conversation 结束后自动保存聊天记录
- 超过阈值自动压缩上下文 (保留最近10条+摘要)
- 系统提示词自动注入记忆上下文 (MEMORY.md+今日日记)
- /memory 帮助文本
2026-04-27 00:23:52 +08:00
shuiyu1123
11afacb6e9
fix: ESC 跨平台取消 AI 响应
...
- 重写 _generate_response_with_animation
- generate_response 移入独立线程,ESC 后可立即返回
- Linux/macOS: 使用 tty.setcbreak + select 非阻塞读取
- Windows: 保留 msvcrt 检测
- 三个线程并行: 动画 / ESC检测 / AI响应
- ESC 按下后立即停止动画并返回取消标记
2026-04-27 00:12:03 +08:00
shuiyu1123
4f3a60bf9f
feat: 定时任务插件 - AI 可设定定时提醒
...
- 新增 plugins/scheduler.py 定时任务插件
- add: 添加定时任务 (支持 30m/2h/14:30/2026-04-28 10:00/r:30m)
- list: 列出所有任务及剩余时间
- delete: 取消指定任务
- clear: 清除已结束任务
- 后台守护线程每秒检查到期任务
- 到期时自动激活 AI 处理提醒 (CLI/TUI 双模式)
- 重复任务 (r: 前缀) 触发后自动重新调度
- JSON 持久化存储 scheduler_tasks.json
- /scheduler 和 /remind 命令入口
2026-04-27 00:06:23 +08:00
shuiyu1123
19f9cf0826
feat: 任务完成时发送系统通知
...
- 新增 xcli_core/notification.py 跨平台通知模块
- Windows: win10toast / PowerShell BurntToast / MessageBox
- macOS: osascript display notification
- Linux: notify-send / D-Bus
- process_conversation 结束后自动触发通知
- 新增 /notify 命令开关通知 (on/off)
- 通知在后台线程发送,不阻塞主流程
- 防重复通知冷却机制 (2秒)
2026-04-27 00:03:14 +08:00
艾轮 卧壳
98c9e51dc2
fix: 移除提示词中的'插件'术语,统一为'工具',强制 JSON 格式调用防止直接拼接参数
2026-04-26 23:34:46 +08:00
艾轮 卧壳
c51fe6accc
feat: 强化系统提示词 — 所有工具调用前必须先 tool_search 查询用法
2026-04-26 23:27:02 +08:00
xiaoli-cli
39d2b0368b
feat(tui): 添加动画效果和多行输入支持
...
- 替换 Input 为 TextArea,支持多行文本输入
- Ctrl+Enter 发送消息,Enter 换行,Tab 缩进
- ThinkingSpinner: 旋转+脉冲思考指示器
- TypingIndicator: 模拟AI打字动画
- MessageBubble: 消息入场淡入动画
- 欢迎界面逐行动画显示
- CSS 过渡动画 + 关键帧动画
- 输入区域动态高度调整
- 清理未使用的 import,ruff 检查通过
2026-04-26 14:03:22 +08:00
xiaoli-bot
29df2a4ac1
chore: 移除所有 emoji 及对标文案
...
- 删除全部文件中的 emoji 字符(29 个文件)
- 移除 tui.py 中「对标 Claude Code」表述
- 保持代码缩进和格式不变
2026-04-26 12:35:27 +08:00
xiaoli-cli
5147662b88
feat: 统一安全层 - AI 风险识别 + 三模式切换
...
安全检查流程:
- 工具调用前统一经过 safety.check() 拦截
- 普通模式: AI 独立分析指令风险(不带历史对话)
- 识别出风险后展示: 指令/风险等级/影响,请求 y/n 确认
- 安全操作快速预检放行(读取类/查询类直接跳过)
三种模式 (/safe 切换):
- 普通模式 (默认): AI 识别风险,有风险才确认
- 人工确认模式: 所有指令都需确认
- 无限制模式: 直接执行,不检查
特殊指令始终需确认:
- cmd_executor: rm/chmod/chown
- file_manager: delete
- git_tools: checkout -b
2026-04-26 06:13:54 +08:00
xiaoli-cli
7c02642982
fix: 移除无效的 text-size CSS 属性 (TUI 报错根因)
2026-04-25 23:00:05 +08:00
xiaoli-cli
623d53f06f
fix: 全面修复 TUI 和跨平台兼容性
...
- constants.py: requests/openai/numpy 改为 try/except 保护
- tui.py: asyncio.get_event_loop() → get_running_loop() (Python 3.10+)
- tui.py: _remove_thinking 增加异常保护
- tui.py: XiaoliTUI 占位类增加 __init__ 和 run 方法
- tui.py: bare except 改为 except Exception
- sandbox.py: resource 模块 try/except 保护 (Windows 兼容)
2026-04-25 22:54:41 +08:00
xiaoli-cli
d819502b00
fix: 修复 Windows 上 resource 模块导入错误
2026-04-25 22:45:40 +08:00
xiaoli-cli
04e2d26809
refactor: 拆分 ai_cli.py 为模块化 xcli_core 包
...
将 4130 行的单文件拆分为 13 个职责清晰的模块:
- constants.py: 常量 + 可选依赖导入
- sandbox.py: 安全代码沙箱 (AST检查器 + 子进程隔离)
- config.py: 配置管理 + 日志
- plugin_manager.py: LiuginManager 插件管理器
- cli_base.py: BaseAICLI 基类 (初始化/引擎/插件/命令)
- cli_clawli.py: ClawliMixin 远程模式
- cli_tools.py: ToolMixin 工具调用
- cli_code_exec.py: CodeExecMixin 代码沙箱执行
- cli_display.py: DisplayMixin 显示/输出/图片/帮助
- cli_history.py: HistoryMixin 聊天记录
- cli_core.py: AICLI 主类 + 对话循环 + main()
- tui.py: Textual TUI 界面
- __init__.py: 包导出汇总
ai_cli.py 保留为入口文件 (11行), 根目录整洁。
原逻辑完全不变, 仅做结构拆分。
2026-04-25 22:27:59 +08:00