docs/plans/2026-03-24-non-react-coverage-roadmap.md
Freeze the remaining high-ROI non-React coverage work into one stable roadmap so future passes update status instead of inventing a new "next batch" every time.
>= 5 from 2026-03-24-coverage-priority-files-testing-review-non-react-refresh.tsv.done, removed, or deferred. Do not reshuffle the whole roadmap unless:
[done] 8 resolvePlugin.ts[done] 7 resolvePlugins.ts[done] 6 deserializeHtmlNode.ts[done] 6 AutoformatPlugin.ts[done] 6 withNormalizeTable.ts[done] 6 withNormalizeList.ts[done] 6 splitIncompleteMdx.ts[done] 6 deserializeInlineMd.ts[done] 6 pipeNormalizeInitialValue.ts[done] 5 withApplyTable.ts[done] 5 withInsertFragmentList.ts[done] 5 getSelectedCellsBorders.ts[done] 5 withList.ts[done] 5 transformDiffTexts.ts[done] 5 upsertLink.ts[done] 5 convertNodesSerialize.ts[done] 5 customMdxDeserialize.ts[done] 5 setBorderSize.ts[done] 5 pluginDeserializeHtml.ts[done] 5 isEditOnlyDisabled.ts[done] 5 insertTodoListItem.ts[done] 5 moveSelectionFromCell.ts[done] 5 transformDiffDescendants.ts[done] 5 deleteSuggestion.ts[done] 5 deleteText.ts[done] 5 insertCodeBlock.ts[done] 5 unwrapList.ts[done] 5 markdownToSlateNodesSafely.ts[done] 6 BaseCalloutPlugin.ts[done] 5 importDocx.ts[done] 5 html-to-docx.ts[done] 5 BaseYjsPlugin.ts[done] 5 BaseCodeBlockPlugin.ts[done] 5 BaseCommentPlugin.ts[done] 5 BaseTextAlignPlugin.ts[done] 5 EmojiFloatingIndexSearch.ts[done] 5 callOrReturn.ts[done] 5 deserializeCsv.ts[deferred] 8 getSelectedDomFragment.tsx
Reason: real seam, but DOM-heavy enough that it belongs after the pure plugin and parser contracts.[deferred] 5 SlatePlugin.ts
Reason: giant architecture slab. Better handled in the architecture-safety phase than by blunt coverage chasing.[deferred] 5 BasePlugin.ts
Reason: same story. Huge base-class surface, bad ROI for the current phase.[deferred] 5 plate-types.ts
Reason: type-heavy utility bag. Raw score is inflated by missing lcov, not by likely regression value.[deferred] 5 SlateEditor.ts
Reason: core editor slab. Save it for the architecture pass.[deferred] 5 font-table.ts
Reason: schema boilerplate, not a sharp behavioral seam.[deferred] 5 node-entry.ts
Reason: interface contract file, weak ROI for runtime unit tests.[deferred] 5 legacy-editor.ts
Reason: interface-oriented, not where regressions will hide first.[deferred] 5 editor-type.ts
Reason: same.[deferred] 5 mdast.ts
Reason: type or bridge surface, not worth dedicated coverage theater.[deferred] 5 content-types.ts
Reason: schema boilerplate.[deferred] 5 settings.ts
Reason: schema boilerplate.[deferred] 5 BaseExcalidrawPlugin.ts
Reason: thin plugin wrapper. Real enough, but weaker than the Tier 2 seams.[deferred] 5 ViewPlugin.ts
Reason: thin static plugin wrapper.[done]. Do not remove it.[removed] with a one-line note.[deferred] with a reason.