@startuml fig_03_navigation_hub !include _gost-theme.inc.puml scale 2 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