bflatastic
62333a2128
DXF export: the far-coordinate check compares with partial_cmp (also refuses NaN; clippy)
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
4b8e69981e
Audit: PDF import and export bounds
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
9843d5f1ab
Audit: export names, linked-file ids and MCP prompt arguments in one pass
2026-10-24 04:49:07 +07:00
Dylan M. Taylor
e3223a419d
Audit: Scribble rows counted, Outer Glow dilation in linear time, CSS export names in a set
2026-10-24 04:49:07 +07:00
bflatastic
711b10ca59
Security: DXF export bounds (layer and style names, flattening, entity count, image size) and import dash patterns
...
Squashed from #3886 onto main.
2026-10-24 04:49:07 +07:00
bflatastic
c2ad9f8bbb
Type: emoji go with type that effects reshape and Expand Appearance
...
Squashed from #3879 onto main.
2026-10-24 04:49:06 +07:00
BFlat
94e1fa3ecc
Merge pull request #3882 from dylanmtaylor/fix/audit-geom-pathops
...
Security: geometry, path edit and tool work bounds
2026-10-24 04:48:28 +07:00
bflatastic
0ecef703ef
Security: cap the perspective grid's line-loop bounds at 121 a way
2026-10-24 04:34:18 +07:00
Dylan M. Taylor
1bb904c147
Audit: Perspective Grid lines counted not summed; Liquify subdivision stays under its anchor ceiling
2026-10-24 04:13:37 +07:00
Dylan M. Taylor
aa160b969b
Audit: path edit work bounds (redundant points in one pass, simplify and join budgets)
2026-10-24 04:13:36 +07:00
Dylan M. Taylor
f4a30c1a94
Audit: geometry length measurement refuses coordinates the integrator cannot handle
2026-10-24 04:13:36 +07:00
BFlat
b0f7c5a65a
Merge pull request #3877 from dylanmtaylor/fix/audit-svg-limits
...
Security: SVG import and export bounds (entity expansion, filter stacks, id probing, font feature tags)
2026-10-24 04:12:17 +07:00
BFlat
e749cde3f5
Merge pull request #3876 from storytold/fix/3867-preserve-editing-svg
...
SVG: a Preserve Editing SVG reopened from disk saves as the full document again (#3867 )
2026-10-24 04:12:02 +07:00
BFlat
6acc5ffb28
Merge pull request #3873 from lehni/chore/colour-glyph-tests
...
Type: tests pin colour glyphs in variable fonts, on paths and on the canvas
2026-10-24 04:11:47 +07:00
BFlat
993a277563
Merge pull request #3875 from storytold/fix/3868-screens-one-artboard
...
Export for Screens: a document row for an artboard keeps only that artboard's art (#3868 )
2026-10-24 04:11:32 +07:00
BFlat
2ddf692805
Merge pull request #3513 from Zaxaerith/fix/3497-dash-pattern-preservation
...
fix(stroke): preserve extended dash patterns when editing (#3497 )
2026-10-24 04:11:17 +07:00
BFlat
a18a4c94a3
Merge pull request #3811 from ham9zah/fix/ai-gradient-mesh-one-grid
...
Import: an Illustrator gradient mesh comes in as one connected mesh
2026-10-24 04:11:02 +07:00
BFlat
6abe5ab8cd
Merge pull request #3863 from marcoarnulfo/feat/action-sets
...
Actions: Create New Set and Set Options… name action sets, and a recording goes into the current set (#3712 )
2026-10-24 04:10:45 +07:00
BFlat
586d6b4e87
Merge pull request #3866 from lehni/fix/colour-glyph-cache-key
...
Type: colour glyphs keep each fill's own colour, also between colours that look alike
2026-10-24 04:10:30 +07:00
BFlat
c6a7962388
Merge pull request #3861 from FractalEncrypt/fix/ruby-font-fallback-stability
...
Fix false font fallback misses during concurrent loading
2026-10-24 04:10:14 +07:00
BFlat
583117a408
Merge pull request #3860 from Silvertree2010/fix/h1829-xml-id-unescape-accepts-a-sign-i
...
Reject signed hex digits in XML-ID _xHH_ escapes
2026-10-24 04:10:00 +07:00
bflatastic
9827bfbcbb
SVG import: the shared appearance needs no conversion (clippy)
2026-10-24 03:52:24 +07:00
bflatastic
8e8aaa8683
SVG: a Preserve Editing SVG reopened from disk saves as the full document again ( #3867 )
2026-10-24 03:52:24 +07:00
bflatastic
d9e524df30
SVG entity scan: look for a reference's ';' no further than the longest name
2026-10-24 03:52:24 +07:00
Dylan M. Taylor
98d11ad66b
Audit: cap SVG entity expansion, filter layer stacks and export id/companion probing; share compound-path appearances; escape-proof font feature tags
2026-10-24 03:52:24 +07:00
Jürg Lehni
e372d00cb7
Type: tests pin colour glyphs in variable fonts, on paths and on the canvas
...
A variable font's COLR layers follow its instance, a colour glyph turns with type on a path, and the canvas draws an SVG glyph's art in its own colours and the type's fill.
2026-10-24 03:52:23 +07:00
bflatastic
9f1a001a2b
Export for Screens: a per-artboard EPS takes the artboard as its page, so an empty artboard still writes
2026-10-24 03:52:22 +07:00
Zaxaerith
9985d587f7
fix(stroke): preserve extended dash patterns ( #3497 )
2026-10-24 03:52:22 +07:00
bflatastic
d81145aee3
Artboard documents keep objects without measurable bounds (type in a missing font)
2026-10-24 03:52:22 +07:00
bflatastic
60107cd33a
Export for Screens: a document row for an artboard keeps only that artboard's art ( #3868 )
2026-10-24 03:52:22 +07:00
ham9zah
1653790965
Import: an Illustrator gradient mesh comes in as one connected mesh
...
The editing data writes a gradient mesh as its patches, each with its
place in the grid (`/P`) and the grid's size (`/Size`); the importer
read each patch as a mesh of its own, in a group, so moving a mesh
point tore a patch away and left a hole, and a patch with anchors on
its edges was cut into cells on its own.
The patches are now placed by `/P` in the `/Size` grid and joined at
the corners they share into one GradientMesh. Which index of `/P` runs
along the columns is taken from the one under which the shared corners
meet. Where an edge bends through anchors, a mesh line runs through the
whole row or column of patches there, each patch cut at the same place,
so every cell keeps single-cubic edges. A mesh whose patches don't say
where they are reads as before; one whose patches fill the grid but
don't join up reads as before with a warning. Sizes and lines are
capped; non-finite values fall back.
Hand-written tests: a 2 x 2 grid as one mesh with the old patches'
colours, a moved inner point shared by its four cells, an anchor on a
shared edge adding a line through the mesh, a collapsed patch with
finite values, and unplaced or unjoined patches staying separate.
2026-10-24 03:52:21 +07:00
Marco Arnulfo
d0919ad0df
Actions: Create New Set and Set Options… name action sets, and a recording goes into the current set ( #3712 )
2026-10-24 03:52:20 +07:00
Jürg Lehni
7efd8f941a
Type: colour glyphs keep each fill's own colour, also between colours that look alike
...
The colour glyph cache keyed the text's colours by their 8-bit RGB look, so a fill that only looked like an earlier one (a grey and the same RGB grey, a spot colour and its process match) took that one's colour, and its separations. It now keys them exactly.
2026-10-24 03:52:15 +07:00
FractalEncrypt
25abd1f472
text: recheck concurrently loaded fallback faces
...
A system fallback search can add no new face because another lookup loaded it
first. Re-read the loaded faces regardless of the search's return value, so
concurrent first use does not produce a missing glyph and different advances.
Add an isolated generated-font regression with simultaneous cold lookups.
The original code missed 14 of 16 lookups; the fixed regression passed twenty
runs. Both previously failing Ruby tests pass unchanged.
Validation: Rust 1.98.1 cargo xtask ci, all 10 gates passed; workspace tests
9,635 passed, 0 failed, 14 ignored. Default Rust toolchain unchanged.
2026-10-24 03:52:15 +07:00
NetterSilver and Claude Haiku 5.5
add5e1e7dd
Reject signed hex digits in XML-ID _xHH_ escapes
...
Found while testing crates/doc/src/xml_id.rs:80 (escaped)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 03:52:14 +07:00
Dylan M. Taylor
c4fba30b9c
ci(sonar): don't cancel superseded runs on main, so coverage is published ( #3881 )
2026-10-23 16:51:11 -04:00
BFlat
902abf0242
Merge pull request #3874 from storytold/docs/gaps-dedupe
...
Docs: one ranked-table row each for G2 and G13 in gaps.md
2026-10-24 03:32:28 +07:00
bflatastic
255ce30103
Docs: one ranked-table row each for G2 and G13 in gaps.md
2026-10-24 03:31:54 +07:00
BFlat
f6c716839e
Merge pull request #3781 from Taha-Mahmoodi/feat/start-global-edit
...
Select: Start Global Edit edits the objects of the same shape together, each in proportion
2026-10-24 03:13:36 +07:00
BFlat
a16489256b
Merge pull request #3780 from dotCooCoo/feat/paragraph-bullets
...
Type: the Paragraph panel's Bullets button turns paragraphs into a bulleted list
2026-10-24 03:13:19 +07:00
BFlat
7f57a3a3f5
Merge pull request #3833 from Taha-Mahmoodi/feat/symbol-libraries
...
Symbols: Window › Symbol Libraries opens symbol libraries whose symbols click into the document's Symbols
2026-10-24 03:13:01 +07:00
BFlat
7d7af6b952
Merge pull request #3817 from Taha-Mahmoodi/feat/2572-thread-ports
...
Type: selected type shows its in and out ports, and the in port threads backwards
2026-10-24 03:12:44 +07:00
BFlat
629a4c528e
Merge pull request #3832 from Taha-Mahmoodi/feat/distance-guides
...
Smart Guides: Alt over another object or the artboard shows the selection's distances to it
2026-10-24 03:12:28 +07:00
BFlat
b5df562df7
Merge pull request #3785 from Taha-Mahmoodi/feat/pathfinder-trap
...
Pathfinder: Trap spreads the lighter colour into the darker as an overprinting strip where solid colours meet
2026-10-24 03:12:10 +07:00
BFlat
b3f5b6c7a4
Merge pull request #3831 from Taha-Mahmoodi/feat/artboard-video-display
...
Artboards: Artboard Options shows video safe areas and sets the pixel aspect ratio that View › Rulers › Show Video Rulers counts the artboard in
2026-10-24 03:11:53 +07:00
BFlat
0f493464c0
Merge pull request #3815 from Taha-Mahmoodi/feat/2691-grid-arc-tool-options
...
Tools: double-clicking the Line Segment, Arc, Rectangular Grid and Polar Grid tools opens their Tool Options
2026-10-24 03:11:37 +07:00
BFlat
408ed5441c
Merge pull request #3834 from MajedAlaejem/fix-select-text
...
feat: display point type baselines for node outlines and add hover test
2026-10-24 03:11:19 +07:00
BFlat
313ee822a5
Merge pull request #3778 from dotCooCoo/feat/pen-eraser-end-linux
...
Pen tablets: a pen's eraser end selects the Eraser on Linux under X11 and XWayland
2026-10-24 03:11:01 +07:00
BFlat
92898e5a73
Merge pull request #3854 from danngreen/feat/library-list-view
...
PR title: Libraries panel: show items as icons or in a list
2026-10-24 03:10:44 +07:00
BFlat
92d7937305
Merge pull request #3846 from marcoarnulfo/feat/pencil-shift-straight
...
Pencil: Shift held at the press draws a straight line at 45° steps
2026-10-24 03:10:26 +07:00