Repository navigation
Description
已整合 / 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/deletetools;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-uimeasure-the-shell流程确认slot与交互几何。 - 每个slice形成Human可实机验收的纵向路径,通过后再扩sibling states。
- 用户流程、状态矩阵、信息层级与accessibility acceptance。
- 明确static fixture与真实schema/RPC边界;fixture不成为第二authority。
- 每个PR只推进一条可运行纵向slice。
Dependencies and concurrency
- Current direction:Wayfinder: Memory Repository / Workspace Grant / Assignment cwd #114。
- Memory tracer:Foundation: Git working tree as PersonaBot Memory #115。
- Workspace Grant tracer:Workspace Grants: folder access UI and enforced PersonaBot file boundary #116。
- Session ownership / Assignment Runtime:Foundation:explicit Session ownership 与 DSH activity projection #80、Foundation:Assignment Runtime / Assignment Directory / Orchestrator tools #81。
- Real state projection / shared presence:Foundation:explicit Session ownership 与 DSH activity projection #80、Bot activity: shared snapshot and live DM presence #120、Bot activity: Orchestrator and Assignment aggregation #123。
- 设计依据:#71中的ownership/messaging原则、ADR-0029、ADR-0035~0039、ADR-0045;设计记录(已由 #114 取代):Optional Memory Service / pin / Git / events 边界 #74/ADR-0047的optional/tool部分已被#114取代。
Non-goals
- 不在本票实现Host runtime modules。
- 不重新设计sidebar排序。
- 不实现Memory Graph、Shared Memory、模型Memory tools或未设计的Connections backend。
- 不实现一个Assignment多个cwd或Composite Execution World。
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
[-]设计:Bot Inbox / Work Directory / recovery 的 DSH-native UI[/-][+]设计:PersonaBot navigation / Assignments / recovery 的 DSH-native UI[/+]DoodleBears commentedon Sep 21, 2026
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。
DoodleBears commentedon Sep 21, 2026
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 实现一起落地。
DoodleBears commentedon Sep 21, 2026
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)。请在本票的设计结论里补上两点:
shell.overlay只是 Computer TB1 的临时承载,shell 落地后 Computer 面板应迁入导航。设计结论出来后,我会把 shell 与各 destination 的 tracer 票按 native blocked-by 边补进 #153。
DoodleBears commentedon Sep 21, 2026
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 决策影响。