github LeoAlecksey/opsdeck v0.8.3
OpsDeck v0.8.3

3 hours ago

OpsDeck 0.8.3 — вкладки ИИ-чата, контекст хостов и приложение полегче

ИИ-чат дорос до рабочего инструмента: вкладки, привязка к терминалу или серверу и история между запусками. Теперь ИИ сам знает, что крутится на ваших хостах, а локальная модель подсказывает, потянет ли её этот компьютер. А ещё — целая серия PR от @LockerWarUA: приложение быстрее запускается, меньше дёргает диск, git, хранилище паролей и серверы. Спасибо всем, кто пишет и присылает PR! 🙌

✨ Новое

  • Вкладки в ИИ-чате — до восьми разговоров рядом: + добавляет, двойной клик переименовывает, название по умолчанию — начало первого вопроса. Вкладку можно привязать:

    • к вкладке терминала — чат берёт оттуда папку и оболочку, «▸ В терминал» вставляет туда же, а переход на эту вкладку терминала открывает её чат;
    • к серверу из списка SSH — модель знает, про какой сервер вопрос, а расследование агента идёт только на этом хосте.

    (#97)

  • История чата между запусками. Вкладки, названия, разговоры и привязки к серверам сохраняются в ai-chats.json рядом с настройками (права 0600). От расследований агента остаются вопрос и итог, вывод команд — нет. Отключается галочкой в ⚙ → Локальный ИИ, там же кнопка «Удалить сохранённую историю». (#100)

  • Контекст для ИИ у SSH-хостов: что на сервере крутится и что важно — «PostgreSQL 16, основная база заказов; бэкапы в 03:00; без согласования не перезапускать». ИИ получает это сам: агент — для хостов из задачи, чат — для своего сервера. У своих хостов это поле в диалоге хоста, у хостов из ~/.ssh/config — кнопка с листком (сам файл OpsDeck не трогает). Текст идёт модели как сведения, а не указания.

  • Правая кнопка мыши в терминале — на выбор, в ⚙ → Терминал: меню (как раньше), «Вставить из буфера» как в PuTTY или «Копировать выделение, иначе вставить» как в Windows Terminal. Действует сразу во всех терминалах, включая SSH и CLI-агентов. (#99)

  • Описание и подзадачи в «Задачах». Строки с отступом под задачей — как их показывает Obsidian — теперь её описание и подзадачи, а не отдельные задачи в общем списке. Задача раскрывается по клику, ☑ N/M показывает, сколько сделано, описание правится на месте, подзадача добавляется по Enter. Удаление задачи уносит и её блок, а поиск находит задачу и по тексту подзадачи.

🤖 Локальный ИИ

  • Qwen3.8 27B в списке моделей: плотная модель, около 16,5 ГБ, рекомендовано 24 ГБ памяти; движок обновлять не нужно.
  • «Потянет ли этот компьютер» — у каждой модели: ★ самая сильная из тех, что пойдут без оговорок, ⚠ памяти впритык или медленно без видеокарты, ✕ не потянет. Под выбранной моделью написано почему. Модель с ✕ скачивается только после подтверждения, а если не хватает места на диске, загрузка не начнётся, вместо того чтобы оборваться на 15-м гигабайте из 17. Видеопамять пока не учитывается.
  • Привычки DevOps-инженера для чата и агента: от симптома снаружи внутрь, сначала смотреть, потом менять, plan/--check/--dry-run до применения, не печатать секреты, итог в виде «причина — доказательство — что сделать — как проверить». Чат и агент получают и справку по инструментам из базы знаний — меньше выдуманных флагов.

⚡ Быстрее и тише

  • Запуск вдвое легче: IDE (CodeMirror, разбор YAML) и тексты справки грузятся при первом открытии, а не при каждом старте — код, который разбирается при запуске, сократился с 2,2 до 1,1 МБ. Первое открытие IDE и справки — на несколько десятков миллисекунд дольше. (#101, @LockerWarUA)
  • Подсказки команд в терминале не тормозят на большой истории: индекс общий и не копируется на каждой паузе ввода, устаревший обновляется в фоне и перечитывает только изменённые файлы истории и заметок. (#103, @LockerWarUA)
  • Алерты не переписывают файл на каждом опросе. Если источник вернул те же алерты, alerts.json не перезаписывается и раздел не перерисовывается; повторная отправка Prometheus (сдвиг endsAt) изменением не считается. На стенде с тремя постоянными алертами — 0 записей вместо 16 за 4 минуты. Заодно «просмотрен» у находок ИИ без своего времени больше не сбрасывается каждым опросом. (#108, @LockerWarUA)
  • Пароль коннектора алертов не читается из хранилища паролей на каждом опросе: после первого чтения он хранится в памяти (затирается при сбросе), а при остановке опроса и сохранении коннектора сбрасывается. На Linux это минус сессия D-Bus раз в минуту на источник и никаких окон ввода пароля посреди простоя. Ошибка хранилища больше не превращается молча в пустой пароль — она попадает в журнал. (#109, @LockerWarUA)
  • Мониторинг на Windows: одна ssh-сессия на хост вместо входа на каждый опрос. В OpenSSH для Windows нет ControlMaster, поэтому каждое обновление доски было полным входом — при 20 хостах и интервале 30 с это 40 строк в журнале авторизации сервера в минуту, а с fail2ban или MaxStartups ещё и риск бана. Теперь доска держит одно соединение с каждым хостом и закрывает его после 2 минут без опросов, как ControlPersist на Linux и macOS. Нужен вход по ключу; ошибки входа объясняются, как и раньше. (#105, @LockerWarUA)
  • Панель «Файлы» не гоняет git вхолостую. Раньше открытая панель каждые 5 с запускала git rev-parse и git status, даже если ничего не менялось: 48 процессов git за 2 минуты простоя, а в большом репозитории следующий status накладывался на ещё не закончившийся. Теперь панель сверяет дешёвый отпечаток (ветка, индекс, содержимое показанных папок) без запуска git и запускает status только при изменении и только по одному. Папка вне репозитория запоминается до ⟳ или до следующей команды в терминале. Фоновый status больше не берёт index.lock, поэтому не срывает git-команду, которую вы запустили в тот же момент. (#114, @LockerWarUA)

🐞 Исправления

  • Язык системы на чистой установке. На нерусской системе интерфейс открывался на английском, справка — на русском, а после перезапуска весь интерфейс становился русским. Теперь язык следует за системой с первого запуска. (#102, @LockerWarUA)
  • Закрытая панель терминала больше не трогает терминал: таймер подсказки и кадр подсветки ввода, запрошенные до закрытия, ничего не делают, а ответ подсказки, который был ещё в пути, отбрасывается. (#104, @LockerWarUA)

🔒 Безопасность

  • dompurify 3.4.17 — три критические уязвимости в очистке HTML (ею чистятся заметки).
  • undici 7.30.1 / 8.12.3 — используется только в e2e-тестах, в приложение не попадает.
  • ctutils 0.4.6; для crypto-bigint 0.5 риск принят до перехода библиотеки pgp на новую версию.

👥 Участники релиза

  • @LockerWarUA — PR #101–#105, #108, #109, #114: быстрый запуск, подсказки команд, алерты без лишней записи и лишних чтений паролей, ssh-сессия мониторинга на Windows, git в панели «Файлы» только при изменениях, язык на чистой установке, закрытие панели терминала.

Хотите поучаствовать? PR принимаются в ветку dev, подробности в CONTRIBUTING.md.

Don't miss a new opsdeck release

NewReleases is sending notifications on new releases.