# NativeCAD 0.18.1 "Bülow" — part colours in STEP exports

**170 tools: the 168 from 0.18.0, plus `cad_cert` and `cad_feature_pattern`. Nothing was removed or renamed.** Installs on 0.17.2 and later get this release through the self-update: `cad_configure {update:"now"}` installs it, and `{autoUpdate:"auto"}` installs it by itself. Restart Claude to finish.

* **`cad_set_part` takes a `colour`** (`"#RRGGBB"` or `[r,g,b]`). It is written into every STEP export (`cad_save`, `cad_export_body` `step` and `ap242-xml`) as one body-level `STYLED_ITEM`/`COLOUR_RGB`, the form Onshape, SolidWorks, Fusion and OCCT read, and into `x_t` (CADSF-2886).
* **`cad_save` and `cad_export_body` take `colours`**, a map from a body handle, op id or part name to a colour. A key that names no body is refused `COLOUR_NO_BODY` and nothing is written (CADSF-2886).
* **Colours persist by default.** A coloured STEP that is imported and saved comes back out coloured. A coloured part keeps its colour through fillet, chamfer, boolean, transform and pattern; new faces take the colour of the face they came from, or the part's. `cad_set_part` names and colours now survive later edits of the body (CADSF-2886).
* **CAx-IF model styling.** Body colours with face overrides and layers (including hidden layers) follow the CAx-IF Recommended Practice. OCCT (cadquery-ocp 7.8.1) reads back the same colours, layers and assembly tree (CADSF-100207, CADSF-100208).
* Known gap: `cad_save` names bodies by op id; `cad_export_body` writes the `cad_set_part` names.

## Gates

* **bundle-smoke over stdio, on the shipped `.mcpb` and `.plugin`.** tools/list 170; staged git `49288b8b`, tree `3f565cb90221`, 651 files; kernel chain unlicensed; `cad_export_body` refused by name.
* **Features:** test_cadsf-2886 (20), MCP cadsf-2886 (10), test_cadsf-847 (27), test_cadsb-100055 (9), test_cadsf-100207 (100, OCCT on), test_cadsf-100208 (135, OCCT on), test_cadsf-100342 (31, OCCT on), test_cadsb-265 (50), MCP cadsf-1376/1379/1388/1389/1402, schema-sync (572), tool-list-budget (32), payload-budget, check_generated, check_test_wiring.

**Downloads:** https://featureboard.ai/nativecad/releases/nativecad-mcp-0.18.1.mcpb (`latest.json` lists bytes, sha256 and the ed25519 signature, key `d2791510af4077e7`).

**Build.** Built from `ticket/CADSF-100682` `49288b8b` (parent: master `97d93910`), with `SOURCE_DATE_EPOCH` set to 1791130539. `dist/server.min.js` (sha256 `5aac37a2…`) is identical in the `.tgz`, the `.mcpb` and the `.plugin`.
