From 038fbe24c891dfeaf6d6eb8cd8a98697add324de Mon Sep 17 00:00:00 2001 From: OpenClaw Date: Fri, 8 May 2026 00:24:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(tui):=20=E4=BF=AE=E5=A4=8Dset=5Ftimer(0)?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84ZeroDivisionError?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _render_welcome_animated中delay=i*0.1在i=0时为0.0, Textual 8.x的set_timer(0,...)内部interval为0导致除零崩溃。 使用max(0.01, delay)确保最小延迟。 --- xcli_core/tui.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xcli_core/tui.py b/xcli_core/tui.py index 5a6494e..0238374 100644 --- a/xcli_core/tui.py +++ b/xcli_core/tui.py @@ -509,12 +509,12 @@ if TEXTUAL_AVAILABLE: widget = Static(line, classes=cls) scroll.mount(widget) - # 延迟显示每一行 - delay = i * 0.1 + # 延迟显示每一行(避免 delay=0 导致 Textual 除零错误) + delay = max(0.01, i * 0.1) self.set_timer(delay, lambda w=widget: w.add_class("visible")) # 最后滚动到底部 - self.set_timer(len(welcome_lines) * 0.1 + 0.1, + self.set_timer(max(0.01, len(welcome_lines) * 0.1 + 0.1), lambda: scroll.scroll_end(animate=True, duration=0.3)) def _render_welcome(self):