The native app opens documents through the background job (vcad_eval_begin), which consults the on-disk root-mesh cache so a previously solved document paints instantly. A cache hit is a mesh with no B-rep behind it, so on a cached open every feature that needs the solid silently has nothing to work with: vcad_scene_raytrace / _gpu (no frame), manufacturing quotes (0), face ids / face picking.
#890 briefly put the cache on the synchronous vcad_scene_open* and interactive paths too, which broke two vcad-ffi tests on a warm cache; #899 takes it back off those. The job path keeps it — that is the instant open — so the gap above is real in the app today.
Proposal: treat the cached mesh as a placeholder. After painting it, keep solving the document uncached in the background and swap the solids in when they land (the progressive on_root plumbing already exists), or solve lazily the first time a solid-only feature is asked for, with the UI showing that state rather than doing nothing. Related: friction item 30 in #898 (a degraded solid looks exactly like a good one).
🤖 Filed by Claude Code
The native app opens documents through the background job (
vcad_eval_begin), which consults the on-disk root-mesh cache so a previously solved document paints instantly. A cache hit is a mesh with no B-rep behind it, so on a cached open every feature that needs the solid silently has nothing to work with:vcad_scene_raytrace/_gpu(no frame), manufacturing quotes (0), face ids / face picking.#890 briefly put the cache on the synchronous
vcad_scene_open*and interactive paths too, which broke twovcad-ffitests on a warm cache; #899 takes it back off those. The job path keeps it — that is the instant open — so the gap above is real in the app today.Proposal: treat the cached mesh as a placeholder. After painting it, keep solving the document uncached in the background and swap the solids in when they land (the progressive
on_rootplumbing already exists), or solve lazily the first time a solid-only feature is asked for, with the UI showing that state rather than doing nothing. Related: friction item 30 in #898 (a degraded solid looks exactly like a good one).🤖 Filed by Claude Code