空闲区域校正验收¶
更新于 2026-09-11。范围:空闲切换计划。
本地实现基于 main 74cc9b50390b481009b34823a35eee01a5b90e40,
并在 08c0802089a9186cf48ce0d168cd87565bd92d65 之上包含未提交更改。
本地验证为绿色;已发布的 PR 未更新,也不具备合并条件。
云 draft20037 仍指向 0462a87011d8783f91f9a9e977ea7a68437a0d5b;
桌面 draft20031 仍指向 f9e5b0193448e6c524603836b9278878b96cf51c。
它们较旧的 CI 不是本次实现的证据。在本次延续中,没有发生提交、推送、合并、
部署、工作流分发或生产变更。
实现证明了什么¶
源仅允许在实际客户端套接字、拼接、待处理连接和进行中的准入/控制工作均不存在时进行优化。它在等待受限分配事务之前安装本地门控。重复请求绑定精确权限;模糊的数据库结果会使源保持隔离,直到锁定协调确定结果。提交后,它释放空控制,并使用普通重连和迁移恢复。紧急排空保留其现有行为。不再保留源协议或恢复循环。
三个真实 TCP WebSocket 场景连接了经过身份验证的本地 HTTP 分发、两个单元、实际的桌面源池、SQLite 和一个独立执行子进程:
- 任一已连接设备都会阻止移动;两者都离开后,目标重连成功,且持久追加一次变更预言机显示没有重放。
- 一个竞争到达收到 4409;一次明确的失败提交恢复源准入。
- 目标控制连接确实被尝试并失败;源活动被释放,普通过期恢复允许源 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-scriptsnpx --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