@startuml fig_03_navigation_hub scale 2 title Wallenc — навигация (Main) и доменная иерархия VaultsManager → IVault → IStorage → файлы end title skinparam defaultFontName "DejaVu Sans" skinparam activityBackgroundColor #F8F8F8 skinparam activityBorderColor #333333 skinparam noteBackgroundColor #FCE4EC skinparam noteBorderColor #C2185B start partition "**Main: нижняя навигация**" { :(A) Вкладка LocalVault (один LocalVault на устройстве); note right На экране — список **IStorage**, не список vault end note repeat :Ожидание действия; backward:Назад с вложенного экрана; switch (Действие?) case (FAB) :createStorage() новый **storage** в LocalVault; case (Выбор storage) :StorageHome: файлы, 2FA, текстовые секреты; case (Вкладка «Удалённые vault») :Список **IVault** (Yandex по OAuth); if (Нужен OAuth?) then (да) :Авторизация Яндекс; endif :Выбор vault → VaultBrowser; :Список **storage** в выбранном vault; :StorageHome; endswitch repeat while (Пользователь в Main?) is (да) -> нет; } stop floating note right **Фон: StorageSyncEngine** • DbStorageSyncGroup: UUID **storage** в группе • Журнал изменений по путям, merge ревизий • Независимо от текущего экрана UI • Ключи шифрования провайдеру не передаются end note @enduml