Skip to content

[feature-web] Warp Block 风格统一聊天界面 #69

@hrygo

Description

@hrygo

问题描述

当前 AI 聊天界面在 Geek/Evolution 模式下,tool call 满面板与消息气泡割裂,且 tool call 面板自身也割裂。具体表现:

  1. InlineToolCall - 简单徽章在气泡内
  2. ToolResults - 完整输出卡片在气泡外
  3. SessionSummary - 独立面板
  4. GenerativeUIContainer - 又一个独立区域

这导致用户需要四处滚动查看完整对话上下文。

解决方案

采用 Warp 的 Block 设计理念,将每个用户输入 + AI 回复封装为一个统一的 UnifiedMessageBlock

功能范围

包含

  • UnifiedMessageBlock 组件(用户消息 + AI 响应统一容器)
  • 可折叠/展开功能(新 Block 默认展开,历史 Block 默认折叠)
  • 保留所有现有交互(复制/删除/错误标识)
  • 适配三种 Parrot 主题(Normal/Geek/Evolution)

不包含(未来迭代):

  • Block 导出/分享
  • Block 级别的搜索/导航

技术方案

前端组件

web/src/components/AIChat/
├── UnifiedMessageBlock.tsx        # 主容器组件
├── BlockHeader.tsx                # 头部
├── BlockCollapsibleBody.tsx       # 主体(可折叠)
├── BlockActions.tsx               # 操作栏
└── useBlockState.ts               # 状态管理 Hook

主题适配

模式 边框色 状态指示
Normal border-zinc-200/300 灰色
Geek border-green-500/30 绿色
Evolution border-purple-500/30 紫色

折叠策略

  • 新 Block(流式中)→ 展开
  • 最新 Block(刚完成)→ 展开
  • 历史 Block(非最新)→ 折叠

参考资源

复杂度

  • 工作量: 2-3 人周
  • 风险: 中等(流式更新性能)
  • 依赖: 无

验收标准

  • make check-all 通过
  • 新建 UnifiedMessageBlock 组件
  • 支持三种 Parrot 主题适配
  • 新 Block 默认展开,历史 Block 默认折叠
  • 保留所有现有交互功能
  • 更新 docs/dev-guides/FRONTEND.md

调研时间: 2026-02-04 | 调研版本: v1.0

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions