# Agent Note：提示区上下文合并显示目录与分支

Status: implemented

[English](2026-07-24-tui-prompt-workspace-label.md) | 中文

## 问题

空闲提示区上下文（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 快照验证了组装后的提示区上下文。
