-
Notifications
You must be signed in to change notification settings - Fork 0
Issue 40
- 类型:功能
- 状态:UI 设计与原型验证已完成;真实代理功能待实现(Todo)
- Issue:https://github.com/ShaoClean/remote-git/issues/40
- PR:未创建;本次未修改业务代码
- 最近更新:2026-09-17
- 代码基线:
development/02fee0c3ce14d6814056634b182b0e5b3e2bd4b8 - 参考版本:本机安装的 LobeHub Desktop 2.2.17
下载可交互原型 ZIP · HTML 文件 · 使用说明 · 39 项原型检查记录
下载 ZIP 后解压并在浏览器打开 proxy-settings.html,无需依赖或服务器。HTML 原始文件链接可能显示源码,需要另存为 HTML 后打开。原型所有请求、耗时和服务器均为模拟数据;保存只影响当前页面,刷新重置,不写入设备配置,不建立真实 SSH 连接。顶部有独立演示工具,可切换 15 种状态。




其余截图:输入校验 · 保存失败 · 390 像素窄屏 · 1024 像素布局 · 离开提醒。截图尺寸与状态清单。
RemoteGit 当前设置中心包含 AI 服务商、提交生成、布局和版本更新,未提供代理配置。AI 请求来自本机 Node 服务,更新使用桌面网络模块,SSH 使用 ssh2,Git 网络操作在远端服务器执行。浏览器设置或单一 HTTP dispatcher 不能覆盖所有链路。
设计增加“应用 → 网络代理”,用一套本机配置覆盖 AI、应用更新、SSH 和远端 Git。用户已选择远端 Git 通过 SSH 转发复用本机代理,无需第二套代理地址。本次交付 UI 原型、截图、说明和待办;真实网络接入、业务 API 和安全存储尚未实现。
首版 UI 提供 HTTP、HTTPS、SOCKS5 手动代理;默认关闭,新用户配置不预填真实地址。原型首屏为了评审方便展示启用的虚构示例,可选择“首次配置”查看新用户状态。系统自动代理、PAC、按域名分流不纳入本稿。
只读检查 LobeHub Desktop 2.2.17 的安装包,确认其代理表单包含启用、类型、服务器、端口、可选认证、测试地址、测试连接和保存/重置;类型包含 HTTP、HTTPS、SOCKS5。主进程包含 ProxyDispatcherManager,Node 请求通过 dispatcher 接入代理,SOCKS5 使用相应 dispatcher。参考模块包括 settings-CnTcvY39.js、dispatcher-Bt5L8RwO.js、tester-Cx8a0J2R.js。官网指向的官方 GitHub 仓库在本次核对时返回 404,参考结论来自已安装版本,不假定最新源码相同。
RemoteGit 沿用现有品牌图标、浅色左栏、蓝色选中态、13px 正文、圆角表单与设置导航。桌面左侧配置和测试,右侧生效范围与服务器状态;底部固定可见的保存区。1050px 以下左栏变窄,850px 以下内容改为单列,740px 以下使用现有设置分类下拉框。重点验证 1440、1024、390px。
| 区域 | 确定行为 |
|---|---|
| 启用代理 | 修改草稿,点击“保存配置”后生效。关闭不删除字段或凭据。页面顶部徽标表示已保存状态,底栏标识未保存修改。 |
| 配置 | HTTP / HTTPS / SOCKS5;地址不含协议或端口;端口为 1–65535 的整数。认证开启后显示用户名、密码并校验。 |
| 凭据 | 已保存密码仅显示配置状态;留空保留。显隐只影响新输入的值,提供清除入口;仍开启认证时清除后需提供新密码。 |
| 保存 | 未修改时按钮禁用;保存中显示忙碌状态;失败保留草稿与原配置。保存成功使旧测试结果失效。 |
| 放弃 | 恢复最后保存的内容,清除当前测试结果和字段错误。 |
| 离开 | 有修改时显示“继续编辑/放弃修改/保存并离开”;保存失败留在代理页。弹窗支持 Escape 和键盘焦点循环。 |
| HTTP 测试 | 仅使用已保存、已启用配置;测试地址仅允许无内嵌凭据的 HTTP(S) URL。展示测试中、成功耗时、网络或认证失败与重试。 |
| SSH 与 Git 测试 | 选择已登记服务器,分别运行;SSH 成功不等于 Git 转发可用。无服务器时提供添加连接入口。 |
| 修改与测试 | 修改配置、切换服务器或测试地址使旧结果失效;未保存时禁用测试。 |
| 配置生效 | 本机新请求应用新配置;已有 SSH 连接标记“重新连接后生效”。关闭代理也遵守此规则。 |
| 重连 | 用户点击“重新连接并应用”;有运行中任务时阻止并提示先结束任务,不中断当前工作。 |
“添加连接”在本原型中打开明确标注的演示服务器弹窗;真实功能应复用应用已有的连接创建流程。非代理设置分类与工作区只提供导航占位,不表示其他页面已经重构。
| 状态 | 呈现与操作 |
|---|---|
| 未连接 | 提供“连接服务器”。 |
| 准备中 | 显示正在准备远端 Git 代理,等待连接结果。 |
| 可用 | 可测试并使用远端 Git;绿色文本和状态点。 |
| 待应用 | 显示“重新连接后生效”和“重新连接并应用”,不自动中断 SSH。 |
| 连接中断 | 明确远端 Git 暂停,提供重试。 |
| 不允许转发 | SSH 可以独立连通;远端 Git 提示检查服务器转发权限,不声称全部请求成功。 |
| 代理关闭 | 配置保留;存在旧 SSH 连接时仍显示待重连,应用后恢复原有网络策略。 |
演示菜单:配置完成、代理关闭、首次配置、代理认证、输入错误、未保存修改、保存失败、测试成功、代理不可达、认证失败、服务器不允许转发、连接中断、待重新连接、服务器有运行中任务、尚未添加服务器。测试耗时固定用于演示,不是性能测量。
以下为后续实现的约束,不是本次已交付的后端能力:
- 本机 HTTP 请求适配服务端 AI 与各平台桌面更新栈;保留应用内部回环通信。不能仅修改前端 Axios,也不能把设置全局 Node dispatcher 等同于覆盖 Electron 更新和 SSH。
- SSH 建连经用户配置的代理建立目标套接字。远端 Git 使用绑定在远端回环地址的转发入口,经现有 SSH 通道返回本机代理;连接断开时清理入口。HTTPS 代理的 TLS 主机名与证书验证、HTTP CONNECT、SOCKS5 和 DNS 解析需要分别验证。
- 远端 Git 的 HTTPS 与 SSH remote 分别提供适配;代理设置限定在本次命令环境,不永久改写服务器用户全局 Git 配置。所需远端工具缺失、禁止转发或权限不足时明确失败;不自动安装工具或静默直连。
- 代理凭据遵循现有设备安全存储边界。普通读取响应返回密码配置状态;新密码写入、保留、清除需区分,禁止在日志或错误中拼出含凭据的 URL。
- 后续业务接口需提供配置读写及版本、HTTP / SSH / Git 独立测试、各服务器转发和待重连状态、运行中任务检测与手动重连能力。本次未新增公共 API 或共享类型,也未锁定端点路径。
- 独立服务部署时“本机”指实际发起请求与 SSH 连接的服务进程所在设备。浏览器访问另一台服务器时不能将浏览器电脑的
127.0.0.1当成服务端可用代理;实现和文案需验证此场景。
- 独立 HTML 可交互原型,15 个演示状态,明确标识模拟测试。
- 保存、放弃、认证、密码显隐、校验、离开提醒、测试、重连及空状态可操作。
- 1440 / 1024 / 390px 布局无水平溢出,表单控件在视口内,窄屏为单列。
- 9 张关键状态截图完成视觉检查;39 项原型行为与布局检查通过。
- 无外部依赖、无真实网络请求;CSP 限制
connect-src 'none'。
- 代理设置与认证信息安全持久化,重启可恢复。
- AI、模型列表、测试、应用更新请求确实经过代理。
- SSH 初次连接与重连确实经过代理。
- 远端 HTTPS / SSH Git remote 的 fetch / pull / push 经转发复用本机代理。
- 不可达、认证失败、禁止转发、中断、配置变化和禁用行为有独立证据,不静默直连。
- 保留已有工作流、运行中任务和应用内部通信;完成平台回归。
| 日期 | 环境 | 场景 | 结果与证据 |
|---|---|---|---|
| 2026-09-17 | macOS,ego-lite Chromium 152 | 原型语法检查 | 通过;无依赖脚本可解析。 |
| 2026-09-17 | 同上 | 首轮键盘检查 | 发现原生弹窗在末项 Tab 时焦点未按设计回到首项;已添加显式焦点循环,后续复验通过。 |
| 2026-09-17 | 同上 | 保存、认证、表单校验、离开、模拟测试、重连、空服务器与旧结果失效 | 通过;包含关闭代理后待重连、运行中任务阻止重连、SSH 与转发分别反馈。 |
| 2026-09-17 | 同上,1440 / 1024 / 390px | 响应式与键盘回归 | 39 项全部通过,见 JSON 记录。 |
| 2026-09-17 | 同上 | 9 张 PNG 视觉检查 | 通过;导出时关闭控件动画以捕获稳定状态,见 截图清单。 |
| 2026-09-17 | 真实服务与跨平台 | 代理、SSH、Git 和持久化 | 未运行;本阶段只交付模拟 UI,真实功能尚未实现。 |
真实请求路由、远端转发权限、远端适配工具、DNS、HTTPS 证书及 macOS / Windows / Linux 差异需要功能阶段验证。用户已确认复用本机代理,不以填写远端第二套代理替代该目标。真实 Git 测试应使用受控只读目标和专用测试仓库,连接测试不执行提交或推送。
本次不修改代码仓库、设备网络设置或服务器。原型可通过“重置演示”恢复;Wiki 附件和说明可按 Wiki 修订历史回退。功能实现后补充 PR、真实验证证据及状态,再关闭 Issue。