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.
The repository-wide scalability audit of
bafd10cfound 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:
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.mdcover 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.