资源按类型分组,小窗使用统一的操作图标
自定义菜单审查通过 · 安装验收单独记录右侧“资源”按类型组织条目,现有条目按钮保持不变;小窗内提供打开、更多和关闭小窗操作。
供界面设计评审。范围包含分组、资源条目、小窗操作及状态恢复。原型使用示例数据,不连接真实网页、虚拟机或会话。
网页、虚拟机、终端……
分组标题来自资源类型。会话名和页面标题不再充当分类。
百度一下,你就知道
具体内容只出现在资源条目、小窗和完整视图的标题中。
打开、收起、关闭各有含义
收起只隐藏小窗。关闭网页或终止环境属于独立的资源操作。
可以直接操作的原型
点击右侧类型标题折叠分组;点击资源打开小窗;点击小窗右上角 X 后,再通过右侧原有预览按钮重新打开。右侧按钮的位置、图标和行为保持现状。
资源仍在右侧列表中
开启后,小窗随 Agent 的操作切换网页;关闭后,保持当前网页。只改变显示内容,不影响 Agent 执行。
网页与虚拟机示例共享标题栏,但内部视图不同。终端和应用的实际呈现仍由各自已有能力决定;原型不证明这些能力已接入小窗。
类型固定,内容名称变化
右侧一级分组
| 显示名称 | 分类依据 |
|---|---|
| 网页 | web;浏览器来源兼容归入此类 |
| 虚拟机 | vm;由真实集成声明 |
| 桌面 | desktop |
| 终端 | terminal |
| 应用 | application |
| 容器 | docker 等已登记容器类型 |
| 远程环境 | remote |
| 其他资源 | 无法映射的类型;详情保留原始类型与来源 |
条目名称与辅助信息
主标题使用真实资源名称,例如“百度一下,你就知道”或“Ubuntu 开发环境”。网页标题变化只更新条目,不改变所在分组。
副标题显示“操作中”“运行中”“连接失败”等状态,必要时显示所属 Agent。保留来源、分支和连接信息,不再增加一层会话标题分组。
“外部”是来源,不单独成为类型。外部虚拟机仍归入虚拟机;外部网页仍归入网页。只有确实无法识别的对象进入“其他资源”。
已关闭或已退出的资源从活动列表移除;如已有历史记录能力,详情入口可查看。状态无法确认的资源保留在原类型下并显示错误,不能当成已关闭。分组折叠状态按会话与类型保存。
小窗的操作保持明确
| 位置 / 操作 | 用户看到的变化 | 资源本身 |
|---|---|---|
| 条目 / 打开 | 在会话内显示该资源;重复点击保持打开 | 使用同一实例,不重新创建 |
| 小窗 / 关闭小窗(X) | 小窗消失,资源条目保留 | 网页继续存在,环境继续运行 |
| 右侧原有按钮 | 保留预览、在标签中打开、关闭网页三个操作;不改成打开/收起切换按钮 | 沿用现有行为;关闭网页会关闭资源,与小窗 X 不同 |
| 小窗 / 打开 | 切换到同一资源的完整视图;网页使用已有顶部标签 | 不创建副本;无完整视图能力就不显示此操作 |
| 更多 / 自动显示 Agent 正在操作的网页 | 开启后显示当前会话中 Agent 正在操作的网页;关闭后保持当前网页 | 不改 Agent 目标,不启动或暂停任务 |
| 原有资源操作 / 关闭网页或终止环境 | 使用带对象名称的明确操作,在文字菜单中明确标注,与标题栏仅关闭小窗的 X 区分 | 仅显示真实支持的操作;终止环境沿用原有确认与权限规则 |
标题栏
输入区对应的网页标记只显示网页名称,省略 Left / Right / Center 位置文字,悬停仍说明 Agent 是否可访问。
资源名称 + 打开图标 + 更多图标 + 关闭小窗图标(X)。移除图钉和放大/缩小按钮。沿用拖动与边缘调整大小,已有窗口尺寸继续兼容。
在较窄的窗口中,优先省略标题,保留全部操作图标。打开使用向外箭头,更多使用三点,关闭小窗使用 X;均提供悬停提示和可访问名称。
更多菜单
使用应用自己的浮层菜单。自动显示选项由明确的复选框、可换行标题和下方独立说明组成;说明保持可见,不放入单行菜单标题或悬停提示。桌面端使用现有 HTML 菜单浮层覆盖原生网页;网页端使用同样的内容与样式。显示操作使用复选框,操作历史保留子菜单。勾选或取消勾选时菜单保持打开,勾选状态即时更新,便于连续调整。按 Escape、点击外部、再次点击更多或关闭小窗时关闭菜单。开启自动预览但暂时没有 Agent 正在操作的网页时,保留当前网页;自动切换网页也不关闭菜单。
网页保留“自动显示 Agent 正在操作的网页”,操作记录和显示操作标记进入更多菜单。虚拟机、终端、应用只显示其实际支持的功能。
分组折叠、资源面板收起和小窗收起分别保存:折叠类型只隐藏列表行;收起右侧面板不自动收起小窗。
状态变化与边界
手动选择网页进入保持当前网页模式。右侧原有按钮保持不变。
保留选中资源与显示模式。后续 Agent 操作不能自行重新弹出。
仅选择当前会话允许显示的网页,不切走正在查看的虚拟机或终端。
- 每个会话最多显示一个小窗。切换资源替换视图;切换会话隐藏原会话的小窗,恢复新会话自己的选择和可见状态。
- 手动查看非网页资源时,网页跟随不得替换当前视图。重新打开网页后再按该会话保存的网页显示策略处理;显式选择某网页则保持该网页。
- 没有可预览能力时打开现有详情视图,不能显示假的预览或“连接成功”。能力未知、连接中、连接失败均有明确状态。
- 资源身份、会话归属和访问权限不因分类或视图切换变化。网页“打开”仍遵守现有顶部标签可发现性规则。
- 数据暂时加载失败时保留已知类型与条目,显示刷新失败;不改名、不自动选其他资源,也不重试未知结果的关闭操作。
实施顺序与验收
| 步骤 | 改动位置 | 验收条件 |
|---|---|---|
| 1. 类型分组 | groupSessionResources 与资源面板标题映射 | 网页和虚拟机分别成组;重命名会话或网页不改变分组;同类型跨分支资源仍属于同一类型组 |
| 2. 收起与菜单 | WebTabPip、小窗菜单与双语文案;右侧条目按钮保持现状 | 小窗 X 可隐藏视图;右侧预览按钮可重新打开;右侧按钮行为不变;无图钉和放大按钮;菜单跟随语义一致 |
| 3. 不同资源呈现 | 已有 Terminal / Application 视图与各提供方能力 | 共用显示与收起含义;不新增 VM 控制后端;无预览能力显示详情 |
| 4. 状态与安装验证 | 现有资源 store、会话选择与持久状态 | 跨会话隔离、隐藏后不自动弹出、刷新恢复、最窄窗口不遮挡收起按钮 |
先确定本页交互,再修改生产代码、更新现有正式设计、执行独立审查与测试,最后验证默认 App。实施完成后更新默认 App,并验证真实的资源按钮与小窗。
桌面菜单由已有原生菜单服务处理。主进程 IPC 与控制浮层共用同一个服务实例;模块导出与调用方引用必须一致。验收包含授权窗口弹出菜单、选择返回及取消清理。
当前实现依据与尚未完成事项
分组函数按资源类型生成稳定分类;面板负责双语类型名与按会话保存的折叠状态。小窗 X 仅隐藏预览;自动显示选项复用 manual/follow 状态。原有展开尺寸继续兼容,标题栏不再提供展开按钮。
- session-resources.ts:分组、资源类型、预览偏好。
- session-resources-panel.tsx:分组标题和条目操作。
- web-tab-pip.tsx:标题栏、固定、展开与隐藏行为。
- 现有资源设计与浏览控制设计:已有能力和权限边界。上述代码链接指向仓库入口,判断以本次本地读取为准。
类型分组、小窗图标与应用自定义菜单已修改,相关测试及独立规格、质量审查通过。自动显示选项使用明确的复选框和下方独立说明,桌面浮层覆盖原生网页,网页端复用同一内容布局。完整检查及默认 App 验收记录在任务证据中;虚拟机示例不代表新增虚拟机控制后端。
页面检查:脚本语法、DOM 交互与页内锚点通过;本地 HTML 被内置浏览器策略拒绝,桌面及窄屏视觉验收未完成。全站构建及链接检查以任务证据中的最终检查为准。