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可用性检查导入列表
This commit is contained in:
OpenClaw committed 2026-05-08 00:17:36 +08:00
1 parent af9fffc4a6
commit fe79f0e5d4
2 files changed
+10 -8

No files matched your search

+9 -7
View File
@@ -143,10 +143,11 @@ if TEXTUAL_AVAILABLE:
}}
#sidebar.hidden {{
display: none;
width: 0;
min-width: 0;
opacity: 0;
border: none;
overflow: hidden;
}}
.sidebar-header {{
@@ -845,11 +846,11 @@ if TEXTUAL_AVAILABLE:
self.call_after_refresh(self._update_sidebar)
def _write_raw(self, msg):
if '' in msg or 'OK 工具' in msg:
if '✅' in msg or 'OK 工具' in msg:
self._add(f" {msg}", "msg-tool-ok")
elif '' in msg or 'X 工具' in msg or '错误' in msg:
elif '❌' in msg or 'X 工具' in msg or '错误' in msg:
self._add(f" {msg}", "msg-tool-err")
elif '' in msg:
elif '🤖' in msg:
self._add(f" {msg}", "msg-ai")
elif '工具' in msg and ('调用' in msg or '执行' in msg):
self._add(f" {msg}", "msg-tool-ok")
@@ -870,12 +871,13 @@ if TEXTUAL_AVAILABLE:
def action_toggle_sidebar(self):
sidebar = self.query_one("#sidebar")
sidebar.visible = not sidebar.visible
# 动画:侧栏切换时平滑过渡
if sidebar.visible:
# 通过 CSS 类控制侧栏显隐
if sidebar.has_class("hidden"):
sidebar.remove_class("hidden")
self.sidebar_visible = True
else:
sidebar.add_class("hidden")
self.sidebar_visible = False
def action_cancel(self):
if self.is_generating: