🌸Spring 2026 Pebble App Contest — View the entries!

Changelog

Version 1.0.92026-07-31T18:35:00.403

Fixed: next start time shown an hour off
------------------------------------------
Once the daily goal was reached, or outside the active hours, the app showed the
next start an hour away from the configured value — a start time set to 07:00
appeared as 08:00.

Cause: when converting a configured wall-clock time into a real timestamp, the
app asked the system to work out daylight saving time on its own. That is the
standard way to do it and works on a desktop, but the watch does not honour the
request, so the conversion came out an hour off.

The conversion no longer depends on daylight-saving handling at all. It now
converts the result back and compares it against the requested time, correcting
any difference. Verified against summer and winter dates, both daylight saving
changeovers, and several timezones.

This affected the displayed and scheduled start of the active window, and the
last reminder before the window closes. It was introduced in v1.0.6.

Version 1.0.82026-07-31T08:19:14.433

Fixed: the next reminder time moved further away on its own
-------------------------------------------------------------
With the automatic water goal enabled, the time shown for the next reminder
kept sliding into the future even when nothing had been drunk.
 
Cause: whenever Health data raised the daily goal, the app rebuilt the reminder
schedule — and the schedule is always measured from the current moment, so each
rebuild restarted the interval. Health data arrives many times an hour, so the
reminder was pushed back again and again. The phone's periodic temperature
update could trigger the same thing.
 
The daily goal still updates from Health data and from the outdoor temperature
exactly as before. It simply no longer touches the pending reminder. The new
goal is applied at the next regular reschedule.
 
The next reminder now moves only when something real happens:
 
  - a drink is logged (plus or minus button)
  - a timing setting is changed — goal, active hours, reminder mode, interval,
    minimum gap, or serving size, on the watch or from the phone
  - a reminder fires
  - a new day starts
  - no reminder is queued any more

Version 1.0.72026-07-31T07:14:42.328

Fixed: opening the app pushed the next reminder further away
--------------------------------------------------------------
Every manual launch rebuilt the reminder schedule from scratch, restarting the
interval from that moment. With a 60 minute interval and 50 minutes already
elapsed, the remaining 10 minutes turned back into a full 60 — so simply
checking the app delayed the next reminder, and checking it often could delay
it indefinitely.
 
Opening and closing the settings menu had the same effect, even when nothing
was changed.
 
The countdown now continues undisturbed. A new schedule is built only when
something genuinely affects it:
 
  - a drink is logged
  - a timing-related setting is changed (goal, active hours, reminder mode,
    interval, minimum gap, serving size, automatic goal)
  - a new day starts
  - no valid reminder is queued any more
 
No action required — all settings, history and statistics are preserved.

Version 1.0.62026-07-30T19:56:09.23

Fixed: automatic water goal could decrease during the day
----------------------------------------------------------
With the automatic goal enabled, the daily target could shrink over the course
of the day — typically in the late afternoon and evening.

Cause: the phone sends the current outdoor temperature to the watch as its own
message. Because the temperature falls in the evening, the warm-weather bonus
dropped out of the calculation, and that lower value was applied directly. The
goal, the progress bar and the reminder pacing all moved backwards, even after
the user had already been drinking toward the higher number.

The automatic goal can now only grow during a day. It is lowered only when the
user actually changes their body weight or toggles the automatic goal off and
on, and it resets to a fresh baseline at midnight.


Fixed: reminders an hour off around daylight saving changes
------------------------------------------------------------
When converting the configured start and end times into an actual wakeup, the
app reused the daylight-saving flag from the current moment instead of letting
the system determine it for the target hour. Across a DST transition the alarm
landed an hour early or an hour late — a 07:00 reminder fired at 08:00 in
spring and at 06:00 in autumn.


Fixed: reminders could stop after a backward clock change
-----------------------------------------------------------
Changing timezone or setting the clock back left the stored "last reminder"
timestamp in the future. The app then calculated a negative elapsed time and
inflated the wait — in testing, a 45-minute interval stretched to 3.5 hours.


