openclaw - ✅(Solved) Fix Control UI webchat: read tool output not rendered + exec output text clipped [4 pull requests, 3 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#77054Fetched 2026-05-05 05:53:00
View on GitHub
Comments
3
Participants
3
Timeline
11
Reactions
2
Timeline (top)
cross-referenced ×4commented ×3labeled ×2closed ×1

两个渲染 bug 导致 webchat 中文件内容无法正常查看:

Bug 1: read 工具输出完全不渲染 Bug 2: exec 输出长行被 CSS 视觉截断

Root Cause

两个渲染 bug 导致 webchat 中文件内容无法正常查看:

Bug 1: read 工具输出完全不渲染 Bug 2: exec 输出长行被 CSS 视觉截断

Fix Action

Fixed

PR fix notes

PR #77076: fix(webchat): render read tool output and fix exec output overflow + migrateLinearTranscript idempotent

Description (problem / solution / changelog)

Summary

This PR contains two fixes:

Fix 1: WebChat session transcript overwritten every turn (fixes #77012)

Makes migrateLinearTranscriptToParentLinked idempotent by collecting existing IDs before processing.

Fix 2: Control UI webchat tool output issues (fixes #77054)

Bug 1 - read tool output not rendered:

  • extractToolText() in tool-cards.ts only handled item.text and item.content as strings
  • Modern tool results have item.content as array: [{ type: 'text', text: '...' }]
  • Added array content block handling to extract text from nested blocks

Bug 2 - exec output text clipped:

  • .chat-tool-card had overflow:hidden which clipped long content when max-height exceeded
  • Changed to overflow:auto to allow scrolling

Files Changed

  • ui/src/ui/chat/tool-cards.ts - extractToolText array handling
  • ui/src/styles/chat/tool-cards.css - overflow:hidden to overflow:auto
  • ui/src/ui/chat/tool-cards.test.ts - new tests

Changed files

  • extensions/telegram/src/probe.test.ts (modified, +72/-0)
  • extensions/telegram/src/probe.ts (modified, +11/-2)
  • src/config/sessions/transcript-append.ts (modified, +29/-2)
  • src/config/types.telegram.ts (modified, +8/-0)
  • src/config/zod-schema.providers-core.ts (modified, +9/-0)
  • src/context-engine/registry.ts (modified, +43/-0)
  • src/plugins/loader.ts (modified, +8/-0)
  • ui/src/styles/chat/tool-cards.css (modified, +1/-1)
  • ui/src/ui/chat/tool-cards.test.ts (modified, +42/-1)
  • ui/src/ui/chat/tool-cards.ts (modified, +18/-0)

PR #77091: fix(telegram): add httpTimeoutMs config for health probe timeout control (fixes #77060)

Description (problem / solution / changelog)

Fixes #77060 - Control UI menus freezing due to Telegram blocking health probe

Changed files

  • extensions/telegram/src/probe.test.ts (modified, +72/-0)
  • extensions/telegram/src/probe.ts (modified, +11/-2)
  • src/config/sessions/transcript-append.ts (modified, +29/-2)
  • src/config/types.telegram.ts (modified, +8/-0)
  • src/config/zod-schema.providers-core.ts (modified, +9/-0)
  • src/context-engine/registry.ts (modified, +43/-0)
  • src/plugins/loader.ts (modified, +8/-0)
  • ui/src/styles/chat/tool-cards.css (modified, +1/-1)
  • ui/src/ui/chat/tool-cards.test.ts (modified, +42/-1)
  • ui/src/ui/chat/tool-cards.ts (modified, +18/-0)

PR #77092: fix: persist and restore registered context engines in plugin cache (fixes #77063)

Description (problem / solution / changelog)

Fixes #77063 - lossless-claw selected and enabled but not registered as context engine

Root cause: When a cached plugin registry is reused, context engines registered by plugins (like lossless-claw) are lost because the cached state restoration did not restore registered context engines.

Changes:

  • src/context-engine/registry.ts: Add RegisteredContextEngineEntry type, listRegisteredContextEngines(), and restoreRegisteredContextEngines() functions
  • src/plugins/loader.ts: Add contextEngines field to CachedPluginState, restore context engines when using cached state, and save contextEngines to cache

Changed files

  • extensions/telegram/src/probe.test.ts (modified, +72/-0)
  • extensions/telegram/src/probe.ts (modified, +11/-2)
  • src/config/sessions/transcript-append.ts (modified, +29/-2)
  • src/config/types.telegram.ts (modified, +8/-0)
  • src/config/zod-schema.providers-core.ts (modified, +9/-0)
  • src/context-engine/registry.ts (modified, +43/-0)
  • src/plugins/loader.ts (modified, +8/-0)
  • ui/src/styles/chat/tool-cards.css (modified, +1/-1)
  • ui/src/ui/chat/tool-cards.test.ts (modified, +42/-1)
  • ui/src/ui/chat/tool-cards.ts (modified, +18/-0)

PR #77099: fix: replace extensions with runtimeExtensions in npm package manifest

Description (problem / solution / changelog)

  • fix(telegram): add httpTimeoutMs config for health probe timeout control
  • fix: make migrateLinearTranscriptToParentLinked idempotent
  • fix(webchat): render read tool output and fix exec output overflow
  • fix: persist and restore registered context engines in plugin cache
  • fix: replace extensions with runtimeExtensions in npm package manifest

Changed files

  • extensions/telegram/src/probe.test.ts (modified, +72/-0)
  • extensions/telegram/src/probe.ts (modified, +11/-2)
  • scripts/lib/plugin-npm-package-manifest.mjs (modified, +2/-0)
  • src/config/sessions/transcript-append.ts (modified, +29/-2)
  • src/config/types.telegram.ts (modified, +8/-0)
  • src/config/zod-schema.providers-core.ts (modified, +9/-0)
  • src/context-engine/registry.ts (modified, +43/-0)
  • src/plugins/loader.ts (modified, +8/-0)
  • test/plugin-npm-package-manifest.test.ts (modified, +2/-1)
  • ui/src/styles/chat/tool-cards.css (modified, +1/-1)
  • ui/src/ui/chat/tool-cards.test.ts (modified, +42/-1)
  • ui/src/ui/chat/tool-cards.ts (modified, +18/-0)
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

两个渲染 bug 导致 webchat 中文件内容无法正常查看:

Bug 1: read 工具输出完全不渲染 Bug 2: exec 输出长行被 CSS 视觉截断

Steps to reproduce

Bug 1:

  1. 在 webchat Control UI 中让 assistant 读取一个本地 .md 文件
  2. Assistant 调用 read 工具
  3. 查看聊天界面 → read 的输出区域完全空白

Bug 2:

  1. 让 assistant 用 exec cat 读取同一文件
  2. 查看 exec 输出区域
  3. 长文本行(如表格行)在右端被截断,无法查看完整内容

Expected behavior

Bug 1: read 工具的输出应和 exec 输出一样正常渲染可见 Bug 2: 工具输出区域应支持水平滚动或自动换行,长行不被视觉裁剪

Actual behavior

Bug 1: read 输出区域完全空白,用户看不到任何文件内容 Bug 2: 长行被 overflow 隐藏,只显示前几个字,如"修复所有bug、适配微信小程序审核规则,可直接提交上线"只显示为"修bug、适配审核"

OpenClaw version

OpenClaw 2026.5.2

Operating system

macOS Darwin 25.3.0 (arm64)

Install method

No response

Model

deepseek

Provider / routing chain

Gateway (local)

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

The most likely fix involves adjusting the CSS styling for the output areas of the read and exec tools to properly render and display file contents without truncation.

Guidance

  • Verify the CSS rules applied to the output areas of both read and exec tools to identify any overflow or width limitations that might be causing the truncation.
  • Check for any differences in how the output of read and exec tools is rendered, focusing on potential CSS class differences or inline styles that could affect visibility and overflow behavior.
  • Consider adding overflow-x: auto or word-wrap: break-word to the CSS for the output areas to enable horizontal scrolling or line breaking for long lines.
  • Inspect the HTML structure of the output areas to ensure there are no nested elements with conflicting styles that could override intended CSS rules.

Example

.output-area {
  overflow-x: auto; /* Enables horizontal scrolling */
  word-wrap: break-word; /* Breaks long words to new lines */
}

Notes

The provided information does not include specific CSS or HTML code, so the suggestions are based on common issues related to text truncation and overflow in web development.

Recommendation

Apply a workaround by adjusting the CSS to enable proper rendering and scrolling of the output areas, as the root cause seems to be related to styling rather than a version-specific bug.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

Bug 1: read 工具的输出应和 exec 输出一样正常渲染可见 Bug 2: 工具输出区域应支持水平滚动或自动换行,长行不被视觉裁剪

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix Control UI webchat: read tool output not rendered + exec output text clipped [4 pull requests, 3 comments, 3 participants]