diff --git a/ui/src/conversation-panel/index.scss b/ui/src/conversation-panel/index.scss
index d5a034010b3..0f757916f70 100644
--- a/ui/src/conversation-panel/index.scss
+++ b/ui/src/conversation-panel/index.scss
@@ -13,6 +13,13 @@
width: 50px;
}
+/* 对话正文:消息列表与底部输入区共用宽度和居中布局。 */
+.mk-conversation-content {
+ margin-inline: auto;
+ max-width: 800px;
+ width: 100%;
+}
+
/* 对话左右两侧 */
.mk-conversation-side-panel {
/* 固定侧栏内容宽度,避免展开和收起时内容变形。 */
diff --git a/ui/src/conversation-panel/left-sidebar/conversation-list/index.ts b/ui/src/conversation-panel/left-sidebar/conversation-list/index.ts
index ca24b483447..24a9ab41276 100644
--- a/ui/src/conversation-panel/left-sidebar/conversation-list/index.ts
+++ b/ui/src/conversation-panel/left-sidebar/conversation-list/index.ts
@@ -1,5 +1,5 @@
import { computed, inject, ref, type InjectionKey, type Ref } from 'vue'
-import { v4 as uuidv4 } from 'uuid'
+import { v7 as uuidv7 } from 'uuid'
import type { Conversation, ConversationAccount, ConversationAppInfo } from '../../core/types'
// 由 Chat / Debug 入口注入本组件需要的会话接口。
@@ -62,7 +62,7 @@ export function createConversationListStore(deps: ConversationListDeps) {
// 仅在需要时生成会话 ID,保证上传文件的 source_id 与发送消息使用同一 ID。
const getChatId = () => {
if (currentChatId.value) return currentChatId.value
- currentChatId.value = uuidv4()
+ currentChatId.value = uuidv7()
return currentChatId.value
}
diff --git a/ui/src/conversation-panel/main/chat-panel/index.vue b/ui/src/conversation-panel/main/chat-panel/index.vue
index b75e80ba13f..b1fcb2b3a44 100644
--- a/ui/src/conversation-panel/main/chat-panel/index.vue
+++ b/ui/src/conversation-panel/main/chat-panel/index.vue
@@ -22,12 +22,8 @@ const handleDrop = (e: DragEvent) => input.addFiles(e.dataTransfer?.files)
-
-
+
-
-
-
-
+
diff --git a/ui/src/styles/STYLE_README.md b/ui/src/styles/STYLE_README.md
index eb50da7b7a1..edd148a583d 100644
--- a/ui/src/styles/STYLE_README.md
+++ b/ui/src/styles/STYLE_README.md
@@ -38,6 +38,9 @@ Element Plus 覆盖、主题变量和应用样式。Chat 入口还显式引入 E
当前 `overflow: hidden` 已允许面板在 Flex 主轴上收缩,无需重复设置 `min-width: 0`;
也不额外设置 `min-height: 0`、`height: 100%` 或 `max-height: 100%`,消息列表负责内部滚动。
+消息列表与底部输入区可共用 `mk-conversation-content`,在对话模块公共样式中统一设置
+宽度 100%、最大宽度 800px 和水平居中。
+
用户提问容器使用 `mk-conversation-question-content`,在对话模块公共样式中控制靠右、
随内容收缩及最大 85% 宽度。文字气泡使用 `mk-gray-card-lg`,换行规则在模板中组合工具类。
提问附件参考输入区的卡片外观,通过 Flex 按容器宽度自动换行并靠右排列;已发送附件不展示
diff --git a/ui/src/views/chat/login/index.vue b/ui/src/views/chat/login/index.vue
index 7db2690df7d..13d24e048e4 100644
--- a/ui/src/views/chat/login/index.vue
+++ b/ui/src/views/chat/login/index.vue
@@ -1,7 +1,7 @@