While an envelope's contents are edited, the editing data keeps its mesh
in the envelope's dictionary. In some users' files that mesh lies away
from the drawn art by a plain move, the contents sitting with the drawn
art, as if the mesh hadn't followed the envelope when it moved. The
envelope then drew its contents elsewhere, failed the drawn-art check
and kept its drawn art. Nothing in the dictionary records the move, and
no envelope saved outside Edit Contents was found displaced.
A mesh or top object saved in Edit Contents (and a warp of type tried
on its saved grid) whose mesh draws the contents as large as the drawn
art, within half a point over width and height together, but further
from it than that, is now tried again after every other way, with one
more of the import's checks, its mesh moved by as far as the drawn
art's box lies from the box of what it draws. The drawn-art check, the
budget and the page comparison decide as before, so an envelope that
opened live before opens the same way.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
effect.deferredStatus only lists the document's deferred stages, so it joins reviewed::ALLOWED. effect.refreshDeferred runs plug-in effects again, so it joins reviewed::DENIED, which fixes every_command_is_reviewed.
The flattener limited an image's resolution only by its total pixels, while
the renderer draws at most 32,768 pixels a side. A long area, such as a narrow
see-through gradient strip down a 2 m banner at 1200 ppi, came back cut off
at that length and was placed as if whole, so the rest of the strip was lost
in Flatten Transparency and in PDF/X-1a, PDF/X-3 and PDF 1.3 exports. The
resolution is now also limited by the longest side, as raster effects are.
A merge left a second copy of the G9 `.ai`/EPS Missing bullet's opening inside the bullet. That copy says
writing the editing data is out of scope, while the same bullet and file-format-parity.md say a
PDF-compatible `.ai` carries an editing copy of the art. The bullet now has one copy, with the newer
brush wording that matches the 2026-11-05 entry above it.
The graph still stores an opacity or blend mode set on a series mark's row
that has no paint, as it does for transparency.set. The sentence now says
that such a row leaves only the stored paint unchanged.
When text.setGlyphAlternate leaves the text unchanged, it now reads
the glyph from the unchanged text. A character after the first in a run
that holds a glyph choice could be reported with its own glyph instead
of the ligature drawn for it, which text.glyphAlternates reports.
Pasted art whose svg.filter effect named one of the document's SVG filters
but drew another definition kept that name, so editing or deleting the
document's filter rewrote the pasted art's filter. Paste now renames such
a filter to a free name ("Soft 2") when the art comes from another
document or from SVG, and takes the document's filter when the art is
pasted back into the document it was copied from. Symbols, patterns,
brushes and graphic styles on the clipboard follow the same rule.
Category labels beside an axis and labels in pie wedges are centered
on their place by the default leading. A multi-line label that keeps
more leading or paragraph spacing ran down from that place instead.
The graph now puts the middle of such a label's first and last
baselines on its place.
#6090 moved the pinned window width in
the_control_bar_shows_the_paragraph_alignment_of_the_selected_type from
1440 to 1536 pt, since the bar's right end now keeps room for the panel
menu button. The progress line still named 1440 pt.
A dimension selected with the art it measures became a plain group of
paths and text when Object › Expand, Object › Expand Appearance or
Object › Path › Outline Stroke ran, so it no longer redrew when moved
or restyled.
These commands now leave such a dimension's lines and label as they
are, also inside selected groups without fills, strokes or effects of
their own, and change only the other art. The dimension keeps its
export assets and variable bindings. When the new art no longer fits
the dimension's link, for example because the outlined stroke has
other anchors, the dimension stays where it was, no longer linked, as
it does when its art is deleted. Undo links it again.
When the dimension is all the command would change, the command
changes nothing and reports the error it gives for a selection with
nothing to change. Object › Expand… is no longer dimmed for the label
of such a dimension. A dimension selected without the art it measures,
a part of one, and one inside a selected group with an appearance of
its own still become plain groups, and Type › Create Outlines still
outlines the label.
Docs: docs/dimensions.md, docs/mcp.md, docs/target-app-parity.md.
With no glyph choice left on the character, text.setGlyphAlternate
returned the font's default glyph for it: 0 for a character the font
lacks, which a fallback font draws, and the lowercase glyph for a
letter under All Caps. It now reports the glyph the character is drawn
with, as text.glyphAlternates does.
A <text> in a <clipPath> was dropped with a warning, so a clip path made
only of text had no content and the art it clipped was hidden. The
clipPath content model in CSS Masking Module Level 1 lists text and use
(https://www.w3.org/TR/css-masking-1/#ClipPathElement).
The importer now clips by the text's glyph outlines, together with any
shapes in the same clip path, and keeps clipPathUnits, the transforms,
clip-rule, visibility, the conditional processing attributes and a clip
path on the text. A <use> in a clip path that shows a text clips the
same way, placed by the <use>; a clip path on the <use> applies in the
<use>'s user space, and a reference goes to the first element with the
id. When the clip path holds only one visible text, with no clip path
of its own and no even-odd clip rule, the clipping path of the clip
group is the text object with no fill or stroke, the same structure
Make Clipping Mask produces for type. A text or a <use> with an id in a
clip path can still be shown by a <use> outside it. Each text's
outlines are laid out once, however many elements use the clip path.
A transform set by a style rule or a style attribute on a text now
places it, as it does a shape. Before, only the transform attribute was
read, inside and outside clip paths.
The bar's text buttons (Edit Path, Duplicate, Type on a Path Options and
the others) were painted labels on a click area with no accessible name,
so a screen reader announced them without one. Each button now reports
its label as a button, as the Home screen's file rows do.
The Dynamic symbols entry still said Edit Symbol expands the symbol's
own art. Since #5064, Edit Symbol opens symbol editing mode: every
instance stays linked and a dynamic symbol's instances keep their
changes for the objects the edited art still has.
The legend measured each label with System Layout off, while the graph
draws the labels with the document's setting. With System Layout on,
a long legend label could run over the next swatch in Legend Across
Top. The legend now measures labels with the same setting.
A window-close request while a script waits at its alert, confirm or
prompt opens the quit question over that dialog, and Cancel shows the
script's dialog again. When the run then ended another way (script.stop,
or the run finishing), the quit question stayed open, and Cancel showed
a dialog for a script that was no longer running.
The running-script poll now closes the quit question once the run ends,
and forgets the script's dialog under it once the run no longer waits at
that dialog.