diff --git a/docs/superpowers/specs/2026-06-11-apiclient-async-design.md b/docs/superpowers/specs/2026-06-11-apiclient-async-design.md index 944151a..bfc0620 100644 --- a/docs/superpowers/specs/2026-06-11-apiclient-async-design.md +++ b/docs/superpowers/specs/2026-06-11-apiclient-async-design.md @@ -12,13 +12,13 @@ - **登录路径 ✅**(同计划 Part B:B1/B2/B4):`AuthService` 异步(`CaptchaLoad`/`LoginLoad` + `ApiChain` 编排 verify→RSA→login2);`LoginWindow` 不冻 + 可取消(析构 abort);`test_auth` live 异步化。 - 测试 89 → 116。每块逐任务 spec+质量双评审 + 整体评审通过。 -**仍未完成(BLOCKED,同根:`ProjectListDialog` 仍同步消费 `IProjectRepository`):** -- 删除 `ApiClient` 同步 `get/postJson`(Part B 的 B3)+ 删除同步 `IProjectRepository`(Part A 的 A6)。解锁前置:先把 `ProjectListDialog` 迁移到 `IAsyncProjectRepository`。 -- 故 `ApiProjectRepository` 暂同时实现同步+异步两接口(过渡技术债)。 +**技术债清除 ✅(2026-06-12):** `ProjectListDialog` 已迁到 `IAsyncProjectRepository`(NavRequest + abort-and-replace + 身份比对 + 析构 abort),随即删除同步 `IProjectRepository`、`RepoResult`、`ApiProjectRepository` 9 个同步方法、`ApiClient` 同步 `get/postJson`+`await`(A6+B3 解锁完成)。**全 App 网络层现已 100% 异步,无 `QEventLoop` 阻塞、无过渡双接口债。** 测试 116/116。 -可选 follow-up(评审建议,非阻断):删 `DatasetDetailController::ChartData.grid/gridScale` 死字段;补 `qRegisterMetaType>()`。 +**结论:异步化主题完成。** 数据详情(试点)+ 导航(Part A)+ 登录(Part B)+ 项目列表弹窗全部异步;同步路径彻底移除。 -> 铺开实现计划:`plans/2026-06-11-apiclient-async-rollout.md`(Part A/B 已落地,B3 BLOCKED)。 +可选 follow-up(评审建议,非阻断,纯整洁):删 `DatasetDetailController::ChartData.grid/gridScale` 死字段;如未来引入 cross-thread 再补 `qRegisterMetaType>()`。 + +> 铺开实现计划:`plans/2026-06-11-apiclient-async-rollout.md`(Part A/B + 债务清除均已落地)。 ## 1. 背景