# WBV2-P1424-001: B3-recovery-last-session - task: WBV2-P1424-001 - parent: WBV2-P1424-000 - status: in_progress - targetImplementationClass: PRODUCT_WORKFLOW - node tools/web/print-task-context.mjs ## 目标 只收口 B3 会话退出保存(恢复上一次会话):原生退出写 quit.blend、持久化 ack 后再关闭、写入失败保留数据与恢复机会。现有实现只引用不重写。 - 入口链:wm_init_exit.cc → web_engine_main_state.* → web_engine_api.cpp → web-engine.worker.ts → native-session-opfs.ts。 - 断点:blender-5.2.0/source/blender/windowmanager/intern/wm_init_exit.cc:502(WM_exit_ex 内 quit.blend 写入处)。 - 三段式缺口状态以 case plan 与最新 continuation 的 remaining/failureReason 为准;本卡只保留指针。 - 下一源码路径:wm_files.cc、wm_init_exit.cc(worker 销毁段)、web-engine.worker.ts 销毁分支。 ## 输入与范围 - 指针:B1/B2 已闭合批次见各自 continuation;资产恢复细节与原始资产清单见 source-cases-20261028/original-asset-index.json 及 continuation-20261028-original-assets.json。 - 当前 case plan:source-cases-20261028/blendfile_autosave/last-session-case-plan.json;当前交接:continuation-20261029-b3-exit-api-resume.json。 - 候选保持 immutable;运行、桌面对照、Chromium 证据仍 NOT_CLAIMED。 ## 失败边界 quit 文件写入失败不得覆盖上一份恢复文件;持久化 ack 失败必须保留当前 Main;缺失、损坏、超限、并发 owner 和 backend session 失败 fail closed,不发布伪成功。 ## 验收 - 本轮用户于 2026-11-01 明确确认“逐案例测试 → 修复 → 复测”,覆盖旧的实现期禁止验证限制;仅 Chromium,本地 WASM 与原生后端分别记录,交付发布候选与验收结论,不执行生产发布。 正向恢复、持久化读回、失败保留、Main/history 保留各有独立 case 记录;层1 单 case 闭合才跑该条有界 Chromium 案例,结果写入 case validation 字段且仍 NOT_CLAIMED。 ## 交付与回滚 交付 continuation、case plan remaining 与必要 manifest/status;失败保留当前候选并停止依赖其结果的下游工作。 ## 小批次规则 - 单次源码读取≤30行,修改≤2文件,增删合计≤10行;交接只写 continuationNotes。 - 下一批只读本卡、最新 continuation 与最小源码窗口;不手工推进队列。