Files
nexus-terminal/.helloagents/archive/2026-03/202603260156_quickcommands-context-menu-polish/proposal.md
T
yinjianm b1f036fdc6 fix(frontend): 调整工作台文件总览与快捷指令菜单
将文件管理区从单目录文件表格修正为多根目录常驻的文件夹总览,
点击目录时仅展开和聚焦,不再切换为单独目录列表。

同时修复快捷指令右键菜单的透明背景与粘贴语义,
统一为“粘贴到命令输入框”且不自动发送,并同步多语言文案。

顺带收紧快捷指令编辑弹窗的最小尺寸、初始尺寸与视口上限,
降低小分辨率下的弹窗溢出概率。
2026-03-26 02:04:07 +08:00

5.1 KiB

变更提案: quickcommands-context-menu-polish

元信息

类型: 优化
方案类型: implementation
优先级: P1
状态: 草稿
创建: 2026-03-26

1. 需求

背景

上一轮已经为快捷命令补上右键菜单,但用户进一步确认了三个运行态问题:菜单背景出现透明效果;不再需要“粘贴到终端”单独菜单项;原“粘贴到快捷输入框”应改成“粘贴到命令输入框”的语义和位置,即点击后写入底部终端命令输入框但不发送。

目标

  • 将快捷命令右键菜单改为实底不透明菜单。
  • 移除“粘贴到终端”菜单项。
  • 将原“粘贴到快捷输入框”改为“粘贴到命令输入框”,并执行写入底部命令输入框但不发送的行为。

约束条件

时间约束: 本轮内完成右键菜单修正与前端验证
性能约束: 不新增依赖,仅调整现有菜单结构和前端逻辑
兼容性约束: 保留立即执行、复制命令、发送到全部服务器、编辑、删除等动作
业务约束: 粘贴到命令输入框必须只写入底部命令输入框,不自动发送

验收标准

  • 右键菜单背景为实底不透明,不再出现透明感
  • 菜单中不再显示“粘贴到终端”
  • “粘贴到命令输入框”点击后写入底部命令输入框,但不发送
  • locale 文案同步更新
  • packages/frontend 构建通过

2. 方案

技术方案

继续在 QuickCommandsView.vue 上做最小修正。菜单容器改为显式深色背景与更强边框/阴影;删除“粘贴到终端” DOM 项与对应 action;把原 pasteToQuickInput 动作重命名并直接复用现有“写入底部命令输入框”的逻辑。同步三套 locale 文案与成功提示。

影响范围

涉及模块:
  - frontend: `QuickCommandsView.vue` 右键菜单结构、样式和动作映射
  - frontend: 快捷命令相关 locale 文案
预计变更文件: 3-4

风险评估

风险 等级 应对
菜单背景样式修正后与现有主题变量冲突 使用更明确的深色背景与现有边框/阴影组合,避免透明变量色
删除菜单项后动作顺序与用户预期不一致 让“粘贴到命令输入框”顶替原位置
文案与实际行为再次不一致 同时修改菜单文案、动作枚举和成功提示

3. 技术设计(可选)

架构设计

flowchart LR
    A[QuickCommandsView menu] --> B[runNow]
    A --> C[pasteToCommandInput]
    A --> D[copy/edit/delete]
    A --> E[sendToAllSessions]

数据模型

字段 类型 说明
quickCommandContextMenuVisible boolean 右键菜单显示状态
quickCommandContextTargetCommand QuickCommandFE | null 当前菜单目标命令
activeSessionId string | undefined 当前活动会话,用于写入底部命令输入框

4. 核心场景

场景: 从右键菜单回填到底部命令输入框

模块: frontend 条件: 用户右键某条快捷命令,当前存在活动 SSH 会话。 行为: 点击“粘贴到命令输入框”后,把处理后的命令写入底部终端输入框,但不触发发送。 结果: 用户可以继续手改命令,再决定是否发送。

场景: 右键菜单视觉贴近普通实底菜单

模块: frontend 条件: 用户在快捷命令列表中打开右键菜单。 行为: 菜单以实底、边框和阴影显示,不透出底层列表内容。 结果: 菜单可读性和层级感更接近常规上下文菜单。


5. 技术决策

quickcommands-context-menu-polish#D001: 让“粘贴到命令输入框”直接复用已有底部命令输入框写入逻辑

日期: 2026-03-26 状态: 采纳 背景: 用户明确要求去掉“粘贴到终端”,并让替代项承担“写入底部命令输入框但不发送”的职责。 选项分析:

选项 优点 缺点
A: 复用现有写入底部命令输入框逻辑 最小改动,行为清晰,和现有命令输入条一致 需要同步改菜单文案
B: 保留原搜索框回填逻辑,只改文案 代码更少 行为与用户要求不符
决策: 选择方案A
理由: 用户语义已经非常明确,应以实际行为一致性优先,而不是保留旧实现。
影响: frontend

6. 成果设计

设计方向

  • 美学基调: 延续深色工具菜单,但强调实底层级感
  • 记忆点: 菜单不再发虚透底,操作文案与行为完全一致
  • 参考: 用户上一轮反馈的运行态问题

视觉要素

  • 配色: 使用稳定深色背景 + 边框 + 阴影,删除项继续使用错误色
  • 字体: 沿用现有菜单字体体系
  • 布局: 删除一项后保持紧凑垂直列表
  • 动效: 保留现有 hover 过渡
  • 氛围: 以可读性和稳定感为主,不做多余装饰

技术约束

  • 可访问性: 文案必须直接说明“命令输入框”,避免再混淆
  • 响应式: 保持现有防越界定位逻辑