跳转至

空闲区域校正验收

更新于 2026-09-11。范围:空闲切换计划。 本地实现基于 main 74cc9b50390b481009b34823a35eee01a5b90e40, 并在 08c0802089a9186cf48ce0d168cd87565bd92d65 之上包含未提交更改。

本地验证为绿色;已发布的 PR 未更新,也不具备合并条件。 云 draft20037 仍指向 0462a87011d8783f91f9a9e977ea7a68437a0d5b; 桌面 draft20031 仍指向 f9e5b0193448e6c524603836b9278878b96cf51c。 它们较旧的 CI 不是本次实现的证据。在本次延续中,没有发生提交、推送、合并、 部署、工作流分发或生产变更。

实现证明了什么

源仅允许在实际客户端套接字、拼接、待处理连接和进行中的准入/控制工作均不存在时进行优化。它在等待受限分配事务之前安装本地门控。重复请求绑定精确权限;模糊的数据库结果会使源保持隔离,直到锁定协调确定结果。提交后,它释放空控制,并使用普通重连和迁移恢复。紧急排空保留其现有行为。不再保留源协议或恢复循环。

三个真实 TCP WebSocket 场景连接了经过身份验证的本地 HTTP 分发、两个单元、实际的桌面源池、SQLite 和一个独立执行子进程:

  1. 任一已连接设备都会阻止移动;两者都离开后,目标重连成功,且持久追加一次变更预言机显示没有重放。
  2. 一个竞争到达收到 4409;一次明确的失败提交恢复源准入。
  3. 目标控制连接确实被尝试并失败;源活动被释放,普通过期恢复允许源 epoch3 重连。

这些使用合成时间和 Token 验证。它们不能证明物理移动端后台调度、生产认证/网络行为或用户延迟。

命令与结果

每个测试/应用命令都使用 ORCA_BACKGROUND_LAUNCH=1。云命令从 cloud/apps/relay 运行;根命令从此工作树运行。以下所有日志都位于 .tmp/idle-cutover-review/ 下。

范围 命令 结果 / 日志
云 ORCA_RELAY_TEST_POSTGRES_URL='postgresql://postgres@127.0.0.1:55440/postgres?options=-csearch_path%3Didle_full_root_20260911' ORCA_IDLE_REHOME_POSTGRES_URL='postgresql://postgres@127.0.0.1:55440/postgres' ORCA_REGION_CORRECTION_POSTGRES=1 pnpm exec vitest run --no-file-parallelism 77 个文件 / 682 通过 / 零跳过;cloud-full-postgres-idle.log
云 pnpm run typecheck 通过;cloud-typecheck-after-preview.log
云 pnpm build 通过;cloud-release-build-idle.log
根 pnpm test src/main/runtime/relay 20 个文件 / 177 通过;desktop-relay-full-idle.log
根 pnpm test tests/e2e/relay-region-correction.unit.test.ts tests/e2e/relay-region-compatibility.unit.test.ts 16 通过;transport-contract-cleanup.log
根 pnpm test src/main/global-fetch-call-site-audit.test.ts tests/e2e/relay-region-correction.unit.test.ts CI 修复后 4 通过;ci-gaps-green.log
根 pnpm tc:node 通过;node-final-idle.log
根 pnpm exec oxlint src/main/runtime/relay tests/e2e/relay-region-correction.unit.test.ts tests/e2e/relay-region-compatibility.unit.test.ts 通过;desktop-lint-idle.log
根 pnpm run check:code-quality:changed 通过,30 个更改文件中 0 个新发现;code-quality-changed-idle.log
根 pnpm run check:reliability-gates 121 个清单门控通过;reliability-idle.log
根 ORCA_E2E_SSH_DOCKER=1 pnpm exec playwright test tests/e2e/ssh-docker-transport-drop-recovery.spec.ts tests/e2e/paired-remote-terminal-serve-restart-binding.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=1 全新构建后 7 通过;ssh-folder-idle.log
根 node --test cloud/dev/scripts/deploy-relay-blue-green.test.mjs cloud/dev/scripts/read-relay-serving-regional-placement-version.test.mjs cloud/dev/scripts/relay-regional-rehome-workflow.test.mjs 47 通过;deployment-guards-idle.log

