📅 2026-08-24 · Full changelog
✨ Features
- redesign the What's New popup with live widget preview cards (
d619477) - widget QA follow-up - bug fixes, label positions, comparison operators, inline note editing, SD-card images, shaped hotspot regions (
4ae86ce) - password-protect backups (pending dwc-config-backup-core release) (
f368f4a) - let users exclude a name from redaction, bump dwc-config-backup-core (
b667167) - link every cloud destination to its own setup instructions; clarify the Dropbox steps (
65cd450) - add sendCodeChecked - RRF reports G-code failures as resolved replies (
54ad1c2) - CAN address helper skips .bak files and offers to restart the machine after applying (
76a77a4) - draggable camera/controls divider in ToolAlignWidget (
9c16bf2) - match firmware files across mixed board rigs; confirm files before sending (
f58e2f0) - adopt DWC 3.7.0-beta.3 APIs (probe trigger, load-cell force, real useDisplay, verbose OM fields) (
489115b) - import config-backup credentials from the standalone plugin in the same browser (
fcc5b8e) - make the nav drawer's width drag-resizable in edit mode (
36d3ed8) - track jobs/tool-changes/power-on hours in firmware macros; make maintenance widgets fully reactive (
0b46727) - add a CAN board address-change helper with gcode reference rewriting (
0196c5d) - cut parts from an SVG/DXF drawing (import, offset, tabs, depth passes) (
9d3a6c3) - what's-new popup, machine maintenance tracking; fix firmware widget + default widget sizes (
f739485) - G-code analysis + CNC prep widgets, settings self-persistence, homed checks, firmware updates (
e8cc6d6) - add XYZ corner touch-probe widget for CNC touch plates (
14ece9d) - install dwc-config-backup-core and dwc-plugin-runtime from npm instead of git (
c4bfa8a) - add a "View backups online" link to the Duet backup service (
5196fec) - add bed-mesh single-point re-probing, durable version history, and scoped resets (
d302513) - allow DWC's GCodeViewer to be embedded as a panel again (
e76509a) - add whole-machine config backup/restore and TLS/HTTPS setup (
d6497cf)
🐛 Bug Fixes
- exclude DWC's sourcemap zip from the plugin self-update check (
bcf7439) - bump dwc-config-backup-core to 0.1.13 (
6b4c867) - ProbeRoutinesWidget outlined field labels clipped at top of scroll box (
db00450) - bump dwc-config-backup-core to 0.1.11 (
aa99415) - repair the 18 type errors failing CI on every commit (
a70bf8a) - document the two Dropbox scopes the setup instructions were missing (
88e04eb) - surfacing emitted a silently empty program from one blank field (
b34becf) - probe routines moved to machine coordinates via a workplace-relative G0 (
bca6c24) - XYZ probe never moved at all - M98 passed a parameter on the letter G (
38621fa) - ExtruderWidget truncates its cold-extrude warning instead of wrapping (
c0c0774) - MacrosWidget shows extensionless macro files; migrate stale hard-coded folder default (
56a63fc) - build.bat no longer picks DWC 3.7.0-beta.3's srcmap zip as the plugin package (
c3cfd65) - tool offset sign was backwards by default (
b0e87f9) - widget QA pass (controls + machine); remove jobControl, merge console/consoleOutput, FFF maintenance tracking, firmware SBC support (
1f3180f) - grid no longer reflows live while shrinking a widget; clarify Touch probe vs XYZ probe (
6d03ec7) - bump dwc-config-backup-core to v0.1.1 - excludes accelerometer captures from backups (
362a57d) - actually re-resolve dwc-config-backup-core against the npm registry (
738b3ad) - refresh the dwc-config-backup-core lockfile pin - DUET_BACKUP_WEB_URL missing on CI (
2171ba5) - correct DER integer sign/padding in generated TLS certificates (
fa340b2) - install dwc-config-backup-core from GitHub instead of a local tarball (
5058924) - fix the Surfacing widget's missing icon/title and clipped labels (
f562cad)
♻️ Refactoring
- replace toolpath run-from-line with a shared G-code file picker (
a42bcd3) - move the config backup core into dwc-config-backup-core (
ec52635)
📄 Documentation
- write up the "Cut from drawing" SVG/DXF page (
c6226fe) - document the 17 widgets and 4 header widgets added since the last doc pass (
00cb7f9)
🧹 Chores & CI
- add json-summary coverage reporter (
626a224) - bump dwc-config-backup-core to 0.1.6 - surfaces Dropbox's raw error body instead of discarding it (
d473ef2) - bump dwc-config-backup-core to 0.1.5 - trims the Dropbox token before use (
5185315) - bump dwc-config-backup-core to 0.1.4 for the Dropbox error diagnostics fix (
e9a486b) - bump extruder/toolSelect widget catalog default sizes (
0e3c950) - resolve all npm audit vulnerabilities (brace-expansion, nanoid, postcss, happy-dom) (
388ac1e) - consume dwc-plugin-test-kit from npm instead of a GitHub git dependency (
229ce34)
📦 Install
- Download
FlexibleLayouts-1.8.1.zipfrom the Assets below. - In DuetWebControl, go to Settings → General → Plugins and click Install Plugin.
- Select the downloaded ZIP and accept the third-party-plugin prompt.
- Reload DWC if asked. Then enable Edit layout from the top bar to start customising.
🔧 Built against DuetWebControl 3.7.0-beta.3 (
4d47719, refv3.7-dev). Use a DuetWebControl build at or near this version.
🤸 Share your layout
Built a layout you're proud of? Add it to the community gallery so others can use it:
- 🔎 Browse layouts: https://jaysuk.github.io/flexible-layouts-gallery/
- ➕ Contribute: open a PR adding a
layouts/<your-layout>/folder at https://github.com/jaysuk/flexible-layouts-gallery
Every submission helps the library grow — PRs welcome!