feat: ship native boss android console
This commit is contained in:
853
docs/source-material/wechat_project_conversation_mapping_cn.md
Normal file
853
docs/source-material/wechat_project_conversation_mapping_cn.md
Normal file
@@ -0,0 +1,853 @@
|
||||
# 微信式项目会话与聊天页规格
|
||||
|
||||
这份文档用于冻结“第一屏 = 微信式会话列表”的产品逻辑,避免后续开发时又回到“移动控制台首页”的方向。
|
||||
|
||||
视觉对标:
|
||||
|
||||
- 微信 iPhone 版会话列表页的核心结构
|
||||
- 官方来源:[微信 App Store 页面](https://apps.apple.com/cn/app/id414478124)
|
||||
|
||||
适用范围:
|
||||
|
||||
- 手机 App 第一屏
|
||||
- 设备页(对应微信通讯录位置)
|
||||
- 我的页(对应微信“我”)
|
||||
- 项目聊天页
|
||||
- 主 Agent 置顶会话
|
||||
- 项目会话列表
|
||||
- 设备头像 / 协作群聊头像
|
||||
- 手动置顶
|
||||
- 项目目标
|
||||
- 版本迭代记录
|
||||
- 图片 / 视频 / 语音输入
|
||||
- 消息转发
|
||||
|
||||
---
|
||||
|
||||
## 1. 首页定位
|
||||
|
||||
首页不是“主 Agent 聊天正文页”。
|
||||
|
||||
首页应该是:
|
||||
|
||||
- 一个微信式的会话列表页
|
||||
- 列表中的每一条会话都代表一个“项目对话”
|
||||
- 列表顶部固定一条 `主 Agent` 会话
|
||||
- 用户点击任意一条会话,再进入该项目的具体对话页
|
||||
|
||||
一句话定义:
|
||||
|
||||
`第一屏 = 主 Agent 总会话 + 各项目会话列表`
|
||||
|
||||
底部导航要求:
|
||||
|
||||
- 第一项:`会话`
|
||||
- 第二项:`设备`
|
||||
- 第三项:`我的`
|
||||
- 呈现方式:微信式扁平底栏,`图标在上 / 文案在下 / 激活项使用微信绿`
|
||||
|
||||
其中第二项 `设备` 对应微信中的“通讯录”位置。
|
||||
第三项 `我的` 对应微信中的“我”。
|
||||
项目入口不再占据底部一级导航,而是从 `会话` 首页进入。
|
||||
|
||||
---
|
||||
|
||||
## 2. 项目会话与设备项目文件夹的映射规则
|
||||
|
||||
每一个项目会话必须和设备端 GUI 界面里的项目文件夹一一对应。
|
||||
|
||||
映射规则如下:
|
||||
|
||||
1. 每台接入设备启动 `worker-daemon` 后,扫描并注册本机可见项目根目录。
|
||||
2. 每个项目目录生成稳定的 `project_folder_key`。
|
||||
3. 云端控制面把同名或同一仓库来源的文件夹,映射到同一个 `project_id`。
|
||||
4. 主 Agent 不直接生成“虚拟项目名”,而是基于 `project_id` 做汇总。
|
||||
5. 首页列表展示的项目会话标题,优先使用:
|
||||
- 项目显式别名
|
||||
- 仓库名 / 文件夹名
|
||||
- 最后回退到 `project_id`
|
||||
|
||||
必须满足:
|
||||
|
||||
- 一个项目会话能追溯到具体设备上的具体文件夹
|
||||
- 进入项目详情时,能看到这个项目当前挂在哪些设备上
|
||||
|
||||
---
|
||||
|
||||
## 3. 会话列表项类型
|
||||
|
||||
首页列表至少包含 3 类会话项:
|
||||
|
||||
### 3.1 主 Agent 会话
|
||||
|
||||
规则:
|
||||
|
||||
- 永远固定在最上面
|
||||
- 永远视为置顶
|
||||
- 不允许取消置顶
|
||||
- 头像使用独立主 Agent 头像
|
||||
- 最新摘要由主 Agent 汇总生成
|
||||
|
||||
展示字段:
|
||||
|
||||
- 标题:`主 Agent`
|
||||
- 摘要:项目汇总、风险提醒、待确认事项
|
||||
- 时间:主 Agent 最后一次完成汇总的时间
|
||||
- 标签:`置顶`
|
||||
|
||||
### 3.2 单设备项目会话
|
||||
|
||||
规则:
|
||||
|
||||
- 一个项目当前只由一台设备执行
|
||||
- 列表头像使用该设备独立头像
|
||||
- 摘要使用该设备最近一次返回给主控的有效摘要
|
||||
|
||||
展示字段:
|
||||
|
||||
- 标题:项目名
|
||||
- 摘要:`设备名 + 最新一句摘要`
|
||||
- 右侧第一行:若已置顶则显示 `置顶`,未置顶留白
|
||||
- 右侧第二行:该设备对这个项目的最后回传时间
|
||||
- 右侧第三行:背景信息窗口余量指示器(圆环进度标记 + 百分比)
|
||||
|
||||
### 3.3 多设备协作项目会话
|
||||
|
||||
规则:
|
||||
|
||||
- 一个项目已经进入多设备协作
|
||||
- 列表头像使用“组合头像”
|
||||
- 逻辑上等价于微信中的群聊
|
||||
|
||||
展示字段:
|
||||
|
||||
- 标题:项目名
|
||||
- 摘要:`设备A + 设备B + 最新一句协作摘要`
|
||||
- 右侧第一行:留白,除非用户手动置顶
|
||||
- 右侧第二行:参与设备中最后一次回传时间的最大值
|
||||
- 右侧第三行:不显示剩余使用量
|
||||
|
||||
---
|
||||
|
||||
## 4. 头像规则
|
||||
|
||||
### 4.1 单设备头像
|
||||
|
||||
每台设备必须有自己独立头像。
|
||||
|
||||
建议最小字段:
|
||||
|
||||
- `device_id`
|
||||
- `device_name`
|
||||
- `device_type`
|
||||
- `avatar_mode`
|
||||
- `avatar_color`
|
||||
- `avatar_label`
|
||||
- `avatar_asset_url`
|
||||
|
||||
优先级:
|
||||
|
||||
1. 设备自定义头像
|
||||
2. 系统生成头像
|
||||
3. 文本缩写头像
|
||||
|
||||
建议默认缩写:
|
||||
|
||||
- `Mac Studio` -> `M`
|
||||
- `Windows GPU` -> `W`
|
||||
- `Cloud Worker` -> `C`
|
||||
|
||||
### 4.2 群聊式组合头像
|
||||
|
||||
当项目由多台设备协作时:
|
||||
|
||||
- 使用组合头像
|
||||
- MVP 阶段支持 2 设备叠放头像
|
||||
- 后续可扩展到 3~4 设备拼接头像
|
||||
|
||||
组合规则:
|
||||
|
||||
- 2 设备:左右叠放
|
||||
- 3 设备:主头像 + 右上 / 右下
|
||||
- 超过 3 台时:显示 2~3 个头像 + `+N`
|
||||
|
||||
排序规则:
|
||||
|
||||
- 优先主执行设备
|
||||
- 再按最近活跃度排序
|
||||
|
||||
---
|
||||
|
||||
## 5. 列表排序规则
|
||||
|
||||
首页排序不能只是项目创建时间排序。
|
||||
|
||||
排序必须按以下优先级:
|
||||
|
||||
1. `主 Agent` 会话,永远第一
|
||||
2. 用户手动置顶的项目会话
|
||||
3. 未置顶项目,按 `latest_reply_at DESC`
|
||||
|
||||
其中:
|
||||
|
||||
- `latest_reply_at` = 该项目参与设备最后一次有效回传时间的最大值
|
||||
- “有效回传”包括:
|
||||
- 线程摘要
|
||||
- 审计结论
|
||||
- 运维修复结果
|
||||
- 关键错误 / 告警事件
|
||||
|
||||
不应计入:
|
||||
|
||||
- 心跳包
|
||||
- 纯监控噪声日志
|
||||
- 无内容变化的重复状态刷新
|
||||
|
||||
---
|
||||
|
||||
## 6. 手动置顶规则
|
||||
|
||||
首页必须支持长按会话条置顶。
|
||||
|
||||
交互规则:
|
||||
|
||||
- 长按普通项目会话 -> 弹出操作菜单
|
||||
- 菜单包含:
|
||||
- `置顶`
|
||||
- `取消置顶`
|
||||
- `标记已读`
|
||||
- `查看项目详情`
|
||||
|
||||
排序规则:
|
||||
|
||||
- 主 Agent 永远第一
|
||||
- 用户置顶项目在主 Agent 之后
|
||||
- 多个置顶项目按最近消息时间排序
|
||||
|
||||
注意:
|
||||
|
||||
- 主 Agent 不允许取消置顶
|
||||
- 系统需要记录 `manual_pinned = true/false`
|
||||
|
||||
---
|
||||
|
||||
## 7. 首页列表项最小展示字段
|
||||
|
||||
每一条项目会话至少要有:
|
||||
|
||||
- `conversation_id`
|
||||
- `conversation_type`
|
||||
- `project_id`
|
||||
- `project_title`
|
||||
- `avatar_render_model`
|
||||
- `latest_summary`
|
||||
- `latest_reply_at`
|
||||
- `manual_pinned`
|
||||
- `context_budget_remaining_pct`
|
||||
- `context_budget_indicator_style`
|
||||
- `context_budget_level`
|
||||
- `compaction_expected_at`
|
||||
- `unread_count`
|
||||
- `risk_level`
|
||||
- `active_device_count`
|
||||
|
||||
可选增强字段:
|
||||
|
||||
- `device_names_preview`
|
||||
- `audit_pending_count`
|
||||
- `ops_alert_count`
|
||||
- `compaction_risk`
|
||||
- `must_finish_before_compaction`
|
||||
|
||||
---
|
||||
|
||||
## 8. 建议新增的数据对象
|
||||
|
||||
在现有 `projects / threads / thread_events` 之上,建议增加:
|
||||
|
||||
- `project_conversations`
|
||||
- `project_conversation_items`
|
||||
- `project_conversation_participants`
|
||||
- `device_avatars`
|
||||
- `conversation_pin_state`
|
||||
|
||||
### 8.1 `project_conversations`
|
||||
|
||||
核心字段:
|
||||
|
||||
- `conversation_id`
|
||||
- `project_id`
|
||||
- `conversation_type` (`master` / `single_device` / `multi_device`)
|
||||
- `title`
|
||||
- `latest_summary`
|
||||
- `latest_reply_at`
|
||||
- `manual_pinned`
|
||||
- `sort_bucket`
|
||||
|
||||
### 8.2 `project_conversation_participants`
|
||||
|
||||
核心字段:
|
||||
|
||||
- `conversation_id`
|
||||
- `device_id`
|
||||
- `role`
|
||||
- `is_primary`
|
||||
- `last_reply_at`
|
||||
|
||||
### 8.3 `conversation_pin_state`
|
||||
|
||||
核心字段:
|
||||
|
||||
- `conversation_id`
|
||||
- `pin_type` (`system` / `manual`)
|
||||
- `pinned_by`
|
||||
- `pinned_at`
|
||||
|
||||
---
|
||||
|
||||
## 9. 首页 UI 结构
|
||||
|
||||
建议结构:
|
||||
|
||||
1. 状态栏
|
||||
2. 页面标题:`会话`
|
||||
3. 搜索 / 说明条
|
||||
4. 会话列表
|
||||
5. 底部导航
|
||||
|
||||
会话列表项布局:
|
||||
|
||||
- 左侧:头像
|
||||
- 中间:标题 + 最近摘要
|
||||
- 右侧:三层信息轨
|
||||
|
||||
右侧三层信息轨规则:
|
||||
|
||||
- 第一层:`置顶` 标签;若未置顶则保留空白高度
|
||||
- 第二层:最后一次有效会话时间
|
||||
- 第三层:背景信息窗口余量指示器
|
||||
- 群聊型项目会话不展示第三层额度信息
|
||||
|
||||
背景信息窗口余量指示器规则:
|
||||
|
||||
- 使用统一的小圆环进度标记 + 百分比数字
|
||||
- 样式和设备端线程页保持一致,不允许手机端自行推导一套不同视觉
|
||||
- 数据来源于设备端 `worker-daemon` 上报的线程上下文预算,而不是前端本地估算
|
||||
- 指示器表达的是“当前线程在发生背景信息压缩前,还剩多少可安全使用空间”
|
||||
- 该值越低,越需要主 Agent 在压缩前完成关键收尾、证据固化和线程交接
|
||||
|
||||
视觉要求:
|
||||
|
||||
- 更接近微信会话列表
|
||||
- 不要做成项目管理后台
|
||||
- 不要把大量设备、审计字段直接塞进首页列表
|
||||
- 首页只保留最适合“扫一眼决定先点谁”的信息
|
||||
- 对单设备项目允许展示轻量额度信息,但群聊型项目不显示额度
|
||||
- 首页中的圆环指示器展示的是“线程上下文预算”,不是账号 5h / 7d 额度,两者不能混用
|
||||
|
||||
---
|
||||
|
||||
## 10.1 主 Agent 的上下文预算协作逻辑
|
||||
|
||||
这部分是整个系统里多线程协作的核心调度信号。
|
||||
|
||||
主 Agent 必须持续读取每个线程的:
|
||||
|
||||
- `context_budget_remaining_pct`
|
||||
- `context_budget_level`
|
||||
- `compaction_expected_at`
|
||||
- `must_finish_before_compaction`
|
||||
|
||||
主 Agent 的默认策略:
|
||||
|
||||
- `safe`:`>= 60%`
|
||||
- 允许继续正常推进任务
|
||||
- `watch`:`40% ~ 59%`
|
||||
- 不再给该线程追加大块背景信息
|
||||
- 要求该线程开始产出阶段摘要
|
||||
- `urgent`:`25% ~ 39%`
|
||||
- 主 Agent 应优先让该线程完成当前原子子任务
|
||||
- 同时预创建下一条接力线程和 handoff 摘要
|
||||
- `critical`:`< 25%`
|
||||
- 禁止继续扩张上下文
|
||||
- 主 Agent 必须优先触发“压缩前收尾”
|
||||
- 包括:补齐关键结论、未提交 patch、命令记录、测试结论、证据引用、未决问题
|
||||
|
||||
压缩前收尾的优先顺序:
|
||||
|
||||
1. 当前正在修改但尚未固化的代码和补丁
|
||||
2. 解释问题所必需的命令、日志、文件路径和测试结果
|
||||
3. 与下一线程交接有关的关键决策和未决问题
|
||||
4. 硬件测试 / 多模态审计所需的证据引用
|
||||
|
||||
设计原则:
|
||||
|
||||
- 不要等发生 compaction 之后再补救
|
||||
- 主 Agent 必须尽量在 compaction 之前完成关键任务或完成线程交接
|
||||
- 首页会话列表里的圆环标记,必须能帮助用户和主 Agent 同时感知哪些项目最接近上下文风险边缘
|
||||
|
||||
---
|
||||
|
||||
## 10. 和整体系统设计的关系
|
||||
|
||||
这套首页设计不会改变整体架构,只改变第一屏的信息组织方式。
|
||||
|
||||
对应关系如下:
|
||||
|
||||
- `projects` 提供项目真相
|
||||
- `threads` 提供线程真相
|
||||
- `thread_events` 提供最近事件
|
||||
- `worker_account_bindings` / `gptpluscontrol` 提供设备与账号状态
|
||||
- `project_conversations` 负责把这些底层状态重组为“会话列表”
|
||||
|
||||
所以:
|
||||
|
||||
- 底层仍是多机多线程系统
|
||||
- 首页表现层收敛成微信式会话列表
|
||||
- 主 Agent 仍然是总入口
|
||||
- 项目会话只是“主 Agent 汇总后暴露出来的二级会话壳”
|
||||
|
||||
---
|
||||
|
||||
## 11. 项目聊天页结构
|
||||
|
||||
点击首页任意项目会话后,进入“微信式聊天页”。
|
||||
|
||||
聊天页结构固定为:
|
||||
|
||||
1. 状态栏
|
||||
2. 聊天页头部
|
||||
3. 顶部能力入口
|
||||
4. 消息流
|
||||
5. 媒体 / 转发入口
|
||||
6. 语音 / 文本输入区
|
||||
|
||||
页面要求:
|
||||
|
||||
- 尽量接近微信聊天详情页的层级和节奏
|
||||
- 不显示底部 tab bar
|
||||
- 重点是聊天,而不是后台字段
|
||||
|
||||
---
|
||||
|
||||
## 12. 顶部两个固定按钮
|
||||
|
||||
项目名称下面必须增加两个并列按钮。
|
||||
|
||||
布局要求:
|
||||
|
||||
- 同一行
|
||||
- 横向总宽度 100%
|
||||
- 两个按钮各占一半宽度
|
||||
|
||||
按钮定义:
|
||||
|
||||
- `项目目标`
|
||||
- `版本迭代记录`
|
||||
|
||||
---
|
||||
|
||||
## 13. 项目目标规则
|
||||
|
||||
`项目目标` 的生成和维护规则:
|
||||
|
||||
- 初始目标由用户和主 Agent 沟通后创建
|
||||
- 主 Agent 负责整理成结构化目标
|
||||
- 用户允许手动编辑
|
||||
- UI 以“圆形单选式完成标记”展示每一条目标
|
||||
- 用户或主 Agent 将目标标记完成后,目标正文自动加删除线
|
||||
- 主 Agent 根据项目目标做任务拆解、督促和规划
|
||||
- 各线程都要以项目目标为约束执行开发和测试
|
||||
|
||||
建议数据对象:
|
||||
|
||||
- `project_goals`
|
||||
- `project_goal_revisions`
|
||||
- `project_goal_items`
|
||||
- `project_goal_completion_logs`
|
||||
|
||||
核心字段:
|
||||
|
||||
- `project_id`
|
||||
- `goal_title`
|
||||
- `goal_body`
|
||||
- `goal_order`
|
||||
- `display_style` (`radio_checklist`)
|
||||
- `completion_state` (`pending` / `completed`)
|
||||
- `completed_by`
|
||||
- `completed_at`
|
||||
- `source` (`human` / `master_agent`)
|
||||
- `is_active`
|
||||
- `edited_by`
|
||||
- `edited_at`
|
||||
|
||||
权限规则:
|
||||
|
||||
- 用户可编辑
|
||||
- 用户可标记目标已完成
|
||||
- 主 Agent 可整理和建议修改
|
||||
- 主 Agent 可复核目标完成状态并修正排序
|
||||
- 普通 worker 线程不能直接改项目目标
|
||||
|
||||
### 13.1 项目目标页交互
|
||||
|
||||
项目目标页必须明确体现以下交互:
|
||||
|
||||
- 每条目标左侧使用圆形单选式完成标记
|
||||
- 标记完成后,当前目标正文自动加删除线
|
||||
- 已完成目标显示 `已完成` 状态和完成时间
|
||||
- 未完成目标显示 `进行中` 或 `待处理`
|
||||
- 顶部仍保留 `编辑目标` 入口
|
||||
- `编辑目标` 只允许用户和主 Agent 修改目标内容
|
||||
- 普通 worker 线程只能读取,不可直接改写
|
||||
|
||||
---
|
||||
|
||||
## 14. 版本迭代记录规则
|
||||
|
||||
`版本迭代记录` 的生成和维护规则:
|
||||
|
||||
- 由主 Agent 监督各项目进程
|
||||
- 定期自动汇报每一个版本号更新的内容
|
||||
- 主 Agent 负责校验各线程提交上来的版本更新记录是否准确
|
||||
- 版本迭代记录是只读记录
|
||||
- 用户不能直接编辑版本记录正文
|
||||
|
||||
建议数据对象:
|
||||
|
||||
- `version_iteration_reports`
|
||||
- `version_iteration_sources`
|
||||
- `version_iteration_reviews`
|
||||
|
||||
核心字段:
|
||||
|
||||
- `project_id`
|
||||
- `version_name`
|
||||
- `change_summary`
|
||||
- `source_thread_ids`
|
||||
- `generated_by`
|
||||
- `verified_by_master`
|
||||
- `published_at`
|
||||
|
||||
权限规则:
|
||||
|
||||
- 主 Agent 可生成 / 复核 / 发布
|
||||
- 用户可查看
|
||||
- 用户不可直接改正文
|
||||
- worker 线程只能提交候选更新,不可直接发布
|
||||
|
||||
---
|
||||
|
||||
## 15. 聊天能力范围
|
||||
|
||||
项目聊天页必须支持:
|
||||
|
||||
- 文本输入
|
||||
- 语音输入
|
||||
- 图片发送
|
||||
- 视频发送
|
||||
- 图片 / 视频 / 文本转发到其他聊天窗口
|
||||
|
||||
建议最小对象:
|
||||
|
||||
- `conversation_messages`
|
||||
- `message_attachments`
|
||||
- `message_forwards`
|
||||
|
||||
其中:
|
||||
|
||||
- `message_attachments` 支持 `image / video / file / voice`
|
||||
- `message_forwards` 必须记录:
|
||||
- `source_conversation_id`
|
||||
- `target_conversation_id`
|
||||
- `message_id`
|
||||
- `forwarded_by`
|
||||
- `forwarded_at`
|
||||
|
||||
---
|
||||
|
||||
## 16. 设备页规格
|
||||
|
||||
设备页对应底部第二个导航项,位置等价于微信的“通讯录”。
|
||||
|
||||
功能目标:
|
||||
|
||||
- 展示当前已接入设备
|
||||
- 展示各设备登录账号
|
||||
- 展示各设备当前运行项目
|
||||
- 展示各设备剩余额度
|
||||
- 支持新增设备
|
||||
- 支持设备管理
|
||||
|
||||
### 16.1 页面结构
|
||||
|
||||
设备页结构固定为:
|
||||
|
||||
1. 状态栏
|
||||
2. 页面标题:`设备`
|
||||
3. 右上角 `+ 添加`
|
||||
4. 长按操作提示
|
||||
5. 设备列表
|
||||
6. 底部导航
|
||||
|
||||
### 16.2 列表项最小字段
|
||||
|
||||
每一台设备至少展示:
|
||||
|
||||
- `device_name`
|
||||
- `device_avatar`
|
||||
- `account_display_name`
|
||||
- `running_projects_summary`
|
||||
- `quota_5h_remaining`
|
||||
- `quota_7d_remaining`
|
||||
- `device_status`
|
||||
|
||||
### 16.3 设备状态颜色
|
||||
|
||||
状态必须显式展示为圆点或小标记:
|
||||
|
||||
- 绿色:设备在线
|
||||
- 红色:设备异常
|
||||
- 灰色:设备掉线
|
||||
|
||||
建议枚举:
|
||||
|
||||
- `online`
|
||||
- `abnormal`
|
||||
- `offline`
|
||||
|
||||
### 16.4 新增设备
|
||||
|
||||
交互要求:
|
||||
|
||||
- 右上角点击 `+ 添加`
|
||||
- 打开新增设备流程
|
||||
- 可进入:
|
||||
- 新设备绑定
|
||||
- 登录引导
|
||||
- token / pairing code 绑定
|
||||
|
||||
### 16.5 长按设备
|
||||
|
||||
长按任意设备条目,弹出操作菜单:
|
||||
|
||||
- `编辑设备名称`
|
||||
- `编辑设备头像`
|
||||
- `解绑设备`
|
||||
|
||||
### 16.6 建议新增数据对象
|
||||
|
||||
建议增加:
|
||||
|
||||
- `device_profiles`
|
||||
- `device_status_snapshots`
|
||||
- `device_project_bindings`
|
||||
|
||||
核心字段建议:
|
||||
|
||||
- `device_id`
|
||||
- `device_name`
|
||||
- `device_avatar_url`
|
||||
- `device_type`
|
||||
- `status`
|
||||
- `account_id`
|
||||
- `quota_5h_remaining`
|
||||
- `quota_7d_remaining`
|
||||
- `last_seen_at`
|
||||
|
||||
---
|
||||
|
||||
## 17. 我的页规格
|
||||
|
||||
我的页对应底部第三个导航项,位置等价于微信的“我”。
|
||||
|
||||
功能目标:
|
||||
|
||||
- 展示用户头像
|
||||
- 展示账号名称
|
||||
- 展示账号唯一二维码入口
|
||||
- 展示账号与安全
|
||||
- 展示设置
|
||||
- 展示 `运维与修复` 入口
|
||||
- 展示关于 / 版本号 / OTA 更新
|
||||
|
||||
### 17.1 页面结构
|
||||
|
||||
我的页结构固定为:
|
||||
|
||||
1. 状态栏
|
||||
2. 用户信息头部
|
||||
3. 功能列表
|
||||
4. `关于` 及 OTA 红点
|
||||
5. OTA 更新内容区
|
||||
6. 底部导航
|
||||
|
||||
### 17.2 头部信息
|
||||
|
||||
头部至少展示:
|
||||
|
||||
- 用户头像
|
||||
- 用户昵称 / 显示名
|
||||
- 当前账号类型
|
||||
- 右侧 `唯一二维码` 入口
|
||||
|
||||
二维码入口呈现规则:
|
||||
|
||||
- 放在头部信息卡的最右侧
|
||||
- 以微信式小二维码图标呈现
|
||||
- 与头像、昵称、账号类型处于同一个头部单元中
|
||||
- 不再单独占一行文字说明
|
||||
|
||||
### 17.3 账号与安全
|
||||
|
||||
账号与安全页项的职责:
|
||||
|
||||
- 修改账号密码
|
||||
- 设备安全管理
|
||||
- 身份校验
|
||||
|
||||
MVP 要求:
|
||||
|
||||
- 当前先只冻结入口和字段
|
||||
- 后续二级页再开发
|
||||
|
||||
### 17.4 设置
|
||||
|
||||
设置在当前版本只保留一级入口。
|
||||
|
||||
规则:
|
||||
|
||||
- 先展示
|
||||
- 暂不开发二级页
|
||||
|
||||
### 17.5 关于与 OTA
|
||||
|
||||
关于项必须展示:
|
||||
|
||||
- 当前版本号
|
||||
- 若有新 OTA,右侧显示红色 `OTA` 提示
|
||||
|
||||
点击后行为:
|
||||
|
||||
- 展示 OTA 更新内容
|
||||
- 可触发 `立即 OTA`
|
||||
|
||||
### 17.6 OTA 更新内容区
|
||||
|
||||
更新内容区必须包含:
|
||||
|
||||
- 目标版本号
|
||||
- 更新点摘要
|
||||
- `立即 OTA` 按钮
|
||||
|
||||
建议新增数据对象:
|
||||
|
||||
- `user_profiles`
|
||||
- `app_versions`
|
||||
- `ota_updates`
|
||||
- `ota_update_logs`
|
||||
|
||||
建议字段:
|
||||
|
||||
- `current_version`
|
||||
- `target_ota_version`
|
||||
- `has_ota_update`
|
||||
- `ota_update_summary`
|
||||
- `ota_update_status`
|
||||
- `ota_triggered_at`
|
||||
|
||||
### 17.7 账号认证页
|
||||
|
||||
移动端必须补齐 3 个账号认证页面:
|
||||
|
||||
- `登录页`
|
||||
- `注册页`
|
||||
- `忘记密码页`
|
||||
|
||||
认证页规则:
|
||||
|
||||
- `登录页` 必须支持账号、密码、登录验证码
|
||||
- `注册页` 必须支持账号、登录验证码、密码、确认密码
|
||||
- `忘记密码页` 必须支持账号、登录验证码、新密码、确认新密码
|
||||
- 3 个页面都要提供 `发送验证码`
|
||||
- 登录验证码和找回验证码都必须进入后端校验链路
|
||||
- 登录成功后才允许继续设备绑定与项目同步
|
||||
- 重置密码成功后,旧设备登录态允许被系统要求重新校验
|
||||
|
||||
---
|
||||
|
||||
## 18. 已冻结的二级页面
|
||||
|
||||
为了避免开发时只做一级页壳子,下面这些二级页也已经纳入 UI 范围:
|
||||
|
||||
- `项目目标页`
|
||||
- `版本迭代记录页`
|
||||
- `转发到项目页`
|
||||
- `添加设备页`
|
||||
- `设备长按操作菜单`
|
||||
- `账号与安全页`
|
||||
- `关于 / OTA 页`
|
||||
- `登录页`
|
||||
- `注册页`
|
||||
- `忘记密码页`
|
||||
|
||||
这些页面的目标是:
|
||||
|
||||
- 保持微信式的导航和扁平视觉
|
||||
- 不把复杂系统状态直接做成后台面板
|
||||
- 每个子页面都能对应明确的数据对象和入口来源
|
||||
- 其中 `运维与修复` 必须作为 `我的` 页里的二级入口,不再作为底部一级导航
|
||||
- `运维与修复` 内部再分为 `运维对话` 和 `审计对话` 两个子页
|
||||
|
||||
---
|
||||
|
||||
## 18. UI 上不直接暴露的后台逻辑
|
||||
|
||||
虽然聊天页外观接近微信,但底层仍然是多线程系统。
|
||||
|
||||
所以:
|
||||
|
||||
- 首页看到的是项目会话
|
||||
- 聊天页看到的是主 Agent 汇总后的项目聊天流
|
||||
- 底层真实 worker 线程、审计线程、运维线程仍继续工作
|
||||
- 主 Agent 把底层线程状态整理成适合聊天页展示的消息
|
||||
|
||||
换句话说:
|
||||
|
||||
`UI 上是聊天,系统里仍然是多线程编排`
|
||||
|
||||
---
|
||||
|
||||
## 19. 当前 UI 原型对应
|
||||
|
||||
当前原型已按这套规则重绘整套核心页面:
|
||||
|
||||
- 主 Agent 置顶
|
||||
- 单设备头像
|
||||
- 双设备协作头像
|
||||
- 手动置顶示例
|
||||
- 会话按最近消息排序
|
||||
- 项目聊天页双按钮
|
||||
- 项目目标页圆形完成标记 + 自动划线
|
||||
- 版本迭代记录只读展示
|
||||
- 图片 / 视频 / 转发入口
|
||||
- 语音输入入口
|
||||
- 设备页第二导航位
|
||||
- 设备在线 / 异常 / 掉线三种状态
|
||||
- 右上角添加设备
|
||||
- 长按设备管理提示
|
||||
- 我的页第三导航位
|
||||
- 账号与安全入口
|
||||
- 设置入口
|
||||
- 关于 + OTA 红点
|
||||
- OTA 更新内容卡片
|
||||
- 登录页 / 注册页 / 忘记密码页
|
||||
- 登录验证码发送入口
|
||||
|
||||
对应文件:
|
||||
|
||||
- `/Users/kris/code/UI/.runtime/pencil/threads/ui-codex-ops-mobile/outputs/codex-ops-mobile-v1.pen`
|
||||
- `/Users/kris/code/Talking/output/ui-codex-ops-mobile-v13/d5gpt.png`
|
||||
- `/Users/kris/code/Talking/output/ui-codex-ops-mobile-v13/g8Qpr.png`
|
||||
- `/Users/kris/code/Talking/output/ui-codex-ops-mobile-v13/CwqbE.png`
|
||||
- `/Users/kris/code/Talking/output/ui-codex-ops-mobile-v13/i7IZ1.png`
|
||||
Reference in New Issue
Block a user