TM2027
Заглавие Space — в две строчки

Левый сайдбар, рейл 292px. Сегодня имя воркспейса живёт в одной строке и обрезается многоточием. Ниже четыре механики второй строки — данные во всех одни и те же: короткое имя, длинное с пробелами и длинный монотокен. Кликни вариант и пришли ссылку из планки внизу.

A Перенос по нужде
UBUNTUWSL LIVE
oxide-gabout main #1 · 2 tabs · 4 panes WORKING
12 panes
clauderefactor ui.rsOWNED
ompbuild watchATTACH
tm2027 release babysitting wave 5 agent/server-pulse #2 · 3 tabs · 7 panes DONE
feature-vote-cloudflare-pages-deploy #3 · 1 tab · 2 panes IDLE
2024 #4 · 1 tab · 1 pane
grok-longrun exp/kv-cache #5 · 2 tabs · 3 panes WORKING

Механика. Имя переносится на вторую строку только когда не влезает; третьей строки нет — хвост режется многоточием в конце второй. Ветка, счётчики и чип остаются справа, по центру выросшей строки. Раскладка строки не меняется вовсе.

Цена. Правый кластер продолжает съедать строку: с длинной веткой и счётчиками имени достаётся 50–90px, и переноситься начинают даже короткие имена — макет выше показывает это честно. Вторая строка помогает только там, где кластер короткий. Высота строк дышит.

В GPUI. У лейбла убрать .truncate().whitespace_nowrap(), дать перенос с клэмпом в две строки; строке — items_start, правому кластеру — центровку по себе.

B Титул во всю ширину
UBUNTUWSL LIVE
oxide-gabout
main #1 · 2 tabs · 4 panes WORKING
12 panes
clauderefactor ui.rsOWNED
ompbuild watchATTACH
tm2027 release babysitting wave 5
agent/server-pulse #2 · 3 tabs · 7 panes DONE
feature-vote-cloudflare-pages-deploy
#3 · 1 tab · 2 panes IDLE
2024
#4 · 1 tab · 1 pane
grok-longrun
exp/kv-cache #5 · 2 tabs · 3 panes WORKING

Механика. Имя получает всю ширину рейла и переносится до двух строк; ветка, счётчики и чип уезжают этажом ниже, под начало текста. Максимум места под имя — почти вдвое шире, чем в A.

Цена. Каждый Space становится двухэтажным всегда — дерево заметно выше, счётчики уходят с привычного правого края.

В GPUI. Строка становится flex_col из двух рядов; клик, драг и фолд висят на всём узле, как сейчас.

C Ровный слот в два ряда
UBUNTUWSL LIVE
oxide-gabout main #1 · 2 tabs · 4 panes WORKING
12 panes
clauderefactor ui.rsOWNED
ompbuild watchATTACH
tm2027 release babysitting wave 5 agent/server-pulse #2 · 3 tabs · 7 panes DONE
feature-vote-cloudflare-pages-deploy #3 · 1 tab · 2 panes IDLE
2024 #4 · 1 tab · 1 pane
grok-longrun exp/kv-cache #5 · 2 tabs · 3 panes WORKING

Механика. Как A, но слот под имя всегда двухстрочный: короткие имена стоят на первой строке, под ними воздух. Все Space-ряды одной высоты — дерево держит ровный ритм, ничего не прыгает при переименовании.

Цена. Каждый Space платит вторую строку даже за «2024» — дерево выше всех вариантов при коротких именах. И ширина под именем та же зажатая, что в A: ветка и счётчики остаются в строке.

В GPUI. То же, что A, плюс фиксированная минимальная высота слота лейбла.

D Двухэтажная строка, без переноса
UBUNTUWSL LIVE
oxide-gabout
main #1 · 2 tabs · 4 panes WORKING
12 panes
clauderefactor ui.rsOWNED
ompbuild watchATTACH
tm2027 release babysitting wave 5
agent/server-pulse #2 · 3 tabs · 7 panes DONE
feature-vote-cloudflare-pages-deploy
#3 · 1 tab · 2 panes IDLE
2024
#4 · 1 tab · 1 pane
grok-longrun
exp/kv-cache #5 · 2 tabs · 3 panes WORKING

Механика. Строка всегда из двух этажей, но имя не переносится: одна строка на всю ширину рейла (~35 знаков против ~20 сегодня), факты этажом ниже. Ровный ритм как в C, максимум ширины как в B.

Цена. По-настоящему длинное имя всё равно режется многоточием — вторая строка структурная, не текстовая. «В две строчки» здесь про строку, не про имя.

В GPUI. flex_col из двух фиксированных рядов; лейбл остаётся truncate, просто во всю ширину.