From ff417de32c25119f05a7b91b3a2549db711c8fa3 Mon Sep 17 00:00:00 2001 From: Codex Date: Sun, 12 Jul 2026 12:25:55 +0200 Subject: [PATCH] docs: record web observe memory relief --- .../R1.1_Task_Report.md | 35 +++++++++++++++++++ .../MDTODO/web-observe-runtime-reliability.md | 4 +-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 docs/MDTODO/details/web-observe-runtime-reliability/R1.1_Task_Report.md diff --git a/docs/MDTODO/details/web-observe-runtime-reliability/R1.1_Task_Report.md b/docs/MDTODO/details/web-observe-runtime-reliability/R1.1_Task_Report.md new file mode 100644 index 00000000..e6b7e9dd --- /dev/null +++ b/docs/MDTODO/details/web-observe-runtime-reliability/R1.1_Task_Report.md @@ -0,0 +1,35 @@ +# R1.1 调查与临时缓解报告 + +## 上下文 + +- Issue:https://github.com/pikasTech/unidesk/issues/1842 +- 止血证据:https://github.com/pikasTech/unidesk/issues/1842#issuecomment-4950814142 +- 既有长期方案:https://github.com/pikasTech/unidesk/issues/1710 +- 既有 PR:https://github.com/pikasTech/unidesk/pull/1712 + +## 判定 + +- 指定 run 的 runner 已脱离调用方,PPID 为 1,并持续运行约 18 小时。 +- CLI 通过 observer id 定位日期分层 stateDir;直接绝对 stateDir 被安全校验拒绝,未绕过保护。 +- `observe status` 显示 run 可由正式 control channel 接收 stop;因此使用 graceful stop,不需要 force-stop、raw kill 或目录删除。 + +## 临时缓解 + +- 执行正式 `web-probe observe stop webobs-mrgj09ow-e3e28e`。 +- exact command `cmd-mrhmyw5s-a02c31` 返回 done/ok=true。 +- PID `3487047` 与 Chrome 子树全部退出。 +- 进程树 RSS 约从 992.5 MiB 降为 0。 +- swap used 约从 3.9 GiB 降为 2.3 GiB,swap free 约从 94 MiB 升为 1.7 GiB。 +- memory PSI avg10/avg60/avg300 保持 0。 +- NC01 UniDesk、HWLAB 和 AgentRun readiness 前后不变。 + +## GC 与保护边界 + +- stop 后 GC dry-run 状态为 completed。 +- 剩余对象仅因 retention window 被标记 protected;本次未删除 artifact。 +- 未使用 raw kill、swapoff、Docker/k3s prune,也未触碰 PVC、Secret、运行面数据库或其他代理 worktree。 + +## 后续 + +- 本次问题属于 #1710 的复发;#1712 已包含日期分层扫描和 YAML 控制的 observer TTL/maxSamples,但尚未合并。 +- R1.2 先审查并更新 #1712,确认调用方所有终态 stop 是否仍有缺口;不得另建第二套生命周期 authority。 diff --git a/docs/MDTODO/web-observe-runtime-reliability.md b/docs/MDTODO/web-observe-runtime-reliability.md index 23ba4d9b..873c5aa0 100644 --- a/docs/MDTODO/web-observe-runtime-reliability.md +++ b/docs/MDTODO/web-observe-runtime-reliability.md @@ -8,11 +8,11 @@ 解决 Web observe 终态未回收造成 observer/Chrome 长驻与 swap 压力:沿用受控 observe/GC authority,先完成有界临时缓解,再实现 YAML 控制的生命周期、自停和压力可见性,最终通过自动发布链验收。上下文:https://github.com/pikasTech/unidesk/issues/1842,完成任务后将详细报告写入[任务报告](./details/web-observe-runtime-reliability/R1_Task_Report.md)。 -### R1.1 [in_progress] +### R1.1 [completed] 调查并临时缓解:https://github.com/pikasTech/unidesk/issues/1842;用 manifest、heartbeat、PID、open fd/cwd 和调用方终态判定 stale,先 plan,再走正式 observe stop/force-stop 或 GC run,记录回收前后内存、swap、进程树与健康证据,完成任务后将详细报告写入[任务报告](./details/web-observe-runtime-reliability/R1.1_Task_Report.md)。 -### R1.2 +### R1.2 [in_progress] 实现长期修复:https://github.com/pikasTech/unidesk/issues/1842;补齐所有调用方终态 stop,runner 从 owning YAML 获取最大运行时长/max samples/artifact cap 并自停,GC snapshot/plan/status 披露 active/stale、Chrome RSS、last cleanup 与 stop failure,完成任务后将详细报告写入[任务报告](./details/web-observe-runtime-reliability/R1.2_Task_Report.md)。