Команда с восемью флагами, которую собирал полчаса неделю назад, в обычной истории команд шелла не находится: файл перезаписан параллельной сессией, каталог и код возврата не сохранены, а на второй машине её нет вовсе.
Atuin складывает историю в SQLite, добавляет к каждой команде контекст и синхронизирует её между машинами со сквозным шифрованием. Версия 18.18.0 вышла 27 июля, следом выпустили патч 18.18.1.
Что внутри:
🔘 подсветка синтаксиса команд в интерактивном поиске, разбор идёт грамматикой конкретного шелла, цвета задаются в конфиге;
🔘 фильтр по шеллу: флаг --shell у atuin search и переключатель в интерактивном интерфейсе, у записей истории появилось поле shell;
🔘 bash-preexec встроен внутрь, Atuin подгружает его сам, если другого preexec-бэкенда в bash нет;
🔘 поиск корректно считает смещения в не-ASCII, импорт больше не обрывается на повреждённой записи;
🔘 по производительности: подсчёт истории перестал блокировать, активная история индексируется, строки удаляются физически, а демон индексирует синхронизированную историю напрямую вместо некорректного SQL-запроса;
🔘 удалён устаревший протокол синхронизации V1, обновлены уязвимые зависимости, sqlx обновлён до версии 9;
🔘 патч 18.18.1 чинит установку с crates.io и убирает зависимость fs4, блокировка файлов переехала на std::fs.
Пригодится тем, кто по нескольку раз в день выуживает из истории длинную команду с флагами и работает с двух-трёх машин.
Язык: Rust. Лицензия: MIT.
@prog_tools
Post #2862
1.61K
