feat: harden local shell, SFTP, and desktop session reliability

Finder-launched terminals now inherit a login PATH so tools like ollama resolve, destructive SFTP/editor actions require confirmation, and terminal search plus window dragging work again. SSH forwards and RDP sessions keep listeners and survive reconnect without FastPath crashes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Logan.LiandCursor committed 2026-08-16 16:08:11 +08:00
1 parent 188f3556ed
commit 08696896f9
223 files changed
+13493 -3423

No files matched your search

+50 -18
View File
@@ -1,9 +1,7 @@
{
"nav": {
"general": "工作区",
"generalDesc": "布局与资源",
"appearance": "外观",
"appearanceDesc": "界面主题与语言",
"general": "通用",
"generalDesc": "主题、语言与布局",
"terminal": "终端",
"terminalDesc": "字体与主题色",
"shortcuts": "快捷键",
@@ -15,11 +13,13 @@
"ai": "大模型",
"aiDesc": "AI Provider",
"about": "关于",
"aboutDesc": "版本与数据"
"aboutDesc": "版本与数据",
"account": "账户",
"accountDesc": "邮箱、许可证与设备"
},
"title": "设置",
"search": {
"placeholder": "搜索设置..."
"placeholder": "搜索设置…"
},
"language": {
"label": "界面语言",
@@ -89,7 +89,7 @@
"ssh": {
"connection": "连接",
"keepAlive": "保持心跳",
"keepAliveDesc": "空闲时发送心跳,减少断线",
"keepAliveDesc": "空闲时发送 SSH 心跳;连续多次无响应才会断开",
"autoReconnect": "自动重连",
"autoReconnectDesc": "意外断开后自动尝试重连",
"timeout": "连接超时",
@@ -102,7 +102,9 @@
"maxBackground": "后台连接上限",
"maxBackgroundDesc": "超过上限时优先回收最久未使用的连接",
"suspend": "后台挂起",
"suspendDesc": "标签进入后台后多少分钟释放活跃通道"
"suspendDesc": "后台标签空闲多少分钟后挂起(有活跃 Shell/SFTP 时保持连接)",
"keepAliveInterval": "心跳间隔(秒)",
"keepAliveIntervalDesc": "向服务器发送心跳的频率(类似 ClientAliveInterval)。不稳定网络建议 ≤15 秒"
},
"security": {
"credentials": "凭据保护",
@@ -119,7 +121,7 @@
"clearConfirm": "确定清空全部已知主机密钥?下次连接将重新确认。"
},
"about": {
"tagline": "轻量原生的 SSH / SFTP 运维终端",
"tagline": "简单、便捷、人性化的原生运维终端",
"appVersion": "应用 v{{version}}",
"copyVersion": "复制版本信息",
"runtime": "运行环境",
@@ -127,8 +129,9 @@
"localData": "本地数据",
"sessionsSettings": "会话与设置",
"masterKeyPath": "加密主密钥",
"privacyNote": "密码与密钥口令由 Rust 使用 AES-256-GCM 加密。OpsXShell 不保存终端命令历史。",
"license": "MIT License · Rust · XTerm.js"
"privacyNote": "密码与密钥口令由 Rust 使用 AES-256-GCM 加密。不保存终端命令历史,也不做堡垒审计。",
"license": "MIT License · Rust · XTerm.js",
"logPath": "应用日志"
},
"ai": {
"presets": "供应商预设",
@@ -162,13 +165,42 @@
"apiKeySaveFailed": "API Key 保存失败",
"providerNotFound": "Provider 不存在",
"modelCatalogReadFailed": "模型目录读取失败",
"catalogUnavailable": "models.dev 暂不可用"
"catalogUnavailable": "models.dev 暂不可用",
"family": {
"openai_compatible": "OpenAI 兼容",
"standalone": "独立协议",
"plan": "套餐计划",
"local": "本地私有化",
"custom": "自定义"
}
},
"family": {
"openai_compatible": "OpenAI 兼容",
"standalone": "────────",
"plan": "Plan 计划",
"local": "私有化本地",
"custom": "Custom 自定义"
"account": {
"title": "账户",
"email": "邮箱",
"emailDesc": "结账与领取许可证用的联系邮箱",
"plan": "当前计划",
"planFree": "免费",
"planYearly": "专业版包年",
"planPerpetual": "专业版永久",
"planTrial": "专业版体验",
"expires": "有效期至 {{date}}",
"lifetime": "终身有效",
"devices": "设备席位:最多 {{count}} 台",
"deviceId": "本机设备 ID",
"saveEmail": "保存邮箱",
"activate": "激活许可证",
"pasteLicense": "粘贴 LIC- 许可证",
"clear": "清除本机许可证",
"deactivate": "停用本机激活",
"upgrade": "升级专业版",
"saved": "已保存",
"activateOk": "激活成功",
"deviceList": "已绑定设备",
"loadingDevices": "加载设备列表…",
"noDevices": "暂无绑定设备",
"thisDevice": "本机",
"removeDevice": "解除绑定",
"deviceRemoved": "已解除该设备绑定",
"seatFull": "设备席位已满。请先解除其他设备,再在新机器上激活。"
}
}