Added
- Optional estimated duration for tasks. Add a quick estimate (15m / 30m / 1h / 2h / 4h presets, or a custom hours+minutes value) when creating a task in the Quick Add bar or later from the task detail screen (iOS and macOS). The estimate is stored inside the task's Vikunja description as an
<!-- mdone:estimate=N -->marker, so AI agents and other API clients can read and set it directly without any mDone-specific endpoint. mDone hides the marker from previews and editors. - As you type a new task title, mDone can suggest an estimate from how long similar tasks you've focused on actually took ("Similar tasks took ~25m"). The hint is offline, never auto-fills, and only fills the field if you tap it.
- Task detail screen shows total focus time and session count for tasks you've used the Focus Timer on (#61).
- Focus History Sync (Settings → iOS only): configure a focus-service URL and bearer token to sync completed focus sessions to your homelab service for cross-task analysis (#62). Blank URL keeps everything on-device. Pre-existing focus history is backfilled on first activation.
- Widget customisation: long-press the Today's Tasks or Upcoming widget and tap Edit Widget to choose font size (Compact / Standard / Large), pick what to show (Today + Overdue / Today only / Overdue only), toggle the tap-to-complete button, and toggle the "+" Add Task shortcut (#66).
- Small (1×1) and Extra Large (iPad) layouts for the Today's Tasks and Upcoming widgets (#66).
- "+" Add Task shortcut in the Today's Tasks and Upcoming widget headers — opens the app on the Inbox tab with the "Add a task…" field already focused so you can start typing immediately (#66). The Quick Add widget's tap behaviour follows the same flow.
- Settings → Appearance: "Start week on" lets you override the calendar's first day (System / Sunday / Monday / Saturday) (#60).
Changed
- "Due This Week" filter chip is now labelled "Due in 7 Days" to match its actual behaviour (a rolling 7-day window from now).
Fixed
- Widget: tasks whose due time has passed but were due today no longer appear twice — once in the overdue (red) section and once in the today list (#64).
- Widget: the "Today" header no longer creeps off the top of the medium widget when several tasks are showing — visible row counts are now tuned per widget size, and accessibility text sizes are capped so the layout stays inside the widget canvas (#66).
- Settings now displays the actual app version and build number instead of a hardcoded "1.0.0" (#65).
- Swiping a task left for +24h now updates the displayed due date instantly instead of waiting for the server to respond.
- Calendar: weekday header row (Mon/Tue/…) now correctly rotates to match the configured first day of the week (#60).
- Advanced Filter: applying a date range of Today / This Week / This Month no longer fails with "Something went wrong with that request" — the filter is now sent as an absolute date instead of a relative expression that the server mis-parsed.
Full changelog: CHANGELOG.md