[Bug] WebChat 聊天偏好在刷新后重置:流式输出、显示思考内容及发送快捷键
维护者通常 1 天内回复
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 78/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- javascript
- 领域
- frontend
调研方向
从 dashboard/src/components/chat/Chat.vue 开始,重点查看三个偏好的初始化,以及参考行附近现有的 chat.transportMode localStorage 处理。验证当前行为,然后让这三个选项在同一浏览器中刷新页面后仍然保留,并确认复现步骤不再将它们恢复为默认值。
由索引模型根据 Issue 内容生成。
描述
问题描述
在 AstrBot v4.29.0-beta.1 的 WebChat「设置 → 聊天」中,「流式输出」「显示思考内容」和「发送快捷键」的选择均未在刷新后保留,而同一菜单中的 SSE/WebSocket 传输方式能够保留用户选择。
这些设置集中在同一菜单中,却采用不同的持久化策略,使用上略显反直觉。是否使用流式输出、是否显示思考内容,以及选择哪种发送快捷键,都比较偏向个人使用习惯,因此期望刷新页面后能够保留这些选择。
目前不确定上述三项设置不持久化是有意设计,还是遗漏,希望维护者确认预期行为。如果并非有意设计,我愿意提交 PR,参照同一菜单中 SSE/WebSocket 传输方式的现有做法,使用浏览器本地存储保存这三项偏好。
如何复现?
- 打开 WebChat,进入「设置 → 聊天」。
- 关闭「流式输出」和「显示思考内容」,将「发送快捷键」改为
Shift+Enter。 - 刷新当前网页。
- 再次打开「设置 → 聊天」,观察这三项设置恢复默认值。
对照测试:更改 SSE/WebSocket 传输方式后刷新网页,该选择能够保留。
实际行为与预期行为
| 设置 | 刷新后的实际行为 |
|---|---|
| 流式输出 | 恢复开启 |
| 显示思考内容 | 恢复开启 |
| 发送快捷键 | 恢复为 Enter |
| SSE/WebSocket 传输方式 | 保留用户选择 |
期望行为:在同一浏览器中刷新页面后,保留上述三项聊天偏好,使其与传输方式设置的持久化行为保持一致。
如果刷新后恢复默认值属于预期设计,希望说明这些设置采用不同持久化策略的原因;如果预期应保留,则希望补齐持久化。
AstrBot 版本
v4.29.0-beta.1
操作系统
Windows
部署方式
AstrBot Launcher
使用的消息平台适配器
WebChat(WebUI 内置聊天页面)
其他系统信息
后端系统环境
- OS:Windows 11 Pro,x86_64
- DisplayVersion:
25H2 - Build:
26200.9457
前端系统环境
- OS:Windows 11 Home,x86_64
- DisplayVersion:
25H2 - Build:
26200.9550 - Browser:Microsoft Edge
154.0.4258.48(正式版本)(64 位)
错误日志与辅助信息
目前没有已确认与刷新后状态重置相关的后端错误日志;该现象无需发送聊天消息即可复现。
对发布提交 f20fba64c29623d248629f4d4bb9474bf4e745bc 的代码核对发现:
- 三项设置分别以
ref(true)、ref(true)和ref("enter")初始化,未发现保存和恢复这些偏好的逻辑。对应源码 - 传输方式从
localStorage的chat.transportMode读取,并在选择变化时写回。对应源码
这些代码可以解释当前行为,但不能据此确认不持久化是否属于有意设计。
检查清单
- 主要语言
- Python
- 星标
- 45.3k
- 派生
- 3.3k
- 平均合并
- 1 天 6 小时
- 30 天内合并 PR
- 135
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
AstrBotDevs/AstrBot 的其他 Issue
-
[Bug] OpenAI-compatible Gemini 工具 schema const 导致 400可能已有人在做 @arccat-114 于 11 天前认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 77/100
AstrBotDevs/AstrBot#10720 · 1 条评论 ·
维护者通常 1 天内回复
-
[Bug] Discord slash command sync aborts with KeyError when a plugin handler is defined in a submodule可能已有人在做 @yuexia5 于 16 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 77/100
AstrBotDevs/AstrBot#10626 · 1 条评论 ·
维护者通常 1 天内回复
-
[Bug] QQ频道消息无法回复:markdown 回退顺序有误,误用主动消息导致 304049 限频可能已有人在做 @he-yufeng 于 27 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
AstrBotDevs/AstrBot#10420 · 4 条评论 ·
维护者通常 1 天内回复
-
[Feature] 移除「切换到旧版知识库」入口可能已有人在做 @lingyun14beta 于 24 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
AstrBotDevs/AstrBot#10340 · 1 个 reaction ·
维护者通常 1 天内回复
-
[Bug] 知识库 API 全部返回 403:路由要求的 scope `kb` 不在 ALL_OPEN_API_SCOPES 白名单内可能已有人在做 @MindOfqc 于 8 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
AstrBotDevs/AstrBot#10322 · 1 条评论 ·
维护者通常 1 天内回复
查看 AstrBotDevs/AstrBot 的全部 Issue
相似的 Issue
-
Server mode OAuth2: 'NoneType' object is not subscriptable on every request after re-submitting the OAuth2 login while already logged in可能已有人在做 @Rarasinhoo 今天认领。 未关闭
难度 1/5 1 小时以内 新手友好度 88/100
pgadmin-org/pgadmin4#10733 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
aws-samples/sample-per-model-bedrock#752 ·
维护者通常 1 天内回复
-
lesson-submission pending-review
难度 1/5 1 小时以内 新手友好度 72/100
Ikalus1988/MisakaNet#4452 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
OCHA-DAP/topo-tools#250 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 77/100
维护者通常 1 天内回复