b66929714f
Ревью #493 (HIGH): escapeLeadingBlockTrigger применялся к всему результату renderInlineChildren один раз, а регэкспы якорены на ^ без флага m → защищалась только ПЕРВАЯ строка. hardBreak сериализуется как ` \n`, поэтому триггер на строке-продолжении не экранировался и на git-sync round-trip re-парсился в другой блок; для setext/thematic `---` текст строки терялся ЦЕЛИКОМ ([text "a", hardBreak, text "---"] → heading, "---" пропадал). Правка: параграф теперь бьётся на `\n`-строки и escapeLeadingBlockTrigger применяется к КАЖДОЙ. Фаззер расширен: hardBreakThenTriggerArb вставляет триггер ПОСЛЕ hardBreak в inlineContentArb, так что P1/P2/P3 структурно покрывают подслучай (раньше триггер стоял только первым run'ом). Добавлен детерминированный пин на continuation-line триггеры, включая `a \n---` (текст «---» сохраняется, не setext). Mutation-verify: со старым single-line escape новый пин + P1/P2 краснеют. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>