github storytold/vectorcraft v0.17.0
VectorCraft v0.17.0

2 hours ago

What's Changed

  • Brushes: one output budget across tracks, tiles and copies (#3594) by @saad-mughal435 in #3731
  • Docs: the Shape Builder parity line paraphrases the combine page by @dotCooCoo in #3679
  • G4: paragraph Auto Leading drives the Leading field, leading nudge and placeholder fill by @bflatastic in #3733
  • G4: hanging punctuation keeps its amounts under Glyph Scaling and burasagari by @bflatastic in #3736
  • Docs: the Shape Builder parity lines appear once each by @dotCooCoo in #3737
  • Cap the face count of a font collection in enumerate_faces by @Silvertree2010 in #3735
  • Plug-ins: heavy filters, allowed at install and run in the background (G17) by @KaboomFox in #3721
  • Docs: twelve parity doc lines describe the reference pages without quoting them by @dotCooCoo in #3743
  • Windows: a pen's barrel button is the right mouse button with Windows Ink by @dotCooCoo in #3738
  • G12: Constrain Angle for the arrow keys, Shift drags and new objects (#394) by @bflatastic in #3745
  • Type: OpenType SVG colour fonts draw and export as vector art by @lehni in #3741
  • Place: files are read and decoded on a background thread by @dotCooCoo in #3740
  • PDF import: keep one tracking value on letters whose file widths round off the installed font's advances by @Taha-Mahmoodi in #3742
  • Export for Screens: files are encoded and written on the background thread by @dotCooCoo in #3686
  • Restore render depth counters after a caught panic by @Silvertree2010 in #3749
  • Simplify: Object › Path › Simplify opens its slider at the Auto-Simplify level for the selection by @Taha-Mahmoodi in #3750
  • Artboards: Artboard Options shows a center mark and cross hairs on the canvas by @Taha-Mahmoodi in #3751
  • Fix #3705: pastes follow Draw Inside and Draw Behind, and Shift+D no longer sticks in Draw Behind by @Taha-Mahmoodi in #3752
  • PDF import: keep a line's glyphs on course when the file's widths are a little off the font's advances by @Taha-Mahmoodi in #3753
  • SVG: keep other applications' attributes from import to export by @KaboomFox in #3758
  • Cap the input of live Pathfinder effects by @Silvertree2010 in #3757
  • Make DXF import symbol-name uniquing linear by @Silvertree2010 in #3760
  • Linux: a tablet pen's pressure reaches the tools under X11 and XWayland by @dotCooCoo in #3761
  • Stop DXF hatch source-handle loop at first missing handle by @Silvertree2010 in #3762
  • Stop tiny DXF spline weights from splitting every span to the cap by @Silvertree2010 in #3763
  • Preserve supplied passwords when confirming Save PDF by @dylanmtaylor in #3836
  • packaging: use [[ for bash conditional tests (SonarCloud S7688) by @dylanmtaylor in https://github.com//pull/3853
  • Packaging: pin the signing client and appimagetool, and check their hashes by @aiongg in #3268
  • i18n: every catalog translates "PDF security settings are not an object" by @Taha-Mahmoodi in #3847
  • Raise undefinedresult for non-finite EPS arithmetic instead of panicking by @Silvertree2010 in #3771
  • Keep ASCII85 output from starting its first line with '%' by @Silvertree2010 in #3858
  • Fix quadratic PostScript search in the EPS importer by @Silvertree2010 in #3816
  • Charge PostScript filter output to the EPS interpreter budget by @Silvertree2010 in #3810
  • Charge and bound EPS image sample planes on import by @Silvertree2010 in #3821
  • Charge gstate and currentgstate path copies to the memory budget by @Silvertree2010 in #3822
  • Fix quadratic paper layout de-duplication in DXF import by @Silvertree2010 in #3754
  • Cap the total array insert copies in a DXF import by @Silvertree2010 in #3789
  • Bound DXF import work for nested inserts that produce no nodes by @Silvertree2010 in #3794
  • Cap path elements in DXF import across the whole file by @Silvertree2010 in #3800
  • Hash PDF page contents without caching a decoded copy per page by @Silvertree2010 in #3806
  • Share native-format entries naming the same bytes; cap copies at data by @Silvertree2010 in #3801
  • Render opacity masks over the masked object's bounds by @Silvertree2010 in #3777
  • Bound offscreen pixels kept alive by nested blending groups by @Silvertree2010 in #3776
  • Bring the window forward when Finder opens a file (#3769) by @MarekSpodBiedry in #3845
  • Type: a Ctrl/Cmd click away from the type being edited ends its edit by @marcoarnulfo in #3840
  • Panels: a double-click on a tab of a group beside another no longer reports an error by @marcoarnulfo in #3830
  • Panels: a double-click on the tab strip right of the tabs collapses the group by @marcoarnulfo in #3783
  • Threaded text: Convert To Point Type on a frame no longer duplicates its text by @dotCooCoo in #3827
  • Fix #3705: art drawn or pasted inside an isolated object in Draw Inside stays in isolation mode by @Taha-Mahmoodi in #3805
  • Fix #3766: correct stroke profile flip icons by @MiQ71 in #3798
  • Open and Place: a file read in the background waits for a busy tool only during a drag by @dotCooCoo in #3791
  • Simplify: with part of a path direct-selected, Object › Path › Simplify refits only the selected runs of segments by @Taha-Mahmoodi in #3814
  • Fix text spacing shortcuts for selected type by @MiQ71 in #3823
  • Render: live objects in symbol art and opacity masks keep their evaluations between frames by @dotCooCoo in #3795
  • Fonts: a family and style split from a PostScript name find the face once it is installed by @fortesnow in #3755
  • Type: SVG glyph documents follow the SVG table's coordinate rules by @lehni in #3804
  • Type: colour glyphs go with type that effects reshape and Expand Appearance by @lehni in #3803
  • SVG: type written as outlines stacks colour glyphs under their run's paint by @lehni in #3808
  • Font menu: Font Technology › Variable lists only variable font families by @Taha-Mahmoodi in #3813
  • Count Repeats inside symbol art toward the Repeat instance budget by @Silvertree2010 in #3788
  • Flatten transparent image pattern tiles in legacy .ai v7 export by @Silvertree2010 in #3770
  • i18n: missing translations never fail; xtask ci prints one report by @aiongg in #3856
  • i18n(fi): fix package-note spacing and a few Finnish labels by @Janiz-zzz in #3842
  • i18n(pl): "Wtyczki i dyski robocze", "Geometryczne linie pomocnicze" by @lewandowskit in #3775
  • Fix status-bar coordinates after changing the ruler origin by @haranishi in #2847
  • Pencil: Shift held at the press draws a straight line at 45° steps by @marcoarnulfo in #3846
  • Libraries panel: show items as icons or in a list by @danngreen in #3854
  • Pen tablets: a pen's eraser end selects the Eraser on Linux under X11 and XWayland by @dotCooCoo in #3778
  • feat: display point type baselines for node outlines and add hover test by @MajedAlaejem in #3834
  • Tools: double-clicking the Line Segment, Arc, Rectangular Grid and Polar Grid tools opens their Tool Options by @Taha-Mahmoodi in #3815
  • Artboards: Artboard Options shows video safe areas and sets the pixel aspect ratio that View › Rulers › Show Video Rulers counts the artboard in by @Taha-Mahmoodi in #3831
  • Pathfinder: Trap spreads the lighter colour into the darker as an overprinting strip where solid colours meet by @Taha-Mahmoodi in #3785
  • Smart Guides: Alt over another object or the artboard shows the selection's distances to it by @Taha-Mahmoodi in #3832
  • Type: selected type shows its in and out ports, and the in port threads backwards by @Taha-Mahmoodi in #3817
  • Symbols: Window › Symbol Libraries opens symbol libraries whose symbols click into the document's Symbols by @Taha-Mahmoodi in #3833
  • Type: the Paragraph panel's Bullets button turns paragraphs into a bulleted list by @dotCooCoo in #3780
  • Select: Start Global Edit edits the objects of the same shape together, each in proportion by @Taha-Mahmoodi in #3781
  • Docs: one ranked-table row each for G2 and G13 in gaps.md by @bflatastic in #3874
  • ci(sonar): stop cancelling main-branch runs so coverage is published by @dylanmtaylor in #3881
  • Reject signed hex digits in XML-ID xHH escapes by @Silvertree2010 in #3860
  • Fix false font fallback misses during concurrent loading by @FractalEncrypt in #3861
  • Type: colour glyphs keep each fill's own colour, also between colours that look alike by @lehni in #3866
  • Actions: Create New Set and Set Options… name action sets, and a recording goes into the current set (#3712) by @marcoarnulfo in #3863
  • Import: an Illustrator gradient mesh comes in as one connected mesh by @ham9zah in #3811
  • fix(stroke): preserve extended dash patterns when editing (#3497) by @Zaxaerith in #3513
  • Export for Screens: a document row for an artboard keeps only that artboard's art (#3868) by @bflatastic in #3875
  • Type: tests pin colour glyphs in variable fonts, on paths and on the canvas by @lehni in #3873
  • SVG: a Preserve Editing SVG reopened from disk saves as the full document again (#3867) by @bflatastic in #3876
  • Security: SVG import and export bounds (entity expansion, filter stacks, id probing, font feature tags) by @dylanmtaylor in #3877
  • Security: geometry, path edit and tool work bounds by @dylanmtaylor in #3882
  • Type: emoji go with type that effects reshape and Expand Appearance by @lehni in #3879
  • Fix #3716: a click near an anchor selects without moving the object by @mercuryVM in #3885
  • Security: DXF export bounds (layer and style names, flattening, entity count, image size) and import dash patterns by @dylanmtaylor in #3886
  • Security: Scribble rows, Outer Glow dilation and CSS export names by @dylanmtaylor in #3889
  • Security: export names, linked-file ids, MCP prompt arguments and image encoders by @dylanmtaylor in #3890
  • Security: PDF import, print and export bounds; PDF 1.3 encryption notes by @dylanmtaylor in #3884
  • Renderer: colour caches key colours with Color::key by @lehni in #3894
  • Fix #3724: Window › New Window is greyed out until it opens a window by @mercuryVM in #3892
  • Links: resolve stored paths with craft-docpath's resolve_absolute by @aiongg in #3267
  • EPS tests: budget tests wait 120 s for the program to stop by @aiongg in #3891
  • SVG export: type with small capitals, superscript, subscript or tab leaders is written as outlines (#3869) by @bflatastic in #3896
  • G12: ruler guides nudged with art keep to the page's axes at a turned Constrain Angle by @bflatastic in #3898
  • Fix clipboard read-policy bypass and FULL lock held during checks (audit automation roots) by @dylanmtaylor in #3897
  • Pathfinder Outline: junctions a hair apart are one cut, so no sliver path is left (#3870) by @bflatastic in #3899
  • EMF and WMF export: say when type is written as outlines and pattern fills as their tiles (#3850) by @bflatastic in #3902
  • Tests: engine tests that add fonts to the shared font database take one lock by @bflatastic in #3906
  • PDF export: pattern fills are written as tiling patterns (#3849) by @bflatastic in #3905
  • Reject a leading plus sign in page range numbers by @Silvertree2010 in #3904
  • Type: images in SVG glyph documents draw with the glyph by @lehni in #3908
  • M2.1: prevent click-through on open path fills and support segment toggle (#3405) by @el-j in #3907
  • Tests: native-menu tests count menu reads only in runs no other test disturbed by @bflatastic in #3914
  • Type: SVG glyphs leave out images of SVG documents by @lehni in #3916
  • Fix #3828: New Document › Branding offers Business Card 91 × 55 mm by @Taha-Mahmoodi in #3917
  • Type: an SVG glyph's image is an SVG image by its plain href first by @lehni in #3918
  • Fix #3586: the PDF pre-open scan reads a file dense with stream keywords in linear time by @Taha-Mahmoodi in #3919
  • Fix #3920: a family another thread is loading is found whole, so fallback text never takes the style of its first file by @Taha-Mahmoodi in #3921
  • CI: shared gate workflow; FreeBSD nightly and on release by @aiongg in #3772
  • G11: Shape Builder pieces: contract the sweep's stubs between two cuts of one path by @bflatastic in #3923
  • CI: one test binary per crate, nextest, line tables only by @aiongg in #3855
  • Security: Image Trace bounds (mosaic, raster length overflow, auto grouping, stroke tracing) by @dylanmtaylor in #3878
  • Security: private temp paths for the signing certificate and test output; web font licences stay inside the checkout by @dylanmtaylor in #3871
  • Security: text layout, shaping, font name and embedding bounds by @dylanmtaylor in #3880
  • .ai import: an image too large for the editing data's reader opens the file as its PDF part, not with a blank layer (#1479) by @bflatastic in #3927
  • ci: move release workflow write permission to job level (SonarCloud S8233) by @dylanmtaylor in #3928
  • chore(text): use is_some_and instead of unnecessary map_or (clippy) by @dylanmtaylor in #3929
  • Main's CI: an unnecessary map_or, testkit's Unix-only mut, and a shared temp-dir probe by @bflatastic in #3935
  • macOS: a tablet pen's pressure reaches the tools (#852) by @bflatastic in #3932
  • Security: Affinity import and brush expansion bounds by @dylanmtaylor in #3887
  • style: keep paint.rs spot-colour chain under rustfmt's max width by @dylanmtaylor in #3940
  • Build: craft-pdf, hayro and krilla at craft-libs main by @aiongg in #3931
  • Build: craft-pdf at craft-libs 2eca9b3a, with hayro-postscript from craft-libs by @aiongg in #3957
  • Security: document model budgets for live art, clipping runs, placed documents, graph masks and path reading by @dylanmtaylor in #3939
  • Security: bounded flattening, plug-in budgets and caches, loaded textures, Revolve paint copies, color book and ICC names by @dylanmtaylor in #3936
  • Security: file authority for stored paths, linked files, placed documents, font folders, recovery areas and atomic saves by @dylanmtaylor in #3933
  • Security: linear work for shortcut review, gradients, recovery names, include cycles, batch references, DOCX styles, DXF layouts and long strokes by @dylanmtaylor in #3930
  • PDF import: the pre-open stream scan doesn't let a "stream" inside a literal string hide the real stream after it by @Taha-Mahmoodi in #3924
  • Match !important case-insensitively in SVG import CSS parser by @Silvertree2010 in #3983
  • Security: render and PDF export bounds for symbol expansion, dotted guides, blending groups and pinned images by @dylanmtaylor in #3938
  • Threaded text: Create Outlines and Expand on a frame no longer duplicate its text by @dotCooCoo in #3977
  • Save: a remembered artboard pick follows the artboards it named by @dotCooCoo in #3979
  • Fix #3964: Create Outlines, EPS, EMF/WMF and legacy .ai keep the ruby where the canvas draws it by @Taha-Mahmoodi in #3966
  • Fix #3799: Alt held at the press draws a straight Pencil line at any angle by @dotCooCoo in #3959
  • Print: landscape pages print upright on macOS print queues by @cmain in #3925
  • Image Trace: a filled traced path that straightens to no area is left out by @dotCooCoo in #3949
  • Select: Same commands for paint, appearance and shape select compound paths by @dotCooCoo in #3943
  • Recolor: recolor.colors and recolor.reduce read the art Select All takes when nothing is selected by @dotCooCoo in #3947
  • Image Trace: the semi-transparent edge of a cut-out image traces as the color beside it by @dotCooCoo in #3942
  • Image Trace: imageTrace.make refuses unknown keys inside params by @dotCooCoo in #3972
  • Image Trace: Auto Grouping looks up containing paths in a grid instead of testing every pair by @dotCooCoo in #3970
  • MCP: screenshot and render_preview draw edges as a PNG export does by @dotCooCoo in #3981
  • MCP: the file tools send paths made absolute against the server's working directory by @dotCooCoo in #3971
  • MCP: document.inspect and document.open report the File Info title as fileInfoTitle by @dotCooCoo in #3963
  • Render: brush art of symbol instances, inline graphics and repeat copies is kept between frames by @dotCooCoo in #3962
  • Render: an unchanged live object or effect art is not walked again for its resources by @dotCooCoo in #3934
  • Image Trace: a Preview checkbox chooses whether setting changes trace at once by @dotCooCoo in #3982
  • Find Objects: document.find filters by bounds, size and anchor count and can select the matches by @dotCooCoo in #3976
  • EPS: Use Artboards also writes a central file with every artboard by @dotCooCoo in #3958
  • Recolor: recolor.apply with a color group keeps art linked to the group's global swatches by @dotCooCoo in #3956
  • MCP: the trace-and-style prompt's steps run as written by @dotCooCoo in #3948
  • Slices: Lock Slices and Hide Slices deselect the slices and keep them deselected by @dotCooCoo in #2841
  • Dimension tool: Linear picks show and snap to Smart Guides by @vecteza in #3973
  • Open .ai files with their swatches (palette, colour groups, unused inks); Swatches panel keeps the art's swatch after deselecting by @fabian-co in #3941
  • Fix #3965: id works as ids of one with nothing selected wherever params take ids?|id? by @Taha-Mahmoodi in #3967
  • Arrange: a layer id given to Send to Back and the other selection commands is refused by @dotCooCoo in #3951
  • Pencil: the pointer shows a straight-line cursor while Shift or Alt is held before a press by @dotCooCoo in #3984
  • MCP: save_file against the running app waits for the save and reports its result by @dotCooCoo in #3969
  • PDF export: the hyphen that ends a hyphenated line is written as text by @dotCooCoo in #3988
  • Image Trace: pressing and holding the eye button shows the source image by @dotCooCoo in #3989
  • Native format: a document is saved pretty-printed only when its pretty-printed JSON is at most 1 MiB by @dotCooCoo in #3997
  • Type: the Numbered List button numbers paragraphs 1, 2, 3 by @dotCooCoo in #3960
  • Require four hex digits in DXF text \U+XXXX escape by @Silvertree2010 in #3986
  • Reject plus signs in logo palette hex parser by @Silvertree2010 in #3991
  • MCP docs: export and add_text each have one row by @dotCooCoo in #3998
  • Save: option errors name the save command that was run by @dotCooCoo in #3993
  • Properties: Blend Options, Merge Live Paint, Width Profile, an effect's Delete icon and Direct-Selected corners by @Taha-Mahmoodi in #3950
  • Image Trace: Flat Logo says when it traces a large image at a reduced size by @dotCooCoo in #3944
  • Image Trace: Flat Logo traces named colors a few levels off at the image's own size by @dotCooCoo in #3999
  • Image Trace: Flat Logo leaves out a traced outline that has no area by @dotCooCoo in #4003
  • Reject a leading plus sign in SOURCE_DATE_EPOCH by @Silvertree2010 in #4005
  • Docs: G11, G2 and parity tables drop missing items that shipped (Effect Gallery, Relative rounding, Hard/Soft Mix, #834, #937, #722) by @Taha-Mahmoodi in #4006
  • Fix #3621: function-based PDF shadings keep their colours instead of a flat grey by @pat26-dotcom in #3671
  • Image Trace: Flat Logo finds a bar two pixels wide in its own color by @dotCooCoo in #4008
  • MCP docs: start an installed app with the control port by @dotCooCoo in #4009
  • Renderer: character strokes are expanded once, not every frame by @lehni in #3996
  • Undo groups: an open undo group also groups the edits in a document opened or created before its end by @dotCooCoo in #4016
  • test(scriptcheck): table the held-value tests by @vangel76 in #4018
  • G11: Shape Builder's edge-source index is a grid, so diagonal hatches are no longer quadratic by @Ronfo2013 in #4021
  • MCP: each alias tool names its pair, and ui_screenshot takes max_side by @dotCooCoo in #4022
  • Keep the denominator of DXF MTEXT stacked fractions written with ^ by @Silvertree2010 in #4024
  • perf(scriptcheck): lex each file once, fewer copies by @vangel76 in #4019
  • refactor(scriptcheck): feature enums, split analyze.rs by @vangel76 in #4025
  • Keep escaped backslash literal before U+XXXX in DXF MTEXT by @Silvertree2010 in #4000
  • Control: requests are answered at full speed while the window is hidden on macOS by @dotCooCoo in #4026
  • Escape spaces before x and a separator in XML ids by @Silvertree2010 in #4027
  • fix(scriptcheck): same report with and without a loader for scripts without includes by @vangel76 in #4029
  • ci(deps): bump Swatinem/rust-cache from 2.9.2 to 2.9.3 in the actions group by @dependabot[bot] in #3812
  • Pencil: the closing cursor shows while a stroke is drawn back near its start by @dotCooCoo in #4002
  • Shape Builder: rebuild the region map for each document revision by @dotCooCoo in #4030
  • i18n(sv): translate 1 new string, use the agreed terms in 148 by @kler in #3421
  • Tests: the colour-font PDF test counts only text objects, not the random file ID by @echelon in #4034
  • Type: threaded frames do not repeat a continued paragraph's first-line indent or list marker by @dotCooCoo in #4031
  • MCP docs: wait for the app window before starting the client, and the full --connect error by @dotCooCoo in #4032
  • Shape Builder: a drag picks every region it crosses, however narrow by @dotCooCoo in #4035
  • Shape Builder: a line that ends inside a shape stays whole by @dotCooCoo in #4037
  • Threaded text: Flatten Transparency on a frame no longer duplicates its text by @dotCooCoo in #4039
  • Shape Builder: hover and Alt hover share one region map by @dotCooCoo in #4041
  • Shape Builder: uses a Live Paint group's filled faces and stroked edges by @dotCooCoo in #4042
  • Reject non-digit array indexes in batch step references by @Silvertree2010 in #4043
  • Require two hex digits in SVG href percent escapes by @Silvertree2010 in #4044
  • MCP: save_file takes the native save options compress, version and preview by @dotCooCoo in #3955
  • Renderer tests: the Arabic alternate-glyph tests take the font lock by @addibble in #4045
  • Shortcuts: use the shared craft-keymap crate for the catalogue, overrides, dispatch and .kys import by @aiongg in #3119

New Contributors

Full Changelog: v0.16.0...v0.17.0

Don't miss a new vectorcraft release

NewReleases is sending notifications on new releases.