issue: [regression] [dev] someone removed from the group keeps a chat shared with “Allow replies” open again

这是 Open WebUI dev 分支上的权限回归问题:成员被移出群组后,原本共享且开启 “Allow replies” 的聊天窗口仍然保持打开,连消息输入框都没有关闭。优先排查该聊天是否会触发重新加载逻辑,以及当前部署的代码是否包含引入回归的提交 4dedaaf6e。

快速结论:这是 Open WebUI dev 分支上的权限回归问题:成员被移出群组后,原本共享且开启 “Allow replies” 的聊天窗口仍然保持打开,连消息输入框都没有关闭。优先排查该聊天是否会触发重新加载逻辑,以及当前部署的代码是否包含引入回归的提交 4dedaaf6e。

适用环境:Open WebUI dev 分支,版本 f5a26f53a;v0.12.2 正常;Git clone 后由后端直接提供服务的安装方式。Issue 未提供操作系统、Python、CUDA、显卡等环境信息。

最快修复方案:暂无确认的一步修复方案。Issue 中的修复方式是让聊天在每次重新加入尝试之后都重新加载,恢复 917f2fd1d 的行为。

注意事项:该问题只出现在 dev 分支,且浏览器控制台与服务端日志均无报错,因此不能靠日志判断。相关改动会影响正常加入群组的成员体验,修复时需要同时覆盖“被移除”和“重新加入”两种情况,不能只处理其中一种。

问题场景

在 Open WebUI 中,管理员把某个聊天共享给一个群组,并开启 “Allow replies”。群组成员打开该聊天后,管理员将该成员移出群组。此时成员页面不会关闭聊天,输入框仍然可见,仍然停留在原聊天界面,而不是像 v0.12.2 那样被送回首页。Issue 指出该问题由回归测试套件在 open-webui/tests 中发现。

报错原文

issue: [regression] [dev] someone removed from the group keeps a chat shared with "Allow replies" open again

#32063 is back. A member removed from a group keeps a chat shared with that group with "Allow replies" open, message box included.
It was fixed by 917f2fd1d and came back with 4dedaaf6e: the open chat is now only reloaded when the member is allowed back into it, so a member who lost access is never sent away.

原因分析

最可能的原因是回归提交 4dedaaf6e 修改了聊天重新加载的触发条件:现在只有在成员被重新允许进入聊天时才重新加载,因此失去访问权限的成员永远不会收到重新加载,界面继续显示已打开的聊天和消息输入框。917f2fd1d 曾经修复过同样的问题(对应 #32063),但该行为在 4dedaaf6e 中丢失,导致 #32063 回归。Issue 中提到测试在把“每次重新加入尝试之后都重新加载聊天”恢复为原行为后通过,说明触发条件过于严格是主要怀疑方向。

环境排查

  • 确认当前运行的 Open WebUI 是否为 dev 分支,且版本为 f5a26f53a 或包含提交 4dedaaf6e。
  • 对比 v0.12.2 的行为,确认该问题是否只出现在 dev。
  • 确认安装方式为 Git clone 并由后端直接提供服务。
  • 确认测试用例(open-webui/tests 中对应 #32063 的回归测试)在当前代码上是否失败。
  • 检查浏览器控制台与服务端日志是否有报错;本 Issue 中两者均无错误,因此无日志不等于无问题。

解决步骤

  1. 先复现:以管理员身份把聊天共享给群组并开启 “Allow replies”,以群组成员身份打开该聊天。
  2. 管理员将该成员移出群组,观察成员页面是否仍显示聊天和消息输入框。
  3. 确认当前代码是否包含 4dedaaf6e;若包含,可优先尝试将聊天重新加载逻辑恢复为“每次重新加入尝试之后都重新加载”,而不是只在成员被允许重新进入时才加载。
  4. 参考修复 PR #32535 的处理方式,检查其对被移除成员和重新加入成员两种路径的覆盖情况。
  5. 在本地运行 open-webui/tests 中对应 #32063 的回归测试,确认修改后测试通过。

验证方法

重新执行复现步骤:把成员移出群组后,成员的页面应立即关闭该聊天并跳转到首页,消息输入框不再显示。同时确认对应回归测试由失败变为通过,并且重新加入群组的成员仍能正常打开该聊天。

参考来源

open-webui/open-webui #32527

相关 Issue:open-webui/open-webui #32063

相关 PR:open-webui/open-webui #32535

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 29299

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注