Channels 列表为每条记录单独请求 /status,导致请求数量随列表长度线性增长。用户提供的 2026-09-16 线上 Network 截图中,10 条记录对应 12 次相关数据请求。希望确认并提供适合列表使用的批量状态来源,配合前端消除逐行状态查询。
现象与复现方式
- 使用有多个 Channel 的账号打开 Aevatar Console → Channels。
- 在浏览器 Network 中观察首次加载,或点击页面的 Refresh。
- 10 条记录时,当前请求组成如下:
| 请求 |
次数 |
用途 |
GET /api/channels/registrations |
1 |
注册信息、Skill、Workflow delivery 等 |
GET /api/channels/registrations/{id}/status |
10 |
每条记录的 Inbound 状态 |
GET /api/v1/channel-bots(NyxID) |
1 |
批量获取 Channel name |
这是每次列表加载/手动刷新的逐行请求模式;当前代码关闭了定时轮询。记录增多时,浏览器请求和后端到 NyxID 的逐条查询也会增加。本 issue 依据用户线上截图及源码核对,未做额外线上压力测试。
已确认的原因
- 前端每个
ConnectedRow 都调用 useChannelStatus(scopeId, registration.id),用结果渲染 Inbound。
GET /registrations 返回 workflow_result_delivery_status,但没有 NyxID bot 的 Inbound status。
- 后端单条
/status 先查询 registration,再调用 nyxClient.GetChannelBotAsync(...) 获取状态;Workflow delivery 也在这个响应中重复返回。
- 页面已经调用 NyxID 的
channel-bots 批量接口,但当前前端解码器只读取 id / platform / label。尚未确认该批量接口是否返回与单条查询同语义、可直接复用的 status。
源码定位:
建议确认的方案
优先确认现有 NyxID channel-bots 批量列表能否提供所需状态。如果已支持,前端按 registration 的 nyx_channel_bot_id 与 bot id 精确匹配,一次获取名称和 Inbound 状态;Workflow delivery 直接使用 registration 列表字段。
如果该接口不支持,评估补充列表状态摘要或批量状态查询契约。需要同时考虑 NyxID 上游调用量,避免只是将逐条请求移到后端;若采用状态快照,应明确新鲜度语义。
验收预期
- 首次加载和手动 Refresh 不再默认对每条记录发起单独
/status 请求;请求按列表/批次组织。
- 保持名称、Skill、Inbound 和 Workflow delivery 的正确展示,不混淆 bot ID 与 registration ID。
- 状态缺失或查询失败仍诚实展示 Unknown,不默认判定 Active;保持当前账号的数据边界。
- 单条详情按需查询可以保留;验证时记录浏览器请求数及后端到 NyxID 的调用数。
关联:#3617。
Channels 列表为每条记录单独请求
/status,导致请求数量随列表长度线性增长。用户提供的 2026-09-16 线上 Network 截图中,10 条记录对应 12 次相关数据请求。希望确认并提供适合列表使用的批量状态来源,配合前端消除逐行状态查询。现象与复现方式
GET /api/channels/registrationsGET /api/channels/registrations/{id}/statusGET /api/v1/channel-bots(NyxID)这是每次列表加载/手动刷新的逐行请求模式;当前代码关闭了定时轮询。记录增多时,浏览器请求和后端到 NyxID 的逐条查询也会增加。本 issue 依据用户线上截图及源码核对,未做额外线上压力测试。
已确认的原因
ConnectedRow都调用useChannelStatus(scopeId, registration.id),用结果渲染 Inbound。GET /registrations返回workflow_result_delivery_status,但没有 NyxID bot 的 Inboundstatus。/status先查询 registration,再调用nyxClient.GetChannelBotAsync(...)获取状态;Workflow delivery 也在这个响应中重复返回。channel-bots批量接口,但当前前端解码器只读取id / platform / label。尚未确认该批量接口是否返回与单条查询同语义、可直接复用的 status。源码定位:
建议确认的方案
优先确认现有 NyxID
channel-bots批量列表能否提供所需状态。如果已支持,前端按 registration 的nyx_channel_bot_id与 botid精确匹配,一次获取名称和 Inbound 状态;Workflow delivery 直接使用 registration 列表字段。如果该接口不支持,评估补充列表状态摘要或批量状态查询契约。需要同时考虑 NyxID 上游调用量,避免只是将逐条请求移到后端;若采用状态快照,应明确新鲜度语义。
验收预期
/status请求;请求按列表/批次组织。关联:#3617。