Files
vectorcraft/crates
dotCooCoo 56cbdbb09c MCP: SVG output under read roots refuses to name a linked image file outside them
With automation read roots in force, an SVG or SVGZ that would name a
linked image's file outside them is refused before any file, folder or
reply is written, with "a linked image file is outside the read roots",
which names no file or folder. An <image> names the file with
images: link, and with embed when the document holds no pixels for the
image. With preserveEditing, the native document the SVG carries names
every linked image and placed file, the relative paths kept of them and
each data set's image, so those are checked too, and a stored brush
entry that does not read as a brush is refused because its links cannot
be checked.

- The check runs where the linked JavaScript check runs:
  document.serialize, document.export, document.exportSelection,
  document.exportForScreens and assets.export, every SVG and SVGZ save,
  file.exportAs and the SVG Options dialog's Show Code. It also covers
  clipboard.exportSvg, and a Copy that an automation request asks for
  puts no SVG on the system clipboard when it would name such a file.
- Only the art each file writes is checked: the selected objects with
  selectedOnly and Export Selection, the art over each chosen artboard,
  hidden layers and objects only when hiddenLayers is on (a save keeps
  them by default), never template layers or the symbol or opacity-mask
  editing layer, and the symbols, patterns and brushes that art uses.
  An image colorized with a solid fill whose pixels are gray or missing
  names no file, so it is not checked outside Preserve Editing.
- Embedded pixels, a file inside the roots, a relative path that leads
  inside them and a URL are written as before, and the person at the
  keyboard exports every link as stored.

Docs: docs/mcp.md, docs/target-app-parity.md and the params text; de
and nl rows for the new message, next to the JavaScript message's rows.
2026-11-14 11:11:20 -08:00
..