Skip to content

Make streak protection opt-out by default - #43

Merged
AldanaBRZ merged 1 commit into
float3:masterfrom
AldanaBRZ:fix/streak-freeze-opt-out
Sep 28, 2026
Merged

AldanaBRZ merged 1 commit into
float3:masterfrom
AldanaBRZ:fix/streak-freeze-opt-out

Conversation

@AldanaBRZ

Copy link
Copy Markdown
Collaborator

Streak protection now defaults to enabled when a player has no saved choice. Players can opt out through the existing settings toggle; the first opt-out is recorded even before they upload reviews, repeated saves remain idempotent, and recorded opt-outs survive restarts.

Use one shared preference policy for settings responses, profiles, quest rewards and automatic protection. Persist the rollout time once so upgrading an opt-in server does not retroactively earn or spend freezes or change past streak/XP history. Existing saved freezes and preference timelines remain intact.

Update the dashboard's English/Spanish explanation and README to describe the new default and upgrade behavior. Android's existing toggle reads the server response; AnkiQuest-Android#38 updates the displayed explanation.

Validation:

  • Confirmed three new regressions failed before the fix.
  • All 231 Rust tests passed on the current server base, including earning without a settings change, first opt-out persistence, upgrade boundaries and saved opt-outs.
  • All 21 freeze-dialog browser checks and 6 translation checks passed, including opting out of a checked toggle without losing stock.
  • Formatting and Clippy checks passed.

Note

Assisted-by: GPT-6 (implementation, regression tests, review and PR description).

Make freezes opt-out while preserving saved choices, stock and past streak history. Save a fixed rollout boundary, persist the first opt-out, and update English and Spanish settings guidance.

Assisted-by: GPT-6 (implementation, regression tests, review)
@AldanaBRZ
AldanaBRZ merged commit f692d22 into float3:master Sep 28, 2026
2 checks passed
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