chore: rebuild CentOS 7 release package
This commit is contained in:
97
.planning/2026-08-16-goal-bubble-rendering/task_plan.md
Normal file
97
.planning/2026-08-16-goal-bubble-rendering/task_plan.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# Task Plan: Goal 气泡显示修复
|
||||
|
||||
## Goal
|
||||
|
||||
让 `/goal <目标>` 在会话中显示并持久化为正常用户气泡,同时将同步与成功反馈收敛为短暂、简洁的系统提示,避免长目标正文渲染成居中的大面板。
|
||||
|
||||
## Current Phase
|
||||
|
||||
阶段 7:执行真实浏览器桌面与窄屏验收
|
||||
|
||||
## Phases
|
||||
|
||||
### 阶段 1:建立现状基线并固化 Goal 交互契约
|
||||
|
||||
- [x] 核对工作树、索引和现有 Goal 消息链路
|
||||
- [x] 固化用户气泡、同步提示、成功提示及刷新恢复的验收语义
|
||||
- **Status:** complete
|
||||
|
||||
### 阶段 2:审查实施计划并修正关键缺口
|
||||
|
||||
- [x] 由独立计划审查员核对完整性、范围与可实施性
|
||||
- [x] 修正任何阻断实施的计划缺口
|
||||
- **Status:** complete
|
||||
|
||||
### 阶段 3:增加 /goal 用户气泡发送与持久化契约
|
||||
|
||||
- [x] 新增 Goal 展示消息持久化 helper:写入带稳定消息 ID、`ccwebDisplayOnly` 与 Goal 专用元数据的 `role: user` 消息
|
||||
- [x] 通过 `session_message` 推送已持久化消息,使设置型 `/goal` 的目标正文生成普通用户气泡
|
||||
- [x] Goal 展示消息只进入本地会话历史,禁止复用 `handleMessage()`,禁止触发 `handleCodexAppMessage`、普通 `turn/start` 或 `turn/steer`
|
||||
- [x] 使用 `clientMessageId/requestId` 作为去重边界;同一命令 ID 只持久化一次且只调用一次 Goal RPC
|
||||
- [x] 刷新只从 `session.messages` 恢复展示气泡,不把历史 Goal 展示消息重新解释为命令
|
||||
- [x] 保持 `/goal` 查看、暂停、恢复、清除等控制命令语义不变
|
||||
- **Status:** complete
|
||||
|
||||
### 阶段 4:将 Goal 同步和成功反馈改为短暂精简提示
|
||||
|
||||
- [x] 将同步提示设为短暂提示
|
||||
- [x] 成功提示不再回显完整目标正文
|
||||
- [x] 明确失败顺序:参数/会话校验失败发生在持久化前并恢复草稿;RPC 启动后的失败保留已提交气泡、不恢复草稿,避免重试产生重复气泡
|
||||
- **Status:** complete
|
||||
|
||||
### 阶段 5:补充 Goal 气泡及消息协议回归测试
|
||||
|
||||
- [x] 覆盖用户气泡呈现与持久化
|
||||
- [x] 覆盖系统提示类型、短暂属性和精简文案
|
||||
- [x] 增加负向断言:Goal 展示消息带 display-only/Goal 元数据,不进入普通模型消息链路,不额外触发 turn/start/steer
|
||||
- [x] 覆盖同一命令 ID 去重、刷新历史恢复且不重放 Goal RPC、RPC 失败后不重复恢复草稿
|
||||
- [x] 更新被新交互契约替代的旧断言
|
||||
- **Status:** complete
|
||||
|
||||
### 阶段 6:运行语法、专项和全量回归
|
||||
|
||||
- [x] 执行 JavaScript 语法检查
|
||||
- [x] 执行 Goal/前端专项回归
|
||||
- [x] 执行相关全量回归并检查差异格式
|
||||
- **Status:** complete
|
||||
|
||||
### 阶段 7:执行真实浏览器桌面与窄屏验收
|
||||
|
||||
- [ ] 在桌面视口验证长 Goal 为用户气泡
|
||||
- [ ] 在窄屏验证换行、溢出和系统提示尺寸
|
||||
- [ ] 确认暗金荒野主题未再生成大块 Goal 系统面板
|
||||
- **Status:** in_progress
|
||||
|
||||
### 阶段 8:审查差异并清理临时任务记录
|
||||
|
||||
- [ ] 审查目标文件差异且不混入其他任务改动
|
||||
- [ ] 完成计划记录并删除本任务 TODO CSV
|
||||
- **Status:** pending
|
||||
|
||||
## Key Questions
|
||||
|
||||
1. 设置型 `/goal` 气泡如何持久化而不进入普通模型对话链路?
|
||||
2. 如何只改变 Goal 命令,不改变其他 Slash 命令的既有行为?
|
||||
3. 长 Goal 在桌面与窄屏下是否仍保持普通用户气泡布局?
|
||||
|
||||
## Decisions Made
|
||||
|
||||
| Decision | Rationale |
|
||||
|----------|-----------|
|
||||
| 只修改 Goal 消息语义,不重做通用气泡或主题 | 控制范围,避免影响其他系统提示和主题 |
|
||||
| 同步提示与成功提示采用短暂、精简反馈 | Goal 原文已在用户气泡中,不应重复铺满消息区 |
|
||||
| 计划文件放在独立 `.planning` 目录 | 根目录已有其他任务的规划文件,必须避免覆盖 |
|
||||
| Goal 气泡使用独立展示消息路径 | 写入 `session.messages` 并发出 `session_message`,但不调用普通消息运行时,兼顾刷新恢复与防止重复模型执行 |
|
||||
| `clientMessageId/requestId` 是命令与消息去重键 | 传输重放时可识别同一次设置,避免重复气泡与重复 Goal RPC |
|
||||
| 校验前失败恢复草稿;RPC 已启动后失败保留气泡且不恢复草稿 | 保持即时提交记录,同时避免用户重试产生两条相同气泡 |
|
||||
|
||||
## Errors Encountered
|
||||
|
||||
| Error | Attempt | Resolution |
|
||||
|-------|---------|------------|
|
||||
| 仓库内 `todo-list-csv` 技能短路径不存在 | 1 | 改用技能清单给出的 `/home/hdzx/.codex/skills/todo-list-csv/` |
|
||||
|
||||
## Notes
|
||||
|
||||
- 任务开始时已有 `public/task-board.css`、`public/task-board.js`、`scripts/task-board-frontend-unit.js` 未提交改动,本任务不触碰这些文件。
|
||||
- 根目录已有其他任务的 TODO CSV,本任务只维护 `Goal 气泡显示 TO DO list.csv`。
|
||||
Reference in New Issue
Block a user