Skip to content

设计:PersonaBot navigation / Assignments / recovery 的 DSH-native UI #75

Closed as not planned

Description

@DoodleBears

已整合 / Superseded — 2026-10-25

旧 UI breadth 总票的剩余验收已拆入现有当前工单。关闭理由是需求整合,不能解读为下面历史方案全部实现。

范围 处置 / 当前承接
默认 Memory/file-edit、Git/history 基础 #115/#259 已完成,保留现有交付证据
Workspace Grant 与 Session 基础 #116/#312 已完成;#2080 是当前权限策略和已交付 Web/mobile 行为依据
Memory degraded/repair/conflict、错误与历史读取 UX #2224:75-C–E;复用已关闭 #2214 的预览依据,不把历史 native QA 限制当成通过
current-attention、cursor/filter/sort、blocked/waiting/terminal、descendant、原生 Session 导航 #2225:75-F–H
Unknown Outcome、grant/capability unavailable、needs-repair、dependency/rebind 的 typed facts #47:75-I/J
Grant 撤销/不可用、default vs snapshot、风险确认/审计、恢复与重启 UI 验收 #2219:75-K–M(#2080 已关闭,不把新待办放入它)
loading/error/empty/recovery、信息层级、键盘/focus/accessibility、measure-the-shell、真实纵向切片与 fixture 边界 #2219:75-A/B;各承接票有对应 live-state 验收
pin budget / pinned-body 注入 ADR-0060 已撤回,不迁成新待办
accepted-commit admission gate / 普通 Git 历史自动 repair ADR-0068 已替代,以当前 working tree 为 Memory authority
Assignment-only、隐藏 Orchestrator、主入口只读 detail #312 已替代,当前为原生 Sessions
旧固定 sidebar/rail/DM-only 几何、旧权限规则 服从当前 #2017/#2048/#2219 与 #2080/ADR-0205,不重建过时方案
非目标 不新增 runtime authority、sidebar 排序改造、Memory Graph/Shared Memory/model-only CRUD、未定义 Connections、单 Assignment 多 cwd

迁移保留“cwd/path 不是授权”“当前默认值不伪装成已有 Session 重配”“一个可运行纵向切片先验收再扩展”等仍有效边界。现有 owner/QA claim 和资源归属不因本票关闭而释放。

已在关闭前读回核对承接票正文与验收编号;原正文完整保留在下方供追溯。按 not planned / superseded 关闭旧追踪入口,未宣称剩余实现或运行验收完成。Project、Milestone 和优先级保持原状。


Historical issue / 历史正文

2026-09-26 decision update: PersonaBot Session browser

Human chose a v1.0 Session browser under #312. In a PersonaBot DM, the right sidebar section is Sessions / 会话: Orchestrator and independent Assignment Sessions, flat Current view by default, All and workspace grouping as per-Bot view preferences. Rows open the native DSH Session. The older Assignment-only/read-only-detail interaction below is retained as historical rationale, not the current target. #75 remains v1.1 breadth for recovery and richer state UX after #312. Assignment Runtime and Directory in #81 remain in place for application-owned Grant, continuity, report, stop and concurrency facts.

Why

#71 已确定 Bot Inbox、Attention、Orchestrator、Assignment Directory 与 recovery 的 Host contract。#114 进一步锁定 V1 PersonaBot DM 信息架构与 execution boundary:Memory 默认存在;Chat 是 Human-facing Channel surface;Assignments 只投影 Assignment Sessions;Workspace authority 通过 persistent Workspace Grant,不通过 cwd 猜测。

本票负责 #115/#116/#80/#81 之后的 DSH-native UI breadth。V1.0 所需的最小 Memory surface 与 Assignment list/detail可由各 tracer task协同交付;本票继续保持 v1.1,承接完整状态矩阵与恢复体验。

