shuiyu67 and WorkBuddy
160d4e924e
feat: 声明式权限(opencode 式 allow/ask/deny 配置化)
...
- safety.check 在 plan 模式之后、安全模式之前插入声明式权限判定:
deny(阻断) > ask(强制确认) > allow(自动放行) > 默认(按安全模式)
- 规则语法支持 "*"全匹配 / "tool"精确 / "tool:*"任意操作 / "tool:op"操作前缀
- 读取 config.permissions;提供 set_permissions 显式注入(测试/启动用)
- config.json 顶层加 permissions 段(allow/ask/deny 示例,该文件被 gitignore 不入库)
- 修复:test_normal_mode_does_not_plan_block 隔离真实 config 权限,避免污染
- 新增 tests/test_permissions.py(14 项:规则匹配+deny/ask/allow+优先级)
Co-Authored-By: WorkBuddy <workbuddy@tencent.com >
2026-08-05 17:56:25 +08:00
shuiyu67 and WorkBuddy
9dd418ec89
feat: LSP 集成(连接外部语言服务器,真实诊断/智能感知喂给模型)
...
- 新增 lsp_client.py:LspClient(subprocess stdio,Content-Length 分帧 JSON-RPC,
reader 线程,initialize/initialized/didOpen/didChange/hover/definition/references/
completion + publishDiagnostics 通知捕获)+ LspManager(按扩展名→语言→server 路由、
connect_all 读 lspServers、get_context 返回已分析文件诊断、cleanup 幂等)
- unified_tool_manager.py:initialize 末尾加载 LSP server,注册 5 个 lsp__* 工具
(diagnostics/hover/definition/references/completion,带真实 inputSchema、protocol='lsp'、
instance 存 manager 供 shutdown 清理)
- cli_core.py:_build_system_prompt 末尾注入 LSP 诊断上下文(模型持续看到真实诊断)
- config.json:顶层加 lspServers 段(python/rust 示例,含 _说明;该文件被 gitignore 不入库)
- 新增 tests/test_lsp_client.py(9 项:fake server 全链路+路由+桥接+fc_tools 保真+缺失/失败优雅降级)
- 修 LSP 线缆坑:didOpen/didChange 是通知(无响应),初版误当请求等响应导致超时
Co-Authored-By: WorkBuddy <workbuddy@tencent.com >
2026-08-05 17:49:46 +08:00
shuiyu67 and WorkBuddy
d2ad1000b6
feat: MCP 客户端(连接外部 MCP server,外部工具桥接进统一工具体系)
...
- 新增 mcp_client.py:McpClient(subprocess stdio JSON-RPC,reader 线程+响应表,
initialize/list_tools/call_tool/shutdown 超时可控)+ McpClientManager(connect_all
读 mcpServers、聚合、call_tool、cleanup 幂等)
- unified_tool_manager.py:initialize 末尾加载外部 MCP server,按 server__tool 前缀
register_tool 带真实 inputSchema mcp_definition,shutdown 经 manager.cleanup 幂等终止子进程
- fc_tools.py:mcp_to_openai_tools 新增 get_mcp_tools 保真分支(同时修现状 liugin 工具
schema 被压成 args 的坑)
- config.json:顶层加 mcpServers 空段(用户自填,已被 gitignore 不入库,代码 .get 兼容)
- 新增 tests/test_mcp_client.py(5 项,全链路+桥接+保真,不触真实引擎/网络)
Co-Authored-By: WorkBuddy <workbuddy@tencent.com >
2026-08-05 17:40:45 +08:00
shuiyu67 and WorkBuddy
a3977ecc85
feat: opencode 式 Plan 模式(只读调研 + /build 批准执行)
...
- safety.check 最高优先级加 Plan 只读拦截:写操作暂挂,只读放行
- BaseAICLI 新增 plan_mode / current_plan 状态
- _build_system_prompt 注入 PLAN 约束;/plan /build 命令路由与 handle 方法
- 速查表与启动提示补充 /plan /build
- 新增 tests/test_plan_mode.py(16 项,纯函数+拦截+注入+状态转换)
Co-Authored-By: WorkBuddy <workbuddy@tencent.com >
2026-08-05 17:25:17 +08:00
shuiyu67
07490c4d38
feat: opencode 式会话持久化 + /resume 一键恢复
...
此前只有手动的 /chat save|list|open,关终端就丢上下文。现升级为
opencode 式体验:每轮对话自动落盘、启动提示历史会话、/resume 一键恢复。
- 新增 xcli_core/session.py:Session 数据类(id/title/created_at/updated_at/
engine/model/messages)+ SessionManager(new/save/list/load/resolve,存
chat_history/<id>.json)。向后兼容旧 /chat 格式(无 id、用 conversation 键,
读取时回退用文件名作 id)。标题自动取首条 user 消息前若干字。
- HistoryMixin 升级(cli_history.py):新增 init_session_manager /
_autosave_session / handle_resume_command。自动保存首轮惰性建会话、
更新标题与 updated_at;/resume 列出(序号|ID)或按序号|ID|前缀恢复,
恢复时把 messages 载入 shared_conversation_history 并同步引擎。
- 集成:cli_base.__init__ 在 chat_history_dir 就绪后 init_session_manager;
cli_core 主循环 1395 行 process_conversation 后调用 _autosave_session;
新增 /resume|/sessions 路由(/sessions 等同 /resume)。
- 体验:启动时若有历史会话提示 /resume(含最近会话标题);run() 紧凑提示
与 /help 速查表均补 /resume(列出/恢复/开新会话)。
- 修复 cli_history.py 一处历史 typo:{Style.RESET型} -> {Style.RESET_ALL}
(旧 load_chat_history 在含消息时会抛 AttributeError)。
- 测试:新增 tests/test_session.py(12 项,覆盖兼容/新建/落盘/排序/解析/
自动保存/恢复/列表/未知token,全程临时目录不污染真实 config/chat_history)。
全量 242 passed(原 230)。
真实 CLI 冒烟:启动提示识别到历史会话、/resume 正确列出(含标题/时间/引擎/
条数)、/resume <id> 正确恢复并回显;已清理测试种入文件,chat_history 复原为空。
2026-08-05 17:16:49 +08:00
shuiyu67
1383d32f8b
feat: OpenAI 多模型注册表 + /model 命令,告别手改配置文件
...
痛点:很多模型都是 OpenAI 格式,但换模型只能手改 config.json 的单槽位,
且只能存一个。新增模型注册表与 /model 命令族:
- 新增 xcli_core/model_registry.py:在 api.engines.openai 下维护
models 列表(name + base_url + api_key + model)与 current 指针,全部落盘。
向后兼容:无 models 时把扁平 api_key/base_url/model 当作单条隐式模型。
- OpenaiAI 接入:__init__ 应用注册表 current 模型;新增
set_registry_model / list_registry_models / add_model / remove_model /
current_model_name。注意保留引擎原有的轻量 set_model(只改 model 名)
与 list_models(查 API /models 端点),新方法与它们不重名、互不干扰。
- 新增 /model 命令族(仅 openai 引擎):
/model 列出已配置模型(* 标记当前)
/model <名称> 切换当前模型并持久化
/model add 交互式录入(名称/base_url/api_key/model),回车即存并切换
/model rm <名称> 删除(删当前则回退到列表第一个)
- 启动横幅引擎名后显示当前模型;紧凑提示与 /help 速查表均补 /model 入口。
- 测试:新增 tests/test_model_registry.py(13 项,覆盖兼容/增删/切换/落盘/
引擎接入/CLI 路由,全程临时配置不污染真实 config.json)。
全量 230 passed(原 217 passed)。
交互实测:/model add → 已添加并切换到 gpt4o;/model gpt4o → 已切换;
/model rm gpt4o → 回退到 xophunyuan7bmt,配置结构与内容完好。
2026-08-05 16:12:35 +08:00
shuiyu67
3a86da7444
perf: 启动输出瘦身 + FC 能力探测缓存,修复测试套件失效
...
自用体验(同时以人类和被接入 AI 的视角)暴露出三个问题,一并处理:
1. 启动太吵:117 行 / 16983 字符的开屏,人还没开始用就先刷屏
- 完整 ASCII 开机动画改为 --logo / --banner 按需召唤,默认两行紧凑标识
- 21 行命令说明折叠成一行「/help 全部命令 · /quit 退出 · ...」,
完整速查表挪进 /help(新增 show_quick_commands)
- 插件/引擎/工具的逐条加载日志改走 vprint,由 --verbose / -v /
XCLI_VERBOSE=1 召唤;工具加载汇总成一行
- 日志控制台 handler 降到 WARNING(文件仍留全量 INFO),并静音
httpx/httpcore/urllib3 等第三方心跳日志
=> 默认启动 10 行 / 475 字符,--verbose 仍可看到全部 36 行细节
2. 不支持 FC 的模型每次会话都白撞一发 500
讯飞 xophunyuan7bmt 不支持 Function Calling,请求带 tools 字段必报
500 Invalid Params,虽有降级重试兜底,但每个新会话都要先错一次。
- 新增 xcli_core/fc_tools 能力缓存(按 base_url::model 落盘 .fc_support.json)
- 降级重试成功后记住该模型不支持 FC,后续直接不发 tools
- 降级也失败时不写缓存,避免把别的故障误判成 FC 问题
- 新增 /fc [reset] 查看与清除缓存
3. diff 弹窗模式每次启动都要重新问一遍
- 首次选择后经 config.json 持久化,新增 /diff [popup|inline] 随时切换
测试:
- 新增 tests/test_startup_and_fc.py(27 项,含假 HTTP 验证降级与缓存链路)
- 修复 tests/test_plugins.py 长期失效:插件入口类早已由 Plugin 改名 Liugin,
8 处 fixture 未跟进导致 65 个用例直接 error;断言也未适配 ToolResult 返回值
与「❌ 」错误前缀。改为 plugin_class() / as_text() / is_error() 语义判断。
- 全量:217 passed(此前 152 passed + 65 error + 27 failed)
2026-08-05 15:57:38 +08:00
shuiyu67
d2ac6896ad
perf: 删除工具执行前的 5 秒等待延迟
...
_execute_single_tool 原先在真正调用工具前跑 25 次 sleep(0.2) 的
spinner 倒计时(固定 5 秒),仅为提供 ESC 取消窗口,每次工具调用都要白等。
- 删除倒计时循环,改为执行前非阻塞排空键盘缓冲区检测 ESC(零等待):
若用户在此之前按过 ESC 仍会取消并记入历史,行为不变。
- 执行期间打印一行静态'正在执行: <工具> <参数>'提示,结束后清除。
- TUI 模式行为不变(原本就跳过延迟)。
- 测试: 12 项全过,单次工具调用耗时 5000ms → 0.5ms。
2026-08-05 11:05:06 +08:00
shuiyu67
a63b9d2f97
fix: 修复 'ToolResult' object has no attribute 'get'
...
根因: cli_tools.process_tool_call 在启用 UnifiedToolManager 时直接返回
ToolResult 对象,而 7 个调用点全部按 dict 用 result.get('result'),触发
AttributeError;FC 路径 _execute_tool_by_name 也可能把 ToolResult 透传出去,
后续 result[:5000] 会再炸 TypeError。
- tool_result.py: 新增 normalize_tool_text / normalize_tool_dict,
统一收敛 ToolResult / dict / str / None 三种历史返回形态。
- cli_tools.process_tool_call: 统一返回 dict(附带 success/error_code/
tool_result),回退 handler 路径同样归一。
- cli_core._execute_tool_by_name: handler / memory / scheduler 返回值
归一成 str,保证 FC 路径可安全切片。
- openai/ollama/manual 引擎、websocket_server、cli_clawli: 取工具结果改用
normalize_tool_text(带本地兜底实现,避免循环导入)。
- cli_clawli: 顺带修复只回传最后一个工具结果的 bug,改为汇总全部。
- 测试: 23 项全过;纯格式/讯飞 500 降级回归冒烟通过。
2026-08-05 10:54:39 +08:00
shuiyu67
dfc42d8583
fix(v8.0): openai 引擎改纯官方格式 + 讯飞 500 兼容 + <input> 向导
...
- openai_engine: 请求体严格纯官方 OpenAI /chat/completions 格式(tool 消息去 name、
tool_calls 重建、tools 统一 type=function);500(含 xunfei/Invalid Params)自动去掉
tools 降级重试;_friendly_error 友好提示;MODEL_CONTEXT_WINDOWS 补讯飞星火。
- ollama_engine/fc_tools/cli_core: tool 消息去 name。
- config.py resolve_input_value(<input> 语法);ollama max_token_k(默认 <input:...>);
launcher 向导加 max_token_k 步骤。
2026-08-05 00:26:02 +08:00
shuiyu
539c21be72
chore: relicense to MIT
2026-08-02 18:39:28 +08:00
shuiyu67
db9203687d
fix(v8.0): 启用真·全屏 textual TUI 并修复 opacity 崩溃
...
- 修复崩溃: tui.py MessageBubble.on_mount 用 self.animate('opacity'),但
textual>=8 的 Widget.opacity 为只读属性会抛 'has no setter',导致每条消息
气泡崩溃 -> 改 styles.animate 并兜底直接设置。
- run_tui 改为默认真·全屏 textual XiaoliTUI(上方滚动聊天区+底部固定输入框+侧栏),
rich 面板仅作 textual 不可用时的回退(此前默认的是顺序面板,被指出是'假TUI')。
- 版本统一 v8.0.0: 欢迎框 + /about 改用 VERSION 常量。
- 状态栏联动 token 感知: 显示 used/context_window 进度条(引擎支持时)。
- 新增 /snapshot(/screenshot) 命令: 导出当前屏幕 SVG 到 .tui_snapshots/live.svg,
让实时 TUI 也能被 AI 自验。
- 新增 tools/tui_real_snapshot.py: textual run_test+Pilot 无头驱动真实 TUI,
喂对话、断言 DOM(用户/工具成功失败/助手/状态栏/token条/欢迎版本),导出 SVG。
7 项断言全过。
- 注: launcher 启动会重写 plugins_config.py/requirements.txt(含 tkinter 等错误项),
提交前已还原,避免误提交漂移。
2026-08-01 10:30:42 +08:00
shuiyu67
79957eba0f
feat(v8.0): 基于 v5.4.1 重构立项 v8.0.0
...
- 版本立项: constants.VERSION=8.0.0,about.txt/README 同步。
- Rich 面板式 TUI (xcli_core/rich_tui.py): 默认 TUI 渲染器,rich 驱动;
核心创新=快照出口(Console(record=True) -> text/svg/html),AI 开发界面
时可把渲染读回自验,补上'看不见渲染'闭环。tools/tui_snapshot.py 无头生成
演示快照。run_tui 优先 RichTUI,textual 作为回退。
- Token 感知压缩: openai_engine 捕获 usage.prompt_tokens -> last_prompt_tokens,
新增 context_window()(模型名查表 MODEL_CONTEXT_WINDOWS + config 覆盖);
memory.should_compress 升级为 token 感知(used/context_window >= ratio 触发,
默认 0.7),消息数阈值兜底;cli_core.process_conversation 自动压缩并提示。
- 记忆模式增强: 保留 v5.4.1 的 MEMORY.md/日记/自动保存/AI 摘要压缩,新增
/compress 手动压缩 与 /memory mode <companion|work> 切换。
- requirements 加 rich;.gitignore 忽略 .tui_snapshots/。
v8.0.0
2026-08-01 09:28:39 +08:00
shuiyu1123
b8faaae0c6
release: v5.4.1
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 - 跨平台进程保护机制
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() 增加实例清理
v5.3.0
2026-05-08 18:07:55 +08:00
OpenClaw
115ce38370
docs: CHANGELOG 补充插件格式统一记录
2026-05-08 00:54:02 +08:00
OpenClaw
357cd0958f
refactor: 统一自研插件格式为 Liugin
...
18个插件: class Plugin -> class Liugin
10个插件: 测试块 Plugin() -> Liugin()
移除 ai_image.py 中多余的 Liugin = Plugin 别名
所有自研插件现统一使用 class Liugin 作为入口类名,
加载器保留 Plugin 兼容以支持第三方插件。
2026-05-08 00:52:25 +08:00
OpenClaw
bfefbef475
release: v5.2.0 - 插件内存管理 + TUI 修复
v5.2.0
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
OpenClaw Bot
af9fffc4a6
docs: rewrite README for Gitee compliance
2026-05-03 23:37:31 +08:00
OpenClaw Bot
7ada90ac27
Add project logo: anime-style face icon
2026-05-03 23:33:48 +08:00
xiaoli-cli bot
407ecc0f47
docs: README 添加插件仓库引用
...
- 插件列表章节添加 xiaoli-cli-plugins 链接
- 链接区添加插件仓库地址
2026-04-30 03:08:07 +08:00
shuiyu1123
78b74d1bb1
feat: 新增 7 个实用插件
...
- json_toolkit: JSON 工具箱(格式化/压缩/校验/路径查询/差异比较/Schema推断)
- snippet_manager: 代码片段管理器(保存/搜索/分类/标签/导入导出)
- regex_tester: 正则表达式测试器(匹配/提取/替换/解释/常用模式库/性能测试)
- id_generator: UUID/ID 生成器(UUID v1/v4/v5/NanoID/短ID/雪花ID/ULID/自定义模板)
- color_picker: 颜色工具(HEX/RGB/HSL/HSV/CMYK转换/WCAG对比度/调色板/色盲模拟)
- bookmark_manager: 书签管理器(分类/标签/搜索/导入导出/可访问性检查)
- markdown_tool: Markdown 工具(TOC/统计/表格生成/待办提取/语法检查/字数统计)
所有插件均支持 Plugin/Liugin 双协议和 MCP 定义。
2026-04-30 03:01:11 +08:00
xiaoli-cli bot
bef3fe560d
feat: 注册表添加 onebot 插件
2026-04-30 02:50:37 +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
03685ab5e7
fix: WebUI engine switch now updates UI and shows errors
2026-04-29 19:57:17 +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
8865084905
!4 chore: 清理仓库,删除不需要的文件
...
Merge pull request !4 from shuiyu1123/cleanup-v5.1.4
2026-04-29 10:36:31 +00:00
shuiyu1123
da9cfb6c9d
chore: 清理仓库,删除不需要的文件
...
删除内容:
- xiaoli-cli-v5.1.2.zip(旧版本构建产物)
- compare.html / webui-analysis.html(AI编程助手横评页面)
- scheduler_tasks.json(空运行时数据)
- skills/file-manager/scripts/test.txt / test_multi.txt(测试数据)
- .gitee/pipeline.yml / .github/workflows/ci.yml(CI配置)
2026-04-29 18:34:20 +08:00
shuiyu1123
f142e3bae8
删除文件 scheduler_tasks.json
2026-04-29 10:26:01 +00:00
shuiyu1123
e3b2d56686
删除文件 webui-analysis.html
2026-04-29 10:25:47 +00:00
shuiyu1123
aa37ec0e44
删除文件 compare.html
2026-04-29 10:25:33 +00:00
openclaw-bot
2bd8ca0fba
release: v5.1.4 — 桌面GUI自动化 + AI生图 + Web UI后端
...
- 新增 gui_auto 插件 (20 操作): Windows UIA 桌面元素识别与操控
- 新增 ai_image 插件: 基于 ai.2x.nz 自然语言生图
- 新增 webui_server.py: WebSocket 实时通信后端
- 重写 webui.html: 大厂设计感 WebSocket 交互界面
- 插件数: 17 → 19, 操作数: 141+ → 161+
- 测试数: 113 → 150+
- 更新 README/CHANGELOG/HELP
v5.1.4
2026-04-29 15:50:40 +08:00
shuiyu1123
530a255091
!3 feat: 新增桌面GUI自动化插件 (gui_auto) - Windows UIA 元素识别与操控
...
Merge pull request !3 from shuiyu1123/feature/gui-auto-plugin
2026-04-29 07:42:34 +00:00
openclaw-bot
e6fddf14f8
feat: 新增桌面GUI自动化插件 (gui_auto) - Windows UIA 元素识别与操控
...
- 新增 gui_auto 插件 (20 操作): 元素树获取、点击/输入/按键、窗口管理、元素查询、高亮闪烁
- 基于 Windows UI Automation API,支持模糊匹配、中文输入、ValuePattern 自动识别
- 完整 MCP/FC 定义,AI 可通过 Function Calling 直接调用
- 非 Windows 环境优雅降级
- 新增 30 个单元测试
- 更新 README/CHANGELOG/HELP
- 插件数: 17 → 18, 操作数: 141+ → 160+
2026-04-29 15:37:10 +08:00
shuiyu1123
a00396b4fd
!2 feat(webui): 重写 Web UI — WebSocket 后端 + 大厂设计感
...
Merge pull request !2 from shuiyu1123/feat/webui-v2
2026-04-29 07:16:16 +00:00
shuiyu1123
c2dfa284d1
!1 feat: 添加 AI 生图插件 (ai_image)
...
Merge pull request !1 from shuiyu1123/feature/ai-image-plugin
2026-04-29 07:15:47 +00:00
XiaoLi Contributor
614b081364
feat(webui): 重写 Web UI — WebSocket 后端 + 大厂设计感
...
- 新增 webui_server.py: WebSocket 后端,桥接小狸 AI 引擎
- WebSocket 实时通信(对话/工具调用/状态同步)
- HTTP 静态文件服务
- 引擎热切换、安全模式切换
- 延迟初始化,不阻塞启动
- 重写 webui.html: 纯静态前端,连接 WebSocket 后端
- 设计风格: Linear/Vercel 级别的暗色主题
- 真实 WebSocket 通信(非前端模拟)
- 对话/工具双视图
- 实时状态栏(引擎/安全模式)
- 代码高亮、打字动画、快速操作
- 响应式布局
用法:
python webui_server.py # 启动 (HTTP:8080, WS:8079)
python webui_server.py --port 3000 # 自定义端口
python webui_server.py --no-ai # 纯 UI 模式
2026-04-28 19:06:12 +08:00
OpenClaw
245413b2cd
release: v5.1.3 — 图像生成 + 记忆系统插件 + 横评页面
...
- 新增 image_generator 插件(ComfyUI 在线生图)
- 新增 memory_plugin 插件(包装记忆系统供 AI 调用)
- 新增 compare.html 7工具横评页面
- 更新 README.md 全面重写(MCP/Clawli/记忆/通知/定时任务)
- 更新 CHANGELOG.md 新增 v5.1.3 条目
- 更新 about.txt 版本号至 5.1.3
- 插件数: 15 → 17, 操作数: 141 → 141+
v5.1.3
2026-04-28 03:37:37 +08:00
OpenClaw
3fa1d56632
feat: 新增图像生成插件 + 记忆系统插件 + 7工具横评页面
...
- plugins/image_generator.py: 基于 ai.2x.nz ComfyUI 的图像生成插件
- 自然语言/Tag 双模式,支持中文描述
- WebSocket 实时进度,28 个角色工作流
- 分辨率可调(最大 1344x1344)
- plugins/memory_plugin.py: 包装 xcli_core/memory.py 的记忆插件
- AI 可写日记、读日记、搜索日记
- 全局搜索(MEMORY + 日记 + 聊天记录)
- 自动保存对话 + 上下文压缩
- 长期记忆 MEMORY.md 管理
- compare.html: 7 款 AI 编程助手横评页面
- Claude Code / Codex CLI / Gemini CLI / Aider / Copilot CLI / 小狸 / TG HELPER
- 25+ 维度功能对比 + 评分 + 场景推荐
- .gitignore: 排除运行时生成的记忆数据和图片
2026-04-28 03:13:53 +08:00