docs(05): 锚点补记三十四 —— 压缩后续接(W54 三支并行在飞:通知一事一条/转屏丢分享/预览可滚动;第二批进程级订阅待开)+ 主人三条拍板(预览要滚动+展开、提示词已贴等回执、推送待研究)+ 环境核对
This commit is contained in:
1 parent
33c320219a
commit
e5e61e131d
1 file changed
+28
@@ -1788,3 +1788,31 @@ adb shell dumpsys activity services top.yeij.cyrene | grep -E "KeepAliveService|
|
||||
### 6. 本轮新增的两条教训
|
||||
1. **`adb … am start --es android.intent.extra.TEXT "带空格的值"` 会被空格拆开** —— 我测试分享时那个 URL 就是这么丢的(**不是 App 吞的**)。要传带空格的值得转义,或改用 `file://` + `--eu`。
|
||||
2. **用户说「这里有点奇怪」时,先想清那个控件的语义,别急着按「渲染重复」去改** —— 我把「输入框被预填了正文」误判成「预览多余」,白派了一支(已停)。**语义问题优先问清楚再动手。**
|
||||
|
||||
## ★★ 锚点补记三十四 · 压缩后续接:W54 三支在飞 + 主人的三条拍板(2026-10-06 21:05)
|
||||
|
||||
> 上一节(三十三)之后上下文压缩过一次。本节记「压缩后我做了什么」+ 主人刚拍的三条。
|
||||
|
||||
### 1. 压缩后排掉的三件不需要拍板的收尾活(三支并行,文件集互不重叠)
|
||||
|
||||
| 支 | 内容 | 落点(关键文件) | worktree / 分支 |
|
||||
|---|---|---|---|
|
||||
| **W54A** | 通知「一事一条」——通知 id 与 `PendingIntent` requestCode 改成按消息**稳定派生**,修「她连说几句时后到的覆盖先到的」 | `core/notify/ProactiveNotification.kt`(`PROACTIVE_NOTIFICATION_ID = 2` / `PROACTIVE_OPEN_REQUEST_CODE = 2` / `notify(...)`)、`core/notify/ProactiveNotifier.kt` 的 `post` 签名、`app/AppContainer.kt:71` 装配点 | `../Cyrene-For-Android-wt54a` / `wt54a/notify-per-message` |
|
||||
| **W54C** | 转屏**静默丢掉**「已取走但未确认」的那份分享(`take()` 不可逆 + 面板状态是 `remember(sessionId)`) | `ui/chat/ChatScreen.kt` 分享落地那段、`ui/chat/ChatViewModel.kt`(候选落点) | `../Cyrene-For-Android-wt54c` / `wt54c/share-survives-rotation` |
|
||||
| **W54D** | 分享确认面板预览区**可滚动**(3 行高度上限不变,用户发送前能读到整段正文) | `ui/chat/ShareConfirmPanel.kt`(`SHARE_PREVIEW_TEXT_LINES = 3`)+ 分享测试 | `../Cyrene-For-Android-wt54d` / `wt54d/share-preview-scroll` |
|
||||
|
||||
三支的公共约束:不引新依赖、禁 Material3、禁碰 `devdocs/**`、只本地 commit 不 push、Gradle 走 `D:/Project/Code/Uni/.cyrene-build.lock`(**只删自己那行**)。A 还禁碰 UI;C 禁碰 `ShareConfirmPanel.kt`(D 的地盘);D 禁碰 `ChatScreen.kt`/`ChatViewModel.kt`(C 的地盘)。
|
||||
|
||||
**第 2 批(未开)**:订阅提到**进程级**(现在通知挂在 `SessionsViewModel`,Activity 一被划掉就收不到帧)——它要动 `AppContainer.kt` 与订阅装配,跟 A 同一片区域,**等 A 合入后再开**,避免同批冲突。
|
||||
|
||||
### 2. 主人 2026-10-06 21:0x 的三条拍板(原文要点)
|
||||
|
||||
1. **分享面板预览:「可以滚动 可以展开」** —— 两个都要。所以 D 支做完滚动后,**还要追加「展开/收起」**:默认仍是 3 行 + 内部滚动,长正文时给一个展开控件,展开后能读全文,再点收起。(D 的 prompt 里只写了滚动,**追加那一轮要另发**,不要重做。)
|
||||
2. **给后端的提示词「贴过去了 等他回复」** —— 等的是:① `tool_execution.end` 能否带可选 `resultSummary`;② `channel_persisted` 会不会也带 `proactive`;③ 实时帧 `payload.id` 与落库帧 `message.id` 是否**同一条落库行**(我们据此去重)。**收到回执前不要据此改工具卡 UI。**
|
||||
3. **推送:「我还在研究」** —— 等他,不主动推进。
|
||||
|
||||
### 3. 此刻环境(动手前照核)
|
||||
- HEAD 曾=`33c3202`(= `origin/android`),主仓唯一脏是 `devdocs/02` —— **后端会话的在途改动,别 checkout、别提交**。
|
||||
- 模拟器 `emulator-5554` 在跑;App pid **25584**、`KeepAliveService` 在、App 在**后台**(前台是 launcher)。
|
||||
- 假后端 `127.0.0.1:18090` 活着(**store 已清空**:`sessions[].messages = 0`,说明它重启过,App 会自愈重连,对保活判定无影响);真后端 `10942` 活着、**没碰**。
|
||||
- ⚠️ **22:13 长跑复查之前不要操作 App 前台**(一操作就把「后台存活」的基线破坏了)。S4 对照组同理,**排到长跑之后**。
|
||||
Reference in new issue
Block a user