Locked information architecture

  • PersonaBot DM 才显示 PersonaBot navigation;group Channel 不显示。
  • Chat 与 Memory 始终存在于正常 PersonaBot。Memory Repository unavailable/invalid 时显示明确 degraded/repair state,不隐藏入口或退化为“无 Memory”。
  • Memory 是 file-first repository surface:file list/read/edit、pin state/budget、accepted Memory Commit history与diff。Client只通过Typert read model/commands消费Memory Service,不直接读filesystem或raw Git。
  • V1没有模型可见 memory_read/write/edit/append/list/delete tools;Human edit与Agent普通文件/git变化最终都经过同一validation/reconciliation/accepted-commit边界。
  • Memory下方直接平铺该PersonaBot的事项(Assignments),不设置额外顶层“工作”入口。
  • Orchestrator Session不出现在列表中;DM Chat本身是Orchestrator的Human-facing surface。
  • 点击事项打开只读Assignment detail;展示purpose、DSH-derived activity/lastRun、latest report、单一Workspace/cwd与Workspace Grant状态。原始DSH Session只通过显式次级操作进入。
  • Workspace Grant管理是PersonaBot级设置/导航能力:Human授权一次可跨Assignments复用,可撤销;UI不把path字符串或当前cwd当授权。
  • PersonaBot设置提供Assignment access preset:默认workspace-write;danger-full-access必须显式风险确认、持续警示、可撤销并显示审计摘要。
  • Assignment detail同时显示当前Bot default与该Session immutable snapshot;设置变化不能让existing Session看起来被重配。
  • Orchestrator始终workspace-write;full access Assignment仍显示一个primary cwd与Grant provenance,不表现为multi-cwd。
  • sidebar折叠为rail时显示所有可见PersonaBot头像与Channel icon;点击只切换DM/Channel,不自动展开。
  • Connections保留为未来PersonaBot destination;行为未设计和可用前不显示placeholder。

Tracer-bullet sequence

Slice 1 — default Memory

  • 创建PersonaBot后Memory入口立即可用。
  • Orchestrator以Memory Repository为cwd,通过普通file/Shell/git产生一个change。
  • Memory Service接受一个Memory Commit。
  • Human可以浏览文件、完成一次edit/save并查看accepted commit/diff。
  • 到达可操作状态即停下等待Human验收。

Slice 2 — one Assignment with one Workspace

  • Human为PersonaBot创建一个durable Workspace Grant。
  • DM中发送一个需要独立执行的请求。
  • Orchestrator创建一个使用该Grant的Assignment Session;该Session只有一个cwd。
  • Assignment Report回流后Orchestrator在同一DM回复。
  • subordinate list/detail显示Assignment及Grant/Workspace provenance。
  • 到达该状态即停下等待Human验收。

Slice 3 — explicit danger-full-access

  • Human在PersonaBot设置中阅读风险并显式确认开启。
  • 下一新建Assignment固化danger-full-access snapshot并持续显示warning。
  • 已有workspace-write Assignment保持不变。
  • Human撤销preset;之后新建Assignment恢复workspace-write,已有danger Session保持原snapshot直到显式stop。
  • 该Session仍只有一个primary cwd与Workspace Grant;UI不把full access描述成Composite Execution World。

Later breadth

  • Memory pin budget、冲突/repair、history query breadth。
  • Assignment Directory current-attention、cursor/filter/sort、blocked/waiting/terminal、descendant aggregate。
  • Grant revoke/unavailable、Unknown Outcome、Service Grant、needs-repair、dependency/rebind readiness。
  • loading/error/empty/recovery states与rail breadth。

Deliverables

  • 使用 dsh-ui measure-the-shell流程确认slot与交互几何。
  • 每个slice形成Human可实机验收的纵向路径,通过后再扩sibling states。
  • 用户流程、状态矩阵、信息层级与accessibility acceptance。
  • 明确static fixture与真实schema/RPC边界;fixture不成为第二authority。
  • 每个PR只推进一条可运行纵向slice。

Dependencies and concurrency

Non-goals

  • 不在本票实现Host runtime modules。
  • 不重新设计sidebar排序。
  • 不实现Memory Graph、Shared Memory、模型Memory tools或未设计的Connections backend。
  • 不实现一个Assignment多个cwd或Composite Execution World。

