mateclaw/mateclaw-ui/src/components
MIST 65f6a8c6b2
fix(chat): 修复滚动回弹和切会话消息异常两处核心bug,附加三项优化 (#425)
Bug 1 — 滚动条/触控板上滚后自动弹回底部
- useStickToBottom.ts: handleScroll 在 isScrolling 期间检测用户上滚方向,
  上滚时立即取消程序化滚动并设 escapedFromLock

Bug 2 — 切回生成中的会话显示"失败"且出现重复空气泡
- ChatConsole.vue: normalizeMessage 加 preserveGeneratingStatus 参数
- ChatConsole.vue: selectConversation 根据 conv.streamStatus 决定是否保留 generating
- ChatConsole.vue: 本地 reconnectStream 移除 isGenerating guard
- useChat.ts: reconnectStream guard 收窄为同会话+正在生成才跳过
- useChat.ts: reconnectStream 复用现有 generating/awaiting_approval 消息

优化1 — hydrateStateFromRoute 路径传 preserveGeneratingStatus=true
优化2 — useStickToBottom 新增 resetLock,MessageList defineExpose,
       selectConversation 切走时调用,避免上滚锁跨会话泄漏
优化3 — reconnect 复用 existingAsst 时清空 contentParts/segments,
       补充 _turnId 确保 flushSegmentsToMessage 正常写入
2026-06-26 16:55:17 +08:00
..
agent feat(agent): one-sentence AI employee creation wizard 2026-06-17 17:38:42 +08:00
agents fix(plans): scrub injected context from persisted plan goal (#402) 2026-06-22 17:54:27 +08:00
channels fix(channels): don't gate webchat creation on auto-generated API Key 2026-06-17 23:21:08 +08:00
chat fix(chat): 修复滚动回弹和切会话消息异常两处核心bug,附加三项优化 (#425) 2026-06-26 16:55:17 +08:00
common fix(llm): show all enabled chat models in multimodal sidecar selector 2026-06-09 10:30:37 +08:00
dashboard refactor(dashboard): componentize operational export, restore DB chip, polish export dialog 2026-06-24 18:38:01 +08:00
goal feat(goal): checklist UI — progress ring, hover checklist card, criteria SSE 2026-06-03 21:19:27 +08:00
live feat(plans): Kanban boards in the Agents workspace 2026-06-20 17:52:29 +08:00
skill feat(skill): SkillMarket lifecycle UI + curator control panel 2026-05-19 09:56:08 +08:00
workflow feat(scheduler): unify cron jobs and triggers into a tabbed Scheduler page 2026-05-19 21:23:18 +08:00
workspace fix(workspace): keep workspace ids as strings so a switch survives reload 2026-05-19 20:06:56 +08:00
ChangePasswordDialog.vue fix(workspace): keep workspace ids as strings so a switch survives reload 2026-05-19 20:06:56 +08:00