security(transcripts): sanitize markdown through DOMPurify
Route every marked.parse() call in apps/transcripts/workspace.html
through a DOMPurify.sanitize() step via a local renderMarkdown()
helper. Model-emitted markdown (talent .md tabs, screen-activity
chunk descriptions, enhanced-frame descriptions) could previously
inject script/event-handler attributes into the DOM when parsed.
Vendors DOMPurify v3.4.0 under convey/static/vendor/dompurify/ and
loads it alongside marked. Default DOMPurify config is sufficient:
strips <script>, on* handlers, and javascript: URLs.
Out of scope: the same class of vulnerability in apps/import,
apps/activities, apps/home, apps/sol (already has a local wrapper)
— tracked as a follow-up lode.