docs(desktop,island): 修正被写成既成事实的"收回握手"机制描述

AGENTS.md 第 34 条把一个从未落地的设计当成了已实现的规则,还配上了"踩过的坑"与
"两条配套铁律",读起来像历史教训。实际核对:`island:closing`、`island:closing-done`、
`sendClosingDone`、`noteClosingDone`、`closingTimer`、`finishClosing` 六个符号在全部
源码中零命中,在 git 全部历史里也从未出现过。

真实实现是主进程单向的:handleAction() → dismissActive() / clearPendingForClose()
→ hide() → fadeOut(),状态同一帧写成 hidden,不等渲染进程任何回执。渲染侧只有本地
弹簧形变(spring.ts),是纯视觉动画,不参与淡出时机。

另,早先那层自研的"卡片缩回胶囊再淡出"快照动画(closing / closingSnapshot)确实存在过,
因在触摸屏上会露出旧帧/重影,已按用户要求整体删除 —— IslandApp.vue 顶部注释有记载。

改动:重写 AGENTS.md 第 34 条为真实机制,并注明该自研动画已移除、别再照着不存在的
握手机制改代码;README 三处同样表述一并修正;smoke.ts 里那句"渲染进程收敛上报"的
过时注释改为描述真实的淡出轮询。
This commit is contained in:
LoveChengke committed 2026-10-02 00:32:48 +08:00
1 parent 20fcca0388
commit 391e2c1591
3 files changed
+28 -22

No files matched your search

+2 -2
View File
@@ -1338,8 +1338,8 @@ async function runIslandChecks(
island.hide();
await sleep(400);
// 排空这一节留下的队列:下面断言的是"单条通知的胶囊 / 详情卡"(多条会走列表形态),
// 顺带等"收回动画"播完(窗口真正隐藏,hiddenBeforePush 才有意义)——
// 收回动画是"渲染进程收敛上报 → 主进程淡出",rAF 节流时比固定时长更久,轮询等它真的隐藏。
// 顺带等窗口真的隐藏(hiddenBeforePush 才有意义)。
// 淡出是主进程逐帧 setOpacity 的动画,机器忙时会比固定时长更久,因此轮询等它隐藏。
await drainIsland();
let hiddenBeforePush = !(islandWindow?.isVisible() ?? true);
for (let attempt = 0; attempt < 25 && !hiddenBeforePush; attempt += 1) {