# NativeCAD 0.6.0 "Elder" — sheet metal arrives

**83 tools (was 78), nothing removed or renamed — every 0.5.0 call keeps working.**

## New tools
- **cad_sheet_fold** — constant-thickness strip: `baseFlange` + `bends[]` (per-bend angle in degrees, inside radius, flange), optional `kFactor`; the developed **flat pattern** is reported on the entry, so the blank a laser cuts ships with the folded solid (CADSF-833).
- **cad_hole_pattern** — linear / grid / circular / points hole arrays (CADSF-715).
- **cad_build_plan** — batch plan runner: a spec result, plan, or ops[] in one call (CADSF-715).
- **cad_list_model_state** — session recovery after an MCP server restart; stale handle ids now refuse by name (CADSB-529/531).
- **cad_license** — seat status/activation, now in the published manifest (CADSF-709).

## Improvements
- `cad_export_body`: `format:"flat-dxf"`; glTF/GLB UV unwrapping with TEXCOORD_0 (CADSF-775); multi-LOD export (CADSF-776). Fixes CADSB-578 (a schema default hijacked non-LOD exports) and CADSB-543 (`_boolProv` leak).
- `cad_import`: `stitch`/`stitchTol` pinned by a field-level schema drift check (CADSF-821).
- Windows absolute paths recognized on any host OS (CADSF-822).

## Licensing
LICENSE/COMMERCIAL.md carry the 2026-08-30 overhaul: annual terms only, Excluded Parties (competitors) ineligible, competitive-use restrictions, removal on termination with downstream flow-down, agent-approvable evaluations. Prior MIT versions remain MIT.

## Known issue — RESOLVED after this release (CADSB-585/589)
~~CADSB-585: shelling over a curved edge where thickness exceeds the minimum feature radius surfaces as UNCHECKED_FAILURE instead of a named refusal. Geometry is unaffected.~~

The diagnosis above was wrong about the cause, and the shipped geometry was never at risk. The parity pack's C1 curved-edge case shelled a filleted box at t=2 with a fillet radius of 4 — BELOW the radius, not beyond it — and pinned a refusal, because a refusal was the honest v1 answer before CADSF-810. CADSF-810 shipped the analytic curved-face offset in this same release, so that shell now SUCCEEDS (watertight, and within 6.5e-5 of its closed-form wall volume). `UNCHECKED_FAILURE` was the harness's verdict for "the case declared this impossible and the kernel built it anyway" — a stale acceptance criterion, not an unclassified kernel error. The expectation now pins both sides of the frontier that actually bounds a curved body: t below the fillet radius BUILDS to its closed form, t at or beyond it refuses by name (`shell-radius-collapse`). Alongside that, every remaining refusal in `ops/shell.js` gained a `reasonCode`, so no shell outcome reaches the MCP layer as an anonymous failure.

**Downloads are served from featureboard.ai** (see `latest.json` for bytes + sha256):
https://featureboard.ai/nativecad/releases/nativecad-mcp-0.6.0.mcpb
Staged kernel: git 0d9b6ce, tree 7c9b303b17c2. Release commit: cefcc72.
