现状与证据
send_command 协议及 _CommandPlane 重复定义被散落到多个模块,签名完全一致,且用于同一类 backplane command plane 抽象:
_CommandPlane Protocol
src/cobnet/backplane/control/ws/server.py:847 (send_command(self, command: ScopeCommand, *, client_id: str | None = None) -> int)
src/cobnet/backplane/control/ws/app.py:202(同签名)
src/cobnet/agent/hub.py:45(同签名)
apps/server/controller/backplane/context.py:40(同签名)
apps/server/controller/backplane/toolbox.py:37(同签名)
apps/server/controller/knowledge/hub.py:25(同签名)
apps/server/controller/workspace/hub.py:25(同签名)
apps/server/state/agent/welcome.py:32(同签名)
send_command 实现
src/cobnet/backplane/control/ws/server.py:847
src/cobnet/backplane/control/ws/app.py:202
这两个实现行为也高度一致:
- 类型校验
ScopeCommand
- 通过 scope owner 做命中路由
- 命令投递队列与统计发送数
- 返回发送客户端数
建议
- 在 backplane 层提取统一协议定义与基础行为(例如
src/cobnet/backplane/control/plane.py)。
- apps 层与
src/cobnet/agent/hub.py 统一引用该协议,避免重复定义。
- 若需要可让
send_command 的回传语义保持向后兼容(int)。
关联
目前 open issue(#8-#13)聚焦的是基础类型/流量小 helper(_as_*,_safe_stream 等),未覆盖 _CommandPlane/command-plane protocol 抽取。
验收
- 仅保留一处
Protocol 定义。
- 所有调用侧改为该共享定义;移除重复声明。
- 在现有行为下补齐至少一个路由/广播测试。
现状与证据
send_command协议及_CommandPlane重复定义被散落到多个模块,签名完全一致,且用于同一类 backplane command plane 抽象:_CommandPlaneProtocolsrc/cobnet/backplane/control/ws/server.py:847(send_command(self, command: ScopeCommand, *, client_id: str | None = None) -> int)src/cobnet/backplane/control/ws/app.py:202(同签名)src/cobnet/agent/hub.py:45(同签名)apps/server/controller/backplane/context.py:40(同签名)apps/server/controller/backplane/toolbox.py:37(同签名)apps/server/controller/knowledge/hub.py:25(同签名)apps/server/controller/workspace/hub.py:25(同签名)apps/server/state/agent/welcome.py:32(同签名)send_command实现src/cobnet/backplane/control/ws/server.py:847src/cobnet/backplane/control/ws/app.py:202这两个实现行为也高度一致:
ScopeCommand建议
src/cobnet/backplane/control/plane.py)。src/cobnet/agent/hub.py统一引用该协议,避免重复定义。send_command的回传语义保持向后兼容(int)。关联
目前 open issue(#8-#13)聚焦的是基础类型/流量小 helper(
_as_*,_safe_stream等),未覆盖_CommandPlane/command-plane protocol 抽取。验收
Protocol定义。