feat: release OpsXShell 2.1.1

This commit is contained in:
Logan.Li committed 2026-07-31 01:37:01 +08:00
1 parent a3dba0c6ed
commit 494ef6b9d0
37 files changed
+2039 -370

No files matched your search

+11 -6
View File
@@ -34,9 +34,11 @@ npm run acceptance:full
- AI Provider 的 OpenAI Chat、Responses、Anthropic 响应解析和 HTTP Endpoint 限制
- models.dev 多种 JSON 形态归一化、目录源部分失败降级和 new-api `/models` 列表
- API Key 只进入 Rust secrets,不出现在 `ai-providers-v1`、日志或 WebView 返回值中
- 终端上下文选区优先、当前屏幕显式授权、本地脱敏、单行填入和多行拒绝
- Agent CLI 单任务入口、回车发送、选区上下文、本地脱敏、单行命令协议和最终结论
- 新 Provider 测试前不落盘,真实测试成功后才启用保存;任一连接字段变化会使验证快照失效
- AI 执行任务固定当前 SSH connection,确认前不得调用 `ssh_exec`,真实输出回传分析且不进入历史
- Agent 固定当前 SSH connection,每步确认前不得调用 `ssh_exec`,退出码与真实输出反馈下一轮且不进入历史
- Agent 五级命令风险、critical 硬拒绝、连续失败换路、相同命令循环拦截和长输出 `analyze_output`
- 远程 Shell EOF/TMOUT 事件不得误判为整个 SSH 连接断开;只为对应分屏提供一键重开
- macOS 原生“编辑”菜单以及所有输入框的复制、剪切、粘贴、全选、撤销;应用快捷键不得覆盖这些系统操作
- 普通界面右键不出现 WebView 的 Reload/Inspect Element;输入框仍保留系统编辑菜单,自定义右键不受影响
@@ -50,14 +52,17 @@ npm run acceptance:full
2. HTTPS 为默认要求,任意公网 HTTP Endpoint 被拒绝;只有显式允许后才能访问可信本机 HTTP 服务。
3. OpenAI Chat、OpenAI Responses 和 Anthropic 三种响应都能提取文本,错误响应显示 HTTP 状态和供应商消息。
4. `Authorization: Bearer`、密码字段、AWS Key 和私钥在请求发出前被替换,并显示脱敏计数。
5. 有选区时即使勾选当前屏幕也只发送选区;无选区且未勾选时只发送用户问题。
6. 单行命令填入后终端不得出现 `\r` 或 `\n`;多行代码块不显示填入按钮。
5. 有选区时只发送选区;无选区时不抓取当前整屏。
6. 面板不再出现“解释 / 生成命令 / 排障 / 执行任务”切换;回车触发执行,`Shift+回车` 不触发。
7. 关闭再打开 AI 面板,之前的提示词和回答不存在。
8. models.dev 三个源全部失败时不影响已保存 Provider;部分成功时仍能生成可导入目录。
9. 新增 Provider 后测试前“保存”禁用;测试实际发送“你是什么模型?请简短回答。”,期间 settings 与 secrets 均无写入;只有非空成功回答显示 HTTP 200,随后保存才写入加密 Key。
10. 切换 Endpoint、模型、协议或 API Key 后“保存”立即重新禁用。
11. “执行任务”只接受唯一单行命令;确认对话框打开前和用户取消后 `ssh_exec` 调用次数必须为 0。
12. 确认后只向当前 connectionId 执行一次;真实输出交给模型总结,关闭面板后命令与输出消失。
11. 每一轮只接受唯一单行命令;确认对话框打开前和用户取消后 `ssh_exec` 调用次数必须为 0。
12. 确认后只向当前 connectionId 执行;真实输出和 exit code 必须交给下一轮,直到 FINAL 或 8 步上限。
13. `rm -rf /`、`mkfs`、对磁盘覆盖的 `dd` 等 critical 命令必须在确认对话框前硬拒绝。
14. 相同命令第 3 次必须在执行前拦截;连续失败的下一轮 Prompt 必须要求更换路径。
15. 超长工具输出必须限长,`analyze_output` 保留总行数、错误行和首尾;关闭面板后命令与输出消失。
## 真实 SSH/SFTP 探针