Skip to content

feat: Cloud Sync (Dropbox + GDrive) - #3

Closed
danvitv wants to merge 11 commits into
feat/lorebook-regex-uifrom
feat/cloud-sync
Closed

feat: Cloud Sync (Dropbox + GDrive)#3
danvitv wants to merge 11 commits into
feat/lorebook-regex-uifrom
feat/cloud-sync

Conversation

@danvitv

@danvitv danvitv commented May 6, 2026

Copy link
Copy Markdown
Owner

Summary

Architecture

  • features/cloud_sync/ — adapters, auth, engine, serialization, manifest, conflict, gallery, queue
  • No encryption (per plan)
  • Env vars read from .env for OAuth keys (Dropbox App Key, GDrive Client ID)

Status

WIP — implementation in progress

danvitv and others added 10 commits May 6, 2026 14:43
- New lib/core/utils/platform_paths.dart with async getAppDataDir()
  using path_provider for Android/iOS, env vars for desktop
- Removed duplicate _getAppDataDir() from app_db.dart and
  image_storage_service.dart
- ImageStorageService.create() now async (Future)
- imageStorageProvider, characterImporterProvider, migrationServiceProvider
  converted to FutureProvider
- Updated all consumers to use .future await pattern
feat: lorebook import/settings/connections, regex editor, tokenizer, raw response viewer
…, JannyAI, Chub)

- Catalog models: CatalogItem, CatalogFilters, CatalogTag, CatalogProvider (freezed)
- Shared classes: CatalogSearchResult, DownloadedCharacter, CharacterData
- catalog_http: Dio-based HTTP client with GET/POST/list helpers
- janitor_provider: Hampter API search, tags, character download
- datacat_provider: session auth, browse/search, Saucepan extraction
- janny_provider: MeiliSearch API, token management, Astro scraping
- chub_provider: REST search, tag aggregation, character download
- catalog_provider: Riverpod StateNotifier, provider switching, pagination
- CharacterRepo.createCharacterFromCatalog / LorebookRepo.createEntryFromCatalog
- Android INTERNET permission for catalog API access
…rs, preview sheet, import

- CatalogCard: avatar with CachedNetworkImage, token badge, NSFW badge, tag chips
- CatalogGrid: infinite scroll, provider/sort/filter controls, results count
- Preview sheet: draggable sheet with full character info + Import button
- Filter sheet: NSFW/NSFL toggles, token range, reset/apply
- ImportUrlDialog: DataCat extract-and-poll with phase tracking
- Wired into character_list_screen Discover tab + Import URL FAB
- Added cached_network_image dependency
…e, sync blocking

- Import: create new session instead of appending to current chat,
  remove broken timestamp dedup that dropped same-second messages
- Chat list: invalidate chatHistoryProvider on all ChatNotifier mutations
- Cold start: lightweight SessionMetadata query + batch CharacterRepo.getByIds
- Sync: Drift .watch() streams for CharactersNotifier and ChatHistoryNotifier
@danvitv
danvitv deleted the branch feat/lorebook-regex-ui May 6, 2026 14:09
@danvitv danvitv closed this May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants