PureCutCNC v0.2.0
PureCutCNC 0.2.0 Release Notes
45 merged PRs since v0.1.0 (released 2026-07-15)
Multi-Language Support
Full interface localization with a typed i18n layer, complete Simplified Chinese translation, and built-in language manager/editor for creating, editing, importing, and exporting user language packs. Switching languages never touches the project, undo history, or .camj data. (#317, closes #314 #311)
Built-in translations: German (#324), French (#325), Spanish (#327)
Localized surfaces:
Fixes: Character-break for long booklet labels in German (#334)
Theming System & Visual Redesign
- Dark, Light, and Follow-System appearance modes (#304)
- Theme Manager with guided custom-theme editor dialog (#309)
- Blue accent scheme replacing the previous orange; complete migration of the entire UI to theme tokens (CSS, canvas palette, 3D viewport/simulation colours, print output) with an enforced colour-literal build guard (#346 and the #341 slice series)
Toolpath Optimization & G-code Quality
- Linear-move optimizer (always-on) that exactly collapses redundant collinear moves
- Export-stage arc fitting with per-operation preference, machine arc-interpolation capability, modal G2/G3 in I/J or R format, 90° arc splits, and linear fallback when unsupported (#355, issue #354)
- Exported-motion debug view — interactive 2D SVG overlay comparing raw, optimized, and exported G-code layers in project coordinates, with per-Z-level stats and deviation diagnostics (#360, closes #356)
CAM Algorithm Fixes
- Medial V-carve resolution auto-scaling — adapts Voronoi/Delaunay sampling to feature size (#301, issue #298)
- Pocket & surface clearing paths smoothed using rounded inner offsets (
jtRound) and bounded corner-fillet setback; boundary-adjacent ring kept sharp so rounded roughing leaves no chip (#345) - Closed-line V-carve hardened against enclosing-add islands and even-odd fill in feature-first mode (#342, issue #340)
- Gear island rest regions now preserved and overlapped correctly around gear features (#353, issue #352)
- Circle and arc tessellation consistency — circle fragments now produce identical chord density to full circles, eliminating arc-fitting deviations from asymmetric sampling (#361, closes #359)
- Rounded outside corners now default to on for new operations and for legacy operations loaded without the field set; the unused "Stepover Ratio" field is hidden for edge routes, which never read it (#368, closes #367)
- Exported-motion arc diagnostic now measures fitted arcs against source vertices instead of chord segments, removing false failures that grew with arc radius (#373, closes #370)
- Drilling nearest-neighbor ordering no longer mutates the caller-supplied start position as it advances the traversal cursor (#376, closes #375)
- Arc-fitting candidate search bounded to 128 points, preventing long non-fitting polylines from triggering unbounded cubic-time work (#377, closes #369)
Performance & Internal Refactoring
- Feature properties panel converted to per-field Zustand selectors and memoized, eliminating whole-panel re-renders on every keystroke (#384, closes #233)
- Shared
effectiveFeedhelper unifies feed-rate resolution across the postprocessor, booklet report, playback ratio, and live-feed readout; fixes an O(n²) hot path inareaPathsToDrafts(#387, closes #256) - Nearest-neighbor toolpath ordering consolidated from five duplicate implementations into shared, configurable helpers, with V-carve region centroids now cached once per candidate (#380, closes #128)
- Text-layer profile geometry now shares the canonical helpers from the store layer instead of a diverged private copy — fixes an untranslated circle-center bug specific to text profiles (#388)
Desktop & Window Management
- Window position and size persist across restarts (#336, closes #316)
- Binary file writes enabled on desktop for booklet PDF + STL export (#326, fixes #323)
- Legacy imported model placement preserved during the strict 3.0 conversion (#315)
- Desktop feature tree reordering restored (#306)
- Construction (reference) geometry restored in the project tree (#308)
- Project-as-template now preserves tool definitions (#332)
Windows Build Fixes
- Path-separator normalization in the color-literal build guard and its coverage test —
relative()returns backslashes on Windows, which was rejecting valid theme files and letting deprecated color tokens slip through undetected (#365, #366, issue #341)
Tablet UX & Cross-Device Polish
- Dialogs fit on tablet screens with visible close buttons (#335)
- Close icon added to the empty-state onboarding overlay (#339)
- Grid dynamically extends to cover the full drawing extent on all sides (#338)
UX & Productivity
- Status-bar feature labels toggle (#312)
- Status-bar project units shortcut (#348)
- Unified 3D view-preset dropdown replaces the 7-button row with a single button + pull-down menu showing the current view; shared camera-controls module deduplicates code between 3D preview and simulation; fit-to-model now fills the viewport for flat parts (#362, closes #243)
Documentation & Process
- Drawing-modes tutorial voice-over added, covering region modes, line/engrave operations, feature tree model order, rest machining regions, and sketch narration (#350)
- Built-in subagents clarified vs. external worker delegation in AGENTS.md (#364, closes #363)
- Communication Style section added to AGENTS.md — terse, stay on task, close with a summary scaled to the change; applies across the main session, in-process subagents, and delegated Codex/opencode/DeepSeek workers (#379, closes #378)
- CI policy documented: feature branches must rebase onto current
mainbefore opening a PR, and a conflicting PR receives no CI at all sincepr-check.ymlruns on a merge ref GitHub can't compute while the branch conflicts (#382)
Chores & Testing
- Example
.camjprojects updated to reflect new app features — arc interpolation flag, updated feed rates, rounded outside corners, arc fitting enabled (#372, closes #371) - Flaky arc-search performance test replaced with a CPU-time scaling assertion instead of an absolute wall-clock budget (#385)
Statistics
- 45 PRs merged
- 4 languages shipped (en, de, es, fr) + zh-CN + user-created packs
- 22 bug fixes across CAM, desktop, tablet, theming, and Windows builds
- 10 feature PRs (i18n engine, theme engine, toolpath optimizer, medial auto-scale, rounded clearing paths, export debug view, view-preset dropdown, shared camera controls)
- 4 performance/refactor PRs (properties-panel selectors, shared feed helper, nearest-neighbor consolidation, profile-geometry sharing)