Implement Android Home remote activity and Commit, Fetch, Pull, and Push #97

Open
opened 2026-08-17 19:12:20 +00:00 by hugo · 0 comments
Owner

Goal

Present the storage-owned Git status and intentionally limited HTTPS synchronization workflow on Android.

Scope

  • Render tracked remote, refresh time/freshness, ahead/behind state, incoming/outgoing commits, changed password-store objects, and typed notices/actions supplied by Rust.
  • Refresh stale status on entry and explicit swipe-to-refresh; make the primary refresh gesture perform the storage-owned pull where the shared contract specifies it.
  • Expose Commit, Fetch, Pull, and Push through Material buttons/menus with a commit-message dialog and configured Git name/email.
  • Run bridge operations on an injected I/O dispatcher, display monotonic typed progress, support cancellation/retry, and prevent stale operation results replacing current state.
  • Use only the configured HTTPS application credential from secure storage. No SSH, helper, subprocess, raw Git output parsing, or Kotlin diff interpretation.
  • Coordinate results with open editors, tree/viewer state, TOTP cache, conflicts, dirty changes, authentication expiry, offline state, and process/background lifecycle.
  • Do not put interactive Git operations into WorkManager; if future non-interactive refresh is added, it needs a separate audited policy.

Acceptance criteria

  • Users can distinguish cached/current and incoming/outgoing activity and invoke all four Git actions.
  • Pull/push cannot silently overwrite dirty edits or unresolved conflicts.
  • Offline, authentication, TLS, conflict, cancellation, and retry paths are recoverable and non-secret.
  • Kotlin never constructs commits, stages paths, supplies arbitrary remote URLs, or infers domain state from Git text.
  • Large-history and slow-network tests keep the UI responsive.

Depends on onboarding, Keystore, lifecycle security, and the Compose shell. Part of #87.

## Goal Present the storage-owned Git status and intentionally limited HTTPS synchronization workflow on Android. ## Scope - Render tracked remote, refresh time/freshness, ahead/behind state, incoming/outgoing commits, changed password-store objects, and typed notices/actions supplied by Rust. - Refresh stale status on entry and explicit swipe-to-refresh; make the primary refresh gesture perform the storage-owned pull where the shared contract specifies it. - Expose Commit, Fetch, Pull, and Push through Material buttons/menus with a commit-message dialog and configured Git name/email. - Run bridge operations on an injected I/O dispatcher, display monotonic typed progress, support cancellation/retry, and prevent stale operation results replacing current state. - Use only the configured HTTPS application credential from secure storage. No SSH, helper, subprocess, raw Git output parsing, or Kotlin diff interpretation. - Coordinate results with open editors, tree/viewer state, TOTP cache, conflicts, dirty changes, authentication expiry, offline state, and process/background lifecycle. - Do not put interactive Git operations into WorkManager; if future non-interactive refresh is added, it needs a separate audited policy. ## Acceptance criteria - Users can distinguish cached/current and incoming/outgoing activity and invoke all four Git actions. - Pull/push cannot silently overwrite dirty edits or unresolved conflicts. - Offline, authentication, TLS, conflict, cancellation, and retry paths are recoverable and non-secret. - Kotlin never constructs commits, stages paths, supplies arbitrary remote URLs, or infers domain state from Git text. - Large-history and slow-network tests keep the UI responsive. Depends on onboarding, Keystore, lifecycle security, and the Compose shell. Part of #87.
hugo added this to the 06 - Implement an Android version of the software milestone 2026-08-17 19:12:20 +00:00
hugo added the enhancement label 2026-08-17 19:12:20 +00:00
Sign in to join this conversation.