SolidCraft is open-source parametric 3D CAD in Rust: sketch, constrain, extrude, and change a
parameter to watch the timeline rebuild. Documentation
· try it in the browser ·
contributing ·
issues. AI agents can model with it over MCP:
solidcraft-cli mcp (how).
What's new in SolidCraft 0.40.0-nightly.20261110.117.1 is listed below, and the
ROADMAP lists
the known limitations. Designs from every earlier version open in this one.
New app ID. The app ID is now io.tangencylabs.solidcraft (it was ai.storyteller.solidcraft,
and ai.storyteller.solvecraft up to 0.7): flatpak update offers to replace the old app, the
.deb, .rpm and AppImage remove the old menu entry, and settings stay. On macOS the bundle ID
changed too, so macOS asks once more for the permissions it had granted.
Upgrading from 0.5 or earlier. 0.6 renamed SolveCraft to SolidCraft and made the zip
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.
Documentation, the browser app and the Flatpak feed use the SolidCraft project Pages URLs.
Which file?
- Windows:
SolidCraft-0.40.0-nightly.20261110.117.1-windows-x64.exeruns as is. Or install the.msi, or unzip the
-portable.zip(x64, x86 and arm64). - macOS 11+ (Apple silicon and Intel): open the
.dmgand dragSolidCraft.apponto Applications.
The CLI is insolidcraft-cli-0.40.0-nightly.20261110.117.1-macos-universal.zip. - Linux (x86_64 and aarch64, glibc 2.35+): the
.AppImage(chmod +x, then run it), the
.debor.rpm, the.flatpak(flatpak install --user <file>), the.snap
(sudo snap install --dangerous <file>, orsudo snap install solidcraftfrom the Snap Store), or the.tar.gz. - FreeBSD:
tar -xzf solidcraft-0.40.0-nightly.20261110.117.1-freebsd-x86_64.tar.gz --strip-components 1 -C /usr/local. - Web:
solidcraft-web-0.40.0-nightly.20261110.117.1.zipis a static site to host yourself. SHA256SUMS.txt:sha256sum -c SHA256SUMS.txt --ignore-missing.- Files without a version in the name (
solidcraft-windows-x64.msi,solidcraft-linux-x86_64.AppImage, …)
are the same packages under fixed names, for download links that always fetch the latest release.
For Flatpak feed installation and updates, add Flathub for the required runtime before
installing SolidCraft; keep both remotes in the same user installation:
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --user --if-not-exists solidcraft https://docs.solidcraft.io/flatpak/solidcraft.flatpakrepo
flatpak install --user solidcraft io.tangencylabs.solidcraft
flatpak run io.tangencylabs.solidcraftA remote added from the old bherbruck.github.io address no longer finds updates: run
flatpak remote-modify --user --url=https://docs.solidcraft.io/flatpak/repo/ solidcraft, then
flatpak update --user.
Flatpak installs under an old ID (ai.storyteller.solidcraft, or ai.storyteller.solvecraft from 0.7 or
earlier): flatpak update --user offers to replace it with io.tangencylabs.solidcraft, and settings move along.
Single-file .flatpak bundles include the runtime repository address; missing runtimes
still need an internet connection. Linux installation details.
The builds aren't signed yet. On macOS, right-click SolidCraft.app in Applications and choose
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.
Licences are built in (Help ▸ About ▸ Licences, solidcraft-cli licences); the packages also
install THIRD-PARTY-LICENSES.txt.
What's Changed
- Browser: list the features that built each body under it, as an option (#11945) by @PaddleStroke in #12709
- IO: sketch.export_dxf - units, layers and joined LWPOLYLINE loops (#12725) by @shambazovalbert-art in #12726
- Czech: translate the 748 missing UI strings, so the Czech interface has no English left by @filippecha in #12961
- Agents and scripts: the exploded view commands describe their exact parameters and reply (#12501) by @LouisBunt in #12594
- Typed schemas for Line, Point, Circle and Arc (#12953) by @Loohi in #12955
- Agents and scripts: Create, Delete, List, Inspect, Limits, Drive, Solve and As-Built Joint describe their exact parameters and reply (#12503) by @LouisBunt in #12596
- History: an option for a folder of one kind of feature to show that kind's icon (#12514) by @danieldimitrov86 in #12515
- Agents and scripts: the named view commands and Redefine Sketch describe their exact parameters and reply (#12499) by @LouisBunt in #12592
- Agents and scripts: Frame Member and the profile library commands describe their exact parameters and reply (#12500) by @LouisBunt in #12593
- Agents and scripts: Copy and Paste Features, Add Recorded Feature and Export Command Script describe their exact parameters and reply (#12502) by @LouisBunt in #12595
- Agents and scripts: the component commands describe their exact parameters and reply (#12504) by @LouisBunt in #12597
- Sketch Tangent: a line's end point and a curve make a tangent joint (#12092) by @MarkusReichart in #12377
- Docs: RFCs 0001 (Craft bridge) and 0002 (plugins) by @bherbruck in #13194
- Agents and scripts: the parameter commands and Evaluate Expression describe their exact parameters and reply (#12497) by @LouisBunt in #12590
- Agents and scripts: the tangent arcs and circles, slots, splines, conics, ellipses and sketch text describe their exact parameters and reply (#12550) by @LouisBunt in #12604
- Agents and scripts: Auto Constrain, the constrainer, snapping and the curvature and polygon constraints describe their exact parameters and reply (#12506) by @LouisBunt in #12599
- Agents and scripts: the 3D sketch commands describe their exact parameters and reply (#12507) by @LouisBunt in #12600
- Agents and scripts: Inspect Document, Measure, Inspect Sketch, the command list and the material commands describe their exact parameters and reply (#12498) by @LouisBunt in #12591
- Export test: a box exports as its grid mesh (124 triangles), not 12 by @PaddleStroke in #12781
- Hole: an option to put the holes one Hole command makes into a History folder (#12492) by @danieldimitrov86 in #12493
- Agents and scripts: the sketch projection commands describe their exact parameters and reply (#12505) by @LouisBunt in #12598
- STEP import: surface-model parts with closed and open shells open again on the SMLib kernel by @bherbruck in #13226
- Agents and scripts: Insert DXF, Insert SVG and Export DXF describe their exact parameters and reply (#12508) by @LouisBunt in #12601
- Arabic: tanween in the canvas lock message and path tracing help, sketch term in the double Esc preference and Concentric help, timeline term in the Features under bodies note, Group holes preference wording by @A-AL-ANAZI in #13123
- Agents and scripts: Joint Origin, Rigid Group, Reach Point, Motion Link, Gear, Rack and Pinion, Screw and Cam describe their exact parameters and reply (#13185) by @LouisBunt in #13242
- Agents and scripts: Create Sketch, Normal/Construction, Delete, Drag, Move Point, Move Dimension Text, Sketch Options, Chain and Solve describe their exact parameters and reply (#13224) by @LouisBunt in #13273
- Agents and scripts: the occurrence commands, Capture and Revert Position, Move Bodies and Sketches to Component and Paste New describe their exact parameters and reply (#13186) by @LouisBunt in #13231
- Control channel: each step of engine.script gets the window's follow-up, like engine.batch (#12629) by @CamWight in #12630
- Section Analysis: the ground shadow stays soft instead of ending in a hard line at the section plane (#10708) by @0rdnungsamt in #12959
- Circular Pattern of a cut works with another component active (#12996) by @dudedagger42 in #13145
- Sketch: a projected edge picked on a piece of a face that is whole again is found (#11731) by @dudedagger42 in #13147
- Agents and scripts: the feature folder commands, Reorder, Move Timeline Items and Edit Feature describe their exact parameters and reply (#13131) by @LouisBunt in #13180
- Chamfer and fillet: an edge on a moved part is found where you picked it (#13238) by @kaievns in #13239
- Panels: show real Browser, History, Assistant and Render scene content (#11309) by @Nathan-Dane in #13199
- Add Hole command guide (machinist perspective) by @1993eg1 in #13125
- Render preview: near-black colours match the exported image (#5761) by @kravens in #13219
- Tests: shader files keep LF line ends on Windows checkouts, so the GPU volume shader test passes there (#13138) by @0rdnungsamt in #13244
- Press Pull: the dialog the Q shortcut opens is titled "Press Pull", not "Extrude" (#11705) by @Sebagrei in #11712
- Sketch: a preference to project references as construction geometry (#13142) by @0rdnungsamt in #13166
- Schemas: the rectangle and polygon sketch commands describe their parameters and replies by @0rdnungsamt in #13197
- Agents and scripts: Select and Clear Selection describe their exact parameters and reply (#13132) by @LouisBunt in #13174
- Agents and scripts: Flat Pattern, Export Bend Table and Path Flange describe their exact parameters and replies (#6581) by @MarkusReichart in #12545
- Agents and scripts: Convert Mesh describes its exact parameters and reply (#13006) by @austin62jake in #13007
- Shared UI crates: ui-text, the message catalogs' machinery as a shared crate by @jyviko in #13316
- MCP: the server machinery is a shared crate, solidcraft-mcp-server by @jyviko in #13338
- CI: build without the compiler cache when sccache can't be downloaded by @bherbruck in #13368
- Shared UI crates: the token contract as a shared crate, solidcraft-theme by @jyviko in #13384
- Agents and scripts: Sweep Joint describes its exact parameters and reply by @austin62jake in #12845
- Agents and scripts: Chamfer describes its exact parameters and reply (#12884) by @austin62jake in #12885
- Threads: a tap marking looks for its cylinder only in the bodies near it again, by exact boxes (#10227) by @PaddleStroke in #12777
- Agents and scripts: the render job commands describe their exact parameters and replies by @austin62jake in #12837
- Agents and scripts: Plot Motion Study and Motion Interference describe their exact parameters and replies by @austin62jake in #12853
- Agents and scripts: the surface edit commands Stitch, Unstitch, Reverse Normal, Thicken, Offset, Untrim and Fair describe their exact parameters and reply (#12627) by @austin62jake in #12628
- Control: the control channel's transport and protocol are shared crates, solidcraft-control and solidcraft-control-egui by @jyviko in #13407
- Mesher: flat faces mesh as their boundary alone, so a box exports as 12 triangles, not 124 by @bherbruck in #13266
- cargo xtask: check the git worktree it is run in, not the one that last built xtask by @plexi32 in #13417
- Tests: the extrude free-drag test holds the platform's primary key, so it passes on macOS (#13274) by @0rdnungsamt in #13296
- Arabic: focused-panel wording in the sash reset and panel toggle commands, shared panel layout help, construction-geometry projection note, Browser panel name in render strings by @A-AL-ANAZI in #13320
- Agents and scripts: Sketch Dimension describes its exact parameters and reply (#13312) by @LouisBunt in #13355
- Sketch Tangent: an end that already holds is redundant, as for two curves by @MarkusReichart in #13356
- Tests: reuse one offscreen GPU device per test process (#13395) by @Sebastion in #13396
- Finnish interface: translate the 618 messages added since #12036, and five wording fixes by @Janiz-zzz in #13460
- xtask layers: add the solidcore seam rule by @bherbruck in #13498
- Project: pick a point of another sketch (#13246) by @Loohi in #13281
- Agents and scripts: Save and Save As describe their exact parameters and replies (#13307) by @LouisBunt in #13352
- Hole: a counterbore sized to the screw's head, from
clearanceandhead(#12321) by @mfaugiana in #12322 - Copy and Paste New: an edge name beside a body face points at the copy on both sides (#13097) by @ancientastronauttheorist in #13157
- Sketch: input and output schemas for the slots (part of #2829) by @Loohi in #13300
- Sketch: a dimension edit the solver gave up on is retried in steps and reaches the new sizes (#12148) by @kaievns in #12149
- Sweep: input and output schemas (part of #2829) by @Loohi in #13411
- Sketch Project: a face of an imported mesh projects its flat patch (#13464) by @theironchef in #13482
- Window chrome: the title bar, window settings and macOS menu as shared code by @jyviko in #13408
- Kernel: build from a vendored SolidCore and mirror changes back to its repository (#13153) by @oursland in #13173
- Navigation bar and view compass: components that return the action chosen by @jyviko in #13409
- Agents and scripts: Export describes its exact parameters and reply (#13315) by @LouisBunt in #13321
- solidcore README: point to SolidCraft, the mirror is read-only by @bherbruck in #13627
- fix: 28 open panic sites in surface and boolean files no open PR edits (#2490, slice 3) by @bherbruck in #13573
- fix: 72 open panic sites in blend files no open PR edits (#2490, slice 3) by @bherbruck in #13553
- kernel rig: check every pick before reporting a traced miss (#2993) by @bherbruck in #13552
- extend: certify_iso takes its rounding at the iso's own size again by @bherbruck in #13567
- sphere: a far sphere's meridian angles are held to their rounding at the points' size by @bherbruck in #13565
- goldens: the five extrusion defeature cases leave known_failing.json and are blessed (#3093) by @bherbruck in #13560
- tess: the pole classifier runs once per surface, not per evaluated point (#3152) by @bherbruck in #13559
- Docs: how to update a PR moved from solidcore, and agent cost tips by @bherbruck in #13888
- convert: parity with SolidCraft's flat hop on the corpus; lines as the kernel holds them, tolerances as the flat import took them, Order's pieces (#3137) by @bherbruck in #13570
- Retire the kernel pause: kernel work goes in solidcore/ by @bherbruck in #13824
- Assistant: adapt shared panels to wide layouts (#11311) by @Nathan-Dane in #13514
- mass: the volume's sign from a certified enclosure by @bherbruck in #13593
- stitch: certify each closed gap and report the tolerance growth it applies (#2975) by @bherbruck in #13592
- Update Hole guide for the v0.40 dialog by @1993eg1 in #13547
- Add Thread command guide (machinist perspective) by @1993eg1 in #13507
- Add Chamfer command guide (machinist perspective) by @1993eg1 in #13521
- Mirror: mirroring a hole with its Thread feature builds the thread on the mirrored hole (#13278) by @0rdnungsamt in #13381
- STEP: compose the product structure into placed bodies (#2578, slice 6) by @bherbruck in #13582
- query + ops: tangent chains on the kernel's proved smooth-edge test (#3141) by @bherbruck in #13575
- Setback beside curved faces: the spring curve stays inside its trimmed face (#2343 (d)) by @bherbruck in #13571
- Agents and scripts: Split Body and Split Face describe their exact parameters and reply (#13127) by @austin62jake in #13128
- sweep: a multi-section blend through ordered cross-sections, G0 to G3 at its ends (#3140) by @bherbruck in #13568
- Every package builds on the Rust release it declares (solidcore 1.85, ops and convert 1.88), and CI checks it (#3112) by @bherbruck in #13563
- Joint drive: only features that read a pose-dependent mirror's copies recompute (#12139) by @SS-EN in #12177
- Blend gallery: case-specific notes and renders redrawn from this repo by @bherbruck in #13561
- fix: ContainsPeriodicValue moves a value just past the start down a period (#1518; carries #1572) by @bherbruck in #13558
- Preserve pcurve parameters when an edge uses only part of their support by @bherbruck in #13557
- Agents and scripts: Draw Dimensioned Sketch Geometry describes its exact parameters and reply (#13313) by @LouisBunt in #13354
- Follow-up to #2902: test rate on a range cut into pieces, put a test's doc comment back, add Length's Deviations entry by @bherbruck in #13556
- fix(boolean): trim a new edge's 3D curve and UV curves to one interval (#3214) by @bherbruck in #13555
- Revolve: input and output schemas (part of #2829) by @Loohi in #13319
- blend: a circle-class round is certified on its own torus (tangency-labs/solidcore#3066) by @bherbruck in #13900
- query + ops: whether two bodies meet, on a certified bracket of their boundary distance (tangency-labs/solidcore#3144) by @bherbruck in #13554
- Shortcuts: command search can move off S, and S can go to another command (#12190) by @0rdnungsamt in #13163
- Tests: an open setback corner now leaves a 9-edge hole (#13540) by @bherbruck in #13895
- Agents and scripts: Save As Mesh describes its exact parameters and reply (#13308) by @LouisBunt in #13353
- Tapped hole: thread every piece of a wall split by a pocket or slot (#13505) by @bherbruck in #13520
- Fillet and Chamfer: when only one of several picked edges is left between two faces, ask for the edges again instead of rounding just one (#13332) by @ancientastronauttheorist in #13423
- Agent chat: a PDF's text for agents that take no documents (#2812) by @bherbruck in #2860
- MCP: compact sketch replies count spline poles instead of listing them (#9180) by @DuBearte in #9232
- Appearance: the theme row opens on the theme in use each time Preferences shows it (#11445) by @HiroKenEz in #12026
- Browser: Send to Slicer and Save As Mesh take every selected body (#12334) by @thocsmith in #12368
- Revolve: an axis without an origin passes through the world origin in a moved component by @P-tite-tete in #12615
- CSV exports: a field that starts with =, +, - or @ stays text in a spreadsheet (#12728) by @CamWight in #12729
- Agents and scripts: Align describes its exact parameters and reply (#13314) by @LouisBunt in #13342
- Docs: Changes a default means UX defaults only by @bherbruck in #13927
- Dial CodeRabbit down: chill profile, no draft or per-push reviews, no extras by @bherbruck in #13889
- Agents and scripts: Insert Mesh describes its exact parameters and reply (#13309) by @LouisBunt in #13341
- Start page: a component that takes the host's entries and icons and returns the entry chosen by @jyviko in #13410
- Agents and scripts: Installed Slicers describes its exact parameters and reply (#13306) by @LouisBunt in #13340
- History bar: a component over plain step data that returns what the user chose by @jyviko in #13429
- Fonts: the kit's type API is ui_kit::type_face, the font data stays with the host by @jyviko in #13421
- CODEOWNERS: solidcore/ reviews go to one of jyviko or me, not both by @bherbruck in #13973
- Agents and scripts: New Design describes its exact parameters and reply (#13305) by @LouisBunt in #13322
- Kernel PRs go to main; the kernel branch is only for multi-step work by @bherbruck in #13986
- Preferences window: a component over the host's pages; SolidCraft's Preferences is that window by @jyviko in #13987
- Check that solidcore/ builds on its own: manifests under it may not reach SolidCraft by @bherbruck in #13995
- convert: flat parity test pins the bodies that differ, not the corpus size by @bherbruck in #13999
- Crash tests: build on Windows with warnings denied by @theironchef in #13193
- Insert Part: countersunk socket head screws (ISO 10642) join the standard parts (#13361) by @jruelli in #13362
- Ribbon and app bar: components over plain data that return what the user chose by @jyviko in #14006
- Assistant: Add Agent offers a Google Gemini preset for OpenAI-compatible endpoints (#11816) by @khanahmad4527 in #12427
- Kernel sync 2026-11-08 23:16 ET by @bherbruck in #13985
- solidcore-tess: re-export the evaluator types and vector conversions its plans expose by @jyviko in #14119
- Agent chat panel: a component over plain state that records what the user asked by @jyviko in #14124
- Render: improve glass and lighting, add 16K spp, CPU workers and 8K X2 output by @0xlillith in #12546
- Sweep: a profile drawn partway along the path, or beside it, follows the whole path by @derappelt in #11772
- STEP import: a planar face's slit inner bound is left out of the face, not the face (#13096) by @dudedagger42 in #13130
- Speed: a body's exact bounding box is measured once, not again for every boolean that meets it by @ablasik in #13512
- Docs: layers.md, how SolidCraft's layers, shared crates and solidcore seam fit together by @jyviko in #14139
- Viewport: a picked sketch no longer re-meshes every body on hover by @mfaugiana in #14166
- Windows tests: validate the slicer reply schema on every platform (#14143) by @PaddleStroke in #14144
- Measure: a line or curve drawn in a 3D sketch measures like a 2D sketch curve (#14051) by @Werner1303 in #14155
- step-import: read CMCRSG as COMPOSITE_CURVE_SEGMENT, as ISO's short-names file gives it by @bherbruck in #14159
- Multi-section blend: the last-but-one section of four or more bends the right way (#13447) by @Werner1303 in #14120
- solidcore: SolidCraft #14000 case (a round at the foot of a slightly tilted boss) by @SychPL in #14133
- Translation checks: fail when the command registry cannot be read (#14141) by @PaddleStroke in #14142
- Setback beside curved faces: the named size is the spring curve's limit, the rails' directions tested (#13832) by @MarkusReichart in #14096
- solidcore: retire fillet_trace_rejects_short_step (WR-503) by @brett19 in #13982
- Drop a PNG or JPEG on the window to place it as a Canvas (#13926) by @ancientastronauttheorist in #13992
- solidcore: nurbs failures carry a typed reason instead of NLib error numbers (part of #13790) by @brett19 in #14004
- macOS menu bar: a submenu that starts empty stays a submenu, so it can be filled later (part of #13367) by @0rdnungsamt in #14015
- Kernel: directed distance queries keep valid answers far from the start point (#13960) by @ChrisNourse in #14023
- Insert SVG and DXF: a dense drawing goes in many times faster, because new sketch ids no longer search the whole sketch by @plexi32 in #14049
- Italian: translate the 945 messages main gained after batch 12 (batch 13) by @mfaugiana in #14052
- Preferences search: a labelled number row such as Window steps is found, not "No matching preferences" by @plexi32 in #14080
- Pictures: clear the multisampled picture's resolve texture first, so ui.render and MCP screenshots are not black on AMD Direct3D 12 by @PaddleStroke in #14090
- occurrence.move: place an occurrence at an absolute pose with to / to_matrix (#12150) by @SS-EN in #13933
- RFC 0003: plan for moving SolidCraft's geometry into solidcore, one implementation per job by @bherbruck in #13935
- Draft: the top of a boss whose wall is two faces builds again (#13931) by @acbrazzl in #13932
- fix: correct offset-surface third derivatives (WR-160/161) by @altvnk in #13916
- Insert Design: read the saved design beside the window, with progress and Cancel (#11593) by @MarkusReichart in #13445
- STEP import: a face's parameter box is at least 1e-3 across where its surface allows (#12757) by @dudedagger42 in #13457
- Parameters: resize the window and drag column widths by @phobicdotno in #13422
- Viewport: three shared crates (viewport, viewport-gpu, viewport-egui) over solidcore-tess plans by @jyviko in #14125
- Components: refuse commands with ambiguous names (#9738) by @Hainlein4711 in #13388
- Display: a G2 corner's side to its round is drawn again, and a fillet chain pick stops there (#13542) by @bherbruck in #14226
- Move SolidCraft's mesher into solidcore-tess and its evaluator into the kernel, one mesher (RFC 0003 item 1.1) by @bherbruck in #14003
- CI: regenerate generated files nightly so the merge queue stops resetting by @bherbruck in #14255
- STEP import: a curve style does not colour the solid (#12291) by @dudedagger42 in #12984
- Boundary Surface: two curves meeting at both ends make a lens (#11878) by @dudedagger42 in #13057
- STEP export and Insert Design: a body with a slot cut a hair off a sloped bar is kept (#12365) by @dudedagger42 in #13089
- Cut: say when the cut removes no material (#9969) by @dudedagger42 in #13191
- macOS packaging: retry stapler validate as staple does by @bherbruck in #13195
- Send to Slicer: find QIDI Studio, CHITUBOX, CreatWare and slicers one folder down on Windows (#13171) by @dudedagger42 in #13204
- Offset: say when a parameter distance drives nothing (#12294) by @dudedagger42 in #13209
- Extrude: faces in different planes extrude each from the body as picked (#11492) by @dudedagger42 in #13228
- Kernel: a far-moved disjoint sphere and box union, ignored until solidcore#3131 by @bherbruck in #13235
- Loft: a curved section lofts to a point on ruled walls (#11216) by @dudedagger42 in #13245
- Patterns: many cut copies are cut in groups, not as one tool of every piece (#8765) by @dudedagger42 in #13254
- Plane, sketch and other face references: a numbered piece of a round face saved by 0.30.1 is found again (#13252) by @dudedagger42 in #13263
- STEP export: state the loosest edge and vertex tolerance as the file's uncertainty (#11997) by @dudedagger42 in #13264
- Agents and scripts: Motion Trace, Keep Motion Trace and Edit Motion Trace describe their exact parameters and replies by @0rdnungsamt in #13297
- Sketch patterns: editing a circular or rectangular pattern can add or remove the entities it copies (#10649) by @0rdnungsamt in #13298
- Cancel stops the kernel work of the feature being computed (#10577) by @dudedagger42 in #13299
- Linux X11: the title bar moves the window on every drag, not every other one (#13334) by @mfaugiana in #13335
- Sketch: a construction plane of another component keeps its place (#11734) by @dudedagger42 in #13365
- Tests: G2 corners measure smoothness away from both corners, and a 3.5 setback is refused (#13539, #13522) by @bherbruck in #13896
- Ukrainian: translate 100 new interface strings by @BrunIF in #14061
- Fix offset splitting and preserve parallel sheet boundaries by @altvnk in #13912
- Preferences search tests: put a doc comment back on the right-to-left test by @bherbruck in #11787
- sweep: the section blend keeps its definition, and the review's fixes (tangency-labs/solidcore#3140, tangency-labs/solidcore#3194) by @bherbruck in #13901
- query + ops: continuity across an edge (G0 to G4) and curvature combs (tangency-labs/solidcore#3142) by @bherbruck in #13925
- Kernel rig: the merge queue runs only the rig areas a batch touches by @bherbruck in #14208
- Kernel sync 2026-11-09 11:22 ET by @bherbruck in #14215
- Kernel PRs go to main; the kernel branch is retired by @bherbruck in #14223
- Sheet metal: an edge flange runs along the edge a cut left (#2009) by @yhamil04 in #7278
- crash reports: a caught kernel panic on a Rayon worker is not an immediate crash (#7402) by @SamD98 in #7446
- About: Attributions read as formatted text, not raw Markdown (#7776) by @sascha2101 in #7789
- Rectangular Pattern: each direction's pick, quantity and spacing grouped together (#9634) by @PaddleStroke in #9667
- Browser tree: a body keeps a faint bar while one of its faces, edges or vertices is selected (#11547) by @khanahmad4527 in #11560
- test: the rim chamfer's gain is the flux over the faces that differ, cross-checked by sections, not a pin (tangency-labs/solidcore#3098) by @bherbruck in #14224
- Forms: selected text reads in SolidCraft 95 and CGA (#11804) by @LouisBunt in #11899
- Loft with guide rails: a section drawn on a plane facing the other way no longer fails (#12031) by @JesperWe in #12032
- Sketch: keep line inputs clear of the preview (#12180) by @tdamsma in #12197
- Mesh convert: a closed mesh of any shape converts as a faceted solid (#12264) by @Elias-Ta in #12421
- Sketch: Project accepts construction points and makes projected points from them (#12075) by @PaddleStroke in #12701
- fix(ui): permit body edge chains as sections in surface loft dialog (#11838) by @ashxddaga in #12850
- STEP import: skip a header record that does not parse (#11650) by @dudedagger42 in #12928
- Sweep: the twist turns the profile about the path, not the sketch plane (#12337) by @dudedagger42 in #13223
- Insert Design: a round tube read back through STEP measures as built (#12760) by @dudedagger42 in #13535
- defeature: a feature whose base patch is not built is kept and named, never left open (tangency-labs/solidcore#3093) by @bherbruck in #13680
- solidcore: SolidCraft #13519 case (a prism joined with its side leaning a hair off a wall) by @SychPL in #13951
- Web app: the model is antialiased, and the Antialiasing setting takes effect (#11622) by @austin62jake in #11624
- Sketch: a dimension's value sits beside the line it measures, not over it (#12482) by @PaddleStroke in #12703
- Agent chat in the Snap says why no agent is found (#1458) by @SychPL in #11670
- Quitting with several unsaved designs asks once, in one list (#11680) by @raykholo in #11683
- Face right-click menu: hide actions that cannot act on the face, show Press Pull for curved faces (#11795) by @N3MI-DG in #11796
- Docs: scx, a script-first MCP server prototype, and what it saves against the plain MCP by @dudedagger42 in #12522
- MCP export: accept iges, igs and stp as the format argument (#11806) by @dudedagger42 in #12923
- STEP export: a spline curve is written with closed_curve and self_intersect where it knows them (#12147) by @dudedagger42 in #12926
- solidcore: the trim-interval regression test runs in 43 s unoptimised, and the new refusal is documented by @sethml in #13968
- Undo: a command built from other commands is one undo step (#12393) by @dudedagger42 in #13027
- Move: clicking an axis arrow without dragging shows that axis in the value box (#13101) by @dudedagger42 in #13167
- Agents and scripts: Surface Extend and Surface Trim describe their exact parameters and reply (part of #2829) by @0rdnungsamt in #14234
- Sketch: Trim shows the piece a click removes on splines (#14227) by @0rdnungsamt in #14237
- Offset: a whole torus face offsets again (#13541) by @bherbruck in #13897
- Sketch: every slot and the rounded rectangle add a middle point (#7908) by @PaddleStroke in #8118
- Spanish (es-ES): translate the 127 messages added or changed upstream by @carlymx in #14300
- History: the controls step through the active component's features (#11430) by @thocsmith in #11433
- Browser: Collapse All on a component rolls up the whole tree (#11866) by @PaddleStroke in #12707
- Mirror and Pattern: repeat an Offset Face at the copied faces (#12585) by @dudedagger42 in #12957
- Browser History rows: a click on a feature row goes to the open dialog (#13170) by @dudedagger42 in #13236
- solidcore-tess: the kernel decides the moved mesher's poles, once per iso-line by @bherbruck in #14029
- Sketch: updating a projection keeps constraints and curves attached to it (#7677) by @semmelrinde in #7680
- Tabs: a middle click closes a design's tab, as its × does (#7875) by @chrishamm in #7877
- Browser: test that Roll Back Here removes later sketches from the Browser (#8282) by @plexi32 in #8297
- Kernel cases: the render export option skips synthetic cases and reports failed writes (#13693) by @MarkusReichart in #14085
- Sketch geometry: the nearest point on a curve is the true nearest point (#10007) by @CamWight in #10008
- NURBS curves: splitting and knot insertion stay exact with heavy weights (#10046) by @rmorgans in #10047
- Hole dialog: the tap drill follows the chosen inch tap size (#10353) by @kaltenbrunnermarkus in #10369
- Agent batches refused before they start now report the design is unchanged (#10749) by @SychPL in #11504
- Customize Toolbar: each command in the list shows its ribbon icon beside its name (#11471) by @Yarous in #11606
- sweep: stations from laws, exact on lines, arcs, helices and corners (tangency-labs/solidcore#3139) by @bherbruck in #13688
- Kernel: projected curve-pair maxima return the farthest pair, or refuse (#13698) by @ChrisNourse in #13963
- Fillet: a round ending against a riser lower than its reach builds; a chamfer past a step's foot builds by the trim (#14021) by @acbrazzl in #14022
- blend: the kernel returns the chamfer fit and refuses overlapping setbacks; ops computes neither (#3145) by @bherbruck in #13569
- solidcore: the panic-site check's --base ratchet and site scan work on Windows and inside SolidCraft (#13623) by @Werner1303 in #14117
- Fillets: a round at the foot of a boss a few degrees off square builds again, keeping no exact definition where it cannot be certified (#14000) by @acbrazzl in #14138
- CI: check translations without building the app in the format job by @bherbruck in #14314
- Loft: two sections of lines with flat sides build planar side faces, so the lofted hopper converts to sheet metal (#13331) by @dudedagger42 in #13546
- solidcore: boolean failures carry a typed reason and cause chain instead of bare statuses (part of #13790) by @brett19 in #13988
- Component commands: a feature named like a number is that feature, not the one with that id (#12327) by @dannyow in #12328
- Sketch on an extrude cap saved by 0.30.1 keeps its plane when a join left the cap uncertified (#13323) by @dudedagger42 in #13326
- Align: To Snap Onto Plane moves along the To face's normal only (#13476) by @dudedagger42 in #13477
- Joint sweep: stop at a time or work budget with what it found, leave out known pairs, name pairs by occurrence by @SS-EN in #13923
- Mouse gestures: the standard views and Look At can go on the ring of tools (#12406) by @0rdnungsamt in #14016
- Sketch: an intersected face's section keeps its link (#13471) by @vdirienzo in #14040
- Fix flaky insert-design test that fails merge-queue batches by @bherbruck in #14367
- Agents and scripts: Press Pull and Replace Face describe their exact parameters and reply (part of #2829) by @0rdnungsamt in #13380
- Section Analysis: a slider on Distance moves the cut live by @0rdnungsamt in #14013
- Kernel: report knots in correct order and interval for reversed offset curves (#13962) by @JSwetz in #14030
- UI kit: icons, glyphs, menus and tests no longer reach into the app (part of #14251) by @jyviko in #14319
- fillet: a round's rail rolls over a smooth far edge of its face, the whole length (#14136) by @acbrazzl in #14137
- Drawing: format tolerances and dimension text (#6782) by @armin0411 in #6788
- Dragged Distance and Radius fields follow the Length decimals setting (#9035) by @SilentWolf75 in #9039
- Sketch: type an offset while placing parallel, horizontal, and vertical construction lines by @railconstr in #10076
- Measure: a picked face shows its perimeter length, with outer and inner lengths when the face has holes (#12048) by @phanoob in #12272
- Components: a point or direction written {x, y, z} maps into a moved component like [x, y, z] by @P-tite-tete in #12297
- Sketch: a Line started on an arc or circle snaps tangent to it (T) and is constrained tangent (#12179) by @khanahmad4527 in #12405
- Sketch offset: param and param2 name the driving dimensions (#12295) by @dudedagger42 in #12912
- Export View as DXF: a camera without fov exports an orthographic view instead of being refused (#13112) by @thocsmith in #13137
- Sketch Project: an edge saved between numbered faces of an older design is found again (#13164) by @cloker53 in #13175
- Assemblies: a ball joint at rest tilts toward a drag in every direction (#12873) by @asd417 in #13385
- feat(ci): add automated build and atomic deployment scripts for Windows and Linux by @DasWookie in #13548
- Exploded views: a part inside a turned component moves in the direction given (#13939) by @ancientastronauttheorist in #13948
- solidcore-tess: a face the moved mesher cannot read is left out, not the body by @bherbruck in #14033
- solidcore: the kernel rig runs one process per case, in parallel, with a CPU-time hang limit by @brett19 in #14277
- solidcore: retire the curve flags that change no result (A4) by @brett19 in #14288
- Latvian interface language (#6587) by @gun4as in #6589
- Coincident: put a sketch point on an origin axis, picked in the view or the browser by @plexi32 in #10669
- Preferences: step arrows on the whole-number Design fields (#11829) by @LouisBunt in #11900
- Revolve: an axis picked from another sketch no longer picks the wrong line (#6548) by @dahakbuilds in #8026
- Move geom's pcurve, label and record checks into solidcore::eval with their history (RFC 0003, 1.8 slice) by @bherbruck in #13997
- solidcore-tess: well-shaped flat faces with no size, and the 50k-face plate in under 9 s by @bherbruck in #14242
- Agents and scripts: Open and the recovery commands describe their exact parameters and reply (#12279) by @LouisBunt in #12352
- mcp:
runninganswers at once while a longbatchruns (#14007) by @BryanCrotaz in #14083 - Sketch: Draw Dimensioned reports the sketch's freedom after its dimensions by @KazW in #14132
- Linked design: a sketch on a linked face follows it through Update Links by @mfaugiana in #14221
- Sketch: a point placed on a midpoint's alignment guide stays lined up with that midpoint (#13413) by @leValdemar19 in https://github.com/tangency-labs/solidcraft/pull/14225
- Sketch: a horizontal or vertical distance edited from 0 to a positive value solves by @KazW in https://github.com/tangency-labs/solidcraft/pull/14298
- Agent chat: the conversation refers to design versions by an opaque handle, so the panel no longer needs the engine's document (#13438) by @SychPL in https://github.com/tangency-labs/solidcraft/pull/14266
- Motion Study: a part that reaches its saved position at a step is shown there, not left at the previous step's pose (#13511) by @SychPL in https://github.com/tangency-labs/solidcraft/pull/14307
- Add Mirror command guide by @1993eg1 in https://github.com/tangency-labs/solidcraft/pull/14321
- solidcore: no deprecation warning from fetch_update on Rust 1.99, keeping rust-version 1.85 (#14360) by @ancientastronauttheorist in https://github.com/tangency-labs/solidcraft/pull/14378
- solidcore: retire the intersect flags that change no result (A7) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14347
- Properties: click a value to copy it (#12218) by @LouisBunt in https://github.com/tangency-labs/solidcraft/pull/12273
- UI kit: no SolidCraft content; tabs, text and catalogues are host data (part of #14251) by @jyviko in https://github.com/tangency-labs/solidcraft/pull/14399
- Assemblies: an Angle joint keeps its part on the same side of the hinge as its angle changes, and carries on past 180 degrees (#12426) by @SychPL in https://github.com/tangency-labs/solidcraft/pull/14350
- Agents and scripts: Blend Surface describes its exact parameters and reply (part of #2829) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14240
- Naming: a stored piece name finds its face through the blend that replaced the edge it named (#4325) by @saosebastiao in https://github.com/tangency-labs/solidcraft/pull/14268
- Cylinder and Sphere: Edit Feature shows the diameter, with a Diameter | Radius choice (#6609) by @yhamil04 in https://github.com/tangency-labs/solidcraft/pull/7017
- OCLP Macs with older AMD GPUs: curved faces no longer freeze the machine by @NStevenU in https://github.com/tangency-labs/solidcraft/pull/10108
- Mirror: a cut starting on a mirrored feature's face mirrors with it (#11792) by @dudedagger42 in https://github.com/tangency-labs/solidcraft/pull/13043
- MCP server crate: an app can serve prompts, resource templates, completions and Markdown or binary resources (#13336) by @SychPL in https://github.com/tangency-labs/solidcraft/pull/14243
- Joint drive: cancel stale slider poses after 500 ms by @SS-EN in https://github.com/tangency-labs/solidcraft/pull/14270
- Kernel: a B-spline surface that mixes weighted and unweighted control points is refused when it is built (#13751) by @MarkusReichart in https://github.com/tangency-labs/solidcraft/pull/14292
- Add Circular Pattern command guide by @1993eg1 in https://github.com/tangency-labs/solidcraft/pull/14326
- Add Rectangular Pattern command guide by @1993eg1 in https://github.com/tangency-labs/solidcraft/pull/14328
- Add Shell command guide by @1993eg1 in https://github.com/tangency-labs/solidcraft/pull/14332
- Add Revolve command guide by @1993eg1 in https://github.com/tangency-labs/solidcraft/pull/14336
- Render job test: the batch drop probe uses the long-name temporary folder (#14320) by @ancientastronauttheorist in https://github.com/tangency-labs/solidcraft/pull/14342
- CI: the slowest test starts first, and the slow-test priority list gains the tests over 100 s (#14362) by @ancientastronauttheorist in https://github.com/tangency-labs/solidcraft/pull/14365
- Tests: Add agent from Home no longer fails when the agent search finishes mid-test (#14384) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14392
- ci: run the kernel rig's cases 16 at a time by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14403
- solidcore: retire the mass flags that change no result (A8) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14429
- defeature: a kept feature's refusal names its limit, a typed Reason::Defeature (tangency-labs/solidcore#3218) by @bherbruck in https://github.com/tangency-labs/solidcraft/pull/13899
- solidcore: a twisted side round is its walls' round between sections, not only at them (#13774) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/13984
- Agents and scripts: Circular Pattern describes its exact parameters and reply (part of #2829) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14312
- inspect.measure: a face or edge by index needs no point (#14011) by @BryanCrotaz in https://github.com/tangency-labs/solidcraft/pull/14031
- CI: the merge-of-main self-test no longer fails when git's background gc runs by @bherbruck in https://github.com/tangency-labs/solidcraft/pull/14438
- solidcore: retire five flags that no code reads (fillet corner/domain statuses, offset gap, ssi alignment, closed-curve trim arc) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14091
- Sheet metal: one edge flange splits into stretches that each bend to their own angle and height, and the solidcraft-sheetmetal agent skill (#5927, #5928, #5946, #5947, #5948, #5949) by @lychee888 in https://github.com/tangency-labs/solidcraft/pull/12804
- Tests: the Offset Plane edit test no longer fails at random on a busy machine (#13448) by @MarkusReichart in https://github.com/tangency-labs/solidcraft/pull/14258
- Face edits: a pick on a face two bodies share warns instead of silently changing the first body, and Replace Face works on a flush face (#12385) by @lewis2e in https://github.com/tangency-labs/solidcraft/pull/12387
- solidcore: notify record resets visit only what changed; large flat extrusions about 10× faster (#13844) by @DAmesberger in https://github.com/tangency-labs/solidcraft/pull/14065
- sketch: editing a mid-timeline sketch rebuilds later features once, at Finish (#14010) by @BryanCrotaz in https://github.com/tangency-labs/solidcraft/pull/14151
- Planar faces: a flat B-spline face (a loft side through three or more sections) is planar (#14346) by @ancientastronauttheorist in https://github.com/tangency-labs/solidcraft/pull/14394
- solidcore: check_brep's per-face cache and loop-intersection test stop growing with the whole body (fixes #14381) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14408
- Let agents compare parameter variants without editing the design by @rafacerete23 in https://github.com/tangency-labs/solidcraft/pull/14317
- Sketch: point docs say text naming no parameter leaves the point free (#14290) by @BryanCrotaz in https://github.com/tangency-labs/solidcraft/pull/14291
- solidcore: the rest of nurbs and every nl_ser collapse carry a typed reason (part of #13790) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14331
- solidcore: retire the primitive flags that change no result (A11) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14448
- Agents and scripts: Coil describes its exact parameters and reply (part of #2829) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/13390
- Tests: the Insert Design menu test waits for its first file read (#14390) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14444
- Kernel: variable rounds are the union of their balls by default; retire fillet_gn_section_generator (moved from solidcore#2936) by @Karl-VonRichter in https://github.com/tangency-labs/solidcraft/pull/13945
- Sketch: the first dimension scales a shape about its own centre, not the sketch origin (#11043) by @PaddleStroke in https://github.com/tangency-labs/solidcraft/pull/12704
- Look At on a construction plane turns the camera to it (#13111) by @dudedagger42 in https://github.com/tangency-labs/solidcraft/pull/13150
- Add keyboard navigation keys for viewport orbit/pan/zoom (#717) by @dahakbuilds in https://github.com/tangency-labs/solidcraft/pull/6816
- Viewport: the picture follows the mouse one frame sooner when orbiting, panning and dragging by @FinnDaCaptain in https://github.com/tangency-labs/solidcraft/pull/13993
- Polish translation: one word for each CAD term, counts that read right, and button names that fit the sentence by @ablasik in https://github.com/tangency-labs/solidcraft/pull/14175
- i18n: complete Portuguese (Brazil) translations (closes #14229) by @KaworuSF5 in https://github.com/tangency-labs/solidcraft/pull/14338
- Browser: hovering a feature or joint row lights it in the viewport (#4417) by @SS-EN in https://github.com/tangency-labs/solidcraft/pull/4418
- Dialogs: a right-click in the viewport confirms the current input, and on the last one OK (#6159) by @tr1pp4 in https://github.com/tangency-labs/solidcraft/pull/6160
- DXF export: its line drawing moves into one module that drawing views can share, with the same output (#5866) by @CamWight in https://github.com/tangency-labs/solidcraft/pull/6482
- Render: draw an orthographic picture tile by tile (#5624) by @CamWight in https://github.com/tangency-labs/solidcraft/pull/6483
- Sketch Intersect: say what was added when Projected Geometries hides it, and add nothing for a repeat pick (#12302) by @dannyow in https://github.com/tangency-labs/solidcraft/pull/12304
- UI: a new length field in an operation dialog opens at the tool's size in the design's unit (#12418) by @vdirienzo in https://github.com/tangency-labs/solidcraft/pull/12574
- Show/Hide: V on a selected sketch profile hides its sketch, and a hidden sketch's selected profile is no longer drawn (#13026) by @thocsmith in https://github.com/tangency-labs/solidcraft/pull/13035
- Combine: a tool whose feature is suppressed is left out instead of failing (#13474) by @dudedagger42 in https://github.com/tangency-labs/solidcraft/pull/13892
- Blends: a refusal names a size that fits only when a blend built at it (#1955) by @acbrazzl in https://github.com/tangency-labs/solidcraft/pull/14289
- Patterns: copies of a hole placed by sketch points below the part drill into it (#14050) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14391
- solidcore: retire the sweep flags that change no result (A14) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14478
- Kernel: joining or matching two surfaces refuses a control net that was mixed after it was built (follow-up to #14292) by @MarkusReichart in https://github.com/tangency-labs/solidcraft/pull/14482
- Spanish: translate the 265 help texts still in English by @Ehuntabi in https://github.com/tangency-labs/solidcraft/pull/14485
- UI kit: the shared crate solidcraft-ui-kit (closes #14251) by @jyviko in https://github.com/tangency-labs/solidcraft/pull/14492
- Scale: stretching a body along one axis keeps flat faces as planes, not B-spline surfaces (#14422) by @leon-vv in https://github.com/tangency-labs/solidcraft/pull/14470
- Render preview: editing an appearance no longer rebuilds every vertex by @oursland in https://github.com/tangency-labs/solidcraft/pull/7468
- Hole: the drag handle behaves like the Rest, Boss and Snap Fit handles (#6818) by @dannyow in https://github.com/tangency-labs/solidcraft/pull/7633
- Hole: a deleted sketch point drops only its own hole (#8087) by @Gleinkaa in https://github.com/tangency-labs/solidcraft/pull/8111
- Weldments: End Cap closes frame member ends with a plate (#4003) by @Karl-VonRichter in https://github.com/tangency-labs/solidcraft/pull/8606
- Sketch: show the cursor's coordinates whenever the pointer is over the view (#11070) by @PaddleStroke in https://github.com/tangency-labs/solidcraft/pull/12702
- Hole: a countersink's cone stops at the hole's depth (#10697) by @dudedagger42 in https://github.com/tangency-labs/solidcraft/pull/13206
- Make the AI panel's Add agent and Refresh buttons the same size by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14443
- Viewport: double-click a face to edit the feature that made it (#10989) by @LouisBunt in https://github.com/tangency-labs/solidcraft/pull/11401
- Canvas: straighten the image along a line drawn on it, to horizontal, vertical or an angle (#11989) by @PaddleStroke in https://github.com/tangency-labs/solidcraft/pull/12700
- Export STL and 3MF: a design with one body starts with that body selected (#13098) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/13100
- Joint drive: a mirror inside the part a joint moves stays cached (#14271) by @SychPL in https://github.com/tangency-labs/solidcraft/pull/14295
- Fix three more timing-flaky tests that fail merge-queue batches by @bherbruck in https://github.com/tangency-labs/solidcraft/pull/14499
- Fix render_workspace test that times out at 30 s on a loaded runner by @bherbruck in https://github.com/tangency-labs/solidcraft/pull/14503
- solidcore: retire the crossing-rails refusal (WR-460); the band test (WR-542) refuses its cases with a fit by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14047
- Assemblies: a joint origin picked on a repeated sub-assembly stays on the copy it was picked on (#11426) by @glitchau in https://github.com/tangency-labs/solidcraft/pull/12922
- Speed: a feature's bodies are checked on another core while the next features are evaluated by @ablasik in https://github.com/tangency-labs/solidcraft/pull/14112
- Viewport: a construction plane is drawn at least as large as the part, so a midplane stays visible when zoomed in (#13318) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14469
- Path-traced renders: less speckle on polished metal (#9815) by @khanahmad4527 in https://github.com/tangency-labs/solidcraft/pull/9817
- Sketch: a point snaps to the crossing of the grid the viewport draws, not to a finer lattice (#7114) by @vdirienzo in https://github.com/tangency-labs/solidcraft/pull/9843
- Kernel tests: the long-thread cut test takes 6 turns and checks the exact groove volume (945 s on CI) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14449
- Construction planes: select points on 3D sketch curves (#11987) by @JosephStew-art in https://github.com/tangency-labs/solidcraft/pull/11990
- Sketch: a face of a two-sided cut keeps its attachment (#12124) by @vdirienzo in https://github.com/tangency-labs/solidcraft/pull/12212
- Fix flaky 512-hole pattern timing test: allow 13x the 128-hole time by @bherbruck in https://github.com/tangency-labs/solidcraft/pull/14518
- Placement handles: each tool declares where its placement is kept (#6818) by @dannyow in https://github.com/tangency-labs/solidcraft/pull/7737
- Tooltips: eleven callers converted, and the container gate warns about egui's own tooltip methods (#12329) by @dannyow in https://github.com/tangency-labs/solidcraft/pull/12331
- Hole: stop cutting bodies and walls that stand above the face being drilled (#10695) by @dudedagger42 in https://github.com/tangency-labs/solidcraft/pull/12976
- Extrude with a taper of 0 on a profile with holes is straight (#13188) by @dudedagger42 in https://github.com/tangency-labs/solidcraft/pull/13205
- Extrude: Through All keeps the side of a negative saved distance (#10415) by @dudedagger42 in https://github.com/tangency-labs/solidcraft/pull/13207
- Body: renaming a body a split cut in two evaluates nothing (#12657) by @dudedagger42 in https://github.com/tangency-labs/solidcraft/pull/13217
- Shortcuts: Show/Hide can move off V, and V can go to another command (#13241) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/13389
- Offset: the certified offset and the fold refusal are the default; shell_one_construction retires (#13827) by @MarkusReichart in https://github.com/tangency-labs/solidcraft/pull/14039
- Agents and scripts: Emboss describes its exact parameters and reply (part of #2829) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14235
- Agents and scripts: Loft Surface describes its exact parameters and reply (part of #2829) by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14306
- Kernel: a curve's projected maximum is found with the right derivative, and is a maximum by @ChrisNourse in https://github.com/tangency-labs/solidcraft/pull/14327
- Sketch Dimension: the pointer ring no longer covers the value being placed by @0rdnungsamt in https://github.com/tangency-labs/solidcraft/pull/14467
- Kernel: planar_face asks solidcore-ops whether a B-spline face is flat (follow-up to #14394) by @ancientastronauttheorist in https://github.com/tangency-labs/solidcraft/pull/14509
- Motion: find_limits' overlap check indexes the other part's triangles instead of testing every one at every sample by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14455
- Placement handles for the primitives: Box, Cylinder, Cone, Sphere, Torus and Coil (#4384) by @dannyow in https://github.com/tangency-labs/solidcraft/pull/10420
- Book: screenshots in the light theme too, shown when the book is light by @oursland in https://github.com/tangency-labs/solidcraft/pull/10733
- Appearance flyout: only the row that opens the editor shows the A key (#12207) by @chrishamm in https://github.com/tangency-labs/solidcraft/pull/12209
- Assemblies: relink one placement of a linked component to another design (#12227) by @chrishamm in https://github.com/tangency-labs/solidcraft/pull/12242
- solidcore: a failed fillet leaves the body as it was (#13689) by @MarkusReichart in https://github.com/tangency-labs/solidcraft/pull/14228
- Kernel: a circular arc's length is its radius times its angle, not a quadrature estimate (#13642) by @MarkusReichart in https://github.com/tangency-labs/solidcraft/pull/14296
- solidcore: G^n certificate bounds the arc's rows on wide pieces with Taylor models by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14458
- 3MF export: a thumbnail, so file managers show the part (#9449) by @pataar in https://github.com/tangency-labs/solidcraft/pull/9450
- solidcore plan: the WR-509 golden moves in curve.ellipse_p2 and query.face_p3, traced and checked by @austin62jake in https://github.com/tangency-labs/solidcraft/pull/14536
- Assistant: the panel says No design access instead of Ready when solidcraft-cli is missing (#12283) by @khanahmad4527 in https://github.com/tangency-labs/solidcraft/pull/12389
- Sketches: a sketch hidden with its eye stays hidden when it is the last step before the History marker (#12125) by @PaddleStroke in https://github.com/tangency-labs/solidcraft/pull/12706
- Improve French translations by @jiiimi in https://github.com/tangency-labs/solidcraft/pull/12739
- Insert SVG and DXF: a preference raises the sketch size limit, so a dense drawing can go into one sketch (#10874) by @plexi32 in https://github.com/tangency-labs/solidcraft/pull/13533
- Setback fill: a round's rows in the section's standard form across (#13775) by @MarkusReichart in https://github.com/tangency-labs/solidcraft/pull/14041
- solidcore: intersect failures carry a typed reason instead of bare statuses (part of #13790) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14495
- Catalan (ca): translate the 129 messages added or changed upstream by @carlymx in https://github.com/tangency-labs/solidcraft/pull/14301
- Coil: say the turns touch when the section equals the pitch by @Ehuntabi in https://github.com/tangency-labs/solidcraft/pull/14540
- Agent chat: put each picked face or part into the message text where you mention it (#2286) by @Rec0iL in https://github.com/tangency-labs/solidcraft/pull/2321
- Browser: right-click the History folder to step through or play History (#14521) by @N3MI-DG in https://github.com/tangency-labs/solidcraft/pull/14522
- Cut: warn when it leaves a closed cavity (#7317) by @rbousigues88 in https://github.com/tangency-labs/solidcraft/pull/7319
- Dialogs in the left column: the design tree over the view (#6710) by @Lars- in https://github.com/tangency-labs/solidcraft/pull/6715
- solidcore: retire eight result-changing UpstreamFixes flags (corrected path becomes the only path) by @brett19 in https://github.com/tangency-labs/solidcraft/pull/14486
- Graphics: choose the startup API and restart safely from Preferences by @0xlillith in https://github.com/tangency-labs/solidcraft/pull/14097
- Project: a nested face name is written in parentheses so it reads one way (#5857) by @vdirienzo in https://github.com/tangency-labs/solidcraft/pull/11359
New Contributors
- @shambazovalbert-art made their first contribution in #12726
- @filippecha made their first contribution in #12961
- @0rdnungsamt made their first contribution in #12959
- @1993eg1 made their first contribution in #13125
- @Sebagrei made their first contribution in #11712
- @ancientastronauttheorist made their first contribution in #13157
- @theironchef made their first contribution in #13482
- @jruelli made their first contribution in #13362
- @derappelt made their first contribution in #11772
- @Werner1303 made their first contribution in #14155
- @phobicdotno made their first contribution in #13422
- @Elias-Ta made their first contribution in #12421
- @sethml made their first contribution in #13968
- @Yarous made their first contribution in #11606
- @JSwetz made their first contribution in #14030
- @cloker53 made their first contribution in #13175
- @DasWookie made their first contribution in #13548
- @gun4as made their first contribution in #6589
- @BryanCrotaz made their first contribution in #14083
- @KazW made their first contribution in #14132
- @saosebastiao made their first contribution in https://github.com/tangency-labs/solidcraft/pull/14268
- @lychee888 made their first contribution in https://github.com/tangency-labs/solidcraft/pull/12804
- @DAmesberger made their first contribution in https://github.com/tangency-labs/solidcraft/pull/14065
- @rafacerete23 made their first contribution in https://github.com/tangency-labs/solidcraft/pull/14317
- @FinnDaCaptain made their first contribution in https://github.com/tangency-labs/solidcraft/pull/13993
- @KaworuSF5 made their first contribution in https://github.com/tangency-labs/solidcraft/pull/14338
- @Ehuntabi made their first contribution in https://github.com/tangency-labs/solidcraft/pull/14485
- @leon-vv made their first contribution in https://github.com/tangency-labs/solidcraft/pull/14470
- @Gleinkaa made their first contribution in https://github.com/tangency-labs/solidcraft/pull/8111
- @glitchau made their first contribution in https://github.com/tangency-labs/solidcraft/pull/12922
- @JosephStew-art made their first contribution in https://github.com/tangency-labs/solidcraft/pull/11990
- @pataar made their first contribution in https://github.com/tangency-labs/solidcraft/pull/9450
- @jiiimi made their first contribution in https://github.com/tangency-labs/solidcraft/pull/12739
Full Changelog: v0.40.0-rc.3...v0.40.0-nightly.20261110.117.1