Skip to content

M3: Bot 模式 IA 与聊天外壳(列表/Section/DM/本地消息) #10

Closed
16 of 16 issues completed
Closed

Description

@DoodleBears

M3:Bot 模式 hub

交付目标:聊天优先的Bot模式,包括sidebar roster、Section、DM/群Channel、本地消息、PersonaBot创建入口与完整zh/en UI。

旧的右侧“主会话 + Session列表”设计已由ADR-0029与#114更新取代。目标态是DM-only PersonaBot navigation:Chat与Memory始终存在,其下直接平铺事项列表;Orchestrator不作为列表项。Memory不可用时显示degraded/repair,不隐藏入口或回退optional模式。后续UI由#115/#75按tracer bullet推进,不回塞进已接近收尾的M3 hub。

当前设计权威是CONTEXT.md、living architecture、Bot runtime architecture与ADR;docs/botharness.md / PRD.md已归档,不再作为实现规范。

已交付

剩余 tracer bullets

  1. 完整zh/en(i18n: 客户端 UI 接入 DSH locale(zh/en) #33):完成所有Bot模式界面的DSH locale迁移和真实语言切换验收。
  2. M3 acceptance sweep:验证创建、roster、Section/Channel排布、DM/群图形、刷新/重启和浅深主题,然后关闭本hub。

#114/#115/#116/#80/#81属于Memory/Workspace/Assignment runtime路线,不应继续扩张本hub。下一条产品主链先由#115建立default Memory Repository,再由#116/#80/#81打通DM → Orchestrator → one-cwd Assignment闭环。

Completion criteria

  • 新用户可从空态或sidebar“+”创建PersonaBot,无需整页刷新即可进入roster。
  • 所有用户可见文案随DSH locale在zh/en间切换。
  • roster/Section/Channel排布在刷新与重启后保持,且没有browser-only第二authority。
  • 每个tracer bullet都有focused automated tests和Human可操作的实机路径。
  • lint、format、typecheck、test、build全绿。

Next gate

#24是独立M3.5实机安装验证门,同时等待本issue与#81;真实Memory Repository、Workspace Grant与Assignment Session lifecycle不塞回M3 sidebar hub。

References

V1 UI handoff

Activity

  1. DoodleBears commented on Sep 18, 2026

    @DoodleBears
    ContributorAuthor

    UI 开发顺序(prototype-first)

    1. 先 /prototype 锁 UI:用 mock 数据做名册的多套结构变体(树形 / 卡片 / 活动优先列表),在真实 DSH 之外确认布局与信息层级。
    2. 再挂 dev 环路(M3.5 提前):deepseekbot 最小 bundle 把 core + client 挂进 web-dev profile,dsh web --profile web-dev;之后 UI 迭代 = pnpm build + dsh-client-hmr 自动换新。

    现状:packages/client 只有骨架(最小列表面板 + 图标 + @ 输入源),无树/详情/向导;真实 DSH 里尚未挂载。环路细节见 docs/client-bridge.md §7。

  2. DoodleBears commented on Sep 18, 2026

    @DoodleBears
    ContributorAuthor

    UI 方向确认(2026-09-18,prototype)

    • 名册 UI 采用 sidebar 内可折叠 PersonaBot section(PersonaBot > Workspace > Session + 正在做什么),与 DSH 工作区浏览保持同一视觉语言;卡片名册、活动流按 YAGNI 暂缓,先 keep it simple。
    • 选定方向原型:packages/client/prototype/sidebar-section.html(pnpm prototype:roster);旧三变体保留在 roster.html,B/C 已弃。
    • 槽位事实:DSH sidebar 的公开槽只有 sidebar.workspaces(single,ui-workspace 占用)/ sidebar.panellist(list)/ sidebar.settings(single)/ sidebar.footer.action(list),没有"额外 section"槽;sidebar.workspaces 的子槽只有 ui-workspace 声明的 directoryFlow,第三方重复声明会被 SlotCore 拒绝(dsh-agent-team 的教训:不要 shadow 后重声明目录流)。
    • 实现路径三选一(待确认):
      1. v1 推荐:sidebar.panellist 入口 + main 面板(现有骨架扩展),DSH 完全不动,风险最低;
      2. sidebar.footer.action 入口 + panel(sidebar 底部入口);
      3. 像 dsh-agent-team 一样在 Bot 模式激活时 shadow sidebar.workspaces:会用自绘浏览区整体替换 DSH 工作区,一致性风险高。
        另可向上游提 sidebar section 槽的 feature request,作为 1/2 之上的长期解。

    lobehub 调研(profile 设计)

    • 调研笔记:docs/research/2026-09-18-lobehub-agent-profiles.md(lobehub@b0ef4b2e)。
    • 值得借鉴:profile 字段(model/provider/params、systemRole、profile 角色卡);插件绑定三态 pinned | auto | disabled;MCP 以连接器表按 Agent > Workspace > 个人解析,工具级 auto | needs_approval | disabled;Skill 走 SKILL.md + 按 Agent 插件过滤的池。
    • 关键差异:lobehub 的 memory 是 user-scoped,且 duplicate / 市场安装 / 导出都不打包 memory 与知识库;我们的 SoulSnapshot 打包 memory(ADR-0020)是已验证的差异化点,M6/Tracer: publish a Memory Git repo and import through a Bot link #17 可把这一点作为对外叙述的第一卖点。
  3. DoodleBears commented on Sep 18, 2026

    @DoodleBears
    ContributorAuthor

    UI 方向 v3:模式切换 + footer 按钮(2026-09-18)

    接受 agent-team 式的模式切换:DSH sidebar footer 放一个切换按钮;Bot 模式下拉起 BotHarness 界面,退出恢复 DSH 原状(实现上即 shadow sidebar.workspaces / main,与 ADR-0024 的无中枢模式切换兼容)。

    Bot 模式 UI

    • 顶部:搜索 + 新建入口;置顶 Bot 网格(blobatar 头像、名称、标签、状态点)。
    • Bot 联系人列表:头像、名称 + 标签、最新消息、时间/未读点。
    • 工作区树:Workspace > Session;Session 行左侧是负责 Bot 的头像,右侧是推进状态 / needs input 圆点 + 文字(waiting / blocked 高亮为"需要你")。
    • 主区:与选中 Bot 的对话视图,或选中 Session 的会话视图(DSH 原会话界面)。
    • 素材:图标用 HugeIcons(原型内联 SVG);头像用 blobatar;blobatar@^2.7.0 + @blobatar/react@^2.7.0 已加入 packages/client 依赖。

    原型:packages/client/prototype/sidebar-section.html(pnpm prototype:roster,portless → http://prototype.botharness.localhost:8788/)。此前的"追加式 section"方案作废(sidebar 无可追加 section 的公开槽,只能 shadow)。

    lobehub 结论:借鉴清单见 docs/research/2026-09-18-lobehub-agent-profiles.md §8;结论不变——lobehub 不打包记忆,SoulSnapshot 记忆打包是我们的差异点(M6/#17 对外叙述)。

  4. DoodleBears commented on Sep 18, 2026

    @DoodleBears
    ContributorAuthor

    UI v4:常驻切换 + Bot 事件流 + BOT dashboard(2026-09-18)

    • footer 切换常驻:两种模式下都固定在 sidebar 底部;Bot 模式显示「切回 DSH 工作区」,DSH 模式显示「打开 PersonaBots」,点击互切。实现即 sidebar.footer.action(additive)+ Bot 模式 shadow(退出恢复)。
    • 选中 Bot:主区 = 对话(DSH 会话视图)+ 右侧事件流 / Inbox(参考 DSH 的 LM trace 时间线;来源 badge:飞书 / 频道 / 会话 / 系统 / 人类;未读加粗;needs-input 事件带「处理 / 稍后」)。回答"M3 的 Inbox 长什么样"。
    • 未选中(默认):主区 = BOT dashboard:KPI(进行中 / 需要你 / Inbox 未读 / 今日完成)+ 过去 24h 事件趋势图 + 全局 Inbox 列表(「去处理」直接跳到对应 Bot)。图表真实实现用 @tanstack/react-charts(已确认 0.18.0 可安装)。
    • 原型:packages/client/prototype/sidebar-section.html(pnpm prototype:roster)。这一版同时回答 Inbox 在 UI 上的落点:Bot 级事件流 + 全局 dashboard,而不是独立页面。
  5. DoodleBears commented on Sep 18, 2026

    @DoodleBears
    ContributorAuthor

    UI v5:Dashboard 入口 + PersonaBot 最小 profile(2026-09-18)

    • Bot 模式顶栏最左新增 Dashboard 图标按钮(搜索框左侧,HugeIcons dashboard-square-01):点击取消当前选中,回到 BOT dashboard。原型已更新。
    • PersonaBot 最小 profile 定为 displayName / tag(岗位,单一)/ description(一行);M3 新建向导按此实现(PRD v1.2、spec v1.7、CONTEXT.md 新增 Bot tag / Bot description 词条)。
    • 模型选择:全局默认 + per-PersonaBot 覆盖,本地解析;不随 SoulSnapshot 发布(ADR-0027)。向导里的模型/preset 只写本地 bot.json,导出时剥离。
  6. DoodleBears commented on Sep 18, 2026

    @DoodleBears
    ContributorAuthor

    M3 UI 已落地(PR #32,merge 8828208)+ 原型归档

    • 实现:footer 常驻模式切换、Bot sidebar(置顶 Bot / 联系人列表 / 工作区树)、Dashboard(KPI + TanStack 状态分布图 + Inbox 空态)、Bot 视图(对话占位 + 事件流空态),数据走既有 botharness/list 读模型。
    • 交互原型(含未选变体)归档在 throwaway 分支 prototype/m3-roster-ui,不入 main;M3: Bot 模式 IA 与聊天外壳(列表/Section/DM/本地消息) #10 留此指针。
    • 数据边界:sessions / events / Inbox 目前是诚实的空态;dashboard 图表用真实的聚合状态分布(时间趋势等 Inbox 上线)。
    • M3 剩余:create/update/pause/resume 桥方法(新建向导)、工位会话与 @委派、六态实时刷新。
  7. 26 remaining items

  8. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    PR #133 已合并:section header 的 + 现在可在该 section 内创建 PersonaBot DM 或 group Channel;新建 section、根级 Channel / PersonaBot DM、section 内 Channel / PersonaBot DM 均默认持久化在所属 scope 的第一位。ADR-0031 与双语 Release Ledger 已同步;453 tests、typecheck、lint、build 及真实 DSH Host 冒烟通过。#10 仍保留开放,因为它是更广的 M3 Bot 模式总票。

  9. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    Pin UI slice completed and merged in #134.

    Delivered:

    • PersonaBot DM context menu: pin + existing move action
    • pinned card context menu: unpin
    • durable Host-backed pin order through the existing pinsSet bridge
    • preserved section/loose placement across pin → reload → unpin
    • pointer and Shift+F10 keyboard paths
    • group Channels remain move-only

    Verification: 455 tests, typecheck, build, release-ledger checks, and a live 3080 Host probe all passed. Keeping #10 open for its remaining BOT-mode hub scope.

  10. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    PR #135 merged: PersonaBot DMs can now be dragged into a persistent pin zone and pinned cards can be dragged back into the ordinary roster to unpin. Both targets use layout-stable hover feedback, preserve the DM Channel section/loose placement, and retain context-menu keyboard alternatives. Verified with the full 458-test suite, lint, format, typecheck, production build, and real native drag checks in dark and light themes.

  11. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    已按可逆与破坏性生命周期拆分:#137 是 v1.0 的 Hidden Channel tracer bullet,只改变 roster 可见性,不删除消息、PersonaBot、Memory 或布局归属;#138 是 v1.1 的 PersonaBot / Channel destructive delete 与 Purge 依赖契约。#137 已在当前本地验收切片实现,等待 Human 验收。

  12. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    Progress update after #163: the Channel organization tracer bullet is merged, including unified DM/group drag and drop, pinning, collapsed-rail projection, context menus, and reversible hide/restore with a compact debounced modal. #137 is now closed. Keeping this umbrella issue open because the #33 copy/language work and the final M3 acceptance sweep remain.

  13. added
    V1.0Milestone v1.0; mirrors the GitHub milestone
    area:fullstackEnd-to-end Host and Client implementation
    area:ui-uxInteraction and visual experience; may accompany a code-layer area
    feature:channelChannel chat, timeline, composer, and navigation
    scope:hubParent coordination map or epic; not a standalone implementation slice
    on Sep 22, 2026
  14. moved this from Todo to Done in Roadmapon Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    V1.0Milestone v1.0; mirrors the GitHub milestonearea:fullstackEnd-to-end Host and Client implementationarea:ui-uxInteraction and visual experience; may accompany a code-layer areafeature:channelChannel chat, timeline, composer, and navigationscope:hubParent coordination map or epic; not a standalone implementation slice

    Type

    No type

    Projects

    • Status
      Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions