11969ac3ea
Per-command escape несущего пола (rm -rf / git push --force / migrate:fresh / db:wipe / запись в runtime/секрет) открывается ТОЛЬКО терминальным грантом владельца (origin+подпись, fail-closed), не chat floor_escape — Поза 1. Пол по определению блокирует лишь необратимое → весь его escape тяжёлый: enforce-floor::main грузит loadTerminalGrants вместо loadFloorEscapes. decide()/floorDecide агностичны источнику — логика и тесты пола не тронуты. Стена (supreme-gate 396) не правится: пол (matcher '*') связывает первым. Завершает Часть B (терминал-канал). Свод 4346 зелёный, пол 12/12. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>