diff --git a/mateclaw-ui/src/components/chat/MessageBubble.vue b/mateclaw-ui/src/components/chat/MessageBubble.vue
index ca0bb37a..98ecc323 100644
--- a/mateclaw-ui/src/components/chat/MessageBubble.vue
+++ b/mateclaw-ui/src/components/chat/MessageBubble.vue
@@ -124,8 +124,16 @@
class="msg-content"
:class="{ 'with-cursor': showCursor }"
>
-
-
+
+
+
+
+
+
@@ -272,6 +280,7 @@ import ToolCallSegment from './ToolCallSegment.vue'
import ThinkingSegment from './ThinkingSegment.vue'
import ContentSegment from './ContentSegment.vue'
import PlanStepsPanel from './PlanStepsPanel.vue'
+import UserMessageContent from './UserMessageContent.vue'
import type { BrowserAction } from './BrowserTimeline.vue'
import type { Message, MessageSegment, ChatAttachment, ToolCallMeta, PlanMeta } from '@/types'
import type { ChatErrorInfo } from '@/types/chatError'
diff --git a/mateclaw-ui/src/components/chat/UserMessageContent.vue b/mateclaw-ui/src/components/chat/UserMessageContent.vue
new file mode 100644
index 00000000..afd802da
--- /dev/null
+++ b/mateclaw-ui/src/components/chat/UserMessageContent.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
{{ displayText }}
+
+
+
+
+
+
diff --git a/mateclaw-ui/src/i18n/locales/en-US.ts b/mateclaw-ui/src/i18n/locales/en-US.ts
index cba50482..e0a5da74 100644
--- a/mateclaw-ui/src/i18n/locales/en-US.ts
+++ b/mateclaw-ui/src/i18n/locales/en-US.ts
@@ -53,6 +53,8 @@ export default {
thinkingInProgress: 'Thinking...',
stopped: 'Generation stopped',
interrupted: 'Interrupted',
+ expandLines: 'Show more ({hidden} more lines)',
+ collapse: 'Show less',
failed: 'Generation failed',
compressionSummary: 'Previous conversations summarized',
compressionWithCount: '{count} previous messages summarized',
diff --git a/mateclaw-ui/src/i18n/locales/zh-CN.ts b/mateclaw-ui/src/i18n/locales/zh-CN.ts
index b553c15a..07f13689 100644
--- a/mateclaw-ui/src/i18n/locales/zh-CN.ts
+++ b/mateclaw-ui/src/i18n/locales/zh-CN.ts
@@ -53,6 +53,8 @@ export default {
thinkingInProgress: '思考中...',
stopped: '已停止生成',
interrupted: '已中断',
+ expandLines: '展开(还有 {hidden} 行)',
+ collapse: '收起',
failed: '生成失败',
compressionSummary: '之前的对话已整理为摘要',
compressionWithCount: '之前的 {count} 条对话已整理为摘要',