Issue 40 Validation - ShaoClean/Alune GitHub Wiki

Issue #40:真实网络代理验收记录

本记录属于真实业务代码与受控网络验收。2026-09-17 的 15 种模拟状态、39 项原型检查与 9 张截图仍单独保留,不作为真实代理通过的依据。

本机自动验证

以下自动验证在合入最新 SSH 通道队列、共享密钥存储、访问令牌和外观配置功能后重新执行,退出码均为 0。

命令 实际结果
npm run desktop:build 5 个 workspace 构建通过。
npm test -w server -- --ci --runInBand 20 suites,200 tests 通过;包括 13 个代理持久化/安全存储用例。
npm test -w web 158 tests 通过。
node --test packages/ssh-client/tests/*.test.cjs 129 通过,2 个平台相关用例跳过,0 失败。
node --test packages/ssh-client/tests/proxy-transport.test.cjs apps/server/test/proxy.integration.cjs 7 tests 通过;其中传输用例也包含在上行 SSH suite 中,不重复累加。
npm run test:proxy -w desktop 实际 ElectronHttpExecutor + NsisUpdater + AppImageUpdater 的代理网络验证通过。
npm run desktop:test 42 个桌面单测和桌面冒烟通过。
git diff --check 与修改文件格式检查 通过。

构建报告现有大包提示;Electron 报告 Node fs.F_OK 弃用提示。桌面冒烟会故意读取损坏的 workspace 配置并记录异常,以验证恢复路径;该场景和全流程均通过。

网络证据与行为

场景 证据与结果
HTTP / HTTPS / SOCKS5 受控代理记录实际目标;三种协议都完成 HTTP 与 SSH 测试,并执行完整 HTTPS/SSH Git 场景。
认证与 DNS 错误认证失败;代理认证头不进入目标 HTTP 服务;SOCKS5 使用域名请求,由代理解析。
TLS 与无直连回退 不受信任的 HTTPS 代理被拒绝;代理拒绝或不可达时目标服务命中数不增加。HTTPS 代理认证其自身主机名,目标 HTTPS 独立校验证书。
AI 模型列表、连接测试、提交生成经过受控代理;生成使用真实服务接口和专用暂存内容。
macOS 更新 Release 元数据、SHA256SUMS、DMG 内容与 GitHub 到 release-assets 重定向经过代理,完整性校验通过。下载内容为不可安装的测试数据。
Electron 更新 NsisUpdater / AppImageUpdater 实际请求 Atom/YAML 元数据、包与重定向,验证 SHA-512;NSIS blockmap 请求后回退完整下载,AppImage 使用完整下载。未运行安装器。
新配置与已有请求 本机桥接已有隧道保持连通,新请求使用新配置;下一次 Electron 下载改用新代理且不复用旧代理隧道。
SSH 生命周期 初次连接经过代理;丢失连接后业务触发重连保留旧 revision,页面仍待应用;显式重连应用新 revision;禁用也显示待重连。
远端 Git 三种代理 × HTTPS/SSH remote × 主仓库/关联 Worktree,真实 fetch/pull/push 均通过;页面测试执行只读 ls-remote。
转发限制 允许回环时可用;禁止转发或强制通配监听时失败,监听释放而 SSH 仍可执行普通命令;断线释放远端端口。
配置与秘密 加密持久化、重载恢复、保留/替换/清除、版本冲突、损坏配置及密钥不可用均有断言;代理凭据不出现在远端命令或配置读取中。
配置隔离 Git 命令覆盖原有仓库代理设置,但执行后原值不变;fixture 隔离全局/system Git 配置,没有修改用户全局配置。
任务保护 活动操作拒绝显式重连;SSH 队列断言覆盖排队、等待服务端打开、取消后待关闭的通道,全部结束后占用归零。
既有功能 桌面路由、SQLite、内部认证、沙箱/IPC、AI、本地 Git、历史/Diff、外观、自定义代码主题及重启恢复通过。

测试资产位于代码仓库的代理测试文件中。证书、私钥、账号和更新包均为公开 fixture;额外证书信任只在隔离测试子进程或 Electron 测试会话内设置,不更改系统信任或生产证书验证。

UI 人工验收

使用 ego-browser 操作真实构建的页面和隔离 Nest/SQLite/SSH/Git/代理 fixture。以下交互与截图在合入 b2284c9 前完成,代码内容对应本 PR 的代理 UI;截图基于 50cce92 开发基线,因此设置导航尚无上游新增“访问令牌”入口。合并后保留该入口,并重新完成构建和桌面冒烟;没有把旧截图声称为合并后的逐像素复验。

  • 保存认证后仅显示“已保存”状态,真实 HTTP、SSH 和 Git 测试成功。
  • 修改配置或测试目标后清除旧结果;未保存/过期配置不能测试。
  • 离开提醒支持继续编辑、放弃、保存后离开;保存失败保留页面和草稿,Escape 返回编辑。
  • 放弃恢复保存值;禁用保留凭据并使现有 SSH 待重连;重新启用和显式重连正常。
  • 新密码显隐可由键盘触发;成功保存后离开到目标设置页面。
  • 1440 / 1024 / 390 像素均无横向溢出,底部保存区可见;浅色和深色均完成视觉检查。

本功能为新增入口:实现前没有真实代理设置页。可参照 原型历史 比较既定布局;这些历史原型不是业务实现的“前”状态。下方为本次实际页面。

Alune 代理设置与真实连接状态,1440 像素

布局与状态 截图
1024 像素 查看
390 像素 查看
深色主题 查看
离开提醒 查看

截图中的服务器名、127.0.0.1 地址及端口均属于隔离 fixture;没有真实账号或代理密码。

GitHub Actions

推送验证运行:Ubuntu 22.04、macOS 14、Windows latest,Node 22.22.0,全部 10 个 job 通过;对应代码提交 4408789cb5619ad478fea7f796fb030597f0a8a3。独立的 commitlint 也通过。

CI 类别 实际结果
网络代理 Ubuntu / macOS / Windows 三平台全部通过,包括实际 Electron 更新下载测试。
单元测试 desktop、web、server、ssh-client 全部通过。
本地 Git Ubuntu / macOS / Windows 三平台全部通过。

PR 验证运行 的全部 10 个 job 及独立 commitlint 也通过。PR 最初创建为草稿,ShaoClean 于 2026-09-28 10:03:50 UTC 转为待审阅;保留当前状态,不自动合并。

Windows 的传输测试 4 项通过,3 个依赖 POSIX SSH/Git 的用例显式跳过;实际 Electron 更新下载测试通过。该 Windows job 仅证明代理传输和 Electron 更新栈的这些场景,不能证明 Windows 远端 Git 适配完成。Linux/macOS 的代理 job 包含完整受控 SSH/Git/AI/mac 更新场景。

尚未验收与合并边界

  • Windows / Linux 实际打包应用的安装与升级;本次验证下载、重定向和校验,没有执行安装器或替换应用。
  • Windows 远端 OpenSSH + Python 3 + PowerShell 的完整 Git 适配、命令长度及环境差异。
  • macOS x64。
  • 浏览器与独立服务分属不同设备的部署;页面说明和服务进程语义已实现,跨设备实测未运行。
  • 企业 HTTPS 代理证书、不同 sshd 配置与真实仓库凭据的部署验收。

PR 使用 Refs #40。上述未验收项不能由本机受控 fixture 或历史模拟原型替代,Issue 保持打开。