From 067852e08b91c3a49ea2683c35ad48a62eb3b85d Mon Sep 17 00:00:00 2001 From: gaozheng Date: Fri, 12 Jun 2026 09:38:24 +0800 Subject: [PATCH] =?UTF-8?q?docs(spec):=20=E5=BC=82=E6=AD=A5=E5=8C=96?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E5=AE=8C=E6=88=90=20=E2=80=94=20=E6=8A=80?= =?UTF-8?q?=E6=9C=AF=E5=80=BA=E6=B8=85=E9=99=A4(ProjectListDialog=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E5=8C=96,=20=E5=88=A0=E5=90=8C=E6=AD=A5IProjectReposi?= =?UTF-8?q?tory/RepoResult/ApiClient.get|postJson),=20=E5=85=A8App?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E5=B1=82100%=E5=BC=82=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../specs/2026-06-11-apiclient-async-design.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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. 背景