tmux 3.7c — исправлено падение floating panes и несколько регрессий ветки 3.7

tmux 3.7c вышел 17 августа 2026 года как небольшое исправляющее обновление ветки 3.7. Релиз устраняет падение при создании floating pane из увеличенной панели, исправляет отображение scrollbar и status line, а на macOS переводит сборку на jemalloc для обхода проблемы, связанной с calloc.

tmux - исправлено падение floating panes и несколько регрессий ветки 3.7
tmux - исправлено падение floating panes и несколько регрессий ветки 3.7

Пять исправлений вместо новых функций

tmux 3.7c — не функциональный релиз, а точечный патч к серии 3.7. В официальном CHANGES перечислено пять изменений, каждое из которых закрывает конкретную регрессию или нестабильное поведение, обнаруженное после выхода tmux 3.7 и последующих 3.7a/3.7b.

ИзменениеЧто исправленоКому заметно
jemalloc на macOSобход вероятной проблемы callocпользователям macOS, прежде всего при длительных и нагруженных сессиях
Инициализация scrollbarполосы прокрутки снова появляются в новых окнахтем, кто использует pane-scrollbars
Более редкая проверка времени в циклахустранена регрессия, связанная с перерисовкой status lineпользователям с изменением размеров терминала и сложным status bar
message-style снова используется по умолчанию для message-formatвозвращено ожидаемое оформление сообщенийконфигурациям с пользовательскими стилями status/message
Автоматический unzoom перед floating paneпредотвращено падение сервера tmuxпользователям новой функции floating panes

По объёму это небольшой релиз, но два исправления затрагивают сценарии, в которых мог завершаться весь сервер tmux. Для постоянных SSH-сессий, рабочих окружений разработчиков и администраторов это важнее, чем количество новых возможностей.

Floating panes больше не должны ронять сервер из zoom-режима

Главное практическое исправление tmux 3.7c связано с floating panes — функцией, впервые появившейся в ветке 3.7. Такая панель располагается поверх обычной tiled-разметки, оставаясь полноценной pane, а не модальным popup-окном.

Проблема проявлялась, когда пользователь находился в окне с увеличенной панелью и запускал new-pane. В tmux 3.7b этот сценарий мог привести к падению всего сервера. Ошибка была зафиксирована в issue #5327: создание floating pane из zoomed window воспроизводило crash.

В 3.7c перед созданием floating pane tmux автоматически снимает zoom. Это соответствует внутренней модели проекта: одновременно существовать как отдельные полноразмерные слои zoomed tiled pane и floating pane не должны. Для пользователя изменение означает, что команда больше не должна завершать весь процесс tmux вместе со всеми сессиями на том же сервере.

Сама технология floating panes всё ещё относится к молодой части tmux. В документации ветки 3.7 разработчики прямо указывали, что её первая реализация ограничена: панели можно перемещать и менять их размер мышью, а часть операций с tiled/floating layout пока не поддерживается. Поэтому 3.7c скорее делает новую архитектуру устойчивее, чем объявляет её полностью завершённой.

На macOS tmux теперь собирается с jemalloc

Второе заметное изменение касается macOS. В tmux 3.7c проект включает jemalloc при сборке на этой платформе, чтобы обойти поведение, которое разработчики связывают с возможной ошибкой системного calloc.

Поводом стал issue #5385, где на Apple Silicon фиксировались аварийные завершения при входе в copy mode. В одном из воспроизводимых сценариев с интенсивным изменением layout срабатывала проверка grid_check_is_clear, после чего процесс завершался через SIGABRT.

Официальный changelog формулирует исправление осторожно: jemalloc используется для обхода того, что «похоже на ошибку в calloc». Это не означает подтверждённую уязвимость macOS или самого tmux. Практический эффект в другом — сборка tmux 3.7c на macOS использует другой allocator, чтобы исключить наблюдавшийся класс сбоев.

Для Linux, FreeBSD, OpenBSD, NetBSD и Solaris это изменение не заявлено: оно относится именно к macOS-сборке.

Scrollbar снова появляется в новых окнах

В tmux 3.7b возникла регрессия с pane-scrollbars: при включённой полосе прокрутки она могла не отображаться после запуска tmux или создания нового окна. Повторная загрузка конфигурации временно возвращала scrollbar, но после переключения окна проблема появлялась снова.

