Commit Graph

64 Commits

Author SHA1 Message Date
2618df41e3 feat(sync): добавил cooperative-отмену sync и pipeline-задач
ensureActive в StorageSyncEngine, flush журнала перед чтением, Cancelled
в StorageSyncRunOutcome и TaskContext.ensureNotCancelled.
2026-05-22 13:22:15 +03:00
bc2b354820 fix(sync): исправил журнал при DELETE/TRASH и безопасный flush
Добавил recordSyncJournal для delete/moveToTrash, StorageSyncJournalBuffer
с восстановлением pending при ошибке записи и немедленным flush без debounce.
2026-05-22 13:22:05 +03:00
07d54b5996 Заголовок задачи синхронизации 2026-05-22 00:20:49 +03:00
d3eac81660 Причина синхронизации и временная метка в логах 2026-05-21 22:30:40 +03:00
d0f490a3fd refactor(sync): перевёл журнал на map по пути и убрал цикл debounce-sync
Журнал хранится как словарь path→entry, служебные пути исключены из sync.
Apply пишет файлы без записи в журнал; bootstrap не триггерит sync во время работы.
2026-05-21 22:05:57 +03:00
51e6f40587 fix(sync): стабилизировал синхронизацию, Yandex I/O и вёрстку карточки storage
Добавил TRASH вместо DELETE для moveToTrash, компакцию журналов и отчёт об ошибках apply.
Исправил проброс ошибок upload Yandex при close, CAS lock и загрузку OAuth-токена.
Упростил совместимость sync-групп (только encInfo), поправил растягивание StorageTree при недоступных meta.
2026-05-21 18:46:03 +03:00
467ed64426 fix(vault): исправил шифрование, meta Yandex и enc-meta при первом открытии
Remember key после encrypt, мягкий auto-open в UnlockManager,
StorageMetaLoadState без затирания meta на сетевых ошибках,
фильтр storages в YandexVault и создание .enc-meta при FileNotFound.
2026-05-21 11:05:14 +03:00
c58bcdc35b Сильно улучшен UX при работе с Yandex vault 2026-05-21 01:40:30 +03:00
ffdab4563d Исправлено множество предупреждений 2026-05-19 01:42:22 +03:00
f99d79fece Переключение языка 2026-05-18 15:35:06 +03:00
f3f99aed5a refactor(errors): унифицировал доменные ошибки и добавил failed-статус задач 2026-05-18 14:52:33 +03:00
3820a60d2c Работающий TOTP 2fa 2026-05-17 18:59:54 +03:00
e562e4d9e9 feat(sync): перевёл группы синхронизации на Room и добавил контроль совместимости 2026-05-17 18:03:14 +03:00
5777f8e459 feat(storage): добавлены маршруты и экраны для управления текстовыми секретами и 2FA токенами 2026-05-13 20:39:55 +03:00
f551efe4a6 feat(ui): добавлены новые состояния и компоненты для отображения статуса работы 2026-05-13 17:22:31 +03:00
6c18a1d741 feat(sync): добавлен механизм снятия блокировки синхронизации для хранилищ 2026-05-13 14:43:27 +03:00
f38b3dfbb4 feat(sync): добавил механизм синхронизации хранилищ и управление группами
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 23:46:31 +03:00
61bcaa95d8 Исправлено много варнингов 2026-05-11 22:18:15 +03:00
3928ac5409 Большая реструктуризация проекта 2026-05-11 19:33:32 +03:00
d60cd9053a refactor(vault): extract BaseStorage and align storage interfaces
Consolidate duplicated meta-info and clear logic into BaseStorage. Promote
system file accessors and DataPage-based flows into IStorageAccessor. Use Long
for vault disk space to support cloud byte counts. Combine local and remote
storages in VaultsManager so UnlockManager sees all backends.

Yandex Disk REST integration (phase B) is deferred to a follow-up change.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-03 20:25:59 +03:00
1034e134c2 Большой рефакторинг
Из domain выкинуты типы vault, теперь он ничего не знает о Yandex. Объявления провайдеров вынесены в vault-api, а реализации в data
2026-04-27 02:47:02 +03:00
75162e2d64 Новый конвейер задач и уведомлений 2026-04-21 01:52:31 +03:00
b3c00b1719 Добавлен Yandex 2026-04-19 00:22:05 +03:00
586e2b61fd Ещё чистка 2026-04-18 22:47:49 +03:00
047eaa2f59 Небольшая чистка 2026-04-18 22:24:51 +03:00
d806e3a8a1 Добавлен foreground сервис 2026-04-18 21:38:09 +03:00
db9463c2c6 Полное управление шифрованием и ключами 2026-04-18 17:36:29 +03:00
3455b91bca Новый юзкейс удаления хранилищ 2026-04-17 22:28:22 +03:00
51436401da OpenedStorages больше не nullable 2026-04-17 22:16:28 +03:00
d965dd8609 UnlockManager больше не Vault 2026-04-17 22:15:59 +03:00
Пытков Роман
5fd96003db IUnlockManager теперь IVault 2026-03-31 00:57:04 +03:00
Пытков Роман
8a80dac408 Поправлен клик сквозь экран загрузки 2026-03-30 12:43:35 +03:00
Пытков Роман
53fee48e64 Исправление для юнит теста 2026-03-30 05:43:56 +03:00
Пытков Роман
2d433671d0 Опциональное шифрование имён файлов 2026-03-30 05:42:23 +03:00
Пытков Роман
27b3e40362 Статичный IV для имён файлов 2026-03-30 04:50:30 +03:00
Пытков Роман
111e0216dc Удаление кошельков 2026-03-27 04:21:39 +03:00
Пытков Роман
bf058db21b Диалог изменения имени 2026-03-27 04:09:45 +03:00
Пытков Роман
9d68b780c8 Отображение хранилищ как деревья 2026-03-26 21:52:39 +03:00
Пытков Роман
4b7e12585e Мета информация о хранилищах хранится в бд 2026-03-26 07:56:39 +03:00
Пытков Роман
5c05c9d2f1 Обновление времени при записи, StorageMetaInfo 2026-03-25 06:37:38 +03:00
51174dc2b2 Реализован UnlockManager 2026-03-24 09:26:34 +03:00
Roman Pytkov
4c54120f22 Тесты для Encryptor 2026-03-20 17:58:07 +03:00
Roman Pytkov
b439496db2 Проверка ключа 2026-03-20 17:25:10 +03:00
Roman Pytkov
87282178b7 Вынос шифрования в отдельный класс 2026-03-20 17:09:32 +03:00
Roman Pytkov
b7ee7dbaf4 Dispose для EncryptedStorage, скрытые системные файлы для LocalStorage 2026-03-20 16:57:52 +03:00
Roman Pytkov
7094517264 Dispose для EncryptedStorage 2026-03-20 13:35:47 +03:00
Roman Pytkov
ad7c210679 Небольшая правка 2026-03-20 13:30:37 +03:00
Roman Pytkov
12bd7babd8 Добавлено StorageEncryptionInfo для локальных хранилищ 2026-03-20 13:17:33 +03:00
Roman Pytkov
270f0d671d Создана база данных 2026-03-20 12:11:25 +03:00
Roman Pytkov
c82fd305fc compile-time проверка IStorageInfo 2026-03-20 07:07:28 +03:00