The week compressed itself into thirty-six hours. Between Wednesday evening and Thursday morning, 30 changes merged across the app and the site. Competitions got a memory, duels got live updates, freeze days got an undo button. Then, for the first time in weeks: three deliberately quiet days.
Sprint map
One row per story arc, one column per day. † marks late-evening work from July 22 that belongs to this week's story.
| Jul 22† | Jul 23 | Jul 24 | Jul 25 | Jul 26 | |
|---|---|---|---|---|---|
| Weekly habits: instant badge | |||||
| Rest & freeze days | |||||
| Competitions: history + top ten | |||||
| Duels: live updates | |||||
| Connect & account flows | |||||
| Sync reliability | |||||
| Internal tooling & tests | |||||
| Docs & release |
Jul 24–26: no merges at all. The wave was done; the quiet days are real.
Merges per day
The arcs
In rough chronological order. † marks the July 22 evening batch.
Weekly habits: instant badge †
Times-per-week habits now light up their badge the moment the weekly quota lands, with a preview state on the way there. Switching a habit to a weekly schedule now seeds the streak correctly, so the badge is honest from day one.
Rest & freeze days: undo + fairer math
Two halves of the same fairness story. A tavern day no longer drags down your completion rate, because daily habits settle no due units on frozen days. An accidental tavern visit is now reversible until midnight with the new same-day undo, straight from the widget.
Competitions: history + top-ten leaderboards
Finished competitions stop vanishing. The competitions tab now keeps a browsable history of past rounds. Leaderboards show the top ten with a Show-all toggle, which keeps large competitions fast and readable.
Duels: live + honest
Duel notifications surface what changed since you last looked, with live updates while a duel is active. An opponent whose sync is paused is now marked in the head-to-head, so a frozen score explains itself.
Connect & account flows
Five small cuts, one smoother path. The post-connect success card now leads with your widget link. A failed widget-link fetch shows an error with a retry. Password reset clears stale sessions and confirms cleanly. A rendering glitch around the Upgrade button on the profile page is gone. The widget took a first pass at small-phone layouts; the embed inside Notion's mobile app still needs polish, so more is on the way there.
Sync reliability
The nightly sync engine got more careful. Schedule switches now reset streak counts to the matching unit, so longest-streak stats stay honest. The safety net that catches missed syncs selects its work more precisely and no longer cries wolf.
Internal tooling & tests
A long-planned refactoring batch paid down debt in the mail and competition code. New tests cover feature access and habit comparison. The end-to-end suite gained a second seeded user, which unlocks full duel testing. Newsletter sending and feedback review got quicker internal tools.
Docs & release
A documentation sweep corrected eight drifted passages. The release train carried the whole wave to production the morning after.
Compiled from the week's merge history across the Notion Habit Heroes app and this site, July 23–26, 2026, plus the late evening of July 22. The quiet days are genuine: no merges landed July 24–26.
