CnRoadmapItem
Single roadmap card. Renders one GitHub issue: title (links to html_url in a
new tab), submitter avatar + login, reaction count, relative created time,
sanitized markdown body, and filtered label chips.
Security
- Markdown body flows through
cnRenderMarkdown()→DOMPurify.sanitize()using the exportedSAFE_MARKDOWN_DOMPURIFY_CONFIG.v-htmlis bound ONLY on the sanitized output; rawitem.bodyis never templated. - Label chips are filtered through
ROADMAP_LABEL_BLOCKLISTso hydra workflow labels (build:queued,code-review:running, etc.) never appear in the UI. - External links use
target="_blank" rel="noopener noreferrer".
Reference
- Spec:
openspec/changes/add-features-roadmap-menu/specs/features-roadmap-component/spec.md→ Requirement "CnRoadmapItem" - Implementation: src/components/CnRoadmapItem/CnRoadmapItem.vue
- Related utilities: SAFE_MARKDOWN_DOMPURIFY_CONFIG, ROADMAP_LABEL_BLOCKLIST