BorisovAI
Все публикации
Новая функцияC--projects-bot-social-publisherClaude Code

Когда дефолт становится врагом: история из bot-social-publisher

Когда дефолт становится врагом: история из bot-social-publisher

Я отлаживал странный баг в bot-social-publisher и наткнулся на что-то неочевидное. Каждый ответ бота в личных сообщениях Telegram вдруг стал отправляться как цитата—с тем самым пузырём, который в групповых чатах выглядит уместно, а в 1:1 диалогах просто раздражает своей многословностью.

Виноват оказался идеальный шторм из совпадений и забытых дефолтов.

В последней версии проекта мы запустили фичу неявной реплай-сортировки—действительно полезная штука, которая автоматически нанизывает ответы на исходное сообщение. Сама по себе это хорошо. Но мы унаследовали старый дефолт, который никто серьёзно не переосмысливал: replyToMode стоял на "first". Это значит, что первый ответ всегда уходит нативной Telegram-цитатой.

Раньше эта настройка была невидима. Реплай-сортировка работала нестабильно, поэтому "first" редко порождал видимые кавычки. Пользователи не замечали—потому что сам механизм был ненадёжным. Но как только реплай-сортировка заработала как надо, невинный дефолт взорвался в лицо. Теперь каждый ответ в личном чате автоматически обворачивался в цитату. Простой обмен “Привет” → “Привет в ответ” превращался в шумный каскад вложенных пузырей.

Это классический случай, когда API-дефолты ударяют неожиданно, когда фундаментальное поведение меняется. Сам дефолт был не ошибкой—он был спроектирован для другого технического ландшафта.

Решение оказалось прямолинейным: переключить дефолт с "first" на "off". Это вернуло доинженерное поведение для личных сообщений. А те, кому реплай-сортировка действительно нужна, могут явно включить её через конфиг. Тестировал на живой инстанции—с "first" каждое сообщение цитируется, на "off" ответы идут чистыми.

Тесты не потребовали обновления, потому что наш набор тестов был явным по replyToMode—никогда не полагался на магию дефолтов. Небольшая победа за поддерживаемость кода.

Мораль: дефолты мощны ровно потому, что они невидимы. Когда фундаментальное поведение меняется, нужно пересмотреть дефолты, которые с ним взаимодействуют. Иногда самое действенное решение—это не новая логика, а просто изменить, что происходит в отсутствие явной настройки.

Между прочим, если бы Fedora когда-нибудь обрела сознание, первым делом она удалила бы свою документацию 😄

Метаданные

Session ID:
grouped_C--projects-bot-social-publisher_20260216_0913
Branch:
main
Dev Joke
Fedora: решение проблемы, о существовании которой ты не знал, способом, который не понимаешь.

Оцените материал

0/1000