4c5f92e0fd
Consolidates the personal dsh-tui customizations (module split into components/session/extension, prompt template + running-glyph indicator, copyable transcript, tool-card headers, timing placement, XML tool output, status/footer rework) and ports upstream's model reasoning-effort selector (Shift+Tab effort cycling, effort-aware /model, footer, and /status) onto the personal module layout.
1.8 KiB
1.8 KiB
Agent Note:提示区上下文合并显示目录与分支
Status: implemented
English | 中文
问题
空闲提示区上下文(prompt context)把工作目录和 git:<branch> 作为两个独立片段渲染。在任务 worktree 中,目录本身往往已能标识当前检出,而带前缀的分支片段额外占用横向空间,且在较窄的终端上会被单独丢弃。
决策
- 提示区上下文把工作目录和可用的 Git 分支渲染为一个工作区标签(workspace label):
<directory> (<branch>)。 - 目录仍为加粗强调色;括号内的分支仍为弱化色。
- 合并后的工作区标签具有最高保留优先级,超出终端宽度时作为一个整体片段裁剪。
- 不在 Git worktree 中或处于 detached HEAD 时,标签仍只显示目录。
考虑过的替代方案
保留 git:<branch> 作为独立片段。 否决:前缀和分隔符占用更多列宽,在此上下文中却不增加信息。
只显示分支。 否决:会话工作目录决定工具在哪里运行,仍是提示区上下文的首要信息。
派生一个特殊的 worktree 根目录标签。 否决:现有的格式化目录和 Git 分支已经提供了这两项相关信息,无需引入对仓库布局的假设。
后果
- 典型的检出渲染为
~/git/tui-staging (tui-staging)。 - 窄终端把目录和分支作为整体保留或裁剪,而不是单独丢弃分支。
- 嵌入方通过
TuiRuntime.formatCwd提供的标签以同样的形式与分支组合。
测试
packages/ui/tui/tests/tui.spec.ts 固定了主目录、绝对路径、格式化及窄终端下的工作区标签。包内快照与可运行示例的 TUI 快照验证了组装后的提示区上下文。