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>
13 lines
6.1 KiB
JSON
13 lines
6.1 KiB
JSON
{"schemaVersion":1,"batchId":"B2","status":"REVIEWED_SCOPE","verifiedUnitDelta":0,
|
|
"bindings":[{"path":"blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp","sha256":"4b14aaa45d78b65130f630284bf5425c707e92b91a7c9c34f9efb452f9c964cc"},{"path":"blender-5.2.0/source/blender/editors/transform/transform_ops.cc","sha256":"e17e6ae6aeca0226cbbf7e5f940a04e0d75415fe3a578edacf659b4af7e7b378"},{"path":"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp","sha256":"e1427f3a4352ea2b625149f777bb0e40508890c54030c67683b29ae4bf418798"},{"path":"blender-5.2.0/source/blender/editors/mesh/editmesh_select.cc","sha256":"bea08ee3ddbe5287dc1f3502eaef5f21e14c61d7dc17ac86695ad9b3f63e794b"},{"path":"blender-5.2.0/source/blender/editors/undo/ed_undo.cc","sha256":"cbbc4f69258a704396b8fc1af1b5c085641e13c55a18aac36b941efad0092618"},{"path":"blender-5.2.0/source/blender/web_engine/web_engine_gpu_ui.cpp","sha256":"f7e08675de04d05a18d4bd74984f8eb6775ece43c9d4c3a72d1b8733494cfdfc"},{"path":"web/app/src/app/WasmGPUCanvas.tsx","sha256":"492c11cf4591c796dd3bc946391b0853c97a984e2f7ba6299c6171c43aa02f6f"},{"path":"web/app/src/workers/web-engine.worker.ts","sha256":"30a914b94f625e7a9a93e8b8fe60778b9e515bee364b34632ffe8cf21c66da87"},{"path":"web/app/src/app/App.tsx","sha256":"813263854ebb574299c28aa93caa645d07d9fca3732b8ebcdcaac5d5e80a1c56"},{"path":"web/app/src/app/WasmEditorContext.tsx","sha256":"40351762be341d2f8ddef0e52e7021d94f40dcf784850ad2e9349075f3d6265f"},{"path":"blender-5.2.0/source/blender/makesrna/intern/rna_object.cc","sha256":"de0c7ab9abe8127dd0c534e94fec469d21fdca7d33d6991c61c1c7667eee9886"},{"path":"blender-5.2.0/source/blender/makesrna/intern/rna_workspace.cc","sha256":"8352540e252b65a3e641711f1ad3b1b9e5b5c36461e2ccfd4950f61cb6684db8"},{"path":"web/app/src/app/wasm-editors.css","sha256":"23f528d5697009849207a90a09f54eeb03faa14b23eeeb812e6ad2c0565368a5"},{"path":"web/protocol/web-engine.ts","sha256":"a66e5cebfa106e6727d2bd3c447a0c8a476c9e61d726cf915940b3c3d7dbcabe"}],
|
|
"contracts":[
|
|
{"id":"native-cube","scope":"createPrimitive creates a native BMesh cube, converts it into authoritative Main and tags object/scene redraw; only cube case is covered.","sourcePaths":["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp"],"sourceLines":[14342,14367,14442],"proofStages":["opened","added"]},
|
|
{"id":"native-grs","scope":"Translate, rotate and scale invoke native modal callbacks with OPTYPE_UNDO; G X 1, R Z 90, S 2 change actual object transforms.","sourcePaths":["blender-5.2.0/source/blender/editors/transform/transform_ops.cc"],"sourceLines":[855,882,972],"proofStages":["confirmed","rotated","scaled"]},
|
|
{"id":"native-cancel","scope":"TRANS_CANCEL restores transform; WebEngine retains the pre-gesture Main and commits history only on net persistent change.","sourcePaths":["blender-5.2.0/source/blender/editors/transform/transform_ops.cc","blender-5.2.0/source/blender/web_engine/web_engine_api.cpp"],"sourceLines":[506,4678,4684,4701],"proofStages":["historyBeforeCancel","cancelStarted","cancelFinished","cancelled","historyAfterCancel"]},
|
|
{"id":"native-vertex-edit","scope":"Native viewport pick resolves nearest BMesh vertex, SEL_OP_SET updates vertex selection/history, and native global Z translation moves only that selected vertex.","sourcePaths":["blender-5.2.0/source/blender/editors/mesh/editmesh_select.cc","blender-5.2.0/source/blender/editors/transform/transform_ops.cc"],"sourceLines":[2711,2906,2920,855],"proofStages":["editEntered","vertexTarget","vertexClick","vertexSelected","vertexEdited"]},
|
|
{"id":"native-keyboard-history","scope":"Canvas forwards keycode/modifiers to native WM handlers; ED_OT_undo/redo step the native stack and refresh, restoring edit-mode vertices/selection and transform data.","sourcePaths":["web/app/src/app/WasmGPUCanvas.tsx","blender-5.2.0/source/blender/web_engine/web_engine_gpu_ui.cpp","blender-5.2.0/source/blender/editors/undo/ed_undo.cc"],"sourceLines":[560,1352,599,636,705,748],"proofStages":["undoFrame","undone","redoFrame","redone"]},
|
|
{"id":"main-file-roundtrip","scope":"Worker serializes authoritative Main through Blender writer; browser download delivers bytes and complete memory loader reopens them after a deliberate unsaved change. OPEN/SAVE reserve the mutex after draining autosave. Native File menu and Save As remain B3.","sourcePaths":["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp","blender-5.2.0/source/blender/web_engine/web_engine_api.cpp","web/app/src/workers/web-engine.worker.ts","web/app/src/app/App.tsx"],"sourceLines":[1807,24320,5302,3075,3941,6085],"proofStages":["finalObject","saved","unsaved","reopened"]},
|
|
{"id":"tool-and-visible-rna","scope":"Read-only bpy/BMesh oracle reports real WorkSpaceTool idname and Object.loc; Properties renders native transform fields and all XYZ inputs must be fully in viewport with matching values after reopen.","sourcePaths":["blender-5.2.0/source/blender/makesrna/intern/rna_workspace.cc","blender-5.2.0/source/blender/makesrna/intern/rna_object.cc","web/app/src/app/WasmEditorContext.tsx","web/app/src/app/wasm-editors.css"],"sourceLines":[320,3155,2226,2247,46],"proofStages":["added","editEntered","reopened","uiLayout","reopenedUI"]},
|
|
{"id":"native-input-transport","scope":"Canvas preserves keycode/modifiers and pointer events; gpuUI frame protocol carries them to Worker native key/event exports; gpuFrame pumps native WM and publishes Main changes. No JS transform geometry is used for the tested modal actions.","sourcePaths":["web/app/src/app/WasmGPUCanvas.tsx","web/protocol/web-engine.ts","web/app/src/workers/web-engine.worker.ts","blender-5.2.0/source/blender/web_engine/web_engine_api.cpp","blender-5.2.0/source/blender/web_engine/web_engine_gpu_ui.cpp"],"sourceLines":[560,488,780,682,4653,1353],"proofStages":["cancelStarted","cancelFinished","confirmFinished","rotateModal","scaleModal","vertexClick","vertexModal","undoFrame","redoFrame"]}],
|
|
"continuationNotes":"Eight source contracts reviewed for this B2 workflow only; source-unit verified delta remains0. Bind review in B2 plan, rerun minimal then production on existing candidate, then inspect proof stages/artifacts and aggregate acceptance. All B3-B6/global residuals retained."}
|