В тот же день, когда ссылку на новый открытый репозиторий клиента Telegram для macOS выложили бета-тестерам, команда клиента начала принимать в него правки сторонних разработчиков. К 25 октября 10:19 UTC в TelegramMessenger/telegram-macos прислали 81 пулл-реквест от 19 авторов, и 30 из них влиты в основную ветку. Принятые правки уходят в бету macOS за несколько часов, одна дошла меньше чем за час. Касается это тех, кто стоит на бета-канале клиента для Mac, и разработчиков, которые хотят поправить официальный клиент, а не писать свой форк.
Сколько правок прислали и сколько приняли
Пулл-реквест — предложенная правка кода, которую владелец репозитория может влить в свою ветку или отклонить. Первый пришёл 23 октября в 14:18 UTC, первый влит в 17:45 UTC: это #3, алмаз вместо пиратского флага у коллекционных номеров в списке стран. За 23 октября прислали 17 пулл-реквестов, за 24-е — 55, за первые десять часов 25-го — ещё 9.
На 10:19 UTC 25 октября:
| Состояние | Пулл-реквестов |
|---|---|
| Влиты | 30 |
| Закрыты без слияния | 14 |
| Открыты | 37 |
Влитые правки прислали 11 разных авторов, в сумме это 7 307 добавленных строк и 1 089 удалённых. Все 30 влил один аккаунт, macosswift. В профиле у него указаны имя Telegram macOS, компания Telegram и сайт macos.telegram.org. Девять влитых правок одного автора пришли из веток с префиксом codex/, так их по умолчанию называет агент Codex от OpenAI.
Какие правила появились на второй день
24 октября в 16:12 UTC в репозитории появились CONTRIBUTING.md и шаблон пулл-реквеста. В каждом теперь должны быть четыре раздела: главное изменение, причина, скриншоты или видео «до» и «после» в одном и том же сценарии и описание проверки. Если видимого результата нет, вместо скриншотов нужно объяснить почему и приложить вывод проверки, а для изменений поведения указать версию macOS и номер сборки клиента. Пулл-реквест без какого-то раздела или без отмеченного подтверждения проверки к рассмотрению не готов.
Шаблон начали применять в тот же вечер. С 17:58 до 18:09 UTC четыре пулл-реквеста закрыты с пометкой REJECTED: под «до» и «после» нет ни скриншота, ни видео. С 19:31 до 19:36 UTC такое же замечание оставлено ещё под 11 пулл-реквестами. Их не закрыли, а попросили дополнить, и два из них в тот же вечер влили.
За что отклоняют
Кроме пустого шаблона, правки закрывают по существу, с объяснением в комментарии:
- #6, плоская боковая панель и вкладки избранных папок, меняет интерфейс и продукт, а таких изменений команда «сейчас брать не планирует»;
- #13 показывал кнопку ИИ-редактора с 10-го символа, а по дизайну она появляется с трёх строк. Поле ввода при этом подпрыгивало на 30 точек. Часть с редактированием отправленных сообщений сочли рабочей, и её влили отдельно, в #22;
- #53 правил вручную только русские строки, а переводы клиента делаются на translations.telegram.org сразу для всех языков;
- #23, локальные сборки и подпись приложения: настройки сборки и подписи команда обещала поменять у себя сама, а в этой правке ломался тест сборки в CI;
- #32 показывал в папках чаты, в которых пользователь не состоит, а #40 ломал поиск. Под ним оставлены скриншот и видео поломки.
Под #14 сначала написали, что код не собирается, и попросили проверять сборку до отправки. Позже его влили. #75 с плавающей панелью вкладок тоже вернули с замечанием: после нескольких переключений аватарка расходилась с кольцом выделения. Автор исправил это в 07:39 UTC, и в 08:09 UTC правку влили.
Как правки попадают в бету
Бета macOS выходит через версии обновлений с одной и той же припиской «Bug fixes, minor improvements, and more». Что в сборку вошли именно сторонние правки, видно по её бинарнику: строки из их кода появляются там, где до этого их не было.
Сборка 13.1.0.283377 вышла 24 октября в 21:27 UTC. В ней впервые есть строки «Could not load message history» и «Message history pagination did not advance» из #20 (ошибки экспорта чатов теперь показываются по каждому чату, а не теряются молча), «Failed to persist the custom application icon at %@» из #10 (смена иконки приложения), служебные имена из #2 и #27 (настройки уведомлений) и из #16 (команды ботов). Эти пять правок влиты с 15:50 до 18:45 UTC, то есть до беты они дошли за время от 2 ч 43 мин до 5 ч 37 мин.
Сборка 13.1.0.283380 вышла 25 октября в 09:06 UTC, через 57 минут после слияния #75. В ней появились имена TabBarItemControl и SelectionGesture из кода этой правки.
Своя часть кода команды почти догнала бету. 23 октября в 17:04 UTC в основную ветку лёг коммит «Merge branch 'release' into master (13.1)», номер сборки в Info.plist вырос с 283305 до 283357, добавлено больше миллиона строк. Бета к тому часу была уже 283368. Модуля HTMLBubbles, который рисует в бете сообщения на HTML и JavaScript, в открытом коде по-прежнему нет, а два скрипта в репозитории проверяют, что он туда не попал.
Что уже влито
| Пулл-реквест | Что меняет |
|---|---|
| #2 | Настройки уведомлений как в Telegram для iOS: категории, исключения, реакции |
| #27 | Уведомления об историях и раздел настроек историй |
| #75 | Плавающая панель вкладок как в iOS, индикатор можно тянуть |
| #36 | Срок «1 год» для автоматического завершения неактивных сеансов |
| #31, #37 | Пункт «Убрать из папки» и удаление аватарки папки |
| #22 | ИИ-редактор при редактировании отправленного сообщения |
| #20 | Ошибки экспорта чатов видны по каждому чату |
| #34, #9 | Копирование фото кладёт в буфер саму картинку, а сообщения копируются вместе с датой |
| #29, #30 | Перевод на региональный язык интерфейса (например, pt-br) и ввод букв с диакритикой в опросах, задачах и заметках к контакту |
В #75 есть оговорка автора: эффект линзы на индикаторе, как в iOS, в правку не вошёл. В iOS его рисует закрытый компонент UIKit, которого нет в SDK macOS, и повторить его можно только своим рендерером на Metal.




