Skip to content

v1.47.1

Choose a tag to compare

@MBombeck MBombeck released this 07 Nov 03:49
· 303 commits to main since this release
5e1c394

I meant to keep this one small. Then two good ideas showed up in the discussions, and a question in an old, closed issue turned out to be one I couldn't answer with "you can already do that". So 1.47.1 is a patch with three new things in it: lab markers grouped by category, your cycle forecast in your own calendar, and your own symptoms as lines on the timeline. None of them needs a migration you have to think about, and all three stay out of your way until you turn them on.

Lab markers by category

In Settings, under Arrangement, Labs, you can now group the list by category. Markers land in the panels HealthLog knows (blood count, lipids, liver, kidney, thyroid and so on) in every language, a panel name you gave a marker yourself becomes its own group, and anything without a home goes to Other. Each group says in its header whether its latest values are all in range or how many are outside. You choose whether groups start open, closed, or with only the ones that have something outside the range open. It's off until you turn it on. The marker form can now also clear a panel, context or range bound, and merging two markers keeps the panel name. (#1349)

Your cycle forecast in your calendar

On the cycle page's settings you can subscribe to your forecast in Apple Calendar, Google Calendar, Outlook or any app that reads .ics feeds. The next period shows up as an all-day band, and once three cycles are logged, up to six more after it. The bands get wider the further out they are, and the feed stops where a date would be more guess than estimate. Past cycles and, if you're trying to conceive, the fertile window are optional.

By default events are just a dot in a calendar called "HealthLog", because calendar services keep their own copy of whatever you subscribe to. You can switch to descriptive titles if you'd rather. The link can be rotated or turned off any time, and changing your password turns it off too. If you run HealthLog behind a reverse proxy, the link sits in the URL path, so keep /api/cycle/feed/ out of your access log. The reverse proxy guide shows how, and the calendar feed guide has the rest. (#1350)

Your own symptoms on the timeline

Custom symptoms used to show up only indirectly, in the pattern analysis on Insights and in what the Coach knows. Now each one can be a line on the timeline, right under your steps, resting heart rate or lab values. Pick it from the new Symptoms group in the values menu. A day counts with the highest intensity you logged, and each point is the average of those days in the week, month or quarter you're looking at, with how many days that was. Days you didn't log stay empty instead of turning into zeros, because not writing anything down isn't the same as feeling fine. (#981)

Fixed

  • Periods from Garmin and Oura now open their cycles. Imported period days used to be stored as days only, so the tracker saw no start, no length and no forecast. They now count like a period you logged yourself, periods imported earlier are repaired once on the next start, and a day you logged yourself is never changed. A cycle you deleted stays deleted. Garmin also shows up in the setup questions now. (#1333)
  • PDF previews show in Safari on macOS and iOS instead of an empty box. (#1311)
  • A marker started from a text result like "SEE NOTE" keeps the numeric range printed next to it, so its first number has something to be judged against. (#1313)
  • "When you stopped" in the smoking history takes what you type instead of only a paste, and the start year no longer turns your first digit into 1900. (#1334)
  • Dropping several files on the documents page at once uploads all of them. The page used to show a "wait a few minutes" error for the third one.
  • The report a visit card offers is the report you get. Past two years it used to fall back to 90 days without saying so; it now covers the last two years.
  • Questionnaires answered with a language set for another country (English in Belgium, French in Switzerland) show that country's crisis lines.
  • Answering "Fitbit" in the setup questions now leads to Google Health, since Fitbit's old connection is gone.
  • Counts in Russian read right at 21, 31 and so on, and in French and Portuguese at zero.

Security

*sshole (CVE-2026-123158, the OpenSSH password bypass on musl systems such as Alpine) never affected HealthLog. The image has never contained an SSH server, not even on the old Alpine base, and since 1.47.0 it runs on Debian with glibc anyway. If your own host runs Alpine with openssh-server, update it to OpenSSH 10.6p2 or your distribution's fixed package.

Next.js moves to 16.4.5, the security release that came out a few hours before this one. Most of its seven advisories are about caching features HealthLog doesn't use, but it's the kind of update I'd rather not leave for next week.

@hono/node-server moves to the 2.x line. HealthLog never loaded it, but the copy was in the tree.

Updating

Pull and restart. The calendar feed adds one small table on the first start.

Thank you

@kruemelro asked for both lab categories (#1349) and the calendar subscription (#1350), and keeps pushing the Garmin side forward (#1333). @tcart38 asked to see a custom symptom as a graph next to the rest of the data, and was right that it was missing (#981). @pejotigrek found the smoking history field that wouldn't take a date (#1334) and helped with Garmin (#1333). @Oguz3003 stuck with Safari's empty PDF preview (#1311), and @johnnyrepo026 found the marker that lost its range (#1313).

And thanks to everyone who uses the iPhone app, sends an email or buys me a coffee. It keeps this going.