Activity

  1. added this to the v1.1 milestone on Sep 19, 2026
  2. changed the title [-]设计:Bot Inbox / Work Directory / recovery 的 DSH-native UI[/-] [+]设计:PersonaBot navigation / Assignments / recovery 的 DSH-native UI[/+] on Sep 20, 2026
  3. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    PR #127 已合并一个最小 DSH-native UI slice:PersonaBot DM 是 Human-facing Chat,右侧只显示 Assignment Sessions 的列表/只读详情,不显示 Orchestrator Session;PersonaBot activity/avatar renderer 已统一到 sidebar、Chat、composer,DM Channel 也可参与 section/loose 排列。

    #75 继续保持 open。Memory 导航与 file/history/diff、Workspace Grant/permission warning、完整 recovery states、rail breadth 和 DSH Session 次级打开入口仍属于后续 slices。

  4. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    Bot Inbox destination 的 UI 需求已开票为 #152(sub-issue of #30,blocked by #47 与 #75):PersonaBot navigation 右侧 sidebar 增加可折叠的 Bot Inbox 面板,沿用 Channel section 的折叠语言,只消费 #47 的 Bot-scoped attention 查询与 source references,与 #75 的 navigation 实现一起落地。

  5. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    PersonaBot navigation 的 destination 清单已整理进协调 map #153,本票需要覆盖的 destination 现在有五个:Chat(已交付)、Memory(#115)、事项/Assignments(#81/#116)、Bot Inbox(#152,依赖 #47)、Computer(#149/#150,VNC 观看/驱动;设计目标就是右侧 sidebar 的 collapsible destination,TB1 暂用 shell.overlay)。

    请在本票的设计结论里补上两点:

    1. 这五个 destination 共用一个可折叠 shell(同一导航 authority、同一折叠交互语言、DM-only、键盘可达),不允许每个 destination 各自造右侧面板;
    2. shell.overlay 只是 Computer TB1 的临时承载,shell 落地后 Computer 面板应迁入导航。

    设计结论出来后,我会把 shell 与各 destination 的 tracer 票按 native blocked-by 边补进 #153。

  6. DoodleBears commented on Sep 21, 2026

    @DoodleBears
    ContributorAuthor

    Channel sidebar 的 shell 部分设计已定稿并落成 ADR-0053(docs/adr/0053-channel-sidebar-is-the-scoped-right-sidebar.md),实现票为 #156(本票第一切片:shell + group 成员 / DM 事项 两个内置 entry)。

    定稿要点:右侧区域正式命名 Channel sidebar(左 = App Sidebar,中 = Channel body);scope 跟随选中实体,group Channel 显示成员与频道管理 entries,DM 显示该 PersonaBot 的 entries;entry 通过一个 BotHarness 客户端 Cordis service 以 slot-like 方式注册(id/label/order/scope/render),独立插件可接入;entry 独立折叠、默认折叠、展开状态 client-local;宽屏始终可见可整体收起,窄屏 overlay 唤出、不做 rail;不使用 DSH 原生 session-scoped rightbar/sidebar.right.*。ADR-0029 的右侧表述已加 Superseded 段。

    本票继续保留的部分:Assignment detail/recovery 状态矩阵、Memory surface 细节、sidebar rail、degraded/repair 体验——这些不受 shell 决策影响。

  7. added
    V1.1Milestone v1.1; mirrors the GitHub milestone
    area:ui-uxInteraction and visual experience; may accompany a code-layer area
    feature:assignmentOrchestrator and Assignment collaboration
    scope:designDesign decision or UX contract
    on Sep 22, 2026
  8. moved this from Todo to Done in Roadmapon Oct 24, 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.1Milestone v1.1; mirrors the GitHub milestonearea:ui-uxInteraction and visual experience; may accompany a code-layer areafeature:assignmentOrchestrator and Assignment collaborationscope:designDesign decision or UX contractwayfinder:grillingWayfinder grilling ticket

    Type

    No type

    Projects

    • Status
      Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions