Skip to content

Harden data access, background recovery and Android verification after scalability audit #198

Description

@cestercian

The repository-wide scalability audit of bafd10c found concrete client bottlenecks and recovery risks: unbounded simultaneous artist hydration, process-lifetime stale/account-shared cached rows, duplicate compatibility reads on transport errors, inbox refresh races, eager history composition, non-atomic thread preferences, oversized media allocation/imports, upload reset/auth/snapshot gaps, partial calendar-write recovery, URL substring tier checks, unrestricted backup, and no checked-in CI gate.

Implement the first hardening phase while preserving the current UI and shared Supabase schema:

  • Bound and coordinate artist hydration; expire full/missing entries and invalidate by account.
  • Preserve cancellation and restrict optional-column fallbacks.
  • Commit inbox refreshes coherently, index quote matching, and lazily render booking history.
  • Persist thread flag mutations atomically.
  • Bound photo decode/import resources and harden upload ownership, teardown and snapshots.
  • Retain acknowledged calendar operations after partial failures.
  • Validate exact backend origins and exclude device/account state from backup transfers.
  • Add credential-free debug/JVM/lint/R8 CI and record the audit/follow-up plan.

Acceptance: :app:assembleDebug, :app:testDebugUnitTest, :app:lintDevDebug, :app:assembleProdRelease; focused regressions for concurrency, ownership, cancellation, disk failures and resource limits. Emulator/instrumented/device tests are not performed in this environment and remain a release gate.

This phase does not claim production capacity. Follow-up phases in docs/SCALABILITY_AUDIT_2026-09-22.md cover complete list paging/aggregates/calendar windows, bounded cache eviction after list ownership changes, batched summaries, idempotent media retries, real telemetry sinks, shared-backend contract/load tests and device profiling.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions