Two observations about the markdown editor: (1) Rich mode should be the default for markdown files; (2) opening a file in Rich mode sometimes altered the markdown slightly — the yellow dot said there were unsaved changes before anything was typed.
Done 2026-09-21. (1) editor.markdown_rich (Settings → Editor → Open markdown files in Rich mode, default on; .moonkale/settings.json or the user file can turn it off) decides the mode a markdown document opens in; the Source | Rich buttons still switch, and a choice made by hand sticks for that document in that window. (2) The false dirty flag came from Milkdown’s parse → serialize round trip at load — remark normalises bullets, escapes and blank lines and reported the normalised text as a change. The bundle now keeps that normalised text as the baseline (entry.last after crepe.create(), with change reporting suppressed during the load) and reports only real edits; the file is rewritten in the normalised form only once the user changed something, which is the existing “the markdown is what gets saved” rule. Verified by rich.mjs: a file with * bullets and a setext heading opens in Rich mode with no dirty dot; typing then sets it. packages/js/milkdown/src/index.ts, editors/markdown/src/extension.rs, ext-api/src/settings.rs.