PostgreSQL16.15 复用了 55440 上现有的 orca-region-release-pg16 容器。 该测试套件使用了一个隔离模式,之后已删除(cloud-full-postgres-cleanup.log); 新的并发测试会创建并清理独立模式。未使用其他 PostgreSQL 端口。根 oxlint 忽略云;已配置的云 lint 是 TypeScript。

七个后台 Electron 检查覆盖了跨 serve 重启的成对文件夹可用绑定,以及 六个真实 Docker SSH 恢复旅程:实时窗格、输出边界、主机证明退出、重复重启、冻结主机静默和恢复输入。它们不 执行物理手机到 SSH 的区域切换或打包升级。

回归与评审证据

  • 协调:四个用例针对常量 not-committed 失败,然后在锁定权限检查下通过(reconciliation-{red,green}.log)。
  • 注册表:禁用等待前准入计数会使到达竞争失败;恢复它后通过。五个冲突的 operation-ID 权限元组在身份修复前失败,然后全部 48 个注册表测试通过(operation-tuple-{red,green}.log)。
  • SQLite 启动能力升级:升级逻辑前为红;之后 8 个数据库测试通过。遗留控制默认为非空闲可用。
  • 提交占位符负对照在实现后运行;它是反事实证据,不是按时间顺序测试优先开发的声明。
  • 完整 PostgreSQL 验证取代了中间预览/遗留测试失败。某个代理之前关于 PostgreSQL 安全闩锁的差异已在隔离模式中被证伪,并明确撤回。
  • 第五轮 GPT-6-astra 低审计:在实现范围内批准,无新阻塞项。评审了源屏障、精确重复、锁定歧义和 worker 进度。评审者已迁移 PostgreSQL 测试,但未编写核心实现。台账:.tmp/idle-cutover-review/review-ledger.md。未启动第六轮。

CI 准备与评审产物

旧桌面 CI 因过期的全局获取清单计数以及传输测试缺少 pg 而失败。 该计数可在本地复现;下游目录/探测消费者已经消费/取消正文,因此审计计数已修正。 单元测试工作流安装锁定的云中继依赖并构建其契约。 在 cloud/ 中,两条命令均通过(ci-relay-dependencies.log):

  • npx --yes pnpm@10.24.0 --filter '@orca-cloud/relay...' install --frozen-lockfile --ignore-scripts
  • npx --yes pnpm@10.24.0 --filter '@orca-cloud/relay^...' build

本地拆分补丁和草稿正文位于 .tmp/idle-cutover-review/: cloud-idle.patch、desktop-idle.patch、cloud-pr-body.md、desktop-pr-body.md。 prepare-split.py 针对所述主基线验证有序应用; split-manifest.json 标识合并后的树。实际索引/分支保持不变。 HTML 说明页为 .tmp/relay-region-explainer.html;四个阶段、故障开关、浅色/深色移动/桌面布局以及浏览器错误检查均通过。

剩余验收缺口

  • 更新两个草稿 PR,并针对其确切提交头验证新的 CI。原始交接明确禁止推送;发布需要授权。
  • 打包的混合版本桌面/移动、物理设备生命周期和平台传输仍未验证。固定的线路测试是更窄的证据。
  • CI 浸泡测试和生产 RTT/交互收益仍未测量。修正默认关闭;部署/启用需要已评审的上线流程。
  • 中间/被取代证据的归档: .tmp/idle-cutover-review/acceptance-history-before-final.md 以及范围调整前分支 relay-region-before-idle-implementation。早期保留结果不能证明空闲设计,也不能修复被取代的实时保留传输用例。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 orca48/orca