diff --git a/.github/release-notes.md b/.github/release-notes.md index 964081fe..63db1218 100644 --- a/.github/release-notes.md +++ b/.github/release-notes.md @@ -5,11 +5,43 @@ 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.6:** this is a minor bump because two things change the files you work with: the +rename to SolidCraft and the new design file format. Files from earlier builds open fine, but +builds 0.5 and older can't open designs saved by 0.6. + +**What's new** +- **New design file format.** Saves are a zip container by default; plain JSON is still one + click away (details below). +- **Sheet metal:** flange corners close at any angle, and cut-outs fold across bends at any + angle, including curved bends. +- **Crash reports:** after a crash, Help ▸ Crash Reports… shows what happened with a ready-to-file + issue draft. Reports stay on your computer; nothing is sent. `solidcraft-cli crashes` lists and + replays them. +- **Snap package** for x86_64 and aarch64 on every release, alongside the AppImage, `.deb`, `.rpm` + and Flatpak. +- **Trackpad navigation** (two-finger pan, pinch zoom), a fillet option that shrinks a radius too + big for its edges, cleaner dialogs and toolbar panels, and the unfinished Generative Design + workspace is gone. +- Many modelling fixes: extrude/revolve in moved components, To Object picks, very flat arcs, + touching lines and arcs in booleans, and `solidcraft-cli run` now fails when a feature fails. + +**New file format.** Save and Save As now write `.solidcraft` designs as a zip container +that stores imported STEP, mesh and image data as binary, once each, at full precision, so +designs with imports save and open faster. What that means for you: +- 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 `solidcraft-cli` programs, `.solidcraft` designs, `SOLIDCRAFT_*` environment variables, settings folders, package names and the `solidcraft` MCP server. Upgrading from SolveCraft: - `.solvecraft` designs still open (double-click, Open, drag-drop, the CLI and MCP); new saves - are `.solidcraft`. Builds older than this one can't open files saved by it. + are `.solidcraft`. - Settings, preferences and recovery files are copied to the new folders on first launch; the old folders are left in place. `SOLVECRAFT_*` environment variables are still read. - `solvecraft-cli` remains as a deprecated alias for one release; it forwards to diff --git a/Cargo.lock b/Cargo.lock index 6d283692..cda30d1f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3290,7 +3290,7 @@ dependencies = [ [[package]] name = "solidcraft" -version = "0.5.0" +version = "0.6.0" dependencies = [ "eframe", "egui", @@ -3307,7 +3307,7 @@ dependencies = [ [[package]] name = "solidcraft-cli" -version = "0.5.0" +version = "0.6.0" dependencies = [ "serde_json", "solidcraft-engine", @@ -3316,7 +3316,7 @@ dependencies = [ [[package]] name = "solidcraft-doc" -version = "0.5.0" +version = "0.6.0" dependencies = [ "log", "serde", @@ -3331,7 +3331,7 @@ dependencies = [ [[package]] name = "solidcraft-engine" -version = "0.5.0" +version = "0.6.0" dependencies = [ "log", "serde", @@ -3347,7 +3347,7 @@ dependencies = [ [[package]] name = "solidcraft-geom" -version = "0.5.0" +version = "0.6.0" dependencies = [ "serde", "serde_json", @@ -3356,7 +3356,7 @@ dependencies = [ [[package]] name = "solidcraft-io" -version = "0.5.0" +version = "0.6.0" dependencies = [ "quick-xml 0.38.4", "serde", @@ -3371,7 +3371,7 @@ dependencies = [ [[package]] name = "solidcraft-kernel" -version = "0.5.0" +version = "0.6.0" dependencies = [ "log", "serde", @@ -3386,7 +3386,7 @@ dependencies = [ [[package]] name = "solidcraft-mcp" -version = "0.5.0" +version = "0.6.0" dependencies = [ "serde_json", "solidcraft-engine", @@ -3394,7 +3394,7 @@ dependencies = [ [[package]] name = "solidcraft-render" -version = "0.5.0" +version = "0.6.0" dependencies = [ "image", "serde", @@ -3404,7 +3404,7 @@ dependencies = [ [[package]] name = "solidcraft-sketch" -version = "0.5.0" +version = "0.6.0" dependencies = [ "serde", "serde_json", @@ -3415,7 +3415,7 @@ dependencies = [ [[package]] name = "solidcraft-ui-egui" -version = "0.5.0" +version = "0.6.0" dependencies = [ "egui", "egui-wgpu", @@ -3430,7 +3430,7 @@ dependencies = [ [[package]] name = "solidcraft-web" -version = "0.5.0" +version = "0.6.0" dependencies = [ "eframe", "egui", @@ -4853,7 +4853,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xtask" -version = "0.5.0" +version = "0.6.0" dependencies = [ "serde_json", ] diff --git a/Cargo.toml b/Cargo.toml index ccc24d0f..5dbe1915 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ members = ["crates/*", "apps/*", "xtask"] exclude = ["vendor"] [workspace.package] -version = "0.5.0" +version = "0.6.0" edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.95"