Files
computer-playbook/docs/contributing/design
kevinveenbirkenbachandClaude Opus 5 d937f23863 feat(web-app-discourse): render mermaid fences as diagrams
Discourse ships no mermaid plugin: the repository that name suggests does not exist, the one third-party plugin carrying it is archived, and the maintained artefact is discourse/discourse-mermaid-theme-component. A theme component installs through RemoteTheme.import_theme rather than a clone into the plugins directory, which the addon contract had no word for, so mechanism gains the value theme and the launcher config only clones addons whose mechanism is plugin.

The component is imported idempotently by remote_url, enabled, and attached as a child of the default theme; the task reads all four properties back and fails when one is missing, because a component that is installed but unattached leaves a fence rendering as plain source.

Unlike the neighbouring addons this one is pinned off in variant 1 instead of carrying the addons-variant-pinning waiver: their reason is that a plugin compiled into the image costs nothing to disable, which does not hold for an install step that runs after the deploy.

The Playwright spec publishes a topic through the session API and asserts the rendered result. It polls the text content of the post's SVGs rather than inspecting <text> nodes: current mermaid places labels in foreignObject HTML, and SVG nodes expose no innerText, so both narrower reads come back empty on a diagram that rendered correctly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-03 21:12:11 +02:00
..

Design 🎨

This directory contains contributor guidance for code design and implementation. Its scope is architecture, service wiring, coding principles, exceptions, and the boundaries that shape maintainable changes.