dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1977a493c7
chore(deps): bump the cargo-dependencies group across 1 directory with 17 updates ( #1957 )
...
Bumps the cargo-dependencies group with 17 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.151` | `1.0.154` |
| [tiny-skia](https://github.com/linebender/tiny-skia ) | `0.11.4` | `0.12.0` |
| [skrifa](https://github.com/googlefonts/fontations ) | `0.47.0` | `0.48.0` |
| [harfrust](https://github.com/harfbuzz/harfrust ) | `0.12.0` | `0.14.0` |
| [quick-xml](https://github.com/tafia/quick-xml ) | `0.41.0` | `0.42.0` |
| [egui](https://github.com/emilk/egui ) | `0.36.2` | `0.37.0` |
| [egui_kittest](https://github.com/emilk/egui ) | `0.36.2` | `0.37.0` |
| [eframe](https://github.com/emilk/egui ) | `0.36.2` | `0.37.0` |
| [egui-wgpu](https://github.com/emilk/egui ) | `0.36.2` | `0.37.0` |
| [arboard](https://github.com/1Password/arboard ) | `3.6.1` | `3.7.0` |
| [acadrust](https://github.com/hakanaktt/acadrust ) | `0.6.4` | `0.6.5` |
| [rstar](https://github.com/georust/rstar ) | `0.12.2` | `0.13.0` |
| [libc](https://github.com/rust-lang/libc ) | `0.2.190` | `0.2.191` |
| [miniz_oxide](https://github.com/Frommi/miniz_oxide ) | `0.8.9` | `0.9.1` |
| [getrandom](https://github.com/rust-random/getrandom ) | `0.3.4` | `0.4.3` |
| [muda](https://github.com/tauri-apps/muda ) | `0.21.0` | `0.21.2` |
| [winresource](https://github.com/BenjaminRi/winresource ) | `0.1.31` | `0.1.34` |
Updates `serde_json` from 1.0.151 to 1.0.154
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.151...v1.0.154 )
Updates `tiny-skia` from 0.11.4 to 0.12.0
- [Changelog](https://github.com/linebender/tiny-skia/blob/main/CHANGELOG.md )
- [Commits](https://github.com/linebender/tiny-skia/compare/v0.11.4...v0.12.0 )
Updates `skrifa` from 0.47.0 to 0.48.0
- [Release notes](https://github.com/googlefonts/fontations/releases )
- [Changelog](https://github.com/googlefonts/fontations/blob/main/docs/RELEASE.md )
- [Commits](https://github.com/googlefonts/fontations/compare/skrifa-v0.47.0...skrifa-v0.48.0 )
Updates `harfrust` from 0.12.0 to 0.14.0
- [Release notes](https://github.com/harfbuzz/harfrust/releases )
- [Changelog](https://github.com/harfbuzz/harfrust/blob/main/CHANGELOG.md )
- [Commits](https://github.com/harfbuzz/harfrust/compare/0.12.0...0.14.0 )
Updates `quick-xml` from 0.41.0 to 0.42.0
- [Release notes](https://github.com/tafia/quick-xml/releases )
- [Changelog](https://github.com/tafia/quick-xml/blob/master/Changelog.md )
- [Commits](https://github.com/tafia/quick-xml/compare/v0.41.0...v0.42.0 )
Updates `egui` from 0.36.2 to 0.37.0
- [Release notes](https://github.com/emilk/egui/releases )
- [Changelog](https://github.com/emilk/egui/blob/main/CHANGELOG.md )
- [Commits](https://github.com/emilk/egui/compare/0.36.2...0.37.0 )
Updates `egui_kittest` from 0.36.2 to 0.37.0
- [Release notes](https://github.com/emilk/egui/releases )
- [Changelog](https://github.com/emilk/egui/blob/main/CHANGELOG.md )
- [Commits](https://github.com/emilk/egui/compare/0.36.2...0.37.0 )
Updates `eframe` from 0.36.2 to 0.37.0
- [Release notes](https://github.com/emilk/egui/releases )
- [Changelog](https://github.com/emilk/egui/blob/main/CHANGELOG.md )
- [Commits](https://github.com/emilk/egui/compare/0.36.2...0.37.0 )
Updates `egui-wgpu` from 0.36.2 to 0.37.0
- [Release notes](https://github.com/emilk/egui/releases )
- [Changelog](https://github.com/emilk/egui/blob/main/CHANGELOG.md )
- [Commits](https://github.com/emilk/egui/compare/0.36.2...0.37.0 )
Updates `arboard` from 3.6.1 to 3.7.0
- [Release notes](https://github.com/1Password/arboard/releases )
- [Commits](https://github.com/1Password/arboard/compare/v3.6.1...v3.7.0 )
Updates `acadrust` from 0.6.4 to 0.6.5
- [Release notes](https://github.com/hakanaktt/acadrust/releases )
- [Changelog](https://github.com/hakanaktt/acadrust/blob/main/CHANGELOG.md )
- [Commits](https://github.com/hakanaktt/acadrust/compare/v0.6.4...v0.6.5 )
Updates `rstar` from 0.12.2 to 0.13.0
- [Commits](https://github.com/georust/rstar/compare/v0.12.2...v0.13.0 )
Updates `libc` from 0.2.190 to 0.2.191
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.191/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.190...0.2.191 )
Updates `miniz_oxide` from 0.8.9 to 0.9.1
- [Changelog](https://github.com/Frommi/miniz_oxide/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Frommi/miniz_oxide/commits )
Updates `getrandom` from 0.3.4 to 0.4.3
- [Changelog](https://github.com/rust-random/getrandom/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-random/getrandom/compare/v0.3.4...v0.4.3 )
Updates `muda` from 0.21.0 to 0.21.2
- [Release notes](https://github.com/tauri-apps/muda/releases )
- [Changelog](https://github.com/tauri-apps/muda/blob/dev/CHANGELOG.md )
- [Commits](https://github.com/tauri-apps/muda/compare/muda-v0.21...muda-v0.21.2 )
Updates `winresource` from 0.1.31 to 0.1.34
- [Commits](https://github.com/BenjaminRi/winresource/commits )
---
updated-dependencies:
- dependency-name: acadrust
dependency-version: 0.6.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: arboard
dependency-version: 3.7.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: eframe
dependency-version: 0.37.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: egui
dependency-version: 0.37.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: egui-wgpu
dependency-version: 0.37.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: egui_kittest
dependency-version: 0.37.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: getrandom
dependency-version: 0.4.3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: harfrust
dependency-version: 0.14.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: libc
dependency-version: 0.2.191
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: miniz_oxide
dependency-version: 0.9.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: muda
dependency-version: 0.21.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: quick-xml
dependency-version: 0.42.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: rstar
dependency-version: 0.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: serde_json
dependency-version: 1.0.154
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: skrifa
dependency-version: 0.48.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: tiny-skia
dependency-version: 0.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
- dependency-name: winresource
dependency-version: 0.1.34
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-22 23:54:32 -04:00
Dylan M. Taylor and skylartaylor
953a6b3b01
security: bound Lisp callbacks, native comparisons, and local file reads (CWE-400, CWE-407) ( #1842 )
...
* security: bound Lisp callbacks, native comparisons, and local file reads (CWE-400, CWE-407)
The command and scripting engine had several unbounded paths a supplied LISP
routine or a selected path could exploit to monopolise the thread or exhaust
memory:
- `call_sync` ran synchronous callbacks (vl-sort comparators, vl-remove-if
predicates, …) with `u64::MAX` fuel, so a constant-memory infinite loop never
yielded and bypassed the blocking execution cap. It now drives the callback in
bounded slices and aborts with an error past a hard step cap (row 2).
- `wcmatch`/`glob` explored `*` placements with only a recursion-depth guard,
and `equal` re-traversed shared cons subtrees. Both now charge every step
against a shared work budget and stop when it is exhausted (row 33).
- `setvar` converted a LISP value to JSON unboundedly, so a shared cons DAG
expanded into gigabytes of owned arrays. Conversion is now depth- and
element-bounded and rejects over-budget values with a LISP error (row 39).
- OPEN/LOAD/APPLOAD (`read_text_file`), SCRIPT, and native open (`read_file`,
`run_open`) buffered a path with `std::fs::read`, so an endless device
exhausted memory before any size check. Reads now go through a new
`capped_read` helper that rejects non-regular files and caps bytes
(rows 21, 34).
New tests cover the callback loop, the oversized setvar structure, and the
capped reader. Addresses findings rows 2, 21, 33, 34, 39.
* fix: bound native Lisp scans and nonblocking file reads
* fix: enforce callback fuel before each execution slice
---------
Co-authored-by: skylartaylor <26588250+skylartaylor@users.noreply.github.com >
2026-10-22 17:57:09 -04:00
aiongg
8fe7c421ea
Xrefs and data links: follow stored paths only on this computer or the drawing's share
...
Xref paths saved in a drawing (on open, on Reload, in the External
References list, XOPEN, nested xrefs) and table data-link paths re-read by
DATALINKUPDATE go through doc_path::resolve (craft-docpath): relative
paths resolve beside the drawing that stores them, and paths to other
computers, devices and URLs are not opened. Such an xref is Unresolved
with the reason, unless a file of its name is beside the host drawing.
Paths given to XATTACH, -XREF Path and DATALINK are used as given.
One load of xrefs reads at most 1 GB from referenced files in total.
2026-10-16 17:18:34 +00:00
Valentin Klein and Claude Opus 5.5
0230250bf5
Xrefs: XATTACH, -XREF, XBIND, XOPEN; load at open, save only the reference (part of #525 ) ( #530 )
...
Squash of PR #530 by @vangel76.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 12:11:37 -04:00
Valentin Klein and Claude Opus 5.5
b3a73626b2
SAVEAS version and binary DXF, default save version ( fixes #421 ) ( #431 )
...
Squash of PR #431 by @vangel76.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 11:19:47 -04:00
Brandon Thomas and Claude Opus 5.5
f9aa1b279a
M4 annotation depth + M9 parametric constraints
...
Annotation (M4):
- TrueType text from system fonts (filled/outlined), shared placement for all text
- MTEXT formatting codes: fonts, heights, colours, under/overline, stacks, wrapping
- Full DIMSTYLE variables, per-dimension overrides, all arrowheads and ticks,
unit formats, tolerances, limits, alternate units, colours by role
- Associative dimensions that follow geometry; DIMREASSOCIATE/DIMDISASSOCIATE
- STYLE/DIMSTYLE management commands, DIMTEDIT, DIMSPACE, TABLE create/edit/merge
Parametric (M9):
- New cadcraft-constraints crate: weighted damped Gauss-Newton solver, conflict
and redundancy detection, expressions, AutoConstrain inference
- All GC*/DC* commands, GEOMCONSTRAINT/DIMCONSTRAINT, PARAMETERS, DELCONSTRAINT,
constraint bar / display settings; re-solve after every edit
Also: MODEL/PAPER status bar toggle, cargo xtask alias, roadmap update
(233/491 menu items, 290 commands).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-06 01:27:38 -04:00
Brandon Thomas and Claude Opus 5.5
3da0219ac9
M1/M2/M6/M10: draw/modify depth, grips API, layouts/viewports/PLOT to PDF, GPU canvas, R-tree index
...
- All 2D Draw-menu items: ARC variants, CIRCLE TTR/TTT, DIVIDE/MEASURE, REVCLOUD, WIPEOUT, 3DPOLY,
MLINE, HELIX, SPLINE CV, CENTERMARK/CENTERLINE, XLINE and RECTANG options.
- PEDIT, SPLINEDIT, LENGTHEN, ALIGN, BLEND, REVERSE, NCOPY, CHSPACE, FLATTEN, ARRAYPATH, TEXTEDIT;
FILLET with arcs and polylines; TRIM ellipses and splines; grip editing commands.
- Layouts, MVIEW/VPORTS, viewport scale/lock/layers, PAGESETUP, PLOT/EXPORTPDF with our own PDF
writer; paper-space rendering through viewports.
- GPU canvas (wgpu batches, CPU fallback); rstar spatial index for pick/select/osnap;
cadcraft-cli perf harness.
- CAL, FIND/replace, MASSPROP, MEASUREGEOM; TrueType outlines in cadcraft-fonts; contributors
standard (xtask contributors, About window credits); docs/mcp.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-06 00:40:03 -04:00
Brandon Thomas and Claude Opus 5.5
d9ab00c53c
M0: CADCraft skeleton and vertical slice
...
Workspace (geom, dxf, color, doc, fonts, render, io, engine, ui-egui, mcp; apps cadcraft,
cadcraft-cli, cadcraft-web; xtask), AutoCAD-for-Mac style UI with code-drawn icons, command line
with prompts/keywords/AutoComplete, draw and modify commands, object snaps, polar/ortho,
selection, undo, layers and properties palettes, DXF read/write, SVG/PNG export, MCP server,
JSON control channel, CLI, wasm build, README, ROADMAP, AGENTS.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 23:22:25 -04:00