The kernel has no boolean retries now, nor their diagnostics (capture_boolean_diagnostics, BooleanDiagnostics, BooleanStrategy), nor the near-coaxial crescent (coaxial_overlap, coaxial_candidate, with_attempt_budget). What read them goes: - doc: FeatureResult and the evaluation cache carry no boolean diagnostics, and no "Boolean retry" warning; the saved model no longer writes them (an older file's are ignored); - engine: timeline.inspect / feature inspection drop `boolean_diagnostics`; fuzz runs and the CLI fuzz summary drop their retry counts; - inspect.interference: each pair is the bodies' Intersect, measured; the near-coaxial crescent, the by-piece intersection of bodies in several pieces and the unverified notes go (the command's doc no longer lists near_coaxial); - inspect.clearance: an overlap is the bodies' Intersect, measured near its region; the pin tries, the cut-down copies of large bodies (clipped, narrowed), the union cross-check (union_disagrees, contradicted) and the malformed-part check (plausible) go, and the measure near the origin passes its move's error on. Tests: the retry test and the unit tests of the deleted checks are removed; the barrel join test (tests/boolean_diagnostics.rs, now tests/barrel_join.rs) keeps its geometry checks; the pin-in-bushing test expects the filleted case measured; assertions on empty diagnostics and on near_coaxial are dropped; the corpus fixtures lose the diagnostics key and the one retry warning. (not built: base in progress) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017itGh5fpMEousnZ91cYcVt
Design file corpus
Designs saved by older SolidCraft builds. tests/design_corpus.rs opens each one with the
current build and checks that it evaluates as it did when saved (the .expected.json next to
it is solidcraft-cli eval of that file by the build that saved it: bodies, volumes, areas,
world bounding boxes), that it is upgraded to the current file format, and that damaged and
hostile variants of it never panic.
| File | Saved by | Era |
|---|---|---|
m0-box-fillet-hole |
3714342 |
M0: sketch, parameters, extrude, fillet, cut |
m0-revolve-primitives |
3714342 |
M0: revolve, primitives, combine, chamfer, timeline edit |
components-arm |
97d03e3 |
components and occurrences: move, copy, Paste New, ground |
joints-hinge |
c2309eb |
joints: revolute hinge driven by a parameter |
modern-sheet-metal |
bd98035 | sheet metal contour flange (oracle 72) |
modern-path-pattern |
bd98035 | pattern on path (oracle 53) |
modern-plastic |
bd98035 | shell, lip, boss, rest, snap fit, plastic rule |
naming-split-pieces |
9a979cf | format 13 names: a slot splits the top; fillet, chamfer and offset face name its pieces by number (F2:top#2) |
move-bodies |
00baf1d |
solid.move before it could copy: two bodies, one translated in place, one translated and turned 90 deg about Z (no copy key anywhere in the file) |
split-body-pieces |
v0.3.2 (07e263d) |
a slot along X cuts a block into two bodies; a fillet, a chamfer and an appearance refer to the pieces by body name (Body1, Body1 (1)) |
issue-489-stacked-join |
v0.6.0 (809ecf7), desktop |
a 70 × 84 extrude, then a 70 × 62 strip joined on its top face, sketched partly over the face's projected edges (issue #489; expected values from main at 2880525) |
issue-616-lid-ribs |
v0.7.0 (a9879fa), CLI |
a rounded lid with a skirt ring, a window and a slot cut through, then four ribs joined on the plate over the skirt, flush with the window's sides; v0.7.0 displaced the ribs and left a slit through the skirt and plate (issue #616; script examples/regressions/lid_ribs_flush_with_window.json, expected values from the fix) |
The scripts that made them are in scripts/ (issue-489-stacked-join was drawn in the desktop
app and has none; issue-616-lid-ribs is made by its regression script). Every flat face of every final body must also take an attached sketch and an
offset plane; the faces that can't yet are listed with their issues in design_corpus.rs.
Never regenerate a file with a newer build: the point is that it was written by the old one. Add new files for new eras instead.