最后一条 final answer 的完整内容是懒加载(AnswerBlock useInView+fetchDetail), 在 activity 数组稳定后才撑开高度,而滚动 layout effect 只依赖 activity 引用、 不会因高度变化重触发,导致打开后最后一条被顶到屏幕外。新增 ResizeObserver 观测 transcript 容器:用户仍贴底时,任何高度变化(transcript 挂载/详情展开/markdown 撑高) 都重新贴底;手动上滚则不再拽回。planner/worker 会话同样受益。 Claude-Session: https://claude.ai/code/session_01RVrPtpngE9T9DRJHosf6MB