From 7b3fe1b124c8619883101698cdb64f1eaf74e2e0 Mon Sep 17 00:00:00 2001 From: Yaojia Wang Date: Wed, 8 Jul 2026 13:45:54 +0200 Subject: [PATCH] docs(progress): log Android client AW0+AW1 pure-Kotlin foundation (218 tests green) --- docs/PROGRESS_LOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/PROGRESS_LOG.md b/docs/PROGRESS_LOG.md index 2981b95..03626f2 100644 --- a/docs/PROGRESS_LOG.md +++ b/docs/PROGRESS_LOG.md @@ -24,6 +24,14 @@ > 新会话读到的第一块。保持准确,只描述"此刻"。 +### 🤖 ANDROID CLIENT — 与 iOS 对齐的原生客户端(计划 + 地基已落;2026-07-08) +- **计划**: [ANDROID_CLIENT_PLAN.md](./ANDROID_CLIENT_PLAN.md)(多 agent 探索 iOS→综合→4 视角评审→终版)。镜像 iOS 的 SPM 包为 Gradle 模块;36 任务 AW0–AW6。三个开放问题已定:R2(Termux terminal-view/emulator 是 **Apache-2.0** + JitPack,非 GPL-阻塞,独立验证更正)、R1(接受 FCM 尽力而为后台送达)、R7(服务端用 `google-auth-library`)。 +- **本机环境约束**: JDK+Gradle 可用,但 **Android SDK 为空** → 仅**纯 Kotlin/JVM 模块**能真构建验证;Android 框架层(`:app`/`:terminal-view`/UI/FCM)只能写、待有 SDK 的机器构建。 +- **[x] AW0 + AW1(纯 Kotlin 地基)DONE — commit `4ea8f78`**: 一个实施 Workflow(A1 脚手架→A2 冻结 `:wire-protocol` 契约→A3 fakes → 并行 A4/A5/A6/A8/A9/A10 → 统一 Verify → 3 路评审)。**验证(实测)**: `./gradlew clean test` = **218 测试 0 失败**(wire-protocol 47 / session-core 60 / api-client 69 / client-tls 27 / test-support 15),clean 重建可复现。 + - 模块:`:wire-protocol`(冻结契约 + HostEndpoint CSWSH origin 派生 + 手写 codec 逐字节对齐 `JSON.stringify`)、`:session-core`(ReconnectMachine 退避/PingScheduler/GateTracker 双行 epoch 守卫/AwayDigest/TitleSanitizer/**KeyByteMap 逐字节匹配 `public/keybar.ts`**)、`:api-client`(全 REST + Origin-仅-守卫 + prefs 未知键保留 + pairing 分级)、`:client-tls`(纯半:PKCS12/别名逻辑/证书摘要)、`:test-support`(fakes)。 + - **评审 3 视角各 8/10;findings 已修 + 加 11 回归测试**:sessionId JSON 注入转义(deep-link 攻击面)、PingScheduler CancellationException 传播、PairingProbe 超时关闭泄漏、HostEndpoint trim、HostClassifier 提升 `:wire-protocol` 统一类型、Pkcs12 错密码判定 BouncyCastle 可移植、lone-surrogate 转义。 +- **待办**: AW2+(SessionEngine/wiring 冻结)、AW3(`:terminal-view` Termux 封装,需 SDK)、AW4 UI 屏、AW5 push/mTLS 框架半 + **A33 服务端 FCM**(`/push/fcm-token` 路由现缺,api-client 已标注)。这些需在有 Android SDK 的环境构建验证。 + ### 🚧 RELAY-PHASE1 — 把原生 rendezvous-relay 部署到单台 VPS(8.138.1.192,阿里云;2026-07-06) - **目标**: DEPLOY_RELAY §4 的 **Phase 1「1b 全量持久化 staging」**。VPS 上 Docker 自建 Postgres+Redis;已备案域名走 443 + Let's Encrypt;agent 跑在操作者本机向外拨号。完整文件级方案见 [PLAN_RELAY_PHASE1.md](./PLAN_RELAY_PHASE1.md)。 - **进度**: **Wave A/B/C/D/E 代码全部完成并通过 Verify** —— 一个后台 Workflow(12 agents,0 error)跑完 A2、B1–B5、B6、C、D1、E。Verify 门槛:**四个包 tsc 全干净、可构建包全 build 成功、314/314 测试通过**(control-plane 103 / relay-run 74 / agent 137 + relay-web 118)。对抗式安全评审:**所有硬不变量 PASS**(INV2 opaque splice、Origin/CSWSH 精确匹配、mTLS INV14 registry 门控、token-mint 密码学、撤销 INV12、jti 单次、参数化 SQL)。