Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer, web workflow engine and protocol, tooling, docs and task records. Large generated evidence, user-testing archives, build snapshots and imported test assets remain untracked. Co-Authored-By: Claude Code <noreply@anthropic.com>
2.4 KiB
2.4 KiB
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 与最小源码窗口;不手工推进队列。