woodshop/tests
rob 84ae6d8756 Reference input now accepts PDF plans, 3D models, and web links
Extends "build something like this" beyond photos:

- driver.resolve_reference(source) routes any path/URL: image/PDF → a path
  claude -p reads directly; STL/STEP/OBJ → render_mesh() renders an isometric
  PNG (pyvista; STEP via build123d→STL) and reports the bounding box; a normal
  web URL → fetch_web_text() pulls the page's visible text.
- interpret(reference_text=) injects guide/render-dims text alongside any image
  directive; handle() + controller.run_command() + woodshop-talk --ref pass it.
- command bar: picker/drag-drop accept images + .pdf + 3D files; any pasted URL
  is resolved; resolution (download/render/fetch) runs off the UI thread.
- find_image_url→find_reference_url (any URL); fetch_image→fetch_url (generic).
- tests: URL detect, image+reference-text directives, fetch_url, web-text strip,
  resolve_reference routing per kind, real STL render (skips without GL). 220 pass.

3D render gives the model EXACT proportions (+ bbox) instead of a 2D guess.
Honest limit: render needs the viewer stack + working off-screen GL on your box;
the live model round-trip still wants your eyes to confirm.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 22:37:38 -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 Add reference-photo input: "build something like this" 2026-05-30 22:20:57 -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 Reference input now accepts PDF plans, 3D models, and web links 2026-05-30 22:37:38 -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 Reference input now accepts PDF plans, 3D models, and web links 2026-05-30 22:37:38 -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