What's Changed
- Grant network access so update checks can reach GitHub by @dylanmtaylor in #2413
- Honor CARGO_BUILD_TARGET in FreeBSD packaging for aarch64 release builds by @dylanmtaylor in #2425
- PEDIT Multiple at the command line by @aldozar in #2225
- Reject out-of-range LUNITS, LUPREC, AUNITS and AUPREC in SETVAR by @Silvertree2010 in #2269
- Cap autosave file names at 255 bytes for multibyte titles by @Silvertree2010 in #2289
- Refuse invalid counts in JSON arraypolar and arrayrect by @Silvertree2010 in #2399
- DWG: keep the current layer (CLAYER) through a save and reopen (#2252) by @SBaksa in #2407
- xtask: the test suite and clippy pass on Windows by @2ez4gcx in #2198
- MEASURE picks its starting end by the curve's parameter, as AutoCAD does by @2ez4gcx in #2207
- Block Editor: BEDIT inside it switches to another block, asking to save first by @codyvogt in #2219
- Reject out-of-range numeric colours in properties.set by @Silvertree2010 in #2286
- Command line: a LISP value at a prompt is the answer, not another expression (fixes #1920) by @ayozetr in #2338
- fix(render): fill font glyphs with the nonzero winding rule (진 drawn as 지) by @heejunB in #2189
- feat(web): persist validated browser panel layouts by @smacdmac101 in #2258
- Skip a leading UTF-8 BOM when parsing ASCII DXF by @Silvertree2010 in #2287
- Bound the MCP client's reply read and the control server's total buffered bytes (#1925) by @SBaksa in #2398
- Tests remove the temp files they write by @bmh129 in #2232
- Refuse invalid count in JSON copy instead of clamping it by @Silvertree2010 in #2294
- Count DXF group codes correctly when enforcing limits by @TheGalitube in #2408
- Reject zero distance in JSON offset command by @Silvertree2010 in #2190
- Stop DIMTMOVE 2 text taking the DIMTAD 1 clearance twice by @Silvertree2010 in #2302
- fix: keep WIPEOUT closure coherent across grips and outlines by @jonascloud in #2284
- Dimensions: report the measurement as soon as one is created (#2421) by @SBaksa in #2438
- ELLIPSE from axis endpoints matches what AutoCAD stores by @2ez4gcx in #2197
- DWG: keep block draw-order sort handles through the DXF bridge (#2410) by @SBaksa in #2439
- Reject negative or non-finite JSON chamfer distances by @Silvertree2010 in #2406
- DWG: post-read fix-ups run under catch_unwind; merge work is bounded (#1934) by @SBaksa in #2402
- fix(engine): refresh attribute baselines after value changes by @smacdmac101 in #2214
- CI: workflows only call craft-common-actions at @main (AGENTS.md; windows-arm64 unpinned) by @dylanmtaylor in #2473
- deps: bump tar, zip, roxmltree, rustls-webpki and symphonia to latest by @dylanmtaylor in #2475
- Update prompt shows the app icon and accent color instead of a letter by @dylanmtaylor in #2479
- Fix update testing and dev-only testkit layer checks by @dylanmtaylor in #2486
- LISP: entity names answer prompts that pick one object by @2ez4gcx in #2477
- LISP: getvar and setvar take angle variables in radians by @2ez4gcx in #2482
- Units and rtos: round a half away from zero, at 15 significant digits by @2ez4gcx in #2484
- Pick the object drawn last, not the nearest one by @2ez4gcx in #2488
- -INSERT: X, Y and Z presets, XYZ, and the Z factor AutoCAD stores by @2ez4gcx in #2480
- -HATCH: Properties asks the pattern's scale and angle, and takes Solid by @2ez4gcx in #2481
- Extents: count layers that are turned off, as AutoCAD does by @2ez4gcx in #2485
- SOLID: draw 2D solids, chained as AutoCAD chains them by @2ez4gcx in #2489
- Extents: an MTEXT's wrap width only narrows its box (#2465) by @SBaksa in #2491
- Draw annotative text with Match orientation to layout upright, ignoring its stored rotation (#2498) by @MarekSpodBiedry in #2504
- CHPROP: change properties at the command line, as AutoCAD asks for them by @2ez4gcx in #2497
- bs: Add Bosnian (bs) to the interface languages by @nine-codes in #2502
- Save As suggests the default save format for opened drawings too (#2199) by @ZIDAN44 in #2509
- fix(flatpak): allow reading launcher version pins by @dylanmtaylor in #2515
- A panic after a command restores the drawing; panic_hunt can actually fail by @tanish2k09 in #2517
- Saving over a DWG asks before it loses content by @tanish2k09 in #2518
- Parity docs are updated by maintainers in batches, not in each PR by @tanish2k09 in #2520
- fix(io): write $PSTYLEMODE as read, in DXF and DWG by @assamaral in #2400
- DXF: no CLASS instance counts in R2000 files (AutoCAD LT 2026 hung opening them) by @Slopapalooza in #1060
- Ctrl/Cmd+W closes the drawing, as the File menu shows by @ATARYS-LAB in #2057
- engine: renaming a layer repoints every viewport's frozen list and colour overrides by @midasmatterhorn in #1264
- fix(io): MTEXT legacy column groups no longer leak into the entity (#2247) by @assamaral in #2416
- fix(io): an attached ATTRIB keeps its Constant mode through DXF and DWG (#2246) by @assamaral in #2418
- fix(io): write a LINE's extrusion (210/220/230) (#2241) by @assamaral in #2417
- fix(io): a centred ATTDEF keeps its insertion point in a DWG (#2464) by @assamaral in #2466
- Previously, if one typed RECT, even though RECTANG is highlighted in … by @Elarionus in #2135
- Save helpers used only by the file system build stay out of the wasm one by @tanish2k09 in #2521
- test(io): add independent DXF/DWG conformance and preservation matrices by @jonascloud in #2237
- fix(fonts): place Middle and bottom-justified text as AutoCAD does (#2229) by @tanish2k09 in #2522
- fix(fonts): place Middle and bottom-justified text as AutoCAD does (#2229) by @austin62jake in #2460
- DXF: save pre-2007 text in the file's code page instead of all \U+ escapes by @tanish2k09 in #2523
- DXF: save pre-2007 text in the file's code page instead of all \U+ escapes by @ffishman in #1693
- Update symlink target in write_atomic instead of replacing the link by @tanish2k09 in #2524
- Update symlink target in write_atomic instead of replacing the link by @Silvertree2010 in #2201
- fix(io): MTEXT keeps its R2018 embedded column object (#2248) by @tanish2k09 in #2525
- fix(io): MTEXT keeps its R2018 embedded column object (#2248) by @assamaral in #2467
New Contributors
- @2ez4gcx made their first contribution in #2198
- @ayozetr made their first contribution in #2338
- @heejunB made their first contribution in #2189
- @smacdmac101 made their first contribution in #2258
- @bmh129 made their first contribution in #2232
- @TheGalitube made their first contribution in #2408
- @nine-codes made their first contribution in #2502
- @ZIDAN44 made their first contribution in #2509
- @tanish2k09 made their first contribution in #2517
- @assamaral made their first contribution in #2400
- @Slopapalooza made their first contribution in #1060
- @ATARYS-LAB made their first contribution in #2057
- @Elarionus made their first contribution in #2135
- @austin62jake made their first contribution in #2460
Full Changelog: v0.14.0...v0.15.1