You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[自动测试] 同时建两个同名群都会成功:建群查重在 await 建 Session 之前,团队里出现两个同名群,之后 Main Bot 按群名哪个都操作不了 #199
之后 Main Bot 按群名调用 update_group / post_to_group 等,都返回 Several group chats are called "Ops". Rename one first.——两个群都不能按名字操作,只能先由用户手动改名
顺序执行时查重正常:第二次会报 Another group chat is already called "Ops"
期望
同名建群只有一个成功,另一个返回 Another group chat is already called "Ops";改名同理。
关键日志(已去敏)
A {"ok":[true,true],"opsCount":2}
A2 {"reply":"Several group chats are called \"Ops\". Rename one first."}
F {"ok":[true,true],"count":2}
e2e A: R10同名群0..4 → count 2 ×5
Activity
EventHorizonXT commentedon Oct 15, 2026
我来跟进 #199,先在这里说明认领意向,避免重复工作。目前账号只有读取权限,无法自行分配 assignee;这条评论不代表已经取得独占分配。如果已有其他人在做,请告知。
已阅读当前 dev 的 CONTRIBUTING,并核对 issue 全文、回复和公开 PR。在 dev
3adb2a7的roster.js上,用临时模拟测试复现了并发创建两个同名群都成功;顺序执行时第二次会正常被拒绝。问题在于群名校验与写入之间存在异步窗口,属于插件内部逻辑,不需要修改 Harness。计划范围:
后续从最新 dev 建立独立分支
fix/199-unique-group-names。先补回归测试,覆盖同名并发、不同名称并行、改名竞争、错误清理和重试,再运行全量单测、client.js 一致性检查、lint、扫描及官方 smoke。测试仅使用独立 DSH Web、仓库 mock、独立依赖和测试数据,不使用真实密钥,不操作已有 Desktop 或用户 DSH 数据。临时复现目前只验证了模拟服务下的插件逻辑,尚未做本修复的 Web 端到端验证;原生 Desktop/Windows 路径未实测,会在交付时明确说明。
我目前不是仓库协作者,会遵守当前 PR 限制,完成后在此提供中文说明、测试证据和独立补丁供维护者评估。
EventHorizonXT commentedon Oct 15, 2026
#199 修复交付说明
已按认领计划完成插件侧修复:异步创建或改名期间暂时占用归一化后的自定义群名,在成功或失败后释放。同名并发请求只允许一个成功,其他请求明确返回现有名称冲突错误。不同群名仍能并行处理,自动生成的默认群名沿用原有规则。
只修改
ds-bot/src/host/roster.js,补充test/room-names.test.js和test/roster.test.js;没有改动 Harness、client.js 或 CHANGELOG.md。验证基线:dev
3adb2a7240c9760b72ff584233e77cbb9aea195f。本地独立分支:fix/199-unique-group-names。新增测试覆盖大小写、引号、连续空白、长度截断后的同名请求;目录和权限异步窗口;两个 Main Bot 并发工具调用;用户 API 与 Main Bot 工具竞争;Session 创建失败、存盘失败归档与重试;不同名称并行及原有默认群名行为。
测试只运行独立 DSH Web、仓库 mock 与任务专用依赖和数据。原生 Desktop、Windows 和 DSH alpha.3 未实测。本轮 Web/mock/MCP 进程均已停止,不操作用户已有 Desktop 或用户 DSH 数据。
本补丁仅处理 #199 的自定义群名并发唯一性,不宣称修复 #200 的删除成员竞态或 #205 的成员更新丢失。
补充本次提交复验记录:末轮完整单测曾在未改动的
test/connectors.test.js的 after hook 清理临时目录时出现一次ENOTEMPTY(563/564,失败日志已保留);未修改代码,随后重新完整运行得到 564/564。本补丁的 17 项新增测试均通过。独立完整补丁如下,基于上述 dev,可使用
git apply --check issue-199.patch后再应用。完整补丁
Hold a new Bot's or group's name until it is written