已开启
[Feature]: 报错时支持复制关键日志并提交 Issue #101
wang_cheng_zhao创建于 12 天前
12 天前 添加了label:feature
openJiuwen-bot
12 天前 评论:
12 天前 评论:
欢迎来到 openJiuwen 社区
Hey @wang_cheng_zhao , 感谢你对社区的贡献.
机器人使用手册
有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。


12 天前 修改了issue 的描述
🚀 背景描述
ScienceDiscovery 在连接失败、请求 401/5xx、设置保存失败、面板渲染崩溃、Run/工具执行失败等路径上,已经会把错误展示给用户(右上角 Toast、设置区警示条、面板 Error Boundary、Run 摘要里的错误文本)。这些界面目前只有「关闭 / 重试」,没有「复制这段报错对应的关键日志」或「据此提交 Issue」的入口。
用户想反馈问题时,实际路径通常是:
Request error: Unauthorized、面板render failed);.sciencediscovery-data/logs/下的api.log/runner.log/run.log),用户往往不知道去哪找、该截哪一段;结果是:真实故障很难变成可处理的 Issue,维护者拿到的是「报了个错」而没有版本、错误码、Run/请求标识和相邻日志。
本需求要补的是面向用户的问题反馈机制,不是再给开发者加一份后台日志。与已有的框架诊断日志需求(GitCode #74,GitHub 镜像 #8)互补:#74 明确不提供日志查看 / 搜索 / 下载 UI,本 Issue 补的是报错现场的「复制关键日志 + 提交 Issue」。
设计思路
建议在各类用户可见报错上提供两个动作(文案可再斟酌):
openJiuwen/sciencediscovery)是主跟踪入口;GitHub(openJiuwen-ai/sciencediscovery)是公开镜像,可同时给出链接或按界面语言提供选项。用户仍须自己点创建,产品不代替用户发 Issue,也不把日志自动上传到第三方。优先覆盖的报错表面(实现时可按同一组件逐步铺开,不必一次改完所有页面):
apps/web/src/Toasts.tsx,目前仅关闭);apps/web/src/InlineErrorAlert.tsx,目前仅关闭);apps/web/src/ErrorBoundary.tsx,目前只显示label+message);不考虑或仅作备选的方案:
未拍板(实现前需确认):
涉及到的对外API
.sciencediscovery-data/logs/整文件对外暴露,不新增公开匿名日志下载。与其他模块的相关性描述
packages/operational-logging与 GitCode #74:复用已有脱敏、滚动与长度上限,不另起一套日志格式;测试设计与测试计划
功能
安全
工程 / 用户旅程
其他信息
当前相关代码(仓库相对路径,便于实现时定位,不是本需求的验收范围):
apps/web/src/Toasts.tsxapps/web/src/InlineErrorAlert.tsxapps/web/src/ErrorBoundary.tsxapps/web/src/App.tsx(请求错误走右上角 Toast).sciencediscovery-data/logs/(api.log/runner.log/run.log)