Skip to content

Latest commit

 

History

History
59 lines (41 loc) · 7.21 KB

File metadata and controls

59 lines (41 loc) · 7.21 KB

💡 Концепция и архитектура утилиты FreeIt

Документ планирования и полного перечисления всех обсуждённых фич и архитектурных решений для утилиты FreeIt в рамках экосистемы Kobalt Tools.


🎯 Суть проекта

FreeIt — лёгкая, нативная и современная десктопная утилита для Windows 10 & 11 на Rust + Tauri v2 + Svelte 5, предназначенная для мгновенного анализа, разблокировки и безопасного удаления заблокированных файлов и папок, которые удерживаются фоновыми процессами.


🚀 Детальный список функций и фич

1. 🛡️ Safe-Backups & Graceful Release («Не руби с плеча»)

  • Graceful Close (Мягкий сигнал): Попытка вежливой остановки приложения через отправку системных сообщений WM_CLOSE / WM_QUERYENDSESSION, позволяющая программам (Photoshop, Word, VS Code) сохранить несохранённый результат.
  • Safe Vault (Теневой бэкап): Автоматическое резервирование теневой копии заблокированного файла во временном защищённом хранилище %LOCALAPPDATA%\Kobalt\FreeIt\Vault\ до принудительного разрыва хэндлов (с хранением 7 дней или до очистки). В случае ошибки пользователь может восстановить файл в 1 клик через UI кнопкой «Отменить удаление (Restore)».

2. ⏳ Watcher & Auto-Free («Удали, когда освободится»)

  • Отложенный режим разблокировки: Если прямо сейчас идёт важный рендер, компиляция или загрузка, FreeIt встаёт на экономичный Win32-вотчер (notify / ReadDirectoryChangesW) с 0% CPU и удаляет файл в ту же миллисекунду, когда процесс сам закроет к нему доступ.
  • Toast-уведомления: Вывод аккуратного сообщения Windows 11 по завершении: «Папка "Project_Old" успешно удалена после закрытия Premier Pro».

3. 👁️ Read-Only Preview (Просмотр заблокированного файла через PeekIt)

  • Открытие заблокированного документа/медиа/кода в режиме безопасного сырого чтения (FILE_SHARE_READ | FILE_SHARE_WRITE) по нажатию Space (Пробел) через интеграцию с PeekIt, чтобы оценить содержимое до удаления.

4. 🦺 Индикатор риска и ИИ-Инспектор процессов (Smart Risk Level)

  • Цветовой код риска:
    • 🟢 Безопасно: Обычное пользовательское приложение (Telegram, Chrome, VS Code).
    • 🟡 Внимание: Служба синхронизации или автообновления (OneDrive, Yandex Disk).
    • 🔴 Опасность: Критические сервисы Windows (csrss.exe, lsass.exe и системное ядро) с блокировкой кликов от случайного BSOD.
  • Человекочитаемые названия: Замена системных имен (.exe) понятными описаниями (например, вместо node.exe ➔ «Локальный dev-сервер Vite / Next.js»).
  • ИИ-Консультант (Gemini API): Кнопка «Почему заблокировано?» выдаёт короткое человеческое объяснение причины блокировки.

5. 🧲 Floating Drop-Zone у курсора (Интеграция с StashIt)

  • Перетаскивание заблокированного файла в плавающий виджет StashIt: всплывает компактный виджет у курсора (🔴 Замок ➔ Клик ➔ 🟢 Разблокирован & Удален!).

6. ↩️ Безопасное удаление в Корзину Windows и уведомление MiniBin

  • Корзина Windows: При удалении используется нативный Win32-вызов SHFileOperationW с флагом FOF_ALLOWUNDO. Это гарантирует, что удалённый файл или папка попадают в Корзину Windows с возможностью штатного восстановления пользователя.
  • MiniBin: После удаления отправляется системное уведомление оболочки SHChangeNotify(SHCNE_DELETE, ...), благодаря чему MiniBin и проводник мгновенно обновляют визуальное состояние Корзины в трее.

🛠️ Модульная архитектура (0 изменений в других утилитах)

Экосистема Kobalt Tools строится на принципах Loose Coupling:

  1. С MiniBin: 0 изменений — слушатель событий корзины SHChangeNotifyRegister подхватывает удаление автоматически.
  2. С PeekIt: 0 изменений — вызов через CLI-аргумент peekit.exe "C:\path\to\file".
  3. Общий ИИ-ключ и автономная настройка (с 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 пользователю не придётся настраивать ИИ заново.

💻 Технический стек

  • Backend: Rust 2021 + Tauri v2 (windows-rs, rstrtmgr.dll, ntdll.dll).
  • Frontend: Svelte 5 с рунами ($state, $derived), TypeScript.
  • Website: Flutter Web (website/) на едином пакете kobalt_ui.