Ошибка подробно описана в issue #5339. Минимальная конфигурация состояла фактически из одной настройки:

set -g pane-scrollbars on

В 3.7c исправлено начальное состояние scrollbar, поэтому полоса должна отображаться сразу в новых окнах без ручного source-file ~/.tmux.conf.

Это изменение особенно заметно пользователям, которые после перехода с 3.7 на 3.7b решили, что параметр pane-scrollbars перестал работать или начал зависеть от конкретного терминала. Причина находилась внутри tmux, а не в Ghostty, Windows Terminal или другой внешней программе.

Исправлена регрессия status line при изменении размера терминала

Ещё одно изменение затрагивает внутренние циклы обработки событий: tmux теперь проверяет время периодически, а не на каждой итерации. В changelog оно связано с issue #5367, где у tmux 3.7b после изменения размера терминала исчезало содержимое status line.

Состояние окон при этом не терялось. list-windows продолжал возвращать правильные данные, однако сама строка статуса оставалась визуально пустой до следующей полной перерисовки. В воспроизведении из отчёта проблема возникала на tmux 3.7b при каждом из восьми циклов resize, тогда как 3.6b не показывал её ни разу.

Для обычной сессии без сложного status bar баг мог оставаться незаметным. Он сильнее проявлялся при изменении размера окна, работе через WSL2 и терминалах, где перерисовка зависит от последовательности resize-событий.

Исправление в 3.7c снижает частоту проверки времени внутри циклов и тем самым устраняет проблемное поведение, связанное с рендерингом status line.

message-style снова определяет оформление сообщений по умолчанию

В tmux 3.7 изменилась система отображения сообщений в status line. Появился message-format, позволяющий формировать сообщение как отдельный формат и размещать его поверх части обычной строки статуса вместо полного замещения строки.

В 3.7c разработчики возвращают message-style в качестве стандартного стиля для message-format. Для пользователей со старыми .tmux.conf это означает более предсказуемую совместимость: существующие настройки message-style снова влияют на сообщения без необходимости отдельно дублировать оформление в message-format.

Это изменение не отменяет саму новую модель сообщений из 3.7. Оно корректирует её поведение по умолчанию, чтобы конфигурации предыдущих версий меньше отличались визуально после обновления.

Пакеты 3.7c уже появляются в дистрибутивах

На 18 августа 2026 года tmux 3.7c уже обозначен как актуальная версия в официальном репозитории проекта и на wiki tmux. Пакет tmux-3.7c-r0 появился в Alpine Linux 17 августа, а порт FreeBSD sysutils/tmux также обновлён до 3.7c.

Проверить установленную версию можно стандартной командой:

tmux -V

Если пакетный менеджер дистрибутива ещё предлагает 3.7b, обновление зависит от скорости сопровождения конкретного репозитория. Собирать релиз вручную имеет смысл прежде всего пользователям, у которых уже воспроизводится один из исправленных сбоев.

При сборке из релизного tarball проект использует обычную последовательность:

./configure && make
sudo make install

После замены бинарника активный сервер tmux сам по себе не превращается в процесс новой версии. Для проверки после обновления стоит завершить старые сессии в подходящий момент и запустить новый сервер, затем снова выполнить tmux -V.

Резюме

tmux 3.7c стоит рассматривать как рекомендуемое исправляющее обновление для пользователей серии 3.7, особенно если используются floating panes, pane-scrollbars, сложный status line или macOS. Новых пользовательских функций релиз почти не приносит, зато закрывает несколько заметных регрессий 3.7b и один сценарий падения сервера.

В официальном changelog для 3.7c не указаны CVE и релиз не позиционируется как отдельное security-обновление. Тем не менее crash сервера tmux способен завершить сразу несколько рабочих сессий, поэтому для удалённой работы и постоянно запущенных окружений переход с 3.7b на 3.7c имеет практический смысл.

Для пользователей версии 3.6b, которые пока не обновились до 3.7, обновление до 3.7c не является критичным. Основная часть исправлений в 3.7c связана с новыми функциями и устранением проблем, возникших в серии 3.7. Однако, если tmux 3.7 или 3.7b уже активно применяется в рабочей среде, то переход на 3.7c представляется более обоснованным и целесообразным для продолжения использования.

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.