Commit f046cbe
Settle the pinning half of the instancing question
Whether an instance records a hash is not open, and the precedent is in the
repo rather than in an argument: mesh_source already carries sha256 for exactly
this situation, and meshes.py says why -- "sha256 is for telling a person their
STL changed". A definition document is an STL with parameters, so it gets the
same treatment.
Two reasons it matters more than it first sounds. An instance puts part of the
scene in a file that can change underneath it, so without a hash the same
document stops describing the same scene over time. And docs/fem.md 12.1 keys
the FEM cache on field-affecting events, so an unpinned instance lets the cache
return a solve computed for geometry that is no longer there -- a wrong number
with a solver's name on it, arriving through the back door.
What stays open is narrower: what a mismatch does. Meshes warn. Instances may
want to refuse until the reference is re-pinned, because a changed mesh gives
you a visibly different shape while a changed definition can move a field a few
percent and look entirely normal.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 3f2d182 commit f046cbe
1 file changed
Lines changed: 17 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
100 | 112 | | |
101 | 113 | | |
102 | 114 | | |
| |||
0 commit comments