Commit Graph

8 Commits

Author SHA1 Message Date
gaozheng e980ddd346 harden(net): ApiBatch 契约断言(非空calls/非空谓词)+fail-fast注释+单元素测试(评审 I-1/I-2/M-1/M-2) 2026-06-11 20:13:48 +08:00
gaozheng 72b300d722 feat(net): ApiBatch 并发汇聚+fail-fast+abort闸门 + 离线单测 2026-06-11 20:05:53 +08:00
gaozheng f74d47e62e harden(net): ApiCall onFinished reply 快照防御 + 构造 Q_ASSERT(reply)(评审 H3/L1) 2026-06-11 19:59:23 +08:00
gaozheng 8f94443323 feat(net): ApiClient.getAsync/postJsonAsync + IApiCall/ApiCall 异步句柄(abort+aborted_ 闸门,AUTOMOC ON) 2026-06-11 19:51:48 +08:00
gaozheng c90ea83a04 refactor(net): 抽出 buildResponse,sync/async 共用响应解析(DRY,行为不变) 2026-06-11 19:43:37 +08:00
gaozheng 3d59387ab1 feat(net): ApiClient(QtNetwork 共享会话) + AuthService(验证码+RSA+login2) 2026-06-07 21:26:23 +08:00
gaozheng d32cbbf7c4 feat(net): RSA 加密器(OpenSSL PKCS1v1.5+base64) + 捕获真实 RSA 公钥
- RsaEncryptor: EVP_PKEY 解析公钥(非法 PEM 抛异常) + PKCS#1 v1.5 加密 + base64; 3/3 测试过
- resources/rsa_public_key.pem: 用 Playwright route 注入 setPublicKey hook + 缓存绕过, 真登录捕获的 RSA-2048 公钥
- spec §8.3: RSA 公钥阻塞解除
- vcpkg.json: 加 openssl
2026-06-07 21:17:38 +08:00
gaozheng 87eba2c5a3 scaffold: M1 工程骨架(CMake+vcpkg+分层目录+spike冒烟程序)
- 顶层 CMakeLists / CMakePresets / vcpkg.json(全 vcpkg, Qt+VTK[qt] 共用一份 Qt)
- .clang-format / .clangd / .editorconfig(AI 编码上下文基础设施, 规约 §10.1)
- src 分层目录(core/data/net/render/view/controller/app)+ 各层 README
- src/app: Qt+VTK 冒烟程序(锥体), 作 spike#1/#2 起点
- tests: gtest 冒烟 + ctest 接入
- README
2026-06-07 17:41:10 +08:00