Commit Graph
6093 Commits
Author SHA1 Message Date
dotCooCoo 0622a10415 Docs: the artboard refusal line names null and every other wrong type 2026-10-29 09:57:33 +07:00
dotCooCoo 1deb1ec152 Artboards: artboard.new and artboard.setProps refuse a number or name of the wrong type
artboard.setProps refused an x, y, width or height given as text, but
artboard.new read such a value as the key left out: {"x": "10"} added
an artboard at the default position and recorded an undo step. Both
commands read a name that is not a string, such as 5, as no name, so
artboard.new gave the default name and artboard.setProps kept the old
one.

artboard.new now refuses an x, y, width or height that is not a number
with "`<key>` must be a number, not <value>", the message
artboard.setProps gives, and both commands refuse such a name with
"`name` must be a string", for each entry of artboard.setProps'
artboards too. They refuse it before they change anything. A null is
still read as the key left out.

Docs: docs/mcp.md, docs/target-app-parity.md.
2026-10-29 09:57:33 +07:00
NetterSilverandClaude Haiku 5.5 ad43722a56 Accept whole-number floats as grid divider counts
Found while testing crates/engine/src/cmd/create.rs:584 (dividers)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 09:57:33 +07:00
bflatastic cfe21231c8 SVG import: import NodeId and SvgError in importer.rs (#4299 made its imports explicit) 2026-10-29 09:57:33 +07:00
el-j 39341ef4c8 Fix #3564: report TooManyImages error when nested SVG image cap is reached 2026-10-29 09:57:33 +07:00
el-j b65fb23338 fix(svg): cap converted objects and nested images (#3564) 2026-10-29 09:57:33 +07:00
Don Omondi def9e0f08e Blend: nested blends keep to a step budget (#3579)
A blend whose keys are blends draws each of its steps as a copy of a key,
and that copy makes its own steps when it is drawn, so step counts capped
per pair multiplied with nesting: five levels of 15 steps were 1.3 million
steps from a 23 KB file, 3.4 GB to export.

A blend now makes at most 100,000 steps in all (MAX_BLEND_STEPS), counting
the steps of the blends inside its keys and steps. Past the budget each pair
of keys keeps the same share of its steps; a copy of a blend spaced by
distance counts the most steps its spacing can make, since scaling it up
adds steps. Blends within the budget draw every step as before.
2026-10-29 09:57:33 +07:00
BFlat af95df8eb5 Merge pull request #4514 from TheGalitube/fix/h1576-dxf-integer-fields-truncate-frac
Reject fractional DXF integer values
2026-10-29 09:56:59 +07:00
BFlat f38ae76aeb Merge pull request #4460 from Silvertree2010/fix/h3582-eps-import-postscript-radix-numb
Reject a sign after # in EPS PostScript radix numbers
2026-10-29 09:56:32 +07:00
BFlat a6e4df49b0 Merge pull request #4449 from Silvertree2010/fix/h3554-eps-import-glyph-char-accepts-a
Reject non-hex characters in EPS uni/u glyph names
2026-10-29 09:56:01 +07:00
BFlat 8f4ef87f86 Merge pull request #4409 from Silvertree2010/fix/h3296-mcp-line-reader-rejects-a-crlf-t
Accept CRLF lines of exactly the maximum length in the MCP reader
2026-10-29 09:55:32 +07:00
BFlat 204ae8941f Merge pull request #4330 from Silvertree2010/fix/h3008-rtf-import-decodes-a-plus-sign-a
Reject non-hex digits in RTF \'XX escapes
2026-10-29 09:55:02 +07:00
BFlat ffb7889646 Merge pull request #4323 from Silvertree2010/fix/h3012-image-trace-ignorecolor-accepts
Reject non-hex characters in Image Trace ignoreColor
2026-10-29 09:54:13 +07:00
BFlat 959c9aedd1 Merge pull request #4321 from Silvertree2010/fix/h3030-colorkey-display-panics-on-a-hug
Fix ColorKey Display overflow on huge negative Lab a/b
2026-10-29 09:52:04 +07:00
BFlat 0328fb227a Merge pull request #4391 from Silvertree2010/fix/3605-audit-pdf-encryption-file-key-sa
Seed PDF encryption keys from the OS random source
2026-10-29 09:50:59 +07:00
Max MittelstädtandGPT-6-Luna c714797e99 Reject fractional DXF integer values
Found while testing crates/cad/src/import/reader.rs:69

Co-Authored-By: GPT-6-Luna <noreply@openai.com>
2026-10-29 08:45:52 +07:00
NetterSilverandClaude Haiku 5.5 ddd017eb0a Reject a sign after # in EPS PostScript radix numbers
Found while testing crates/eps/src/import/lex.rs:287-289 (number)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 08:45:39 +07:00
NetterSilverandClaude Haiku 5.5 aca98ffe79 Reject non-hex characters in EPS uni/u glyph names
Found while testing crates/eps/src/import/text.rs:501-502 (glyph_char)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 08:45:25 +07:00
NetterSilverandClaude Haiku 5.5 de6b14b541 Accept CRLF lines of exactly the maximum length in the MCP reader
Found while testing crates/mcp/src/server.rs:180-205 (read_line_capped)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 08:45:12 +07:00
NetterSilverandClaude Haiku 5.5 66498b9740 Reject non-hex digits in RTF \'XX escapes
Found while testing crates/engine/src/cmd/place/rtf.rs:111

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 08:44:57 +07:00
NetterSilverandClaude Haiku 5.5 26f9b7f80c Reject non-hex characters in Image Trace ignoreColor
Found while testing crates/ui-egui/src/panels/image_trace.rs:28-34 (ignore_color)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 08:44:45 +07:00
NetterSilverandClaude Haiku 5.5 c2fb35b244 Fix ColorKey Display overflow on huge negative Lab a/b
Found while testing crates/color/src/recolor.rs:72 (Display for ColorKey)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 08:44:39 +07:00
NetterSilverandClaude Opus 5.5 4c4113096c Seed PDF encryption keys from the OS random source
Fixes #3605

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 08:44:36 +07:00
Dylan M. Taylor 5fd2282b79 Merge pull request #4497 from dylanmtaylor/chore/remove-windows7
Remove the experimental Windows 7 build
2026-10-28 18:46:56 -04:00
Dylan M. Taylor 49a60d9c5f Merge pull request #4299 from dylanmtaylor/sonar/enforce-clippy-standards
Enforce Rust coding standards via Clippy
2026-10-28 18:41:55 -04:00
Dylan M. Taylor 7a3b62b3b9 Docs: point the review disposition at the renumbered §8.10; drop Windows 7 from the change headers 2026-10-28 18:36:04 -04:00
Dylan M. Taylor 50bb4acf4e Update Cargo.lock: eframe no longer needs glow without the windows7 feature 2026-10-28 18:35:07 -04:00
Dylan M. Taylor cc3ca69d50 Remove the experimental Windows 7 build
Drop the unsupported Windows 7 x64 portable build and everything that existed only for it:
the windows7 workflow, packaging script and docs/windows7.md; the windows7 feature and the
win7-target cfgs (plain cfg(windows) now); the Windows 7 print transport
(printing/windows7.rs); the glow renderer path; and vendor/windows-link, the patched crate
only that build used. NOTICE, README and the living docs no longer describe it; dated
change-history rows are left as they were.
2026-10-28 17:57:17 -04:00
Dylan M. Taylor 484d25582c Merge remote-tracking branch 'origin/main' into pr-4299-ff 2026-10-28 17:20:12 -04:00
Dylan M. Taylor 86c81f21d2 Restore RTL Mojikumi condition, dropped layout comments and xtask root
- flow.rs: an opening bracket starting a wrapped line is set flush unless the paragraph is
  right to left, as before the split (it had become !vertical, so vertical text with
  LineEndHalf lost the flush and RTL paragraphs gained it). PlacementContext carries rtl.
- flow.rs, ruby.rs: put back the comments the split dropped (JLREQ, burasagari, Optical
  Margin Alignment, kashidas, ruby phases).
- xtask root(): the parent directory, not .../xtask/..
2026-10-28 17:20:12 -04:00
Dylan M. Taylor 12414aa9f6 Make PDF export comparison deterministic 2026-10-28 19:53:43 +00:00
Dylan M. Taylor 56804f6d7e packaging: honor CARGO_BUILD_TARGET in FreeBSD package.sh (#4487)
The shared release workflow cross-compiles FreeBSD aarch64 from an x86_64 VM by
setting CARGO_BUILD_TARGET. package.sh ignored it: it took the arch from uname -m
(the host, x86_64), read binaries from target/release, and ran the cross-built
binary to print its version. Pass --target, read from target/<triple>/release,
take the arch from the target, and skip the version run when cross-built.
2026-10-28 15:48:05 -04:00
Dylan M. Taylor f07afc992b Scope platform-specific imports 2026-10-28 18:18:29 +00:00
Dylan M. Taylor ed960ef1f1 Grant network access so update checks can reach GitHub (#4482) 2026-10-28 13:07:32 -04:00
Dylan M. Taylor e6da628e56 Simplify application integration tests 2026-10-28 16:44:19 +00:00
Dylan M. Taylor 55dddf6adf Extract UI event and rendering helpers 2026-10-28 16:44:17 +00:00
Dylan M. Taylor 0b821b3c54 Extract engine command and state helpers 2026-10-28 16:44:14 +00:00
Dylan M. Taylor 7043ef6f3d Extract geometry command helpers 2026-10-28 16:44:11 +00:00
Dylan M. Taylor 90ef99cb2c Simplify file import and export checks 2026-10-28 16:44:05 +00:00
Brandon ThomasandClaude Opus 5.5 68b68a30ac Release 0.18.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.18.0
2026-10-28 12:09:18 -04:00
Dylan M. Taylor 62588fd080 Separate selection tool pointer phases and clarify imports 2026-10-28 05:03:13 +00:00
Dylan M. Taylor 7e44df55a9 Make renderer and SVG module dependencies explicit 2026-10-28 05:03:00 +00:00
Dylan M. Taylor 317d270823 Clarify PDF import stages and module dependencies 2026-10-28 05:02:46 +00:00
Dylan M. Taylor 89d538e40c Separate metafile record parsing into focused handlers 2026-10-28 05:02:26 +00:00
Dylan M. Taylor a9e82efcf0 Clarify EPS import and interpreter stages for strict Clippy 2026-10-28 04:52:26 +00:00
Dylan M. Taylor e1bc6b235c Clarify effects dependencies and split parameter checks 2026-10-28 04:52:07 +00:00
aiongg 9997ff0215 ci: run the printps tests under their moved path and fail when none run (#4305)
The module layout moved tests_printps to tests::printps, so the print
workflow's filter matched nothing and the step passed with 0 tests.
2026-10-27 21:09:33 -04:00
aiongg 54c4f82638 Merge pull request #4295 from Jeremy8776/feat/install-scope-policy
Windows installation policy: VectorCraft
2026-10-27 17:16:50 -04:00
Jeremy ddf9845a27 test(installer): cover the compiled folder searches, resolver chains and wizard folder replay
The policy check now reads the compiled AppSearch and RegLocator rows for the
remembered-folder properties (registry root, key, value name and type for both
scopes) and runs the DIR, FOLDER, PATH and legacy exe actions in sequence order
against seeded values, so their precedence and the preset-folder guard cannot
regress. It also replays the wizard folder actions in sequence order (a
remembered folder beats the new-install default, a typed folder beats both) and
requires the machine restore action between the scope page and costing.
2026-10-27 21:13:29 +00:00
skylar taylor-barrick 0051b8af76 Merge pull request #3283 from el-j/fix/compound-path-pen-join
M2.1: allow Pen tool and path.join to continue, close, and join compound paths (#3274, #3276, #3379, #3380)
2026-10-27 15:13:15 -06:00