## Parent - #153(PersonaBot navigation / 右侧区域协调 map;本票是其第一个实现切片) - ADR-0053:`docs/adr/0053-channel-sidebar-is-the-scoped-right-sidebar.md` ## What to build 把 Bot mode 的右侧区域实现为 **Channel sidebar**(ADR-0053):一个 scope-aware、entry 可折叠的容器,替代现在写死的右侧面板(DM 显示事项、group 显示成员)。首个切片交付 shell 与两个真实 entry(group:成员;DM:事项),证明注册 seam 与跨 scope 行为,且不依赖任何未完成的 Host 侧工作。 具体范围: - **Channel sidebar 容器**:scope 跟随当前选中的实体(group Channel / PersonaBot DM);宽屏始终可见且可整体收起,窄屏默认隐藏、由 Channel header 的按钮以 overlay 唤出;不做 rail(rail 归属折叠后的 App Sidebar)。宽度/断点/过渡几何按 `dsh-ui` 的 measure-the-shell 流程确定。 - **entry 注册 seam**:BotHarness 客户端 Cordis service(`provide`/`inject`,slot-like:id / label / order / scope / render),BotHarness 自己注册内置 entry;跨 client bundle 可用;未注册、无权限或为空时不显示,渲染占位。 - **折叠语义**:entry 独立 toggle(非 accordion)、默认折叠、展开状态 per-Channel/PersonaBot 存 client-local;键盘可达;reduce-motion 生效。 - **迁移现有内容**:把「成员」与「事项」迁成 entry,读取权威不变(仍走现有 bridge 读模型)。 ## Acceptance criteria - [ ] 真实 DSH 中:group Channel 的 Channel sidebar 可折叠展开「成员」;DM 的可折叠展开「事项」;切换 Channel/PersonaBot 时展开状态与内容正确。 - [ ] entry 只通过统一 seam 注册,顺序由 descriptor 的 order 决定;shell 不 import 任何 entry 实现代码;移除注册后 entry 消失且不留占位。 - [ ] 宽屏整体收起、窄屏 overlay 唤出可用;键盘可达;reduce-motion 下无位移动画。 - [ ] 展开状态按 Channel/PersonaBot 持久在客户端本地,不进入 Host authority 或 Soul。 - [ ] 遵守 ADR-0053:不占用、不 shadow DSH 原生 `rightbar` / `sidebar.right.*`。 - [ ] 停在 Human 可实机操作的验收点,并附证据(截图或录屏)。 ## Blocked by - None (can start immediately).
Activity
DoodleBears commentedon Sep 21, 2026
实现已提交于 PR #161(未合并,停在 Human 实机验收点)。
无头 Chrome 实测(指向本分支构建的 web-dev 实例,端口 3082):
自动化:
pnpm test全量 493 passed;新增 registry(排序/scope/引用稳定/dispose/重复 id)、prefs(roundtrip/通知/坏存储)、layout(dock/overlay/hidden)与 entry 渲染(展开/折叠/aria)覆盖;pnpm lint、pnpm typecheck、pnpm format、pnpm build全绿。Human 验收入口:http://127.0.0.1:3082/?token=w47XKjL3G-cNVQbuJmpkPVcVfu4sl3QNcmGFr6mcEPE (独立
DSH_HOME=~/.dsh-bh156,重启会换 token)。验收动作:进 BOT 模式 → 点 Ada(DM)看「事项」折叠/展开 → 点 Team(群聊)看「成员」→ 点右上角面板按钮整体收起/展开;切换不同 DM/Channel 确认各自的展开状态是分开记的。Merge pull request #161 from BotHarness/feat/156-channel-sidebar-shell
DoodleBears commentedon Sep 21, 2026
已交付并合并:PR #161。
rightbar。x:1404, y:13一致);移除 Channel body header 的【私聊/群聊】;两个 header 共享 53px 高度,下边框对齐。后续:Computer TB1 从
shell.overlay迁入 entry(#150);Bot Inbox entry #152 等 #47;shell 的 measure-the-shell 几何细化可随时补。