Commit a69cc22
fix(viewer): the Clickable surfaces toggle never reached the request
Ticking it did nothing: the reconvert ran and reported success, and the GLB came back with
no face regions. My own bug, from the commit that added the toggle.
reconvert() reads faceRegionsOn but the useCallback dep array listed only
[current, reconverting, serializerSel]. So the memoized callback kept the closure from an
earlier render, where faceRegionsOn was false, and sent extraOptions: undefined however the
checkbox was set.
Confirmed against the deployment before fixing: audit 88603's reconvert GLB carries
id_hierarchy + draw_ranges_node0 and no face_ranges, while POSTing the same job to the same
API with conversion_options {"face_regions": true} produces face_ranges_node0. The backend
chain — allowlist (face_regions is in ConverterRegistry.all_options), worker _env_map_full,
ADA_STREAM_TESS_FACE_REGIONS, native_step_to_glb — was doing its job the whole way.
react-hooks/exhaustive-deps is exactly the rule that catches this, and it never ran: eslint
isn't configured for this package (v9 wants a flat config; `npx eslint` only prints the
migration guide), so every dep array here is hand-maintained. Worth wiring up separately —
this class of bug is silent by construction, and no test in this suite can see it (the
frontend tests are node --test over pure modules, with no React renderer).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 7de0936 commit a69cc22
1 file changed
Lines changed: 6 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
269 | | - | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
270 | 275 | | |
271 | 276 | | |
272 | 277 | | |
| |||
0 commit comments