woodshop/tests
rob a4ef3a7d1e Multi-image reference + render-feedback "Match photo" self-correction
Three quality levers for photo-to-build:

- Multiple references at once: interpret/handle/run_command take image_paths
  (list); the directive lists every file and tells the model they're different
  views/details of one piece. Command bar accumulates attachments (📎 / drag /
  paste, getOpenFileNames) with a chip + clear.
- Better guidance: the build directive now walks the model through it — decide
  overall dimensions, then count & place legs/rails/top/shelves, keep flush &
  square, then joinery.
- Render-feedback loop: woodshop.scenerender renders the scene from front/side/
  iso in an isolated subprocess (GL-crash safe); driver.critique() shows the AI
  the reference + those renders and returns corrective tool calls (or 'LGTM…');
  controller.refine_to_match(rounds) applies them, stopping when satisfied. A
  "🔄 Match photo" button runs a round using the retained reference.

viewer.render_to_file gains a view (front/side/top/iso).
tests: multi-image directive, critique prompt, refine loop applies/stops/handles
no-render, command-bar multi-attach + match-button gating. Verified real
front/iso scene renders work via the subprocess. 227 pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 23:25:13 -03:00
..
test_bom_window.py Fix material/inventory boundary + offcut-preservation (Codex review) 2026-05-30 20:01:23 -03:00
test_command_bar.py Multi-image reference + render-feedback "Match photo" self-correction 2026-05-30 23:25:13 -03:00
test_cutlist.py Unify CLI/voice cut list onto the CutPlan (single source of truth) 2026-05-30 22:06:49 -03:00
test_cutplan.py Fix material/inventory boundary + offcut-preservation (Codex review) 2026-05-30 20:01:23 -03:00
test_driver.py Multi-image reference + render-feedback "Match photo" self-correction 2026-05-30 23:25:13 -03:00
test_estimate.py Phase 2: finish costs by kind in the estimate 2026-05-30 19:04:44 -03:00
test_gen_tools.py Portability + consistency polish (Codex review) 2026-05-30 21:56:28 -03:00
test_geometry.py Add auto-assembly (Make connection) + feature rotation 2026-05-29 17:15:51 -03:00
test_gui_controller.py Multi-image reference + render-feedback "Match photo" self-correction 2026-05-30 23:25:13 -03:00
test_instructions.py Phase 2: structured build instructions (deterministic + optional AI polish) 2026-05-30 14:36:50 -03:00
test_inventory.py Fix material/inventory boundary + offcut-preservation (Codex review) 2026-05-30 20:01:23 -03:00
test_inventory_window.py Phase 7: shop Inventory window + stats 2026-05-30 19:25:28 -03:00
test_jigs.py Address shop-packet review (consistency, determinism, validation, jigs) 2026-05-30 15:11:02 -03:00
test_layout.py BOM window: tabs + cut-layout nesting + print (phase 1 of shop output) 2026-05-30 13:07:49 -03:00
test_materials.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00
test_prices.py Material-aware pricing: oak ≠ pine 2026-05-30 19:48:26 -03:00
test_scene.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00