diff --git a/devdocs/05-开发进度与交接.md b/devdocs/05-开发进度与交接.md index f120df2..606cca4 100644 --- a/devdocs/05-开发进度与交接.md +++ b/devdocs/05-开发进度与交接.md @@ -1644,3 +1644,9 @@ S2 我第一次测出「没生效」,差点去改代码——真因是**设备 - **怎么抓到的**:在 `ChatScreen` 那一支加一条**一次性诊断日志**,把 UI 实际看到的三个输入打出来 —— `loading=false hasError=true errorIsQueueFull=false items=0 retry=false`:**三个输入全真而结论为假** ⇒ 只剩「极性」一种可能。核对判据本体后确认。定位完日志已删(`grep CyreneRetry` = 0)。 - **修 + 复验**:调用点改成 `state.items.isNotEmpty()`。真机复验:断网冷启动 ⇒「消息没能加载出来」+「重试」;**恢复网络后点它** ⇒ 发出 `GET /api/v1/sessions/web/messages`,**离线期间落库的那条出现在屏幕上**;列表非空后按钮自己消失。(顺带一条自查:我第一遍用 `grep 重试` 数按钮,结果那条消息的正文里正好也有「重试」二字 ⇒ 计数 1 是误报;按 dump 的节点看,按钮确实没了。) - **教训(值得单独记)**:**判据单测全绿 ≠ 接线正确**。极性 / 参数语义这类错在纯函数测试里永远看不见(测试调的是正确语义),**只有调用点会露** —— 而调用点在 Compose 里、项目又没有 UI 测试装置 ⇒ **这条只能靠真机验收**。这是「设备验收抓住单测抓不到的错」的第二例(第一例是 W50 的 `timestamp` 类型不符)。 + +### 5. 待办变化(S4 / S5 / S9 移出) +- ✅ **S4**(常驻 VM 不回收)→ **W52A**:LRU 保留 3 格 + 四条豁免(主会话 / 屏幕上那一格 / 有未发出内容的格 / 其余最旧先走)。**真机未验**(只有单测 + 走查),已在 §2 表里如实标注。 +- ✅ **S5**(切会话不打断)与 **S9**(「正在生成」看不见)→ **W52B**:抽屉里看得见「正在思考…」+ 能停(走**既有** `interrupt` 帧)—— **真机验收通过**。 +- ✅ W52 其余三项:登出条目(W52C)、降级气泡不给删改入口(W52DE/D)、首屏失败显式重试(W52DE/E,修完复验)—— **真机验收通过**。 +- 仍在待办:**保活开关 → 前台服务/通知/13+ 权限流** 未验;**`INTERNET` 显式声明**未做;**构建锁协议**未写死;主人待拍板的「保活第 3 件(后台收到消息弹系统通知 + 接上被丢掉的 `proactive` 判据)」。