# bridge-hygiene — решения агента Спека и дизайн изменения — в `jira-hub/openspec/changes/bridge-hygiene/` (issue aep/jira-hub#13, aep/jira-agent#15). Агентская часть — решения 16–21 дизайна хаба: - **T3.9 (agent#4)** — сравнение описания (`ensure_fields`) и тела комментария (`ensure_comment`) после замены `\r\n` на `\n` с обеих сторон; отправляется текст команды как есть (решение владельца 14.10.2026). - **M-6 (agent#12)** — время последней записи журнала в будущем принимается за «сейчас»: пауза первой команды полная. - **M-7 (agent#12)** — `restore_pace` заполняет только `last_call_at`; `last_call_iso` — только при настоящем вызове Jira, до него в `claim` уходит `null` (решение владельца 14.10.2026). - **M-2 (agent#8)** — ответ папки со `status` не целым или `body` не строкой — как нечитаемый JSON: перечитать до 2 с, затем `ConnectionError`. - **O-3 (agent#8)** — текст `ConnectionError` транспорта папки без слова «хаб» (его добавляет цикл). - **T2.3 (agent#4)** — `prune` берёт `acquire_lock`; занята — «агент запущен…», код 1; README без «Блокировки нет». - Версия агента — 4. Закрываются без кода: **O-2 (agent#8)** — то же, что закрытый M-9 (`restore_pace`, PR #10); **O-1 (agent#12)** — `ensure_link` вживую, переносится в отдельную живую проверку. ## Decisions made without discussion | Маркер | Дата | Решение | Обоснование | Цена ошибки | |---|---|---|---|---| | R-11 (design #21 хаба) | 2026-10-14 | Версия агента 4, `min_agent_version` не поднимается | поведение сравнения и темпа изменилось; v3 продолжает работать | нет | | R-12 | 2026-10-14 | README: после удаления ограничения «prune без блокировки» список перенумерован, ссылки «ограничение 3» (README) и «пункт 3/пункт 1» (ARCHITECTURE.md) приведены к новой нумерации; строка «блокировки нет» снята из открытых вопросов ARCHITECTURE.md | документы не должны ссылаться на снятое ограничение (финальное ревью I-1) | неверная ссылка в документации | | R-13 | 2026-10-14 | Ответ папки с `body: null` или без `body` считается читаемым (пустое тело), нечитаемым — только `body` иного типа | совместимость с прежним поведением (`body or ""`); реле хаба всегда пишет строку; спека уточняется: «`body` не строка и не `null`» (финальное ревью M-1) | нет: при 2xx агент получает `{}`, как раньше |