appendTransaction 用 replaceWith 整段替换 bulletList→taskList,ProseMirror 的 选区映射无法把原 listItem 内的光标正确映射到新 taskItem 内,默认落到替换 区域之后(下一行)。 显式用 TextSelection.near 把光标设到命中的 taskItem 段落文本末尾: 按命中项在 newItems 中的索引 + 段落文本长度算出目标 pos。 新增光标位置断言(selection.from === 3,即 doc>taskList>taskItem>paragraph 内)。