Переработка UX чата, ранний доступ к v2, обновление бренда и автономный CLI

Большое обновление за последние три недели. Интерфейс чата получил UX-переработку сверху донизу с новым редактором промптов с форматированием, чипами slash-команд и упоминаний файлов и переработанной системой вызовов инструментов. Рабочее пространство v2 теперь в раннем доступе — с панелями, просмотрщиком diff'ов, редактором файлов, вкладкой ревью и панелью браузера. Вышел Rox CLI, а затем обзавёлся самодостаточным tarball, который может запускать host-service где угодно. Десктопное приложение получило полное обновление бренда, а интеграция с GitHub теперь бесплатна на любом плане.
Переработка UX чата #3039
Ввод промптов на Tiptap
Поле промпта теперь редактор с форматированием на базе ProseMirror со встроенными чипами для команд и ссылок на файлы.
- Чипы slash-команд — набери
/, чтобы открыть меню команд; команда становится встроенным чипом в любом месте сообщения, а не отправляется сразу. Чипы сargumentHintпоказывают встроенное редактируемое поле с авторазмером и навигацией с клавиатуры;/modelпоказывает выпадающий список доступных моделей. - Чипы упоминаний файлов — набери
@, чтобы открыть всплывающее окно поиска файлов, привязанное к курсору. Выбор файла вставляет чип, который сериализуется в@pathпри отправке. - Предзагрузка скилла — чипы
/commandизвлекаются перед ходом LLM, чтобы харнесс сначала загрузил нужный скилл. СтрокаSkillToolCallпоказывается в сообщении, пока скилл загружается. - Предпросмотр при наведении — наведение на чип показывает всплывающее окно с его описанием (скрыто, пока поле ввода аргумента в фокусе).
- Защита от IME-композиции предотвращает отправку, пока ожидается CJK-ввод; Tab больше не выбирает команды автоматически (только Enter или клик).
Переработанные вызовы инструментов
- Компактная моноширинная раскладка
ToolInput/ToolOutput/ToolHeaderс брайлевским спиннером и иконками слева - Активность субагента отображается встроенно как сворачиваемая обёртка инструмента, с полным markdown для промпта и ответа задачи
- Кликабельные имена файлов на каждой строке вызова инструмента, связанного с файлами (read, write, LSP inspect) — клик открывает файл в панели редактора
- Вывод чтения файла с подсветкой синтаксиса, заголовком с именем файла и меткой диапазона строк; разворачивание/сворачивание и копирование на каждом блоке кода
Сценарий ask_user
- Оверлей в подвале с закреплённым заголовком/подвалом и прокручиваемыми кнопками вариантов — больше никакого встроенного интерфейса вопросов
- Чипы статуса (ожидает ответа / отвечено / отменено) со сворачиваемым пузырём ответа; отмена показывается сразу при прерывании
- Оптимистичное закрытие при отправке; поле промпта автоматически фокусируется после ответа
ask_userтеперь обязателен для всех вопросов Rox — без запасных вариантов в виде простого текста
Статус рабочего пространства и уведомления
- Ожидающий вопрос ставит оранжевую точку на навигацию рабочего пространства и запускает нативный тост ОС, управляемый на стороне сервера через конвейер событий жизненного цикла, так что он работает, когда вкладка не в фокусе
- Оранжевая точка сразу пропадает при отправке ответа
- Авто-прокрутка вниз при отправке сообщения, появлении нового вопроса и отправке ответа
Рабочее пространство v2 в раннем доступе
Ранний доступ к рабочему пространству v2
v2 — это перестройка рабочего пространства с нуля, нацеленная на облако. Мы вырвали накопившийся хлам v1, переписали терминал с нуля, чтобы исправить глюки отрисовки, и переархитектурировали приложение как настоящую IDE — Tab → Split → Pane, полноценное дерево файлов с git-декорациями, полный редактор и просмотрщик diff'ов, который справляется с большими наборами изменений. Пока по согласию; вот что в коробке:
Система раскладки панелей #3088
Новая гибкая структура Tab → Split → Pane, построенная на пакете @rox/panes, со взвешенными сплитами, размер которых можно менять.
- Перетаскивай панели, чтобы переставлять их #3090
- Перетаскивай, чтобы переупорядочивать вкладки внутри группы вкладок #3094
- Клик правой кнопкой по заголовкам панелей для split / close / close others #3196
- Двойной клик по разделителю сплита уравнивает размеры панелей #3101
- Cmd+Alt+Стрелка перемещает фокус между панелями #3403 #3460
- Закрытие активной панели фокусирует ближайшего соседа #3198
Просмотрщик diff'ов #3384
Просмотрщик diff'ов v2
Многофайловая панель diff в стиле GitHub с ленивой загрузкой, постоянным состоянием «Просмотрено», синхронизированным со списком изменений в сайдбаре, переключателями унифицированного/раздельного вида и действиями в заголовке для сворачивания, разворачивания неизменённого, копирования и отката. Открой её в отдельной вкладке через ⌘⇧L #3420 #3556.
Редактор файлов #3526
Дерево файлов и редактор v2
Полноценная панель редактора — фундамент, представления и большой проход по стабильности. Дерево файлов показывает git-декорации встроенно #3320.
Вкладка ревью #3463
Информация о PR, проверки и комментарии отображаются встроенно в рабочем пространстве v2, как в опыте ревью v1.
Чекаут PR и контекст запуска #3525 #3467
Делай чекаут PR прямо из v2 через расширенную процедуру чекаута и составляй полный контекст запуска (выбранные файлы, инструкции, состояние ветки) перед началом работы.
Панель браузера #3346
Страницы остаются загруженными при переключении вкладок и навигации по рабочим пространствам — никаких перезагрузок, потери прокрутки или состояния формы. Строка URL, назад/вперёд/перезагрузка, автодополнение истории, DevTools, скриншоты и жёсткая перезагрузка из меню переполнения.
Сайдбар изменений Git #3177
Вкладка «Изменения» в правом сайдбаре показывает статус ahead/behind, число коммитов и фильтруемый список файлов. Фильтруй по всем изменениям, только незакоммиченным, отдельному коммиту или диапазону коммитов. Селектор базовой ветки с поиском и встроенное переименование для непушенных веток.
Rox CLI #3194
CLI rox позволяет управлять Rox из терминала и поставляется как самодостаточный tarball #3298, так что ты можешь запускать host-service на удалённом сервере, CI-машине или облачной VM без десктопного приложения.
Бинарники для macOS (arm64, x64) и Linux x64. Режим вывода --json для скриптов и использования агентами.
Обновление бренда #3367
Обновление бренда — новый логотип и оформление иконки
Новый логотип и оформление иконки по всему десктопному приложению, фону установщика DMG, иконке в трее и текстовому логотипу. В dev-сборках каждое рабочее пространство получает цветовой загиб угла на иконке в доке, так что открытые рабочие пространства различимы с первого взгляда.
Интеграция с GitHub бесплатна #3152
Ревью PR, связывание issue и push с десктопа доступны на любом плане — Pro-подписка не требуется.
Улучшения
- Фундамент редактора файлов V2 — представления редактора плюс большой проход по стабильности #3526
- Вкладка ревью V2 — информация о PR, проверки и комментарии встроенно #3463
- Чекаут PR в V2 — чекаут PR прямо в рабочем пространстве v2 #3525
- Составление контекста запуска V2 — подготовь файлы, инструкции и состояние ветки перед запуском #3467
- Недавно просмотренное в быстром открытии — показывает файлы, которые ты только что смотрел #3488
- Селектор веток с пагинацией — масштабируется до тысяч веток со встроенными действиями чекаута + открытия #3397
- Ссылки на файлы в терминале с модификаторами — ⌘/Ctrl+клик открывает во внешнем редакторе или новой вкладке #3512 #3398
- Перетаскивание в панели терминала V2 — брось файлы, чтобы вставить их пути #3542
- Ссылка на задачи восстановлена в сайдбаре дашборда V2 #3553
- Escape закрывает настройки #3466
- Значения горячих клавиш по умолчанию — несвязанные значения по умолчанию плюс восстановленные горячие клавиши пред/след вкладки и рабочего пространства #3422 #3472
- Разрешить горячие клавиши в редактируемом контенте #3418
- Поиск в терминале — ⌘F / Ctrl+Shift+F в терминале v2 #3289
- Протокол клавиатуры Kitty — лучшая поддержка модификаторов в neovim, fish 4+ и других #3289
- Настройки темы и шрифта терминала в v2 (паритет с v1) #3155
- Быстрый поиск файлов — нечёткий скорер VS Code с учётом путей и предварительно прогретым индексом #3136
- Верхняя панель V2 — переключатель правого сайдбара, выпадающий список организаций, единая кнопка «Открыть в» #3197
- Git-декорации в дереве файлов V2 #3320
- Паритет пресетов V2 + скрипты настройки #3354 #3359
- Переключатель V1/v2 с верхней панели, предпочтение сохраняется #3347
- Долговечность host service — переживает выходы из приложения, переусыновляется при следующем запуске #3157
- Настройка безопасности relay — «Настройки → Безопасность» управляет тем, открыта ли эта машина; по умолчанию выключено #3304
- Единое удаление рабочего пространства — удаление в v2 идёт через host-service #3443
- Фокус на соседа при удалении рабочего пространства — переносит тебя на соседнее рабочее пространство, а не на
/#3401 - «Создать раздел ниже» выведено на верхний уровень в меню рабочего пространства #3537
- Меню трея на событиях, показывающее реальное имя организации #3458
- Громкость звука уведомлений — выпадающий список в настройках #3073
- Решение комментариев ревью прямо во вкладке ревью #3078
- Публичный роадмап на rox.one/roadmap #3074
Исправления багов
- Безопасность — обновили drizzle-orm и better-auth, чтобы закрыть CVE #3560; запинили axios против известного supply-chain вектора #3043
- Чат — снизили поллинг отображения до 4fps и восстановили значения кэша запросов по умолчанию #3562
- Чат — предотвратили утечку символов от горячих клавиш в поле ввода чата #3520
- Терминал — восстановление после падения из-за немоноширинного шрифта #3554
- Терминал — разблокировали ввод v1 во время инициализации шелла #3550
- Терминал — синхронизировали размеры v1 с бэкендом при подключении #3545
- Терминал — соответствие обработке буфера обмена VS Code #3415
- Терминал — восстановили ⌘+клик для ссылок на файлы v1; обновили редактор тултипа ссылок v2 #3457 #3552
- Терминал — корректные размеры, отправляемые после attach (исправляет TUI-приложения) #3154
- Терминал — фикс искажений через сессии с приоритетом tRPC #3252
- Авто-обновлятор — восстановлен на macOS; восстановление после повреждённого кэша обновлений; спиннер во время ожидания; защита от повторных кликов #3291 #3278 #3495 #3561 #3549
- Выход на macOS — ⌘Q и «Выйти» из дока теперь полностью завершают приложение вместо сворачивания в трей #3205
- macOS — запуск запроса разрешения локальной сети при старте #3551
- Сканер портов — прекратили избыточный запуск
lsof#3547 - Рабочее пространство V2 — предотвратили мелькание «workspace not found» после создания; завязали дочерние элементы на готовность коллекции; выводим базовую ветку из конфига git #3494 #3464 #3492
- Дерево файлов V2 — больше не блокируется на
git.getStatusв общем пакете tRPC; иконки файлов разрешаются на вложенных маршрутах #3400 #3199 - Сайдбар V2 — бейдж LOC скрыт при отсутствии изменений; число в разделе соответствует визуальной группировке; нативный буфер обмена для копирования пути #3399 #3544 #3462
- Сайдбар diff V2 — убрали чекбоксы «просмотрено»; переключатель правого сайдбара реактивен #3480 #3421
- V2 — «Открыть в» редакторе теперь в пределах проекта, а не рабочего пространства; дублирование панелей при открытии файлов в новой вкладке; ловушка фокуса в модальных диалогах рабочего пространства #3393 #3093 #3392
- V1 — исправили двойной запуск Cmd+O для открытия; исправили начальные размеры разделённой панели;
--no-trackв createWorktree #3511 #3416 #3548 - Клавиатура — Ctrl-привязки, унификация
event.code, учёт переопределений терминала #3391 - IME-композиция в обработчиках Enter нового рабочего пространства #3486
- Прикреплённые файлы проходят через поле ввода промпта #3334
- Горячая клавиша закрытия рабочего пространства больше не конфликтует с закрытием вкладки — теперь ⌘⇧⌫ #3037
- Сообщения об ошибках отложенных сбоев выделяемы #3432
- Запрос настроек шрифта больше не направляется молча через host-service #3394
- MCP — принимаем URL ресурса как валидную OAuth-аудиторию; исправили, что устройства некорректно классифицировались как офлайн #3459 #3299
- Аутентификация CLI переведена на OAuth PKCE + loopback #3318