Skip to content

[Feature]: 标签页支持分组(含 AIAgent 隔离分组),方便区分手动打开与 Agent 排查打开的标签页 #366

Description

@hongruiji

感谢你的建议!请聚焦一个明确的问题或工作流,并说明它为什么值得解决。

提交前检查 / Checklist

  • 我已搜索已有 Issue,未发现相同建议。/ I searched existing issues and found no duplicate.
  • 此 Issue 聚焦一个功能或改进。/ This issue focuses on one feature or improvement.
  • 这不是现有功能异常;如是,我会改用 Bug 报告。/ This is not broken existing behavior; otherwise I will use Bug Report.

功能模块 / Feature area

AI 对话、终端 AI 与工具调用 / AI chat, terminal AI, and tool calling
SSH、本地终端与串口 / SSH, local terminal, and serial
Agent Hub、ACP、Public MCP 与 CLI / Agent Hub, ACP, Public MCP, and CLI

问题与使用场景 / Problem and use case

让内置 AI / AIAgent 在多个目标节点上做排查时(AIAgent 会自己按需打开 SSH、SFTP、数据库等标签页),所有标签都和用户自己手动打开的混排在同一个标签栏里。日常遇到的具体痛点:

  1. AIAgent 排查任务稍微复杂(同时连 5–10 个节点)时,用户手动打开的那一两个目标标签就被淹没,找回要靠肉眼对比 IP / 标题。
  2. AIAgent 排查期间会动态开关标签,导致用户原本稳定的"工作区上下文"被持续打断。
  3. 想"只关闭 AI 打开的标签、保留自己手动开的"时只能一个一个点;想保留自己的标签就只能全量关闭再重新手动开。
  4. 多个并发 AI 会话(不同排查问题)打开的标签彼此混淆,难以回溯"这个标签是哪个会话开的"。

参考本会话截图:8 个 SSH 标签混排在一行(Local、oe2203-6.170、11-100、deploy-6-180-bocuser、10.50.11.86、10.50.11.81、10.50.11.84、10.50.11.85),其中只有部分是用户手动打开的。

频率:每次使用 AIAgent 做多节点排查时都会触发,是日常操作的核心痛点之一。

建议方案 / Proposed solution

希望 Navop 的标签页支持"分组 + 来源标记"两层能力,按工作量从小到大建议依次落地:

1. 来源标记(最小可行,建议优先)

  • 每个标签页带"来源 / 会话"标签:manual / agent:<session_id> / public_mcp:<client> / sftp_orphan 等。
  • 标签栏上能按来源过滤或视觉区分(图标 / 颜色 / 角标),并支持"一键折叠非当前来源"。

2. 原生标签页分组(VSCode / Chrome tab groups 风格)

  • 支持用户手动"新建分组",把已有标签拖入分组;分组可命名、可设色、可折叠。
  • 分组级别操作:一键关闭组内全部、一键折叠 / 展开、一键"仅保留此分组"。
  • AIAgent 启动时默认在新的隔离分组里开标签;Agent 任务结束后该分组可一键关闭或隐藏,不污染用户主工作区。
  • 多 Agent 并发时,每个 Agent 会话天然落在不同分组,事后可追溯到具体任务。

3. 持久化与导航

  • 分组结构持久化到现有 tab_persistence;用户自定义分组跨重启保留;Agent / MCP 创建的临时分组可选"仅本次会话"。
  • 在 tab bar 上增加分组选择器 / 概览(参考 Chrome 的 ⌘ + Shift + A 标签搜索),20+ 标签时可快速跳到目标分组。

替代方案 / Alternatives considered

  • 现状只能靠肉眼识别 / 手动改标签名区分,效率低且容易误关。
  • 把 AIAgent 拆成独立窗口:可行,但会失去"统一 dock + 多会话上下文同屏对比"的优势,不希望为此妥协。
  • 临时绕路:把所有 AIAgent 操作集中到一个连接的节点上 —— 但这本身就违背多节点并行排查的工作流。
  • 参考过的同类能力:VSCode tab groups、Chrome tab groups、iTerm2 profiles、tmux session + group_sync —— 属于同一类诉求,社区已有成熟心智模型。

补充信息 / Additional context

  • 当前会话截图:标签栏 8 个 SSH 标签混排,肉眼区分困难。

    navop 标签栏 8 个 SSH 标签混排截图

  • 相关代码位置:crates/core/src/tab_container.rs(标签页 UI 与持久化数据结构)、crates/core/src/tab_switcher.rs、crates/core/src/tab_persistence.rs。当前已有 active_tab_bg_color / inactive_tab_bg_color / tab_bar_bg_color 等单标签样式字段,扩展到"按来源 / 分组"在样式系统上是顺势扩展;分组数据结构可挂在现有 TabContainer 之上。

  • 建议落地顺序:来源标记(图标 + 颜色 + 一键折叠) → 用户手动分组(拖拽 / 命名 / 着色) → AIAgent 隔离分组 → 分组持久化 + 多 Agent 会话可追溯。

  • 期望受益场景:多节点 K8s / 集群巡检、AIAgent 跨网络拓扑排查、Public MCP 自动化脚本批量打开连接。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions