症状
在 收件箱(Inbox) 或 追踪(Tracked) 相关流程中阅读报告时,用鼠标框选报告正文的一部分文本后,大约 5 秒左右 框选状态会被自动取消,导致来不及复制(或复制过程中 selection 丢失)。
复现步骤
- 打开 收件箱 中带有报告/附件的条目,或从 追踪 打开对应笔记/报告阅读页
- 在报告正文中拖拽框选一段文本
- 保持选中状态不动,等待约 5 秒
- 观察选区是否消失
实际行为
- 选区在约 5 秒后被清掉
- 用户难以稳定完成「框选 → 复制」操作
期望行为
- 阅读报告时的用户文本选区应保持,直到用户主动取消、点击别处、或切换条目/页面
- 后台轮询 / 相对时间刷新 / live store 更新 不应 打断或重置正文选区
- 框选后可正常
Cmd/Ctrl+C 复制
影响
- 报告阅读体验受损(尤其是长报告摘录关键数字、结论)
- 用户被迫多次重新框选,或改用「复制整篇 Markdown」等绕路方案
排查线索(供开发)
约 5s 的周期与若干 UI 刷新计时接近,疑似 re-render / remount 冲掉了 DOM selection,而非浏览器原生行为:
ui/src/components/LiveIndicator.tsx:每 5s force 刷新「updated Xs ago」
ui/src/components/workspace/FilesPanel.tsx:POLL_MS = 5000
ui/src/components/workspace/Sidebar.tsx:HEADLESS_POLL_MS = 5000
ui/src/live/account-health.ts:5s 轮询
- Inbox 详情:
ui/src/pages/InboxPage.tsx(Detail + InboxAttachment + MarkdownContent / HTML 报告)
- 报告渲染:
ui/src/components/MarkdownContent.tsx(dangerouslySetInnerHTML)、ui/src/components/HtmlReportView.tsx(sandbox iframe srcDoc)
- 追踪打开文件:
ui/src/pages/FileViewerPage.tsx + FileContentView
建议验证:
- 选区消失时,是否伴随父组件 re-render / 正文节点 remount / iframe 重载
- live poll 返回相同内容时,是否仍用新对象引用触发整树更新
- HTML 报告是否因
srcDoc 重建而丢选区;Markdown 是否因 __html 重写丢选区
环境备注
- 入口标签:收件箱、追踪(报告阅读)
- 若仅 HTML 附件 / 仅 Markdown / 仅 File Viewer 复现,请在评论补充
症状
在 收件箱(Inbox) 或 追踪(Tracked) 相关流程中阅读报告时,用鼠标框选报告正文的一部分文本后,大约 5 秒左右 框选状态会被自动取消,导致来不及复制(或复制过程中 selection 丢失)。
复现步骤
实际行为
期望行为
Cmd/Ctrl+C复制影响
排查线索(供开发)
约 5s 的周期与若干 UI 刷新计时接近,疑似 re-render / remount 冲掉了 DOM selection,而非浏览器原生行为:
ui/src/components/LiveIndicator.tsx:每 5sforce刷新「updated Xs ago」ui/src/components/workspace/FilesPanel.tsx:POLL_MS = 5000ui/src/components/workspace/Sidebar.tsx:HEADLESS_POLL_MS = 5000ui/src/live/account-health.ts:5s 轮询ui/src/pages/InboxPage.tsx(Detail+InboxAttachment+MarkdownContent/ HTML 报告)ui/src/components/MarkdownContent.tsx(dangerouslySetInnerHTML)、ui/src/components/HtmlReportView.tsx(sandbox iframesrcDoc)ui/src/pages/FileViewerPage.tsx+FileContentView建议验证:
srcDoc重建而丢选区;Markdown 是否因__html重写丢选区环境备注