Skip to content

feat(dashboard): 增加多 Bot 话题聚合视图#499

Draft
nil-err wants to merge 1 commit into
deepcoldy:masterfrom
nil-err:codex/dashboard-topic-collaboration-20260716
Draft

feat(dashboard): 增加多 Bot 话题聚合视图#499
nil-err wants to merge 1 commit into
deepcoldy:masterfrom
nil-err:codex/dashboard-topic-collaboration-20260716

Conversation

@nil-err

@nil-err nil-err commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

背景

同一个飞书群里可能同时存在多个 Bot 会话,其中一部分会话位于同一话题,并通过 Bot-to-Bot 消息协作。现有 Dashboard 只能按单个 session 或整群展示,缺少稳定的话题聚合入口;当前持久化数据也没有 collaborationId / parentSessionId,不能可靠证明“谁唤醒谁”。

本 PR 先落地不迁移历史数据的第一阶段:展示可证实的位置关系,并把最新 Bot 输入明确标为“推断”。

改动

  • 新增“话题”会话视图:
    • thread session 按 (chatId, rootMessageId) 聚合;
    • chat-scope session 按整群 chatId 聚合;
    • 缺失聊天位置时退化为单 session。
  • 新增“多 Bot 话题”和“Bot 唤醒话题(推断)”筛选。
  • 话题头展示会话数、Bot 数、活跃/已关闭数量、最近更新时间及推断唤醒信号。
  • 当前筛选隐藏已关闭或其他 CLI 成员时,话题头仍从完整 session store 计算关系,避免误丢多 Bot 标记。
  • Dashboard row 新增 lastInputFromBot,由最新的 quoteTargetSenderIsBot 派生;现有会话收到新消息后通过 session.update 实时刷新。
  • 补齐中英文文案、桌面/移动端样式及专项测试。

语义边界

  • lastInputFromBot 只代表最近一轮输入来源,后续消息会覆盖;UI 全部标为“推断”,不把它当作完整协作因果链。
  • 本 PR 不新增持久化 schema,不迁移历史 session,也不引入 collaborationId
  • 改动位于 Dashboard 公共 row / web 展示层,对所有 CLI、PTY/Tmux、thread/chat session 生效;未修改 CLI adapter、worker 执行或会话路由规则。

验证

  • pnpm vitest run --project unit test/dashboard-attention-signals.test.ts test/dashboard-sessions-ui.test.ts test/dashboard-preferences.test.ts test/dashboard-mobile-layout.test.ts
    • 55/55 通过。
  • pnpm build
    • TypeScript、Dashboard bundle、dist audit 全部通过。
  • git diff --check
    • 通过。
  • 完整 unit:9091/9096 通过。
    • 剩余 5 项位于未改动的 V3 Linux worker-fence/cancel 测试;
    • 单独复跑仍为 3 项进程扫描歧义、2 项 30 秒超时;
    • 未发现与本 PR Dashboard 路径的代码交集。

截图

示意数据,不包含真实会话内容:

Dashboard 多 Bot 话题聚合

运行状态

未切换全局 Botmux wrapper,未重启 daemon / Dashboard,未部署该分支。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant