Механика. Имя переносится на вторую строку только когда не влезает; третьей строки нет — хвост режется многоточием в конце второй. Ветка, счётчики и чип остаются справа, по центру выросшей строки. Раскладка строки не меняется вовсе.
Цена. Правый кластер продолжает съедать строку: с длинной веткой и счётчиками имени достаётся 50–90px, и переноситься начинают даже короткие имена — макет выше показывает это честно. Вторая строка помогает только там, где кластер короткий. Высота строк дышит.
В GPUI. У лейбла убрать .truncate().whitespace_nowrap(), дать перенос
с клэмпом в две строки; строке — items_start, правому кластеру — центровку по себе.
Механика. Имя получает всю ширину рейла и переносится до двух строк; ветка, счётчики и чип уезжают этажом ниже, под начало текста. Максимум места под имя — почти вдвое шире, чем в A.
Цена. Каждый Space становится двухэтажным всегда — дерево заметно выше, счётчики уходят с привычного правого края.
В GPUI. Строка становится flex_col из двух рядов; клик, драг и фолд
висят на всём узле, как сейчас.
Механика. Как A, но слот под имя всегда двухстрочный: короткие имена стоят на первой строке, под ними воздух. Все Space-ряды одной высоты — дерево держит ровный ритм, ничего не прыгает при переименовании.
Цена. Каждый Space платит вторую строку даже за «2024» — дерево выше всех вариантов при коротких именах. И ширина под именем та же зажатая, что в A: ветка и счётчики остаются в строке.
В GPUI. То же, что A, плюс фиксированная минимальная высота слота лейбла.
Механика. Строка всегда из двух этажей, но имя не переносится: одна строка на всю ширину рейла (~35 знаков против ~20 сегодня), факты этажом ниже. Ровный ритм как в C, максимум ширины как в B.
Цена. По-настоящему длинное имя всё равно режется многоточием — вторая строка структурная, не текстовая. «В две строчки» здесь про строку, не про имя.
В GPUI. flex_col из двух фиксированных рядов; лейбл остаётся
truncate, просто во всю ширину.