The answer outline (think.plan / thinking.section) was drawn as four think rows and ticked done as soon as the chart calculation started. The reducer now keeps the outline only as calculate-row detail; live and history views share it. Product chose option B on 2026-10-01. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
2.3 KiB
2.3 KiB
TASK · 普通对话进度栏去掉回答提纲行(2026-10-01)
- 基线:
origin/stagingf1a169cb - 分支 / worktree:
codex/consult-timeline-no-plan-20261001/.worktrees/consult-timeline-no-plan-20261001 - 模式:直接执行(产品 10-01 选 B 后明确要求直接做),Claude 派子代理实现、Claude 独立验收
- BUG:BUG-1145
事故实证
产品 10-01 真机截图:问「我跟我父母的关系怎么样」,进度栏「读取分析方法」之后立刻出现「先回答你问的这件事 / 把判断钉在盘上 / 时间窗口怎么看 / 这周可以做什么」四行且全部打勾,最下面「正在计算本命盘…」仍在转。
根因
frontend/src/lib/stream-agent-response.ts flushThinkingPlan 在第一个流块就下发回答提纲(think.plan + 每节 thinking.section);frontend/src/lib/consultation-run-timeline.ts reduceConsultationTimeline 把每节做成 live think 行,completeLiveThink 在下一个事件到来时把它们全标完成。提纲不是走过的步骤,却按步骤渲染。
决策记录
产品 10-01 在两案中选 B:去掉提纲行,只显示真实步骤(读取分析方法 → 计算本命盘 → 正在写 → 完成)。未选 A(提纲等算完再出现、按正文标题逐条打勾),原因:BUG-1132 之后回答按人分段、两节可省,提纲与正文对不上;产品偏好「多余入口宁可删除」。
硬红线
- 只改渲染层(timeline reducer);服务端事件、
thinkingPlan、applyThinkingSectionProgress、存档字段、API / DB 结构不动。 - 生时校正进度栏不动(它不用这个 reducer,只共用行类型与组件)。
page.tsx不增长;不加 spinner / 骨架。
任务与验收
- T1 reducer:
think.plan不改状态;thinking.section只暂存计算行明细并在计算行出现时补上;正文开始时计算行收口。验收:新增回归测试在修前失败、修后通过。 - T2 历史重建与实时同形(
consultationTimelineFromSettled走同一 reducer;思考文本改走thinking.delta行)。验收:历史重建测试。 - T3 记录:BUG_HISTORY、CHANGELOG、DESIGN.md、真机清单第 10 步、本任务书与进度记录、索引。
- 门禁:tsc 0;lint 0 error;
npm test失败名单与基线同名;next build/Static;首屏 gzip ±2%。