Repository navigation
Closed
Labels
V1.0Milestone v1.0; mirrors the GitHub milestoneMilestone v1.0; mirrors the GitHub milestoneenhancementNew feature or requestNew feature or requestready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Milestone
Description
Parent
- [Retired] Orchestrator: V1.0 PersonaBot Activity、Presence 与 Output Events #119
- Motion foundation: UI Foundation: BotHarness motion preference(System / Reduce / Full) #128
- Activity integration: Bot activity: shared snapshot and live DM presence #120, Bot activity: safe tool summaries and effects #122, Bot activity: Orchestrator and Assignment aggregation #123, Group activity: live facepile, safe summaries and details #124
- Source spec: Spec: PersonaBot Activity Projection、共享 Avatar Presence 与 Output Events #118
Observable tracer bullet
把现有 Channel message composer 重构成 DSH-native 的 floating island,同时保持真实消息发送链路不变:
- Human 在 PersonaBot DM 打开 Channel,看到独立于消息流的浮动圆角 composer island。
- 使用现有输入、附件、发送、disabled/error 和 keyboard submit 行为发送一条真实消息,不建立第二套 draft 或 messaging authority。
- composer 顶部/左侧提供稳定的 PersonaBot activity region;Bot activity: shared snapshot and live DM presence #120 接入后,DM 使用与 pinned grid/sidebar 完全相同的共享 Avatar/Activity Frame 和 snapshot revision。
- Group Channel 使用相同 island shell;Group activity: live facepile, safe summaries and details #124 接入后显示最多三个 active/member avatars、+N 和安全的当前活动摘要。
- narrow/wide、light/dark 与三态 motion preference 都可操作且不遮挡最后一条消息。
完成可发送真实消息的 production-shaped shell 后停止,Activity 内容由对应 tracer tickets 接入,不能用 fixture 成为第二 authority。
Layout and interaction contract
- 参考 Beautiful UI Prompt Bar 的 floating/pill composition,但使用 DSH --dsw-* tokens、ui-primitives 与 native inset contract重新实现。
- island 与消息滚动区分离;处理 safe-area、viewport resize、输入框自动增高和最后消息可见性。
- activity region 是共享 component/slot 的消费位置,不拥有 Activity 状态。
- DM 默认显示一个聚合 PersonaBot;Group Channel 允许 facepile 与一行摘要。
- hover/focus 显示简短 activity 文案;点击或键盘操作可展开/折叠安全详情,不能把 hover 作为唯一入口。
- reduced/full motion 只消费 UI Foundation: BotHarness motion preference(System / Reduce / Full) #128 的 effective policy。
- 不直接读取 Session log、UI sending flag、cwd 或当前页面选择来推断 PersonaBot 状态。
Reference-component boundary
- Prompt Bar: https://www.beautifului.dev/r/prompt-bar.json
- Loading State: https://www.beautifului.dev/r/loading-state.json
- Thinking State: https://www.beautifului.dev/r/thinking-state.json
- Beautiful UI 的 @ sources、/ commands、model picker、dictation 不属于本票。
- glimm 不作为默认依赖。当前 package 是 WebGL transition library;只有确认 registry 实际需要、DSH Client 兼容、reduced-motion/fallback 完整并同步更新 bundle external contract 后才能引入。
- Loading/Thinking visuals 只是 presentation;authoritative state 仍来自 application-defined PersonaBot Activity Projection。
Acceptance criteria
- 现有 DM 与 Group Channel 的真实消息发送、附件、disabled/error、IME 和 keyboard submit 不回归。
- island 在消息流上方稳定浮动,消息底部 padding/scroll anchoring 正确,不遮挡最后一条消息。
- narrow/wide sidebar、窗口 resize、long draft 与 multiline composer 不溢出。
- activity region 有稳定 DOM/component contract,Bot activity: shared snapshot and live DM presence #120/Group activity: live facepile, safe summaries and details #124 可接入而不重写 composer。
- DM/Group 都不创建独立 activity state;snapshot revision 与 sidebar consumer 一致。
- hover、focus、click/keyboard 的摘要和 collapsible 行为可访问。
- Follow system / Reduce motion / Full motion 由 UI Foundation: BotHarness motion preference(System / Reduce / Full) #128 统一控制;Reduce 下无 sweep/shimmer/循环空间动画。
- light/dark 与 web-dev Human 验收通过,并记录实际 shell 测量。
- 新外部依赖若存在,bundle contract test、license/notices 与降级测试同步更新。
Blocked by
Blocks
- Bot activity: shared snapshot and live DM presence #120 的 DM composer acceptance。
Non-goals
- 不实现 @ sources、slash commands、model picker 或 dictation。
- 不改变 Channel/Message persistence、Orchestrator wake 或 channel_send 语义。
- 不呈现 raw chain-of-thought、完整 tool arguments/results 或 private Session payload。
- 不实现自定义头像上传;由 自定义头像资产:上传 / 裁切 512 / 持久化 / Blobatar 回退 #58 负责。
Metadata
Metadata
Assignees
Labels
V1.0Milestone v1.0; mirrors the GitHub milestoneMilestone v1.0; mirrors the GitHub milestoneenhancementNew feature or requestNew feature or requestready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Type
Projects
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Sep 21, 2026
Completed by #136. The responsive composer island and the external PersonaBot activity region are now merged; real activity data remains the responsibility of #120 after #80.