Skip to content

fix: 修复引导拒绝扫描后的持久化、恢复与撤销竞态 - #732

Open
Orsted290 wants to merge 4 commits into
MemTensor:v1.2.6from
Orsted290:fix-onboarding-deny-scan
Open

Orsted290 wants to merge 4 commits into
MemTensor:v1.2.6from
Orsted290:fix-onboarding-deny-scan

Conversation

@Orsted290

@Orsted290 Orsted290 commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

问题定位

首次拒绝扫描时配置保存失败,旧实现可能推进引导却保留自动扫描开关,重启后仍扫描。快速开关及撤销期间自动接入还存在迟到操作;扫描检查点先于 reload 观察到拒绝时,会把主动取消误记为失败。

修改内容

  • 原子保存权限及自动开关,成功后推进引导,失败留页并允许重试;启动恢复权限镜像,扫描入口和检查点遵守权限。
  • 串行处理前端授权与开关,防止旧请求、轮询覆盖最新选择;撤销使旧自动接入任务失效,并等待已开始的安装收尾。
  • 权限检查点统一进入取消流程:先 abort,等待扫描写入结束,再发布 cancelled,避免自等待及误报 failed;reload 等待已发起的同一次取消,避免误报 409 并卡在原页。
  • 已合入 v1.2.6 的 6869705,解决 runtime.ts 冲突;保留目标分支的手动卸载抑制与 OpenCode 更新逻辑。当前 HEAD 8b0b40c,相对目标 19 文件。

测试结果

  • Memory 1653 通过/1 跳过,backend 1002,frontend 2719;release/packaging/contracts 等工作区检查通过。

  • 首次全量的桌面测试有 10 项超时;相同测试集以 --maxWorkers=1 重跑全部通过:1305 通过/126 跳过。未更改测试阈值。

  • lint、typecheck、diff 检查通过。新增确定性回归验证权限检查点先于 reload 时最终 cancelled,后续 reconcile 保持终态。

  • 之前隔离 GUI 已验证:保存失败留页、重启不扫描、恢复写入重试成功、快速开关最终关闭;Cursor 文件安装器隔离实验覆盖撤销等待和卸载后新执行器无再安装,未运行真实 Cursor 客户端。

  • 最终提交 8b0b40c 的 macOS arm64 unsigned 包构建通过。真实 GUI 使用 18,000 个合成文件:运行中一次返回成功,再选不允许成功;终态 cancelled/active=false,none 且三个自动开关关闭;63 秒后采集计数仍为 0,页面无扫描失败提示。本轮覆盖读取阶段,未重验导入阶段取消。

验收边界

合成数据与进程级隔离 profile,不使用真实用户历史或密钥。其他操作系统、断电、磁盘耗尽及一小时周期未覆盖;不声称复现原用户机器。自动接入竞态与延迟快速切换由可控回归覆盖,GUI 自然点击不等同于命中确定性竞态窗口。

请重点审核权限发布、取消任务等待和自动接入的失效检查。

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants