Build package / php-lint (8.2) (push) Successful in 1m46s
Build package / php-lint (8.3) (push) Successful in 47s
Build package / php-lint (8.4) (push) Successful in 38s
Build package / xml-lint (push) Successful in 17s
Build package / unit-tests (push) Successful in 45s
Build package / package (push) Successful in 1m4s
The mail named the card and the workflow but not what the card is about, which meant opening Deck to know whether the move mattered. The description is escaped explicitly: addBodyText() only calls htmlspecialchars() when it has to derive the plain-text part itself, and we pass both parts to get line breaks in the HTML body -- so escaping user input is on us. Long descriptions are cut at 2000 characters. Deck stores the description as Markdown; it is sent unrendered rather than pulling in a parser for one mail.