Skip to content

Number the heatmap's days and streaks as AnkiQuest does - #68

Merged
float3 merged 4 commits into
ankiquestfrom
fix/heatmap-streak-freezes
Oct 29, 2026
Merged

float3 merged 4 commits into
ankiquestfrom
fix/heatmap-streak-freezes

Conversation

@float3

@float3 float3 commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

The heatmap numbered every review's day by the device's present clock, because the revlog does not record which clock a review was studied under. Reviews made on a flight through time zones landed on a neighbouring day and left an empty one, so the heatmap's streak broke where the widget's AnkiQuest streak carried on.

  • once the collection's history is drawn, the AnkiQuest profile's heatmap is read: its per-day counts, numbered by the clock each review was made under, replace the local ones from the first day the server has reviews for up to the day before the last review it was sent
  • today, days not yet uploaded and days the server does not cover stay the collection's; offline or without AnkiQuest nothing changes
  • days the server protected with a streak freeze keep a streak going without lengthening it, have a blue outline, and say so when tapped

Known limit: "View reviewed cards" still searches Anki's own day windows, so for a day the server renumbered it can list a neighbouring day's cards.

The heatmap counted a streak from the collection's review days alone, so a day a streak freeze covered broke it, while the AnkiQuest widget, which counts the server's streak, carried on: a freeze on 28 October left the heatmap at 1 day against a longer streak on the widget. The heatmap now reads the frozen days from the AnkiQuest profile once the collection has been drawn, and counts them as the server does, keeping a streak without lengthening it. Such days have a blue outline and say so when tapped. Without AnkiQuest set up, or offline, the heatmap is as before.
The revlog records when a review happened but not under which clock, so the heatmap numbered every day by the device's present one. Reviews studied on a flight through time zones landed on a neighbouring day and left an empty one, which broke the heatmap's streak while AnkiQuest's carried on. AnkiQuest records each clock as it is reported and numbers reviews by the one in force, so its per-day counts are now used from the first day it has reviews for up to the day before the last review it was sent. Today and the days the server has not been sent stay the collection's.
@float3 float3 changed the title Count the days AnkiQuest protected in the heatmap's streaks Number the heatmap's days and streaks as AnkiQuest does Oct 29, 2026
@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Snapshot diff report vs ankiquest. Open screenshot-diff for diffs.

  • AnkiquestHomeScreenshotTest: 1 change
  • CustomStudyScreenshotTest: 2 changes
  • DeckPickerScreenshotTest: 7 changes
  • DeckPickerTabletScreenshotTest: 1 change
  • NavigationDrawerScreenshotTest: 1 change
  • ReviewRemindersScreenshotTest: 5 changes
All 17 changed screenshots

AnkiquestHomeScreenshotTest

  • today_320dp_compare.png

CustomStudyScreenshotTest

  • tablet_unavailable_deck_compare.png
  • unavailable_deck_compare.png

DeckPickerScreenshotTest

  • bottom_navigation_keyboard_open_scrolled_to_bottom_compare.png
  • deck_list_after_dismissing_create_deck_dialog_compare.png
  • hierarchy_lines_collapsed_compare.png
  • hierarchy_lines_compare.png
  • hierarchy_lines_deep_nesting_compare.png
  • hierarchy_lines_many_siblings_compare.png
  • keyboard_open_scrolled_to_bottom_compare.png

DeckPickerTabletScreenshotTest

  • keyboard_open_compare.png

NavigationDrawerScreenshotTest

  • navigationDrawer_compare.png

ReviewRemindersScreenshotTest

  • studyOptionsFragmentHost_scheduleReminders_compare.png
  • studyOptionsFragmentHost_systemBars_compare.png
  • studyOptionsFragmentHost_systemBars_scrolledToEnd_compare.png
  • studyOptionsFragmentHost_troubleshooting_compare.png
  • studyOptionsFragmentHost_troubleshooting_systemBars_compare.png

@float3
float3 merged commit a3ceea8 into ankiquest Oct 29, 2026
22 of 24 checks passed
@float3
float3 deleted the fix/heatmap-streak-freezes branch October 30, 2026 08:14
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