From f5ae72057deac791712672b3a5b8ba86f5184bf2 Mon Sep 17 00:00:00 2001 From: bherbruck Date: Tue, 13 Oct 2026 07:33:35 -0400 Subject: [PATCH] Release 0.8.0 (#648) Co-Authored-By: Claude Opus 5.5 --- .github/release-notes.md | 79 ++++++++++++++++++++++++++-------------- Cargo.lock | 26 ++++++------- Cargo.toml | 2 +- 3 files changed, 65 insertions(+), 42 deletions(-) diff --git a/.github/release-notes.md b/.github/release-notes.md index 25ac3f44..d72930be 100644 --- a/.github/release-notes.md +++ b/.github/release-notes.md @@ -5,39 +5,62 @@ parameter to watch the timeline rebuild. [Documentation](https://bherbruck.githu [issues](https://github.com/bherbruck/solidcraft/issues). AI agents can model with it over MCP: `solidcraft-cli mcp` ([how](https://bherbruck.github.io/solidcraft/guide/mcp.html)). -**Why 0.7:** this is a minor bump because the design file format moved to version 15 (sketches -on cylinder caps and sheet metal panels need new references), and because it adds new features. +**Why 0.8:** this is a minor bump because the design file format moved to version 16, and +because it adds many new features. **What's new** -- **Sketching on stacked extrudes works again.** Creating a sketch on the top face of an extrude - stacked on another failed with "operation failed" since 0.3 - ([#489](https://github.com/bherbruck/solidcraft/issues/489)). It's fixed, and every flat face - of the test models is now checked for this on every change. -- **Select Other:** hold or right-click to pick something hidden under something else; click - again to cycle through what's underneath. -- **Tabs are named after their file** instead of "Untitled". -- **Modelling:** a flange angle and height per edge, Patch fills non-planar loops, sketches on - cylinder caps and on sheet metal faces, and a feature rename updates everything that refers to - it. -- **Fixes:** revolve with edges on the axis, shell and fillet with small rounds, Join keeps face - attachments, and STEP export writes each lump of a body as its own solid. -- **Navigation and UI:** orbiting from empty space turns around the visible geometry, Ctrl+drag - orbits in every preset, toolbar drops land across labels and gaps, Combine previews before OK, - and sketch constraints accept the sketch's own x / y axes. -- Opening a design reads its metadata and preview through a bounded, seekable reader; the docs - and web app have link preview cards. +- **Face actions work on far more faces.** Sketches, offset planes and press-pull now attach to + Cut, Hole and chamfer faces, each pattern or mirror copy, side walls a Join merged and the + pieces a later feature split a face into + ([#625](https://github.com/bherbruck/solidcraft/pull/625)), to moved or pasted components + ([#610](https://github.com/bherbruck/solidcraft/pull/610)) and beside long thin holes + ([#629](https://github.com/bherbruck/solidcraft/pull/629)). Across the test models, flat-face + actions pass 70% of the time, up from 61% (sketch 52% → 71%, offset plane 52% → 71%, + press-pull 41% → 60%). +- **Fillet and chamfer** handle a single edge whose ends meet curved or slanted faces, and blend + smooth chains of edges ([#646](https://github.com/bherbruck/solidcraft/pull/646)): 83% → 93% + of edges. +- **New:** user-defined physical materials stored in the design, linked components (insert + another design), saved body visibility, named views through `view.apply`, sketch text fonts, + corner reliefs, flanges on flanges, edge flanges that trim the base along their edge, grouped + sketch tools, Home thumbnails, and an improved Select Other list. +- **Fixes:** filleting beside a modeled thread no longer freezes the app, a loft standing on a + face fuses with it, and many sheet metal, hole and sketch fixes. +- **Booleans are checked.** A Boolean retry that would change the part away from the tool is now + refused instead of returning wrong geometry, which fixes stray cuts + ([#616](https://github.com/bherbruck/solidcraft/issues/616)). MCP feature replies include + warnings. +- **Opening a design** keeps the window draggable, shows progress, and can be cancelled with + Cancel or Esc. +- **Under the hood:** compact MCP replies, a kernel-neutral native B-rep format, and an opt-in + preview from the native cache while a design rebuilds. +- **Quality:** every ordinary action is run on every face, edge, vertex and body of the test + models; CI blocks regressions and the full matrix runs nightly. +- **Security:** private vulnerability reporting is on; see + [SECURITY.md](https://github.com/bherbruck/solidcraft/blob/main/SECURITY.md). -**File format.** Designs are now format 15 (`solidcraft/15`). SolidCraft 0.6 and older can't -open designs saved by 0.7, as a container or as JSON; keep a copy of a file you may still open -in 0.6. Files from every earlier version still open in 0.7. +**File format 16.** Designs are now format 16 (`solidcraft/16`). SolidCraft 0.7 and older can't +open designs saved by 0.8, as a container or as JSON; keep a copy of a file you may still open +in 0.7. Files from every earlier version still open in 0.8. + +**Linux app ID.** The Linux app ID is now `ai.storyteller.solidcraft` (it was +`ai.storyteller.solvecraft`). Flatpak users from the SolidCraft feed: `flatpak update` reports +the old app as end-of-life and asks to replace it; say yes, and your settings come along. The +`.deb`, `.rpm` and AppImage remove the old menu entry on upgrade or first launch. **Known limitations** -- Some faces still need the fixed-plane fallback for sketches: side faces Join merged from two - extrudes ([#491](https://github.com/bherbruck/solidcraft/issues/491)), faces split by a later - feature ([#492](https://github.com/bherbruck/solidcraft/issues/492)), Cut walls and chamfer - faces ([#493](https://github.com/bherbruck/solidcraft/issues/493)), faces after Revolve, - Offset Face or Boss ([#494](https://github.com/bherbruck/solidcraft/issues/494)) and sheet - metal thickness faces ([#495](https://github.com/bherbruck/solidcraft/issues/495)). +- Some faces still can't take an attached sketch: after Revolve, Offset Face or Boss + ([#494](https://github.com/bherbruck/solidcraft/issues/494)), sheet metal thickness faces + ([#495](https://github.com/bherbruck/solidcraft/issues/495)), Loft, Sweep and Coil faces + ([#561](https://github.com/bherbruck/solidcraft/issues/561)), faces after a Draft or a tapered + Extrude ([#563](https://github.com/bherbruck/solidcraft/issues/563)) and a Shell's rim + ([#564](https://github.com/bherbruck/solidcraft/issues/564)). +- A Hole on a sheet metal face is refused + ([#560](https://github.com/bherbruck/solidcraft/issues/560)); some through-all holes along a + wall or beside curved faces still fail + ([#559](https://github.com/bherbruck/solidcraft/issues/559)). +- Some fillets are still refused, such as along an outline of lines and arcs + ([#431](https://github.com/bherbruck/solidcraft/issues/431)). - Cutting a coaxial cylinder from a thin disc can lose a little volume ([#500](https://github.com/bherbruck/solidcraft/issues/500)); an edge flange with different per-edge angles leaves gaps at the corners diff --git a/Cargo.lock b/Cargo.lock index 19820eed..703fb31e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3281,7 +3281,7 @@ dependencies = [ [[package]] name = "solidcraft" -version = "0.7.0" +version = "0.8.0" dependencies = [ "eframe", "egui", @@ -3298,7 +3298,7 @@ dependencies = [ [[package]] name = "solidcraft-cli" -version = "0.7.0" +version = "0.8.0" dependencies = [ "serde_json", "solidcraft-engine", @@ -3307,7 +3307,7 @@ dependencies = [ [[package]] name = "solidcraft-doc" -version = "0.7.0" +version = "0.8.0" dependencies = [ "log", "serde", @@ -3322,7 +3322,7 @@ dependencies = [ [[package]] name = "solidcraft-engine" -version = "0.7.0" +version = "0.8.0" dependencies = [ "log", "serde", @@ -3338,7 +3338,7 @@ dependencies = [ [[package]] name = "solidcraft-geom" -version = "0.7.0" +version = "0.8.0" dependencies = [ "serde", "serde_json", @@ -3347,7 +3347,7 @@ dependencies = [ [[package]] name = "solidcraft-io" -version = "0.7.0" +version = "0.8.0" dependencies = [ "quick-xml", "serde", @@ -3362,7 +3362,7 @@ dependencies = [ [[package]] name = "solidcraft-kernel" -version = "0.7.0" +version = "0.8.0" dependencies = [ "log", "serde", @@ -3378,7 +3378,7 @@ dependencies = [ [[package]] name = "solidcraft-mcp" -version = "0.7.0" +version = "0.8.0" dependencies = [ "serde_json", "solidcraft-engine", @@ -3386,7 +3386,7 @@ dependencies = [ [[package]] name = "solidcraft-render" -version = "0.7.0" +version = "0.8.0" dependencies = [ "image", "serde", @@ -3396,7 +3396,7 @@ dependencies = [ [[package]] name = "solidcraft-sketch" -version = "0.7.0" +version = "0.8.0" dependencies = [ "serde", "serde_json", @@ -3407,7 +3407,7 @@ dependencies = [ [[package]] name = "solidcraft-ui-egui" -version = "0.7.0" +version = "0.8.0" dependencies = [ "egui", "egui-wgpu", @@ -3422,7 +3422,7 @@ dependencies = [ [[package]] name = "solidcraft-web" -version = "0.7.0" +version = "0.8.0" dependencies = [ "eframe", "egui", @@ -4845,7 +4845,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xtask" -version = "0.7.0" +version = "0.8.0" dependencies = [ "serde_json", ] diff --git a/Cargo.toml b/Cargo.toml index b13211dd..9e90ab7b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ members = ["crates/*", "apps/*", "xtask"] exclude = ["vendor"] [workspace.package] -version = "0.7.0" +version = "0.8.0" edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.95"