Skip to content

01. UI信息架构

翻译说明: 本页是与 英文源规格 一一对应的机器辅助翻译。代码、协议字段和标识符保持原文;如翻译与英文源事实有歧义,以英文版本为准。

语言:英语(根据 ADR 0009)。这描述了已发货的符合 Codex 的 外壳 (D034+)。组件详细信息:08-组件规格; 视觉标记:07-ui-design-system;行为: 09-交互模式

1. Goal

清晰、克制、开发人员优先的工作台:一个窗口,一个活动 目的地、聊天作为主页表面、工具和权限内联。

2. Shell 区域

text
+----------------------------------------------------------------------+
| 平台标题栏:macOS 交通灯/Windows/Linux 操作 |
+------------------+--------------------------------+------------------+
| 侧边栏(~275px) | 主窗格(活动目的地) | 工作面板 |
|                  | 聊天主页/文字记录 | (可选, |
|                  | 或扩展页面 | 可调整大小 |
|                  |                                | 244–720 像素) |
| 会话 +↕ |                                | 表面 |
| 最近行 ↕ |                                |                  |
| 项目+ |                                | ◫ | 应用.tsx ⌄ × |
| 项目A |                                | > |              |
| 项目B |                                | ◎ | 活跃 |
| 页脚[⚙][@][☾][响铃] | 浮动输入框(聊天) |   | 资源 |
+------------------+--------------------------------+------------------+
  • 侧边栏:主要导航 - 紧凑的无路径对话 会话 包含新会话和排序操作的部分,保留开放项目 具有持久性新项目的以下 Projects 部分下的组 动作,以及受 WorkBuddy 启发的页脚。页脚保持紧凑的设置, 扩展和通知图标操作;拉取请求和计划 故意从主侧边栏中省略。每个保留的项目都是一个 路径键控 tab/group 可以是 独立倒塌。项目和对话行公开 非破坏性 pin/archive 操作,独立的对话分支 命令和可排序视图。未保留在侧边栏中的项目仍然存在 可通过设置 → 项目存档发现。 可折叠到图标导轨 (Cmd/Ctrl+B)。
  • 产品标识:运行时 shell 复制使用 PI-Desktop;主场英雄和 侧边栏重复使用规范的 build/icon_1024.png 徽标,而输入框提示 行没有领先的品牌图标,会话创建控件使用专用的 消息加号图标。开 Windows/Linux,扩展侧边栏以键盘可访问的主页开始 右侧的品牌和搜索加折叠侧边栏控件;激活 品牌返回主窗格进行聊天。 macOS 扩展侧边栏省略了 logo/title 品牌,仅将“搜索”和“折叠”侧栏放在右侧 红绿灯行Codex 仅保留外部导入源或 设计参考术语。
  • 主窗格:一次仅一个目的地;目的地取代 窗格(它们是页面,而不是模式)。
  • 标题栏:平台本机桌面 Chrome (D118)。 macOS 用途 hiddenInset 交通灯和系统应用程序菜单。扩展后的 侧边栏将“搜索”和“折叠”侧边栏保持在同一 46 像素行中,并与 交通灯安全区域外的右侧;没有呈现 logo/title 那里,包括全屏。当工作面板打开时,会话 窗格标题栏在右上角托管其折叠控件,因此面板选项卡 标题仍然集中在活动资源上。 Windows/Linux 使用无菜单的无框架 46px 行,并在 左侧和可访问的最小化/最大化或恢复/关闭控件 右(D129)。目的地历史记录仅是快捷方式(Cmd/Ctrl+[Cmd/Ctrl+]);不呈现 back/forward 按钮。主标题栏没有 通知行动;耐用的本地收件箱从侧边栏页脚打开 改为响铃 (D130/D117)。
  • 工作面板:由工件打开的停靠右列(不是覆盖层) 或 Cmd/Ctrl + J。文件、URL、浏览器预览、成功命令和 成功的工作区编辑工件自动创建其资源。一个 组合创建触发器保留审阅、终端、浏览器和 当面板可见时,一键即可文件;打开但不活动的工具显示安静 点,并且活动工具具有受限制的边缘标记。 46px 内容标题 命名 当前资源,直接关闭,为所有打开一个紧凑的切换器 当前会话资源。文件路径在该切换器中保持不同,同时 查看、终端和浏览器按类型进行重复数据删除。 Cmd/Ctrl + J 揭示了 活动会话的保留面板上下文,无需创建资源选项卡;的 当面板关闭时,创建触发器仍然不可用。一个 成功的活动会话工作区 Write/Edit 工件打开审核; 临时写入、失败写入和后台会话写入永远不会抢走焦点。宽度为 拖动调整大小从 244px 到 720px 并保持在 打开时其固定的承诺宽度。唯一的面板级控制崩溃 面板; 每个会话保留其自己的运行时打开状态、选项卡集、活动选项卡和 渲染器内存中的浏览器资源。选择另一个会话会交换 可见面板上下文而不删除任一会话的状态;选择一个 没有活动对话的工作区隐藏面板而不是 重新解释相关资源。背景工件仅更新它们的 原始会话保留的面板上下文,并且永远不会打开、激活或 调整可见面板的大小。启动关闭,没有保留会话 上下文,并且只有首选面板宽度在启动时保持不变。 工作面板是固定客户区的固定宽度流入列 (ADR 0033)。打开它会将 MainChat 回流到左侧并且不会扩展操作系统 窗户;折叠和最终资源关闭释放空间和分隔线 提交更新首选宽度。在下面受限的 Windows 聊天回流中 它的 360px 目标。本机窗口边缘通过回流调整聊天大小,而不是 面板。 Maximized/fullscreen 不受影响;在显示器之间移动或更改 显示工作区通常协调窗口边界。持久基地 边界是用户的窗口大小。背景工件永远不会改变 可见面板(D163,ADR 0033)。 取代了以前的上下文面板覆盖; workspace/model/status 信息生活 相反,在输入框芯片和设置中。
  • 输入框:与工作空间无关的浮动药丸锚定于对话 目的地 - 在底部保留的输入框上方居中居中的空家庭内容 (D111/D204/D206),位于转录本底部,没有项目/本地/分支 铁路(D095)。 其左侧输入操作模式芯片是唯一的活动会话控制 AgentPlanGoal。 Plan 显示相同 Agent 的规划状态; Goal 显示结果合同的相同批准边界。两者都保留 权限模式芯片并公开其主机写入的不可变 .pi/plan/*.md 或提交后的 .pi/goal/*.md 工件开启器。对话顶部栏 保留模型选择器和窗口操作,但没有重复模式控制。
  • 后端状态胶囊:后端出现时出现在标题栏下方 通过打开日志操作重新启动或严重降级 (D080)。

3. 目的地

3. 1 聊天主页(默认)

  • 空状态:克制的英雄称号(“我可以帮你建造什么?”——项目名称 当工作区打开时变为点下划线按钮),短静音 支持线、可选的首次运行检查表和底部保留 输入框。任务输入直接在composer中启动;没有开发人员入门 渲染卡片或上下文快速操作行 (D204/D206)。
  • 带文字记录:消息流 + 工具披露行 (D071),上下文 每个成功的工作区后立即显示消息范围的审核卡 Write/Edit 行、停靠的 Composer 和内嵌的会话范围权限卡。 该卡读取消息的持久审阅快照而不是当前的 Git diff,因此在提交后保持可见。它显示文件状态和 addition/deletion 进行计数,扩展确切的消息块,并且 提供受保护的回滚;它不是全局成绩单条目。背景 会话的消息、工具和权限事件永远不会取代或覆盖 可见的对话。

3. 2 侧边栏项目组

  • 部分:紧凑的 Sessions 标题位于 Projects 之前并拥有 无路径对话创建加上现有的 sort/archive-view 菜单。其 工具栏在创建新会话之前进行排序。两个标题都保持沉默 字形操作,还接受标题或空白上的右键单击创建菜单 列出 chrome,以便部分创建保持可发现性 无需额外镀铬。它的列表之前最多显示五个紧凑行(140px) 内部滚动,因此独立作品保持可见而不会移位 项目导航。以下 Projects 标题公开了 文件夹选择器操作;保留的项目组使用剩余的高度和 独立滚动。
  • 身份:每个组都由规范化的完整项目路径作为密钥,从不 通过可能不明确的文件夹基名。
  • 标题:项目名称、活动状态、披露、新任务操作和 溢出菜单。目录标题是一个整行的披露目标; collapse/expand 仅影响子级可见性,相邻组形成一个 密集的树而不是分离的卡片。悬停或聚焦项目标题 揭示完整的项目路径。
  • 项目操作:打开文件夹显示项目目录; pin/unpin 更改演示优先级; archive/restore 隐藏或恢复组 默认视图; close 删除保留的选项卡而不删除或 归档 project/session 数据。
  • 对话操作:pin/unpin、archive/restore 和删除保留 单独的行动。存档永远不会删除文字记录。打开的文件夹是 项目行动,而不是对话行动。
  • 排序:面向用户的模式为最近更新、创建日期、最旧 首先是姓名。固定的行先于未固定的行。遗产依然存在 manual 值仍然可读,但并不意味着拖动重新排序手势。
  • 对话列表:每组显示最近的十个会话 默认情况下活动排序顺序;剩下的折叠在 再加载 N 个… 后面 单击时展开完整时间分组列表的行。固定行位于前面 未固定的行,并且永远不会被推到折叠后面;展开状态为 没有坚持。
  • 独立会话:无路径会话保留在单独的会话中 节并且永远不会继承最后一个活动项目的工作区。
  • 并发:shell 一次选择一个可见项目,同时 代理运行状态仍然由会话控制。切换项目选项卡不会 取消背景回合。后台事件仅更新其原始事件 会话并且永远不会更改活动会话、页面、项目或键盘 焦点。

3. 3 拉取请求

带计数的分段 Open/Draft/All 过滤器;行带有图标板、数字、 标题、状态徽章、分支元、外部链接和“与代理一起审核” (创建聊天回合)。需要活动工作区和 gh

3. 4 预定

创建卡片 + 任务行(cadence/enabled 徽章、提示预览、上次运行、 立即运行/切换/删除)。现在运行会打开一个带有提示的会话。 新任务默认为 Agent。允许保留已迁移的 Plan 或 Goal 任务 已存储,但在提供商、工件之前明确拒绝无人值守的运行, 或使用 PLAN_REQUIRES_INTERACTIVE_SESSION 排队工作;它无法显示或 自动批准合同。 用户必须在启用无人值守之前显式将其切换到 Agent 执行。

3. 5 扩展

扩展目标使用紧凑的标头和由五部分组成的分段 控制 — 已安装 / MCP / 技能 / 子代理 / 市场 — 带有相关选项卡 计数;它不会呈现单独的数字概览带(D202 修正了 D196, 修订了 D169)。 已安装的按状态分组行 — 需要注意/可用更新/活动/ 关闭——在一个细细分隔的面板内。每行保持两行 摘要:插件字形、名称、可选本地标记、id 和版本。团体 标题携带状态,而错误则保持内联。能力,居民 服务状态和带有风险色彩的权限芯片背后是本机详细信息 披露,因此默认列表保持安静而不隐藏它们。激活 范围是一个当前状态触发器;其紧凑的菜单显示“关闭/此项目” / 无处不在和所选项目选择器,无需添加第二个分段 工具栏。图标操作在静止时保持可见(打开面板、溢出菜单 自动更新和卸载),带有可见的 hover/focus 标签。 MCP, 技能和子代理提供自己的范围配置和创作 表面。子代理列出了用户拥有的注册表定义 - 每个都有一个 激活范围、编辑器表、显示和删除 - 位于只读列表之上 有效的委托目录(内置和项目 .pi/agents 文档), 他们唯一的行为就是揭露和“复制我的定义”(D202)。 Marketplace 是一个带有类别芯片和骨架占位符的卡片网格。 ID 以 demo. 开头的仅供开发的市场固定装置是 从客户卡和搜索结果中过滤;保留已安装的副本 可在已安装中进行管理。 详细信息在右侧表中打开(关于、链接、安全说明、风险标签 权限、版本选择器、自述文件)。安装会打开一个权限对话框 按风险层对请求进行分组,并标记升级的新权限。

3. 6 设置(全页接管)

设置替换整个外壳(D063):返回应用程序+搜索+紧凑 按确切顺序排列八个目的地的铁路 基础知识 / 全局 AI / 快捷方式 / 说明/模型配置/导入/项目存档/信息,以及 提升内容卡。 外观取决于基础;全局人工智能行为(权限和上下文 管理)存在于全局人工智能内部;键盘快捷键和 global/project 指令有其自己的目的地;供应商管理位于内部 模型配置。导入扫描支持本地代理存储和呈现 可折叠组中的候选人。项目路径是备用分组 与默认源分组一起,每次扫描或分组更改都会开始 所有团体都崩溃了。项目档案拥有持久的 D086 项目索引 (搜索、添加、展开、固定、archive/restore、关闭和重新打开)并且始终包括 存档记录。打开或切换项目会保留侧边栏选项卡,选择 该项目作为活动工作区,然后返回聊天。其他保留的选项卡 保持开放。扩展管理仍然完全独立于应用程序外壳 扩展目标在 §3.5 中描述。

4. 叠加

叠加触发注释
命令面板Cmd/Ctrl+K(也根据 D014 的 Cmd/Ctrl+Shift+P)内置+插件命令
模型菜单顶栏模型选择器配置的 provider/model 选择 + 设置条目 (D091)
个人资料菜单侧边栏页脚设置/日志/主题循环 (D041)
通知收件箱侧边栏页脚响铃All/Unread 视图、任务 completion/failure 行、标记为全部读取和清除操作 (D130/D117)
Toast事件(插件 toast、后端恢复、复制)顶部中心;默认 4 秒,错误 8 秒

5. 导航模型

  • page 状态:chat | pulls | scheduled | plugins | settingschat 是 对话表面路线,而不是操作模式。项目 archive 是 projects 设置选项卡而不是独立页面。
  • 目的地历史是线性的; Cmd/Ctrl+[Cmd/Ctrl+] 遍历它 没有持久的 back/forward 镀铬。
  • 当项目选项卡的路径与路径不同时,选择项目选项卡会重用 project.set 选择主机工作区并保留其他选项卡。
  • 选择项目范围的线程会在切换到之前激活其项目 chat。选择临时线程会清除可见的活动工作区 在加载之前。
  • 新任务重用同一项目或临时项目中现有的空草稿 范围而不是堆叠草稿(D088/D093;US-UI-11)。

6. 键盘图(IA级)

按键行动
Cmd/Ctrl+K、Cmd/Ctrl+Shift+P命令面板
Cmd/Ctrl+B切换侧边栏
Cmd/Ctrl+[之前的目的地
Cmd/Ctrl+]下一个目的地
Cmd/Ctrl+N新任务
Cmd/Ctrl+O开放项目
Cmd/Ctrl+,设置
Cmd/Ctrl+。中止当前运行
输入/Shift+Enter发送/换行符(可配置回车发送)
ESC关闭 overlay/menu

7. 依赖于状态的 chrome

  • 未配置提供商 → 首次运行前阻止设置指导 (MODEL_NOT_CONFIGURED)。
  • 无工作区 → 无项目下划线的主页英雄;拉取请求显示 工作区所需的空状态。输入框从不渲染工作区轨道。
  • 后台项目会话 → 原始项目行保留其 running/error 指标。选定的壳状态可以独立移动,同时 会话工具根仍然与其持久项目绑定;它的文物是 保留在该会话的工作面板上下文中,无需打开或激活 当前所选项目上的选项卡。消息、工具事件、权限 请求和小组资源仍限于该会议。明确地 打开对话会恢复其保留的面板上下文并显示任何内容 待批准的许可卡及其原始截止日期。
  • Completed/failed 转不可见→ host-core 附加一个持久的 收件箱行。结果显示在可见的、集中的当前聊天和每个 aborted 转不追加。后台会话和任何回合结束时 窗口未聚焦仍在追加。侧边栏页脚钟形徽章显示 未读计数;选择一行标记其已读取并激活其绑定 project/session。 仅当 应用程序窗口未获得焦点,单击它会在激活之前使窗口获得焦点 同一次会议(D117)。接收持久通知或本机通知 事件永远不会自行导航;只有显式激活才可以。
  • 后端降级→状态胶囊(重新启动)或带有打开的致命横幅 日志(D080);输入框提交的内容在关闭时被拒绝并出现可读错误。
    • Plan/Goal 检查点 → 原始会话仅显示结构化标题 以及其不可变的 .pi/plan/*.md 工件的开场白。渲染器保留最新的 每个会话的 proposal/execution 快照仅适用于当前渲染器 生命周期,由现场主持人活动更新;只有一个活动的 pending 行构成 审批门。通过 plans.pending 重新加载,同时保留相同的主机 alive 恢复了一个仍然悬而未决的行及其原始截止日期。被拒绝, 过期、approved/completed 和中断的终端卡不属于 再水化;终端卡可能保持可见且不可操作,直到 渲染器重新加载。拒绝、过期或中断清除了批准之门, 使会话保持合同状态且可编辑,并且需要稍后转向 创建一个新的工件。在等待期间,草案仍然可见,但 只读且仅启用“批准”或“拒绝”操作。 Host/app 重启 在 RPC 之前中断之前的工作,没有重播或过时的操作;待定 未批准的工作仍保留 Plan,而已批准的工作则中断执行 仍然是 Agent。 UI 不需要显示中断的终端 重启后的快照。

8. 国际化

英语是源语言环境; zh-CN 与壳牌镀铬并行发货 (由 US-UI e2e 场景断言的标签)。复制规则位于 02-i18n-english-first

为本地优先开发而构建。