diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e40fe1..5a55a4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,25 @@ skip versions are the composition of each intervening adjacent release's steps in order — no A-to-B path is pre-computed beyond that. +## 0.2.2 — 2026-05-26 + +**Patch — no operator action required.** Rebuild the frontend and +restart per the routine deploy steps; no `.env` changes, no schema +changes, no behavior changes a deployment would notice in steady +state beyond the fix below. + +### Fixed + +- **Mermaid blocks rendered as raw code on `/philosophy`.** + `frontend/src/components/Philosophy.jsx` parsed PHILOSOPHY.md with + the bare `marked` import and `dangerouslySetInnerHTML`, so + ```` ```mermaid ```` fences fell through as `
` blocks rather
+  than rendered diagrams. Swapped to `MarkdownPreview`, which already
+  carries the lazy mermaid loader + SVG render path used by the RFC
+  body view, so the philosophy surface now renders mermaid the same
+  way RFC bodies do. Pre-existing gap, surfaced when a deployment
+  authored a mermaid block in its `PHILOSOPHY_PATH` override.
+
 ## 0.2.1 — 2026-05-26
 
 **Patch — no operator action required.** Rebuild the frontend and
diff --git a/VERSION b/VERSION
index 0c62199..ee1372d 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.2.1
+0.2.2
diff --git a/frontend/package.json b/frontend/package.json
index fa730fe..6358a52 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,7 +1,7 @@
 {
   "name": "rfc-app-frontend",
   "private": true,
-  "version": "0.2.1",
+  "version": "0.2.2",
   "type": "module",
   "scripts": {
     "dev": "vite",
diff --git a/frontend/src/components/Philosophy.jsx b/frontend/src/components/Philosophy.jsx
index 0c364ec..6675511 100644
--- a/frontend/src/components/Philosophy.jsx
+++ b/frontend/src/components/Philosophy.jsx
@@ -15,7 +15,7 @@
 
 import { useEffect, useState } from 'react'
 import { Link, useNavigate } from 'react-router-dom'
-import { marked } from 'marked'
+import MarkdownPreview from './MarkdownPreview.jsx'
 import { getPhilosophy } from '../api.js'
 
 export default function Philosophy({ authenticated }) {
@@ -33,8 +33,6 @@ export default function Philosophy({ authenticated }) {
     return () => { active = false }
   }, [])
 
-  const html = body ? marked.parse(body) : ''
-
   return (
     
@@ -53,7 +51,7 @@ export default function Philosophy({ authenticated }) { {loading &&

Loading…

} {error &&

Could not load the philosophy: {error}

} {!loading && !error && ( -
+ )}