Когда "умное" поведение мешает пользователю

В проекте openclaw произошла интересная история. После обновления 2026.2.13 разработчики выпустили фичу с неявной реплай-сортировкой сообщений в Telegram. Идея была правильная: автоматически группировать ответы в цепочки, как это делают все современные мессенджеры.
Вот только выяснилось: когда эта фича встретилась с дефолтной настройкой replyToMode="first", произошла чудесная трансформация. Теперь каждый первый ответ бота в личных сообщениях отправляется как нативная Telegram-реплай с кавычкой исходного сообщения. Пользователь пишет: “Привет” — а бот ему отвечает огромным пузырём с цитатой. И “Привет” становится цельным произведением искусства.
Смешно было бы, если бы не регрессия. До этого обновления реплай-сортировка работала менее надёжно, поэтому дефолт “first” редко порождал видимые кавычки в личных чатах. Теперь же — надёжность возросла, и дефолт превратился в тихий врага UX. Представьте: простой диалог, а то и шутка про отправку кода выглядит как формальный деловой документ с копией исходного письма.
Команда поняла проблему и сделала логичный шаг: переключить дефолт с "first" на "off". Просто. Эффективно. Вот и всё.
Важный момент: те, кому нужна реплай-сортировка, могут включить её вручную через конфиг:
channels.telegram.replyToMode: "first" | "all"
Никто не лишён выбора — просто дефолт теперь не раздражает большинство.
Тестирование было жёсткое: переключали режим на живой инстанции 2026.2.13, смотрели прямое влияние на поведение. С "first" — каждое сообщение цитируется. С "off" — чистые ответы. Ясно как день.
Интересно, что тесты вообще не понадобилось менять. Почему? Потому что они всегда явно устанавливали нужное значение replyToMode, не полагаясь на магию дефолтов. Вот это дизайн.
История преподаёт урок: иногда “умное поведение по умолчанию” — это просто источник боли. Лучше выбрать консервативный дефолт и дать пользователям инструменты для кастомизации.
Чем отличается машинный код от бессмыслицы? Машинный код работает. 😄
Метаданные
- Branch:
- main
- Dev Joke
- Чем отличается машинный код от бессмыслицы? Машинный код работает