# R1.13 任务报告

## 策略与实现

- UniDesk PR #1912（merge a1cfbf1b）把所有 WebProbe 创建入口统一到 owning YAML 的物理内存门禁。
- 资格只读取 /proc/meminfo 的 MemAvailable，要求严格大于 4 GiB；swap、虚拟内存和总可提交量不参与判定。
- 人工入口不足阈值时阻断，要求先执行受控 memory-pressure GC 并复核；哨兵不足阈值时跳过本 cadence，不创建 observer 或 Chrome。
- GC 识别并清理孤立 Chrome 与 stale observer 进程树，同时保护活跃 observer；终止使用有界 TERM、身份复核和同树残留 KILL。
- WebProbe browser/context 在成功、失败、timeout 与 signal 路径均有有界关闭；status/plan 默认有界披露。
- 该原则已固化到 unidesk-gc skill；NC01 swap 调整为 12 GiB，但明确不计入启动资格。

## 运行面实证

- 每次新 observer 前都先执行 gc remote NC01 memory 与 memory-pressure-only plan。
- 本轮启动门禁分别观测到 5.0/5.1/5.2 GiB MemAvailable，swapExcluded=true，candidateCount=0，未发现逃逸 Chrome。
- 单个 desktop observer 活跃时 MemAvailable 曾降至 3.6 GiB；期间没有启动第二个浏览器。observer 停止后恢复至约 5 GiB。
- 最终 mobile onboarding observer 自动完成 24 samples，进程为 not-running；回收后 MemAvailable 4.7–4.9 GiB，候选进程仍为 0。
- 12 GiB swap 已确认生效，所有启动判据仍只使用真实物理 MemAvailable。

## 结论

WebProbe 与哨兵现在在低内存时 fail-closed/skip-next-cadence，并能清理可疑逃逸浏览器；活跃任务不会被 GC 误杀。
