Devlog — 2026-10-16#

TL;DR#

Tablets went from “it works” to “it’s actually finished”: Timer, Today and Settings got proper tablet layouts, and editors survive rotation. The Log now shows task completions, mobile and web. Then 1.15.0 crashed on every iPhone at launch — 1.15.1 fixed it, and now there’s a test that would’ve caught it. (Yes, I’m annoyed at myself.)

User-facing features#

  • Task completions in the Log. Every finished task is a row at the time you finished it, next to sessions and notes. Recurring tasks get one row per occurrence. Tap a row, open the task — archived ones too. Mobile and web.
  • Show switches in the Log. Sessions / Notes / Tasks — hide a whole kind of row, and it sticks. A day where everything’s hidden says so instead of looking broken.
  • Tablet Timer. Bigger ring, plus a side pane with the current task, up next and today’s sessions. Hit play on an up-next task straight from there. Medium windows get a strip below instead.
  • Tablet Today. A proper grid: stats on top, Toad next to Up next. Tapping a task opens the editor in a side pane instead of navigating away. “Log something” docks as a pane too.
  • Tablet Settings. Categories on the left, Account or Notifications on the right. [VERIFY — settings tablet commit is dated 2026-10-05, may already have been in the last devlog]
  • Editors survive rotation and resizing. Half-typed task edits, session edits, quick logs, pickers, dialogs — rotate the device or resize the window and your draft is still there. Scroll position in lists too.
  • Goal entries finally sync from mobile. Entries logged on the phone used to stay on the phone while web goals pulled down fine. Now they push up.
  • Archived tasks stay archived. Archive on one device and the next sync used to resurrect the task. Not anymore.
  • Fixes you’d actually notice:
    • Adding a task from a “Today” group saved it for yesterday east of UTC — instantly overdue. Fixed, and the “urgent” quick-add got adjusted too.
    • Log week strip no longer clips the edge day on tablets.
    • Web toad picker rows were squashed. Un-squashed.
  • iOS crash at launch (1.15.0) — fixed in 1.15.1. Releases 1.15.0 and 1.15.1 went out.

Technical improvements#

  • iOS got a safety net. The iOS dependency graph is hand-written, Android’s is generated — so something wired only on Android passes every Android check and detonates on iOS. A new test resolves every iOS definition and runs before each release archive.
  • iOS release signing is automatic now. Manual profiles expired with the old certificate. Dropped them and the dead iOS CI pipeline — iOS ships from Xcode anyway. −576 lines, nobody misses them.
  • Tablet screenshot tooling. Dedicated tablet emulators and a one-command store tour; iPad store screenshots recaptured now that the app is actually iPad-native.
  • CI: retry on flaky Gradle wrapper download (a 504 killed a PR check).
  • Backend housekeeping: telemetry, cloud and template library bumps, regenerated web templates that a dependency bump had left stale, deprecated logging call replaced.