A steady start and a heavy weekend: 47 changes merged, thirty of them on Saturday and Sunday. When a connection breaks, the mail you get now says which kind of break it is and what to do. Habits can now be marked private, so a habit you would rather keep to yourself never shows up for anyone else. The public template carries an example week, so a fresh copy is no longer empty. The widget tells you when the account behind it is disconnected or gone, instead of guessing. Midnight tasks now survive a deploy that lands at the wrong minute. Duplicate journal pages for the same day resolve in favour of the one you actually ticked.

7
days covered (Oct 12–18)
47
changes merged (29 app · 18 site)
7
production deploys
31
backlog items cleared
30
changes merged on the weekend

Sprint map

One row per story arc, one column per day.

Product Reliability Under the hood
Mon 12Tue 13Wed 14Thu 15Fri 16Sat 17Sun 18
Mail when the connection breaks
Clearer words about connecting
Three small fixes on Tuesday
Midnight tasks survive a deploy
Private habits
An example week in the template
The widget knows when it is not connected
One day, one page
Smoother first steps
Site touch-ups
Under the hood

Monday opened with the connection-mail work. Friday is empty. Tuesday to Thursday carried small fixes. Saturday was the busiest day of the month so far.

Merges per day

8
Mon 12
6
Tue 13
2
Wed 14
1
Thu 15
0
Fri 16
18
Sat 17
12
Sun 18

The arcs

In rough chronological order.

Reliability

Mail when the connection breaks

When the nightly check cannot reach an account's journal twice in a row, the app pauses that account's sync and sends a mail. That mail used to say the same thing whatever had gone wrong. It now tells two cases apart. If the Habit Heroes page was moved to the Notion trash, the mail says so and points to restoring it. If the page is still there but the database no longer answers, the mail asks you to reconnect. Anything else keeps the classic wording. An admin-only diagnostic tool landed beside it, so a paused account can be examined step by step without guessing.

Product

Clearer words about connecting

The FAQ answers about disconnecting and about what happens to your data are now plain about what each step does and does not touch, and there is a short how-to for checking that the connection is alive. The template page also lost its two competing instructions. There is now one way to get the template: Notion copies it for you while you connect. The start page notes which page to keep.

Reliability

Three small fixes on Tuesday to open the week

Tuesday cleared three small things. The streak calculation could trip over a day whose totals had never been written, which showed up as an error for a handful of accounts. It now treats a missing day as zero. An account that was flagged as paused before its first sync could lose that flag on the way to the database. The flag now sticks. The widget receives the order of your habits as an explicit list instead of inferring it, so the cards stay in the order you set.

Reliability

Midnight tasks survive a deploy

Every evening the app plans each account's midnight tasks: create the day's journal page, then sync it. On Tuesday night a deploy landed at exactly that minute. The outgoing server took its share of the planned tasks with it when it shut down. Those accounts got their sync from the early-morning safety net, but without the page creation that should have come first. A sweep every five minutes now picks up any task that is overdue and runs it, so the database row is the source of truth and the in-memory timer is only there for punctuality. Two related gaps closed in the same change. A sync that finds yesterday's page but not today's now creates today's page and looks again, instead of giving up. A real page that arrives for a day the app had already filled with a placeholder takes over that placeholder instead of being skipped.

Product

Private habits

Each habit in the widget's Edit Habits screen now has a Private checkbox. A private habit is yours alone. It never appears when someone opens your profile from a leaderboard, in a comparison, in a group roster, or as the subject of a duel. Your own totals still count it. If every habit of yours is private, a visitor simply sees that there is nothing to show. The duel picker skips private habits. A duel on one is refused without confirming that the habit exists. Making a habit private after a duel has started does not hide it from that duel.

Product

An example week in the template

Of the people who copied the template since September, not one edited a journal page before leaving. The copy opened on an empty week view above a demo widget with somebody else's habits. The public template now carries seven example pages, one per weekday, titled so they show in the weekly view and dated to cover today and the six days before. A nightly job keeps them rolling. When you connect, the example pages in your copy are moved to the trash so your real journal starts clean. The sync ignores them even if they linger. The widget's demo data now shows the same seven habits and the same week. The job was switched on late Saturday. Its first scheduled run falls after this log, so next week's edition will say how it went.

Product

The widget knows when it is not connected

Until now a widget on an account whose Notion connection was gone behaved like a healthy one and failed quietly. It now has a read-only mode: a line explains that the account is not connected and a link leads to the reconnect page. The Update, Freeze, Tavern and Edit buttons are locked. If the account behind an embed has been deleted or the embed link was replaced, the widget says so with a persistent banner and a path to a fresh link. Along the way, clicking Update no longer blanks the body for the round trip. The old cards stay on screen, dimmed, until the new ones arrive. Sunday added a fix for a case found during an onboarding test: a browser that still held a token from a previous account showed the banner for a brand-new account. A leftover token now falls back to demo mode. The widget reloads itself when its embed receives the right link.

Reliability

One day, one page

If you created tomorrow's journal page in Notion ahead of time, the midnight job created a second page for the same date. The first page bound in the database then won forever. Ticks on the other page never counted. Per date the sync now keeps the page with the most activity, earliest created on a tie. The account's binding moves to that page. Existing duplicates heal themselves on the next sync. The midnight job also asks Notion whether a page for the date already exists before creating one. Two smaller sync fixes landed beside it. The snapshot repair reads the right journal rows. The nightly check for stale accounts queries Notion more quietly.

Product

Smoother first steps

People who connected Notion but never ticked a single habit now get a one-time reminder mail three to fourteen days after connecting. It went live on Monday. Confirming your email can now send you straight to the connect page, which the confirmation mail links to. If the database you connected sits at the top level of your workspace, there is no page to put the widget into. The connect card used to report that as a failure. It now explains the situation and shows how to place the widget on any page by hand. The mail that invites you to a running competition no longer promises a specific counting date. The honest sentence is simpler: the earlier you join, the more of your tracked days count.

Product

Site touch-ups

The widget's season promo line and the competition switcher chip now go by the calendar date, so a European viewer no longer sees a season as started a day early. The footer's Explore column was eleven links in a flat list. It is now four small groups side by side. The footer got shorter rather than taller. The launch trailer's closing card no longer names a start date, so the scene can be re-rendered any time.

Under the hood

Under the hood

The local mail catcher and the site's automatically merged dependencies got their routine updates on Monday. A JSON library on the server was pinned to a patched release on Tuesday and bumped again on Sunday. The mail catcher was bumped again on Saturday. The site's deploy pipeline now deploys to production only when a change asks for it. Preview builds are skipped for changes that do not touch the site. Four test-suite fixes kept the nightly browser run green, including one measurement race that only showed on slower hardware. The test inventory table in the suite's readme was dropped in favour of the directory itself. Descriptions for the Notion Marketplace listing were drafted. Two log lines that described normal states were demoted from error to information so the nightly error scan stops filing them.

Compiled from the merge history across the Notion Habit Heroes app and this site, October 12 to 18, 2026. Friday is empty on the map. Saturday carried eighteen merges.