presentation on the existing TEXT cell; the matrix and declarative action contract stay the same. Editing belongs in inputs or the message composer.
Choose a presentation
Omitting
presentation.kind preserves the ordinary TEXT renderer. A presentation does not execute arbitrary browser code, load a custom component or grant access to the referenced data.
Reader configuration
Copy and fullscreen are separate options. Ordinary TEXT retains its existing renderer defaults; explicit readers enable only the controls configured for their kind. A cell’s
height remains a cell field, outside presentation.
Isolated HTML
allowImages: true and the operator’s Load images choice. Changing the displayed message clears that choice. Do not interpret blocked images as an empty message or missing attachment. For cid: images, the authorized source supplies normalized lowercase content IDs in cidImages with fresh signed Storage URLs. Do not copy customer-provided URLs into that map.
The separate image reader displays its permitted source directly. Use it for deliberate images or screenshots, not unsolicited tracking images taken from email HTML. It accepts HTTPS URLs and base64 PNG/JPEG/GIF/WebP data URLs. fullscreen: true uses the image zoom surface.
Read-only code and structured summaries
The code reader supportsplaintext, json, html, css, javascript, typescript, markdown and sql. It displays source and never executes it:
data: {key: value} and display scalar labels. Lists use strings or records such as {id, label}; a record can also supply title. Give records stable IDs before enabling draggable. Reordering emits ordered string keys through on.change; it is local until the registered action saves the new order. Keyboard move-up/move-down controls provide the same operation as dragging.
Authorized file results
A TEXT attachment reader usespresentation: {kind: 'attachments'} and data records with key (or id), name, contentType, optional size, state and isInline. Bind on.rowClick to OPEN_FILE and pass an attachment identity to a registered read-only widgetTargets reader.
The reader must authorize the caller, the selected record relationship and Storage metadata before returning this shape:
The file target returns this object, not a cell matrix. Its configured result element selects the object in a multi-element Component. The host validates the signed-link shape and expiration, and uses one file panel with image/PDF preview where supported. Image zoom and download acquire fresh links through the authenticated Storage API. A URL found in customer HTML or a table row does not establish file permission.
For example, this action fragment belongs on an attachment cell after registering
attachmentReader:

