Release 0.7.0 (#508)

Bump the workspace to 0.7.0 and write the 0.7.0 release notes. Minor bump: the design format moved to 15 (sketches on cylinder caps and sheet metal panels), so 0.6 can't open 0.7 saves, and new features landed (Select Other, per-edge flanges, sketches on caps and sheet metal faces).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
bherbruckandClaude Opus 5.5 authored and GitHub committed 2026-10-12 23:15:08 -04:00
1 parent 45bc22fc30
commit a9879fa668
3 files changed
+57 -63

No files matched your search

+43 -49
View File
@@ -5,58 +5,53 @@ 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: [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)). `solidcraft-cli mcp` ([how](https://bherbruck.github.io/solidcraft/guide/mcp.html)).
**Why 0.6:** this is a minor bump because two things change the files you work with: the **Why 0.7:** this is a minor bump because the design file format moved to version 15 (sketches
rename to SolidCraft and the new design file format. Files from earlier builds open fine, but on cylinder caps and sheet metal panels need new references), and because it adds new features.
builds 0.5 and older can't open designs saved by 0.6.
**What's new** **What's new**
- **New design file format.** Saves are a zip container by default; plain JSON is still one - **Sketching on stacked extrudes works again.** Creating a sketch on the top face of an extrude
click away (details below). stacked on another failed with "operation failed" since 0.3
- **Sheet metal:** flange corners close at any angle, and cut-outs fold across bends at any ([#489](https://github.com/bherbruck/solidcraft/issues/489)). It's fixed, and every flat face
angle, including curved bends. of the test models is now checked for this on every change.
- **Crash reports:** after a crash, Help ▸ Crash Reports… shows what happened with a ready-to-file - **Select Other:** hold or right-click to pick something hidden under something else; click
issue draft. Reports stay on your computer; nothing is sent. `solidcraft-cli crashes` lists and again to cycle through what's underneath.
replays them. - **Tabs are named after their file** instead of "Untitled".
- **Snap package** for x86_64 and aarch64 on every release, alongside the AppImage, `.deb`, `.rpm` - **Modelling:** a flange angle and height per edge, Patch fills non-planar loops, sketches on
and Flatpak. cylinder caps and on sheet metal faces, and a feature rename updates everything that refers to
- **Trackpad navigation** (two-finger pan, pinch zoom), a fillet option that shrinks a radius too it.
big for its edges, cleaner dialogs and toolbar panels, and the unfinished Generative Design - **Fixes:** revolve with edges on the axis, shell and fillet with small rounds, Join keeps face
workspace is gone. attachments, and STEP export writes each lump of a body as its own solid.
- Many modelling fixes: extrude/revolve in moved components, To Object picks, very flat arcs, - **Navigation and UI:** orbiting from empty space turns around the visible geometry, Ctrl+drag
touching lines and arcs in booleans, and `solidcraft-cli run` now fails when a feature fails. 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.
**New file format.** Save and Save As now write `.solidcraft` designs as a zip container **File format.** Designs are now format 15 (`solidcraft/15`). SolidCraft 0.6 and older can't
that stores imported STEP, mesh and image data as binary, once each, at full precision, so open designs saved by 0.7, as a container or as JSON; keep a copy of a file you may still open
designs with imports save and open faster. What that means for you: in 0.6. Files from every earlier version still open in 0.7.
- Your existing `.solidcraft` and `.solvecraft` files (plain JSON) still open as before; the
format is detected from the contents.
- Want plain JSON (for diffs or scripts)? Use **File ▸ Save As JSON…**, or pick a
`.json` name in Save As; later saves keep JSON. **File ▸ Export Design as JSON…** writes a
separate JSON copy. From the CLI, `solidcraft-cli run … --save design.json`; from MCP or
scripts, pass `"format": "json"` to `save` / `file.save`.
- SolidCraft 0.5 and older can't open designs saved by 0.6, as a container or as JSON (the
JSON format tag is now `solidcraft/14`). Keep a copy of a file you may still open in 0.5.
**Renamed to SolidCraft.** Everything now uses the new name: the `solidcraft` and **Known limitations**
`solidcraft-cli` programs, `.solidcraft` designs, `SOLIDCRAFT_*` environment variables, - Some faces still need the fixed-plane fallback for sketches: side faces Join merged from two
settings folders, package names and the `solidcraft` MCP server. Upgrading from SolveCraft: extrudes ([#491](https://github.com/bherbruck/solidcraft/issues/491)), faces split by a later
- `.solvecraft` designs still open (double-click, Open, drag-drop, the CLI and MCP); new saves feature ([#492](https://github.com/bherbruck/solidcraft/issues/492)), Cut walls and chamfer
are `.solidcraft`. faces ([#493](https://github.com/bherbruck/solidcraft/issues/493)), faces after Revolve,
- Settings, preferences and recovery files are copied to the new folders on first launch; the Offset Face or Boss ([#494](https://github.com/bherbruck/solidcraft/issues/494)) and sheet
old folders are left in place. `SOLVECRAFT_*` environment variables are still read. metal thickness faces ([#495](https://github.com/bherbruck/solidcraft/issues/495)).
- `solvecraft-cli` remains as a deprecated alias for one release; it forwards to - Cutting a coaxial cylinder from a thin disc can lose a little volume
`solidcraft-cli` and prints a note. Agents: `claude mcp add solidcraft -- solidcraft-cli mcp`; ([#500](https://github.com/bherbruck/solidcraft/issues/500)); an edge flange with different
an existing `claude mcp add solvecraft -- solvecraft-cli mcp` setup keeps working. per-edge angles leaves gaps at the corners
- Windows: the `.msi` upgrades the existing installation in place (now in ([#501](https://github.com/bherbruck/solidcraft/issues/501)).
`Program Files\SolidCraft`). Linux: the `solidcraft` `.deb`/`.rpm` replaces the `solvecraft` - More in [ROADMAP.md](https://github.com/bherbruck/solidcraft/blob/main/ROADMAP.md#known-limitations).
package. The Flatpak app ID stays `ai.storyteller.solvecraft`, so `flatpak update` just works,
and existing AppImages find the update.
- macOS: quit the app, move the old `SolveCraft.app` to the Trash (your designs and settings
stay), then drag `SolidCraft.app` from the DMG onto Applications and pin it in the Dock.
- Details: [compatibility notes](https://github.com/bherbruck/solidcraft/blob/main/docs/compatibility.md).
Documentation, the browser app and the Flatpak feed use the SolidCraft project Pages URLs; **Upgrading from 0.5 or earlier.** 0.6 renamed SolveCraft to SolidCraft and made the zip
old-name Pages addresses are not permanent aliases. container the default save format. `.solvecraft` designs, old settings folders and
`SOLVECRAFT_*` variables are still picked up, and `solvecraft-cli` still forwards to
`solidcraft-cli`. Want plain JSON? Use **File ▸ Save As JSON…** or `--save design.json`. On
macOS, replace `SolveCraft.app` with `SolidCraft.app`. Details:
[compatibility notes](https://github.com/bherbruck/solidcraft/blob/main/docs/compatibility.md).
Documentation, the browser app and the Flatpak feed use the SolidCraft project Pages URLs.
**Which file?** **Which file?**
- **Windows:** `SolidCraft-{version}-windows-x64.exe` runs as is. Or install the `.msi`, or unzip the - **Windows:** `SolidCraft-{version}-windows-x64.exe` runs as is. Or install the `.msi`, or unzip the
@@ -89,6 +84,5 @@ The builds aren't signed yet. On macOS, right-click `SolidCraft.app` in Applicat
**Open** the first time (or run `xattr -dr com.apple.quarantine /Applications/SolidCraft.app`). **Open** the first time (or run `xattr -dr com.apple.quarantine /Applications/SolidCraft.app`).
On Windows, SmartScreen may say "Windows protected your PC": **More info**, then **Run anyway**. On Windows, SmartScreen may say "Windows protected your PC": **More info**, then **Run anyway**.
Licences are built in (Help ▸ About ▸ Licences, `solidcraft-cli licences`); the packages also Licences are built in (Help ▸ About ▸ Licences, `solidcraft-cli licences`); the packages also
install `THIRD-PARTY-LICENSES.txt`. Known limitations: install `THIRD-PARTY-LICENSES.txt`.
[ROADMAP.md](https://github.com/bherbruck/solidcraft/blob/main/ROADMAP.md#known-limitations).
Generated
+13 -13
View File
@@ -3290,7 +3290,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft" name = "solidcraft"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"eframe", "eframe",
"egui", "egui",
@@ -3307,7 +3307,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-cli" name = "solidcraft-cli"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"serde_json", "serde_json",
"solidcraft-engine", "solidcraft-engine",
@@ -3316,7 +3316,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-doc" name = "solidcraft-doc"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"log", "log",
"serde", "serde",
@@ -3331,7 +3331,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-engine" name = "solidcraft-engine"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"log", "log",
"serde", "serde",
@@ -3347,7 +3347,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-geom" name = "solidcraft-geom"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
@@ -3356,7 +3356,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-io" name = "solidcraft-io"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"quick-xml 0.38.4", "quick-xml 0.38.4",
"serde", "serde",
@@ -3371,7 +3371,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-kernel" name = "solidcraft-kernel"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"log", "log",
"serde", "serde",
@@ -3386,7 +3386,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-mcp" name = "solidcraft-mcp"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"serde_json", "serde_json",
"solidcraft-engine", "solidcraft-engine",
@@ -3394,7 +3394,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-render" name = "solidcraft-render"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"image", "image",
"serde", "serde",
@@ -3404,7 +3404,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-sketch" name = "solidcraft-sketch"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
@@ -3415,7 +3415,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-ui-egui" name = "solidcraft-ui-egui"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"egui", "egui",
"egui-wgpu", "egui-wgpu",
@@ -3430,7 +3430,7 @@ dependencies = [
[[package]] [[package]]
name = "solidcraft-web" name = "solidcraft-web"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"eframe", "eframe",
"egui", "egui",
@@ -4853,7 +4853,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7"
[[package]] [[package]]
name = "xtask" name = "xtask"
version = "0.6.0" version = "0.7.0"
dependencies = [ dependencies = [
"serde_json", "serde_json",
] ]
+1 -1
View File
@@ -5,7 +5,7 @@ members = ["crates/*", "apps/*", "xtask"]
exclude = ["vendor"] exclude = ["vendor"]
[workspace.package] [workspace.package]
version = "0.6.0" version = "0.7.0"
edition = "2024" edition = "2024"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
rust-version = "1.95" rust-version = "1.95"