diff --git a/my-tools/run_web_product_migration.py b/my-tools/run_web_product_migration.py index 25dcfc962..a098b3bb6 100644 --- a/my-tools/run_web_product_migration.py +++ b/my-tools/run_web_product_migration.py @@ -146,7 +146,7 @@ def run_task(task: dict, heartbeat_seconds: float) -> tuple[int, bool]: log_path = LOG_ROOT / f"{task['id']}.codex.jsonl" LOG_ROOT.mkdir(parents=True, exist_ok=True) command = [ - "codex", "exec", "--approve-for-me", "--sandbox", "workspace-write", + "codex", "exec", "--approve-for-me", "--ephemeral", "--cd", str(ROOT), "--json", "-", ] with log_path.open("w", encoding="utf-8") as log: diff --git a/tests/golden/WBV2/web-product-backlog.json b/tests/golden/WBV2/web-product-backlog.json index 39b6ad257..55b69ce5d 100644 --- a/tests/golden/WBV2/web-product-backlog.json +++ b/tests/golden/WBV2/web-product-backlog.json @@ -8,22 +8,96 @@ "completionDenominator": false }, "workflowModules": [ - { "id": "PROJECT", "title": "Project open, save and recovery", "status": "implemented" }, - { "id": "WORKSPACE", "title": "Web workspace and viewport", "status": "implemented" }, - { "id": "OBJECT", "title": "Object and scene graph", "status": "implemented" }, - { "id": "MESH", "title": "Mesh modeling and UV", "status": "implemented" }, - { "id": "NONMESH", "title": "Non-mesh geometry", "status": "partial", "taskIds": ["WEBUI-NONMESH-ADVANCED", "WEBUI-FONT-ASSETS"] }, - { "id": "MATERIAL", "title": "Materials, shaders and textures", "status": "implemented" }, - { "id": "MODIFIER", "title": "Modifiers and geometry nodes", "status": "implemented" }, - { "id": "ANIMATION", "title": "Animation and NLA", "status": "partial", "taskIds": ["WEBUI-NLA-STRIP"] }, - { "id": "PAINT", "title": "Sculpt, paint and Grease Pencil", "status": "partial", "taskIds": ["WEBUI-SCULPT"] }, - { "id": "RENDER", "title": "Render, light, camera and world", "status": "implemented" }, - { "id": "COMPOSITOR", "title": "Compositor", "status": "implemented" }, - { "id": "SIMULATION", "title": "Physics and simulation", "status": "implemented" }, - { "id": "MEDIA", "title": "Media, audio and sequencer", "status": "implemented" }, - { "id": "ASSET_IO", "title": "Assets, libraries and interchange", "status": "implemented" }, - { "id": "STORAGE", "title": "Browser storage and recovery", "status": "implemented" }, - { "id": "RUNTIME", "title": "Worker, performance and modular WASM lifecycle", "status": "implemented" } + { + "id": "PROJECT", + "title": "Project open, save and recovery", + "status": "implemented" + }, + { + "id": "WORKSPACE", + "title": "Web workspace and viewport", + "status": "implemented" + }, + { + "id": "OBJECT", + "title": "Object and scene graph", + "status": "implemented" + }, + { + "id": "MESH", + "title": "Mesh modeling and UV", + "status": "implemented" + }, + { + "id": "NONMESH", + "title": "Non-mesh geometry", + "status": "partial", + "taskIds": [ + "WEBUI-NONMESH-ADVANCED", + "WEBUI-FONT-ASSETS" + ] + }, + { + "id": "MATERIAL", + "title": "Materials, shaders and textures", + "status": "implemented" + }, + { + "id": "MODIFIER", + "title": "Modifiers and geometry nodes", + "status": "implemented" + }, + { + "id": "ANIMATION", + "title": "Animation and NLA", + "status": "partial", + "taskIds": [ + "WEBUI-NLA-STRIP" + ] + }, + { + "id": "PAINT", + "title": "Sculpt, paint and Grease Pencil", + "status": "partial", + "taskIds": [ + "WEBUI-SCULPT" + ] + }, + { + "id": "RENDER", + "title": "Render, light, camera and world", + "status": "implemented" + }, + { + "id": "COMPOSITOR", + "title": "Compositor", + "status": "implemented" + }, + { + "id": "SIMULATION", + "title": "Physics and simulation", + "status": "implemented" + }, + { + "id": "MEDIA", + "title": "Media, audio and sequencer", + "status": "implemented" + }, + { + "id": "ASSET_IO", + "title": "Assets, libraries and interchange", + "status": "implemented" + }, + { + "id": "STORAGE", + "title": "Browser storage and recovery", + "status": "implemented" + }, + { + "id": "RUNTIME", + "title": "Worker, performance and modular WASM lifecycle", + "status": "implemented" + } ], "tasks": [ { @@ -32,8 +106,16 @@ "title": "Expose advanced curve, surface and non-mesh deletion commands", "status": "pending", "attempts": 0, - "commands": ["deleteNonMeshData", "setCurveHandle", "setCurveSplines", "setSurfaceTopology"], - "ownedPaths": ["web/app/src/app/App.tsx", "web/protocol/nonmesh-geometry-commands.ts"], + "commands": [ + "deleteNonMeshData", + "setCurveHandle", + "setCurveSplines", + "setSurfaceTopology" + ], + "ownedPaths": [ + "web/app/src/app/App.tsx", + "web/protocol/nonmesh-geometry-commands.ts" + ], "resultPath": "tests/golden/WBV2/product-migration/WEBUI-NONMESH-ADVANCED-result.json", "implementation": "Add context-aware user controls that construct the existing typed commands from the active non-mesh snapshot. Reuse current curve/surface state; do not create a generic JSON command console." }, @@ -43,8 +125,16 @@ "title": "Expose advanced font layout and browser font import commands", "status": "pending", "attempts": 0, - "commands": ["setFontAdvanced", "importVFont", "setFontLinks"], - "ownedPaths": ["web/app/src/app/App.tsx", "web/protocol/nonmesh-geometry-commands.ts", "web/app/src/fonts/external-vfont-import.ts"], + "commands": [ + "setFontAdvanced", + "importVFont", + "setFontLinks" + ], + "ownedPaths": [ + "web/app/src/app/App.tsx", + "web/protocol/nonmesh-geometry-commands.ts", + "web/app/src/fonts/external-vfont-import.ts" + ], "resultPath": "tests/golden/WBV2/product-migration/WEBUI-FONT-ASSETS-result.json", "implementation": "Add usable font layout/link controls and a TTF/OTF/PFB file picker that uses the existing browser font import adapter and native command route." }, @@ -54,8 +144,14 @@ "title": "Expose native sculpt stroke and sculpt mesh attribute commands", "status": "pending", "attempts": 0, - "commands": ["sculptStroke", "setSculptMeshAttributes"], - "ownedPaths": ["web/app/src/app/App.tsx", "web/protocol/paint.ts"], + "commands": [ + "sculptStroke", + "setSculptMeshAttributes" + ], + "ownedPaths": [ + "web/app/src/app/App.tsx", + "web/protocol/paint.ts" + ], "resultPath": "tests/golden/WBV2/product-migration/WEBUI-SCULPT-result.json", "implementation": "Add a compact sculpt panel for the active mesh, including brush controls, a deliberate apply action, and the existing native sculpt attribute route." }, @@ -65,8 +161,14 @@ "title": "Expose native NLA strip movement", "status": "pending", "attempts": 0, - "commands": ["moveNLAStrip"], - "ownedPaths": ["web/app/src/app/App.tsx", "web/protocol/animation-render-commands.ts", "web/protocol/nla.ts"], + "commands": [ + "moveNLAStrip" + ], + "ownedPaths": [ + "web/app/src/app/App.tsx", + "web/protocol/animation-render-commands.ts", + "web/protocol/nla.ts" + ], "resultPath": "tests/golden/WBV2/product-migration/WEBUI-NLA-STRIP-result.json", "implementation": "Add context-aware NLA track/strip selection and frame-start editing to the Timeline, using the existing typed moveNLAStrip command." }