Add client-side result cache