Ряд над подвалом
Из-под статус-бара выезжают капсулы Y N ВСЕГДА —
всегда на одном месте, всегда одной высоты. Цифра или клик отвечает, ряд уезжает обратно.
Стекло не трогаем: вывод остаётся выводом.
Дека рисует вывод, но не читает его. Один локальный читатель — классификатор хвоста пана (промпт ждёт / идёт сборка / прогресс / стектрейс / вопрос к тебе / тишина) — даёт сразу два лица: слова в первой половине борда и свет во второй. Ни один вариант здесь не зовёт модель: всё считается на месте, за микросекунды, из тех кадров, что уже пришли. Клик — выбор, строка внизу.
Агент спросил Continue? [y/N] и стоит. Половина твоего ожидания флота —
это одна буква, за которой надо дойти до пана руками. Читатель узнаёт форму вопроса;
вопрос в том, где показать ответы.
Из-под статус-бара выезжают капсулы Y N ВСЕГДА —
всегда на одном месте, всегда одной высоты. Цифра или клик отвечает, ряд уезжает обратно.
Стекло не трогаем: вывод остаётся выводом.
Капсулы встают в стекле, под строкой вопроса, по её левому краю — ответ там, где спросили, глаз никуда не едет. Плата: дека рисует поверх чужого вывода, и при скролле капсулы должны уехать вместе со строкой.
Никаких кнопок. В подвале зажигается чип ЖДЁТ y/N, и Enter отправляет
то, что подчёркнуто заглавной — ответ по умолчанию самого вопроса. Самое тихое решение
и самое быстрое: руки не уходят с клавиатуры.
Двадцать пять панов на трёх серверах. Чтобы узнать, что происходит, ты обходишь их глазами. Читатель уже знает ответ — где его сказать?
3 РАБОТАЮТ · 1 ЖДЁТ · 1 УПАЛ слева от инструментов. Клик по слову ведёт
к первому такому пану, повторный — к следующему. Строка молчит, пока состав не менялся.
Три числа столбиком над деревом, каждое со своим ребром: зелёное — работают, янтарное — ждут, красное — упали. Всегда на виду, читается как приборы, не как фраза.
Обычно пусто. Состав изменился — поверх стекла на секунду выезжает плашка
grok ждёт тебя и уходит в подвал маленьким чипом. Сводка как событие,
а не как фон.
Паника, error[E0308], FAILED в хвосте. Сейчас об этом узнаёшь,
зайдя в пан. Метка должна дождаться тебя снаружи — и пережить, что после падения
вывод пошёл дальше.
Строка рейла получает левое ребро и крестик — как ошибка в списке файлов. Спокойно, читается периферией, не требует ни одного лишнего пикселя ширины.
Имя инвертируется на два бита — это ты видишь краем глаза, даже если смотрел мимо, —
и остаётся приглушённый штамп FAIL 14:32. Время падения важнее самого факта:
оно говорит, что́ ты пропустил.
В рейле — только точка. Настоящая метка живёт в Mission Control: тайл упавшего пана обведён и пульсирует, и его видно с любого зума. Провал — повод поднять глаза на весь флот.
Провал — редкость. Всё остальное время читатель тоже что-то знает: этот собирается, тот стоит на промпте, третий тянет прогресс-бар. Сколько из этого показывать постоянно?
Четыре пиктограммы в шесть пикселей: стрелка — промпт ждёт, шестерня — сборка, шкала — прогресс, вопрос — тебя спрашивают. Ноль слов, ноль ширины, читается за такт.
У каждой строки — микрографик байт за последнюю минуту, ползёт влево. Не говорит, что делает пан, зато честно показывает, живой он или замер десять минут назад.
BUILD, ASK, IDLE, FAIL мелкими
буквами у правого края строки. Никакой расшифровки не нужно, и это единственный вариант,
который переживёт скриншот и пересказ словами.
Единственное место, где зовётся модель: хвост одного пана уходит в claude/grok/codex и возвращается тремя строками. Только руками, никогда сама. Где живёт ответ?
Карточка разворачивается в углу, как уже разворачиваются уведомления — механика есть, добавить нечего. Не мешает выводу, уходит по Esc, живёт, пока не прочтёшь.
У помеченной провалом строки появляется РАЗБОР; нажатие раскрывает три
строки прямо в дереве, под паном. Объяснение живёт там же, где метка, и сворачивается
обратно в неё.
Стекло делится пополам: слева вывод, справа разбор с цитатами — какую именно строку он читал. Самое серьёзное и самое дорогое: пан теряет половину ширины, зато можно сверять фразу с источником.
Рейл — плоский список имён; какой из них сейчас кипит, видно только по значку агента. Пусть поток байт сам светит, и флот читается боковым зрением.
Квадратик у имени спейса, четыре ставни — по одной на пан. Ставня светится, пока её пан говорит. Здание, в котором видно, кто не спит.
Слева от строки — полоска, чья длина и яркость идут за потоком. Строгий прибор, ноль метафоры, и место под него в рейле уже есть.
Светится сам фон строки — тёплым, дышащим, затухающим за минуту тишины. Самое красивое и самое рискованное: подложка не должна съесть читаемость имени.
Половина флота молчит часами, но занимает столько же места и столько же внимания, сколько живая половина. Пусть тишина будет видна.
Уснувшая строка гаснет до силуэта за минуту. Проснувшаяся не включается — она разгорается: два бита перекала ярче обычного, потом ровный свет. Пробуждение видно, даже если смотрел в другое место.
Строка не тускнеет, а редеет: половина пикселей, четверть, восьмушка. Дека уже умеет дизер, и это её родной язык — спящее становится сеткой, а не серым.
Спящие уезжают вниз, под черту СПЯТ 3, и рейл становится короче ровно
настолько, насколько флот затих. Единственный вариант, который возвращает тебе место
на экране.
Одно ambient-состояние на всю деку: как оно там в целом. Без слов, без чисел, читается краем глаза за десятую секунды.
Три пикселя по верхней кромке окна: ясная бирюза в покое, рябь под нагрузкой, свинец с проблеском при падении. Небо над флотом — и ни одного занятого пикселя внутри.
Стрелка на шкале от «ясно» к «буре», с настоящей инерцией: дёрнулась и качается. Прибор в ряду приборов — там, где уже живут числа инструментов.
При беде вдоль верхней кромки идёт редкий дождь, при панике — одна молния на кадр. Самое буквальное и самое заметное; выключается первым, если надоест.
Сейчас кот отражает состояние флота, стоя на месте. Пусть он его носит: показывает, куда смотреть. Кот перестаёт быть украшением и становится навигацией.
Кот идёт вдоль рейла и садится напротив строки, где тебя ждут, повернув голову к ней. Ждут в двух местах — ходит между ними. Никаких стрелок: взгляд и есть стрелка.
Пан доложился — кот тащит рыбку к его строке, кладёт и садится рядом. Готовое не требует тебя срочно, поэтому награда, а не тревога; строка помнит рыбку, пока не зайдёшь.
Кот остаётся на своём месте у подвала, но тянет лапу через рейл к нужной строке — длинной, пунктирной, с подушечкой на конце. Дёшево, работает при любой длине дерева и не требует, чтобы кот умел ходить по вертикали.
Процесс вышел. Сейчас строка просто исчезает при следующем снимке — единственное событие в деке, у которого вообще нет кадра. А это конец чьей-то работы.
Стекло схлопывается в линию, линия — в точку, точка гаснет. В рейле остаётся призрак строки со временем смерти, пока не уберёшь рукой. Механика гашения в деке уже есть.
Строка складывается вдвое и остаётся плашкой EXIT · 14:32 — сухой
факт, который не тает и не мигает. Плашку можно смахнуть, и тогда строка уходит совсем.
Строка рассыпается пикселями и осыпается вниз — тем же пеплом, каким уже крошится снятое выделение. Ничего не остаётся: если ты не смотрел, ты не узнаешь. Самое красивое и самое безжалостное.
У деки нет ни одного звука, кроме системного бипа терминала. Не мелодия, не «уведомление из телефона» — материал: реле, лента, стекло. Выключено по умолчанию, один ползунок громкости. Нажми «послушать» — это настоящий звук, не картинка.
Щелчок реле на Enter, сухой шорох ленты, пока идёт вывод, короткий колокольчик на завершении, глухой удар на панике. Машинный зал: звук из железа, а не из динамика.
Мягкие тоны терминала 80-х: тихий гул строчной развёртки под выводом, писк на подтверждении, нисходящая терция на беде. Тепло, ламповая, ближе всего к CRT-веали.
Тишина на всё, кроме двух вещей, ради которых звук вообще нужен: короткий клик, когда тебя ждут, и глухой удар, когда упало. Не сможет надоесть, потому что почти никогда не звучит.