Fixed: recovery from invalid stored settings
----------------------------------------------
Settings read back from watch storage were not range-checked, so a value
written by an older build or damaged storage could put the app into a state it
could not leave. In particular, an active window whose start was later than its
end meant the app considered itself permanently outside active hours and never
sent another reminder. Invalid values now fall back to their defaults.

Two further robustness issues in the same area were fixed: a corrupted drink
counter could cause a write outside its array, and an out-of-range language
index could read past the translation table. Both could crash the app.


Fixed: drink history stopped after 20 entries
-----------------------------------------------
The drink log holds 20 entries per day. Once it was full, further drinks were
silently left out of the list, so the history froze on the first 20 of the day
while later ones never appeared. The log now keeps the 20 most recent drinks
and discards the oldest instead. The daily total was always correct and is
unaffected.


No action required — all settings, history and statistics are preserved.

Version 1.0.52026-07-27T11:47:31.166

- Users with auto-goal enabled will see a lower, more realistic target. It
  updates at the next midnight rollover, or immediately if they open the phone
  config page or change their body weight.
- Manual goal mode is unchanged and unaffected.

Typical goals under the new formula (moderate activity, mild weather):
   50 kg -> ~1,700 ml      80 kg -> ~2,600 ml
   60 kg -> ~2,000 ml      96 kg -> ~3,080 ml
   70 kg -> ~2,300 ml     110 kg -> ~3,500 ml

Version 1.0.42026-07-26T20:45:21.659

New
Automatic water goal. AquaCave can now calculate your daily goal for you from your body weight, your Pebble Health activity (steps, active calories, and heart rate where available), and the local temperature. Turn it on with the new "Auto water goal" switch in Settings.
Body weight setting (default 60 kg), used as the basis for the automatic goal.
Weather-aware hydration. With your permission, the phone fetches the current outdoor temperature and the goal rises automatically on hot days.
Sleep detection. Using Pebble Health, AquaCave recognizes when you're asleep and skips the reminder vibration during that time — reminders resume normally once you wake up. It can be switched on or off in Settings (default on).
Backup & restore. Your settings and all statistics (streak, best streak, monthly goals, and 7-day history) are now saved in the phone app. When you set up a new watch or reinstall the app, your data is restored automatically.
App version is now shown at the bottom of the Settings menu.
Improved
Reorganized Settings menu into clear, labeled sections: Overview, Goal, Reminders, Display, and Info.
The manual water-goal entry is now hidden while the automatic goal is active, to avoid confusion.
Fixed
The Settings menu cursor no longer jumps back to the top after you change a value — it stays on the item you were editing.

Version 1.0.32026-06-27T09:45:26.518

New:
- Sleep detection: using Pebble Health, AquaCave now recognizes when you're asleep and skips the reminder vibration during that time — the reminder schedule keeps running quietly in the background and resumes normal vibration once you wake up
- New toggle in Settings to turn sleep detection on or off (default: on); also configurable from the phone
- App version number now shown at the bottom of the Settings menu

Fixed:
- Settings menu no longer risks a crash when tapping the info-only version row
- Sleep detection now degrades safely on watches or SDK builds without Pebble Health, instead of behaving unpredictably

Version 1.0.22026-06-24T10:16:46.314

Improved:
- Drinking before your active window now paces the day's first reminder from the start time, factoring in what you already drank, instead of nagging right at the start
- Main screen layout rebalanced: elements are now evenly spaced and the last/next time row sits on a single line
- Main screen now rebuilds instantly when settings are changed from the phone, including button-bar side
- Main screen now also refreshes correctly after a language change, not just after an orientation change

Fixed:
- Settings menu selection no longer skips items on some devices
- Next-reminder time always shows a real time instead of staying blank once the daily goal is reached
- Start/End time editor hint corrected to match the actual 5-minute step
- Reminder scheduling is now correct across Daylight Saving Time transitions
- Main screen no longer briefly shows the old reminder time after changing a setting or at midnight

Version 1.0.12026-06-17T06:49:14.623

Translation improvements

Version 1.0.02026-06-16T17:33:13.206

No release notes available