feat: анти-диктовка свободного floor_escape (consent forgery C)

Свободный floor_escape (лёгкий escape в чате) НЕ доверяется, если контроллер в своём тексте
текущего хода инструктировал владельца вписать метку. processEvent читает текст контроллера
из транскрипта хода (readTranscript + lastAssistantText, переиспользован), один раз на событие
зовёт detectOtherSocialEng (раньше был мёртвой проводкой — не вызывался нигде); flagged →
floor_escape не пишется. Паттерны detectOtherSocialEng усилены императивной диктовкой метки
FLOOR-ESCAPE (глагол рядом; простое упоминание концепта не флагуется). fail-open observability —
сбой чтения транскрипта → как раньше. Применяется к floor_escape (git-approval закрыт #A).
Завершает кодовую часть эпика (A + B1-B5 + C). Спека §C. Свод 4350 зелёный.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-06-18 19:54:25 +03:00
parent 11969ac3ea
commit 0d31e62248
6 changed files with 237 additions and 4 deletions
+4
View File
@@ -113,6 +113,10 @@ const OTHER_SOCIAL_ENG_PATTERNS = [
/в\s+поле\s+["«]?другое["»]?/iu,
/нажми\s+["«]?другое["»]?\s+и\s+впиши/iu,
/укажи\s+в\s+графе\s+["«]?другое["»]?/iu,
// C (анти-диктовка): императивная диктовка метки FLOOR-ESCAPE (глагол рядом с меткой).
// НЕ ловит простое упоминание концепта (нет императива перед floor-escape).
/(?:набери|впиши|вставь|скопируй|введи|напечатай)[^.\n]{0,40}floor-escape/iu,
/(?:type|paste|enter|copy)[^.\n]{0,40}floor-escape/iu,
];
/**