Skip to content

feat: 添加会话显示模式切换功能#97

Open
Jacky-li-li-li wants to merge 9 commits intoErlichLiu:mainfrom
Jacky-li-li-li:main
Open

feat: 添加会话显示模式切换功能#97
Jacky-li-li-li wants to merge 9 commits intoErlichLiu:mainfrom
Jacky-li-li-li:main

Conversation

@Jacky-li-li-li
Copy link

功能介绍

添加会话显示模式切换功能,支持两种消息布局模式:

1. 左对齐模式(默认)

  • 所有消息(用户和 AI)都左对齐显示

2. 左右分布模式

  • 用户消息右对齐(类似微信/QQ)
  • AI 消息左对齐
  • 用户消息气泡自适应内容宽度

主要改动

  • 类型定义: 添加 +ChatMessageLayout+ 类型(`'left-aligned' | 'left-right'+)
  • 状态管理: 新增 +chatMessageLayoutAtom+ 和 +useChatLayout+ Hook
  • Chat 模式: +ChatMessageItem+、+ChatMessages+ 支持布局切换
  • Agent 模式: +AgentMessages+ 支持布局切换
  • 设置界面: 卡片式布局选择器,带预览图
  • 持久化: 设置自动保存到 +~/.proma/settings.json+

截图

设置界面提供直观的卡片式选择器:

  • 预览图展示两种布局的区别
  • 圆形选择框 + 模式名称 + 描述文字
  • 点击卡片即可切换

测试

  • Chat 模式下切换布局实时生效
  • Agent 模式下切换布局实时生效
  • 设置持久化保存
  • 并排模式下强制左对齐
  • 用户消息自适应宽度

Closes #issue_number

Jacky-li-li-li and others added 9 commits March 10, 2026 02:06
- 支持左对齐和左右分布两种消息布局模式
- Chat 模式和 Agent 模式均支持该功能
- 在通用设置中添加卡片式布局选择器,带预览图
- 用户消息气泡自适应内容宽度
- 设置持久化保存到 ~/.proma/settings.json
- 新增 useChatLayout 和 useAgentLayout Hooks 统一管理布局样式
- 简化 ChatMessageItem 中的复杂条件判断
- 简化 AgentMessages 中的布局逻辑
- 移除 ChatMessages 中未使用的导入和变量
- 提高代码可读性和可维护性
- 在外观设置中添加消息气泡颜色配置
- 支持自定义用户消息和 AI 消息的气泡背景色
- 提供颜色选择器和预设颜色快速选择
- 支持恢复默认颜色
- 颜色设置持久化到 settings.json
- 使用 CSS 变量实现即时预览效果
- Agent 功能增强和 UI 改进
- SidePanel 侧边栏重构
- 文件浏览器功能完善(拖拽、提及、文件树)
- Shiki 代码高亮服务优化
- 代码块组件改进
- 富文本输入组件增强
- 标签栏优化
- 更新版本号:
  - @proma/shared: 0.1.14 -> 0.1.15
  - @proma/core: 0.2.2 -> 0.2.3
  - @proma/ui: 0.1.3 -> 0.1.4
- 新增 DELETE_WORKSPACE_FILES IPC 通道
- 新增 deleteWorkspaceFilesDirectory 函数清空上传文件目录
- SidePanel 工作区文件模块支持删除功能:
  - 展开"上传文件"目录后可删除单个文件
  - 悬停"上传文件"根目录显示删除按钮,可清空整个目录

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 添加 lastActiveChatTabIdAtom 和 lastActiveAgentTabIdAtom 追踪最近活跃的 Tab
- ModeSwitcher 切换模式时自动聚焦对应模式的最近 Tab
- LeftSidebar 打开/选择会话时更新 lastActive Tab

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant