Документ планирования и полного перечисления всех обсуждённых фич и архитектурных решений для утилиты FreeIt в рамках экосистемы Kobalt Tools.
FreeIt — лёгкая, нативная и современная десктопная утилита для Windows 10 & 11 на Rust + Tauri v2 + Svelte 5, предназначенная для мгновенного анализа, разблокировки и безопасного удаления заблокированных файлов и папок, которые удерживаются фоновыми процессами.
- Graceful Close (Мягкий сигнал): Попытка вежливой остановки приложения через отправку системных сообщений
WM_CLOSE/WM_QUERYENDSESSION, позволяющая программам (Photoshop, Word, VS Code) сохранить несохранённый результат. - Safe Vault (Теневой бэкап): Автоматическое резервирование теневой копии заблокированного файла во временном защищённом хранилище
%LOCALAPPDATA%\Kobalt\FreeIt\Vault\до принудительного разрыва хэндлов (с хранением 7 дней или до очистки). В случае ошибки пользователь может восстановить файл в 1 клик через UI кнопкой «Отменить удаление (Restore)».
- Отложенный режим разблокировки: Если прямо сейчас идёт важный рендер, компиляция или загрузка, FreeIt встаёт на экономичный Win32-вотчер (
notify/ReadDirectoryChangesW) с 0% CPU и удаляет файл в ту же миллисекунду, когда процесс сам закроет к нему доступ. - Toast-уведомления: Вывод аккуратного сообщения Windows 11 по завершении: «Папка "Project_Old" успешно удалена после закрытия Premier Pro».
- Открытие заблокированного документа/медиа/кода в режиме безопасного сырого чтения (
FILE_SHARE_READ | FILE_SHARE_WRITE) по нажатию Space (Пробел) через интеграцию с PeekIt, чтобы оценить содержимое до удаления.
- Цветовой код риска:
- 🟢 Безопасно: Обычное пользовательское приложение (Telegram, Chrome, VS Code).
- 🟡 Внимание: Служба синхронизации или автообновления (OneDrive, Yandex Disk).
- 🔴 Опасность: Критические сервисы Windows (
csrss.exe,lsass.exeи системное ядро) с блокировкой кликов от случайного BSOD.
- Человекочитаемые названия: Замена системных имен (.exe) понятными описаниями (например, вместо
node.exe➔ «Локальный dev-сервер Vite / Next.js»). - ИИ-Консультант (Gemini API): Кнопка «Почему заблокировано?» выдаёт короткое человеческое объяснение причины блокировки.
- Перетаскивание заблокированного файла в плавающий виджет StashIt: всплывает компактный виджет у курсора (🔴 Замок ➔ Клик ➔ 🟢 Разблокирован & Удален!).
- Корзина Windows: При удалении используется нативный Win32-вызов
SHFileOperationWс флагомFOF_ALLOWUNDO. Это гарантирует, что удалённый файл или папка попадают в Корзину Windows с возможностью штатного восстановления пользователя. - MiniBin: После удаления отправляется системное уведомление оболочки
SHChangeNotify(SHCNE_DELETE, ...), благодаря чему MiniBin и проводник мгновенно обновляют визуальное состояние Корзины в трее.
Экосистема Kobalt Tools строится на принципах Loose Coupling:
- С MiniBin: 0 изменений — слушатель событий корзины
SHChangeNotifyRegisterподхватывает удаление автоматически. - С PeekIt: 0 изменений — вызов через CLI-аргумент
peekit.exe "C:\path\to\file". - Общий ИИ-ключ и автономная настройка (с PolyShift):
- Автоподхват: При запуске FreeIt проверяет наличие ключа и выбранной модели в реестре Windows (
HKCU\Software\KobaltTools\API, DPAPI-шифрование). Если PolyShift уже установлен — настройки подтягиваются автоматически. - Автономный ввод: Если PolyShift не установлен или ключ не задан, в интерфейсе FreeIt предусмотрена вкладка/модальное окно настроек для ввода Gemini API ключа и выбора модели (
gemini-2.0-flash,gemini-1.5-flashи др.). - Двусторонняя синергия: При сохранении ключа в FreeIt он записывается в
HKCU\Software\KobaltTools\API, поэтому при последующей установке PolyShift пользователю не придётся настраивать ИИ заново.
- Автоподхват: При запуске FreeIt проверяет наличие ключа и выбранной модели в реестре Windows (
- Backend: Rust 2021 + Tauri v2 (
windows-rs,rstrtmgr.dll,ntdll.dll). - Frontend: Svelte 5 с рунами (
$state,$derived), TypeScript. - Website: Flutter Web (
website/) на едином пакетеkobalt_ui.