Skip to content

Add conversation caching, session organization, and file management - #8

Closed
sofire wants to merge 1 commit into
xintaofei:mainfrom
sofire:feat/android-local-cache
Closed

sofire wants to merge 1 commit into
xintaofei:mainfrom
sofire:feat/android-local-cache

Conversation

@sofire

@sofire sofire commented Nov 1, 2026

Copy link
Copy Markdown

Summary

Android client
├── Conversations: private disk cache, recent-round paging, refresh/retry
├── Chats and folders: grouping, sorting, collapse, local ordering/visibility
└── Files: conversation index, persistent downloads, local/remote previews
  • Cache confirmed responses per profile, endpoint and credentials, with bounded storage and invalidation on identity changes.
  • Preserve loaded history, live replies and navigation drafts; keep global search independent of list display preferences.
  • Add ticket-based downloads, APK installer handoff, bounded image/text previews, English/Chinese resources and usage documentation.
  • Keep legacy-server fallbacks for history and file indexing; no new dependencies.

Evidence

  • Before: conversation entry fetched full detail from the server; no persistent download/file-manager flow or device-local folder organization.
    After: cache-first lists/details, validated history pages, persistent preferences and a unified conversation-files/download-history flow, covered by regression tests.
  • Verification command: ANDROID_HOME=<sdk> ./gradlew :app:check :app:assembleDebug :app:assembleRelease --no-daemon --no-build-cache.
  • Full verification passed: Debug and Release each ran 269 JVM tests across 43 suites, zero failures/errors/skips; lint and both APK builds succeeded (lint warnings remain).
  • git diff --cached --check passes.
  • A fresh online license report matches the checked-in bundle. Offline report generation lacks POM metadata and can produce an invalid cached report; local verification disables the build cache.
  • Physical-device and emulator interaction tests were not repeated for this submission.

Merge Danger

Door: two-way

No destructive data migration. Conversation caches are disposable; download history removal preserves completed files. This request contains Android changes only.

Blast Radius: Android

  • Recent-round paging and the compact file index benefit from the accompanying Codeg server support. Older servers fall back to full history, which can be slower for large conversations.
  • Server-file viewing/downloading requires the existing workspace_download_ticket API. System downloads receive one-use URLs, never the server token.
  • Adds REQUEST_INSTALL_PACKAGES for user-confirmed APK installation; Android may require a separate user grant.

@sofire sofire closed this Nov 1, 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.

1 participant