feat(sync): wire TUI account orchestration, SyncProvider integration, and Ctrl+S keybinding
- MicrosoftAccountSyncProvider: implements SyncProvider interface with connect_account(), sync_account(), disconnect_account(), provider_id() - TuiApp: inherits SyncObserver, implements thread-safe sync progress rendering, background sync thread, and Action::sync dispatch - CLI: add "account disconnect <id>" and "account list" commands - Main wiring: initialize sync infrastructure when connected accounts exist and a valid client ID is configured - Screen: add sync_stage and sync_is_error fields to ScreenState, map Ctrl+S to Action::sync keybinding - Fix ScreenState aggregate initializers in all construction sites - Tests: new microsoft_sync_provider_tests.cpp, all 22 tests pass
This commit is contained in:
@@ -118,6 +118,8 @@ void test_full_month_render()
|
||||
.search_result_index = 0,
|
||||
.notification = {},
|
||||
.notification_is_error = false,
|
||||
.sync_stage = {},
|
||||
.sync_is_error = false,
|
||||
.show_calendar_picker = false,
|
||||
.calendar_index = 0,
|
||||
.show_agenda = false,
|
||||
@@ -178,6 +180,8 @@ void test_compact_and_input()
|
||||
.search_result_index = 0,
|
||||
.notification = {},
|
||||
.notification_is_error = false,
|
||||
.sync_stage = {},
|
||||
.sync_is_error = false,
|
||||
.show_calendar_picker = false,
|
||||
.calendar_index = 0,
|
||||
.show_agenda = false,
|
||||
|
||||
Reference in New Issue
Block a user