9e95412695
Нормализация чужого markdown (GFM reference-сноски [^id] -> инлайн ^[body], срез ведущего YAML front-matter) жила только в apps/server, поэтому MCP-путь записи страницы (updatePageMarkdown -> markdownToProseMirrorCanonical) тот же ввод обрабатывал ИНАЧЕ, чем серверный импорт: front-matter и [^id] утекали как литеральный текст / битая ссылка. Перенёс normalizeForeignMarkdown в @docmost/prosemirror-markdown и вызвал его первым шагом в MCP markdownToProseMirrorCanonical — теперь агентский updatePageMarkdown нормализуется точно как серверный импорт. Серверные импортёры (import.service, file-import-task.service, page.service) берут функцию из пакета. Тест-корпус перенесён в пакет (foreign-markdown.test.ts). Проверено: пакет (17 тестов corpus) + весь MCP unit-suite (685) зелёные, включая reference-footnote/fence-кейсы на canonical-пути. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>