develop
fix: preserve empty task list items when parsing markdown (#4696)
fix(muya): absorb a manually typed closing markdown marker after text (#4602)
fix(muya): delete whole image on backspace (inline, raw html, reference) (#4478)
fix(muya): guard checkNeedRender against a null cursor (#4588)
fix(muya): take the list marker from a line start in _convertToList (#2429) (#4651)
fix(muya): apply inline format across paragraphs nested in one blockquote (#3462) (#4661)
test(muya): backfill engine-unit coverage for audited gaps (#4508)
refactor(muya): rename selection enum members to UPPER_SNAKE_CASE (#4531)
refactor(muya): enforce `_` prefix for private members via lint (#4535)
test(muya): backfill engine unit coverage for post-migration gaps (#4589)
fix(muya): exclude selection whitespace when applying inline format (#4762)
test(muya): poll for the html_tag mount instead of waiting a single frame (#4607)
fix(muya): self-close generated <img> tags for JSX/MDX compatibility (#4766)
fix(muya): leave Tab to the IME during composition (#4753)
fix: wrap selected text when typing auto-pair characters (#4698)
fix(muya): use the correct setext heading level when typing the underline (#4591)