Линза отвечает на один вопрос: у какого аккаунта ещё есть место. Ниже — как она отвечает сейчас, и четыре редакции одной и той же карточки, собранные на живых данных в токенах дека. Все цифры, сбросы «→ 5d» и цвета гейджей вычислены теми же правилами, что и в ui.rs.
identity.fetchedAt приходит в каждой строке и нигде не рисуется.disabled есть в JSON, но выведенный из ротации аккаунт неотличим от доступного.Каждый аккаунт складывается в одну строку: имя, хосты чипами, и справа — связывающее окно, самое тесное из его окон. Внутри банда строки отсортированы по запасу: верхняя строка провайдера — готовый ответ, куда переключаться. Раскрытие (у alexstup) возвращает полную картину окон; вербы приходят под курсор, кроме верхнего кандидата и бед.
Что решает. Семнадцать строк борда складываются в одиннадцать, ответ линзы стоит первым в каждом банде, а протухший замер честно носит свой возраст (янтарный чип «25d» у codex).
Чем платим. Одно число на строку — остальные окна живут за раскрытием; кто привык видеть все гейджи разом, будет кликать чаще.
Грамматика соседней линзы WATCH, применённая к подпискам: не «какой провайдер», а «в каком состоянии». ROOM — свободные, отсортированы по запасу; TIGHT — прижатые к потолку; BLOCKED — протухшие токены и выеденные окна. Провайдер сжался в монограмму-чип, как инициал агента в дереве.
Что решает. Состояние стало структурой: тревога читается счётчиками бандов ещё до строк, а верхняя строка ROOM — то же «куда переключаться», только поперёк провайдеров.
Чем платим. Провайдерные вербы (ротация, POLL, watcher) теряют свой банд и уезжают в меню борда; строки прыгают между бандами при каждом опросе.
Гравюрный заголовок провайдера — имя с линейкой, как у сервера в дереве, — а под ним табло: у клода колонки 5H / 7D / FABLE / SPEND, у кодекса WEEKLY, число окрашено порогом, связывающее окно несёт черту-гейдж под цифрой. Глаз бежит по колонке FABLE сверху вниз и видит 2 · 3 · 99 · 100 · · · 83 — всю картину одним столбцом.
Что решает. Самая высокая плотность из четырёх: шесть аккаунтов клода — шесть строк, все окна видны без раскрытий, числа выровнены для вертикального сканирования.
Чем платим. Жёсткая сетка провайдер-специфична (колонки клода не годятся кодексу), почта в узкой колонке урезается — табло просит короткие алиасы.
Аккаунт — плитка с одной жирной батареей связывающего окна; остальные окна — строкой мелочи под ней. Активный аккаунт носит синюю рамку выбора, протухший — янтарную и RELOGIN на месте батареи. Сортировка по запасу, как в A.
Что решает. Единственный вариант, который читается боковым зрением: цвет и длина батарей видны, когда линза просто стоит открытой сбоку, а взгляд — в терминале.
Чем платим. Самый высокий по вертикали и самый «нарисованный»: рамки плиток — дальше всего от гравюрной тишины дека.
JSON уже несёт identity: win и rv2026 сейчас рисуются как ещё шесть аккаунтов. Одна строка с чипами хостов wsl · win · rv2026 возвращает борду шесть строк высоты. Показано во всех четырёх редакциях.
Строка старше пары часов носит янтарный чип возраста: «12% · 25d» у codex — предупреждение, а не число, на которое можно переключаться. fetchedAt уже приходит, нужен только рендер.
Кнопка SUBS на рейле носит точку худшего активного состояния: янтарь — активный аккаунт прошёл 75%, красный — 90% или протух токен. Тревога видна, не входя в линзу, — как бейдж сервера в дереве.
Банда провайдера получает верб POLL — принудительный subs poll вместо ожидания 60-секундного шага линзы. Тот же жест, что WATCHER: PAUSE в меню борда, только на виду.
Watcher меряет регулярно — две точки дают наклон: «≈6%/ч, упрётся за 3 часа до сброса» словом на связывающем окне. Требует истории замеров в subs; рисуется словом, не спарклайном.
Поле disabled приходит и не рисуется: выведенный из ротации аккаунт выглядит доступным. Приглушённая точка и слово «held» делают autoswitch-пул честным на глаз.
Codex несёт credits (сейчас 1000.04), клод — окно spend. Сводная строка на банде — «credits 1000 · spend 9%» — единственное место, где деньги видны, не раскапывая detail.
A как основа. Одна строка на аккаунт с связывающим окном отвечает на вопрос линзы буквально первой строкой банда, а раскрытие возвращает полноту C, когда она нужна. Сортировка B живёт внутри A бесплатно — как порядок строк; сами полосы состояния стоят того, только если аккаунтов станет заметно больше.
D — если линзе жить открытой. Когда SUBS стоит сбоку весь день, батареи читаются боковым зрением, чего не умеет ни одна строчная редакция. C — режим ревизии: всё видно, ничего не скрыто, но просит алиасы вместо почты.
Из фич первые три — дедуп, возраст замера, точка на рейле — стоит забирать при любом выборе: это рендер уже приходящих полей.