### Changed
- **Back on the system touch bridge**, undoing the 1.4.0 revert. Firmware 4.33.2
carries the fix for [PebbleOS#1865](https://github.com/coredevices/PebbleOS/issues/1865)
(PR #1866), so `app_touch_navigation_enable(true)` no longer kills the app.
Scrolling, swipe-back and β the reason for going back at all β touch inside the
system **ActionMenu** now come from the firmware instead of from the app.
### Added
- **One tap acts.** The firmware's own `MenuLayer` takes two taps: the first only
moves the selection, the second opens the row. A tap recognizer of the app's
own, marked simultaneous so it runs alongside the system's rather than being
skipped as a duplicate, acts on the first tap.
- **Subtasks are tappable again.** The firmware drops taps on a `ScrollLayer`
outright ("a ScrollLayer has no tap action"), and a Tier-1 widget excludes the
touchβbutton bridge, so the detail view received no taps at all.
- **The middle row highlights after a scroll.** A plain menu's selection is left
exactly where it was by the firmware β possibly off-screen, with nothing lit and
the next button press yanking the list back. A pan recognizer of the app's own
reselects the row in the middle on liftoff.
- **Touch injection for the emulator** (`tools/touch.py`,
`tools/qemu-touch-wrapper.sh`). The pebble tool has no touch command, but
qemu-pebble does emulate the PT2 touchscreen, so touch goes in over QEMU's QMP
socket β the same route the firmware repo's own `./pbl touch` uses. Needs SDK
4.33.1 or newer; the 4.33 emulator image still faults on the bridge.
### Fixed
- **The 1.3.3 opt-in never actually ran.** `pebbledoist.c` did not include
`touch_nav.h`, so `TOUCH_NAV_SYSTEM_BRIDGE` was an undefined macro β silently 0
in `#if` β and the app kept subscribing to the raw touch stream whatever the
header said. A raw subscriber also disables the system bridge app-wide, which
is why the ActionMenu stayed dead to touch.
- **One nudge no longer counts twice.** The tap and pan budgets are both 10px, so
a small quick drag could complete both recognizers β reselecting the middle row
and opening a row that was never meant to be tapped. A started pan now takes the
gesture and the tap stands down.
### Removed
- **Swipe right-to-left over a task no longer opens its menu.** The firmware
ignores left swipes on a `MenuLayer` by design ("activate-on-swipe is
intentionally disabled"), so the gesture added in 1.5.0 cannot survive on the
system bridge. A long press of **Select** still opens the menu, from anywhere in
the list β worth knowing with quick-complete on, where a tap ticks the task off.
- **Lists no longer coast after your finger.** The firmware settles the scroll
offset at liftoff and has no inertia; the app's own kinetic glide only applied
to the raw touch path.### Added
- **Subtasks.** A task's subtasks now live in its detail view: a "Subtasks (n)"
section listing the open ones, each with a checkbox. Tap a row β or pick it
from the Select menu β to tick it off; like quick-complete, it waits out a
short undo window (tap again to undo) before it is sent to Todoist, and
vibrates when it commits, respecting Quiet Time.
- **Subtask counter on a task row.** A task with open subtasks shows a small
branch mark and their number on the right of its bottom line.
- **Buttons walk the subtask list.** In the detail view Up/Down page through the
text as before, and once the subtask section comes into view they step from
row to row (the focused row is highlighted); **Select** ticks the focused one
off. With nothing focused, Select opens the action menu β and a long press
always does, so "Add subtask" stays reachable from anywhere in the view.
- **Swipe left on a task** to open its menu (Complete / Details / Add subtask /
Delete). Previously the menu was button-only: with quick-complete on, a tap
ticks the task off, which left no way to reach Details by touch.
- **"Add subtask"** in the task menu and in the detail view's Select menu:
dictate the text and it is created as a child of that task, in the same
project. Dates in the spoken line are parsed exactly as for a new task.
### Changed
- **Subtasks no longer clutter a project's task list.** Todoist returns a
project's subtasks alongside its tasks; they used to appear as ordinary rows
with nothing to tie them to their parent. A project list now shows top-level
tasks only, and its badge counts those. Today and label lists still show a
subtask in its own right β a subtask due today is work you have to see.
### Added
- **Touch navigation on the Pebble Time 2.** Tap a row to open it, drag the list
to scroll it (it keeps gliding when you let go, and stops at the ends), and
swipe left-to-right to go back β from the overview that leaves the app, exactly
as the BACK button does. The selection lands on the row in the middle of the window after a
scroll, so the buttons carry on from what you are looking at instead of
jumping back.
### Changed
- **Reverted the 1.3.3 opt-in into the system touch bridge.** On firmware 4.33.1
`app_touch_navigation_enable(true)` faults inside firmware on the first touch
and kills the app, in every app that opts in. Touch is now handled from the
raw touch stream inside the app (`src/c/touch_nav.c`), which does not go
through the bridge. Reported as
[PebbleOS#1865](https://github.com/coredevices/PebbleOS/issues/1865).
### Added
- **Vibrates when a task is confirmed complete** (both quick-complete after
its undo window and the Complete action in the task menu), respecting
Quiet Time.
### Changed
- Opts into the watch's own touch navigation (Pebble SDK 4.33) on the
project/task/label lists and the task detail screen.
## [1.3.2] - 2026-07-16
### Changed
- **Settings tidy-up** β the task-title size dropdown is now labelled **Task titles size** instead of a full sentence, and the **quick-complete explanation moved below its toggle**.
- **Smaller store download** β a release build script (`tools/release.py`) minifies the
JavaScript bundle and strips the source map, roughly **halving** the `.pbw` size (β397 KB β β174 KB) with no change in behavior.
## [1.3.1] - 2026-07-16
### Changed
- **Task rows redesigned** β the title now uses the **full row width** and only ellipsizes when genuinely long; the **due date sits on a small line below the title** (like the "dictate" subtitle under "+ New task"). Rows are a **fixed, compact height** per text size, so a task with a due date is the same height as one without β and a task with no due date **centres its title** vertically. Selecting a long task still scrolls (marquees) the full title while its due stays put.
β’ Labels β new Labels row: browse your labels and see every task carrying one.
β’ Task details now show the description and label badges.
β’ New accent top bar with the app icon, where you are, open-task count and time.
β’ Due dates now appear on every task row.
β’ Quick-complete (optional) β tick a task off with one press, with an Undo window.
β’ Complete is now the first menu action; Delete asks to confirm.
β’ Completing and deleting are instant (no loading flash).
β’ Slightly shorter rows with larger text.
- Text size: you can now pick Small, Medium or Large for your task lists in the phone settings. Rows grow with the text, so you can fit more tasks on screen or make them easier to read at a glance.
- Task details: open a task and pick Details to read its full text and deadline on screen.
- Scrolling titles: long task names now scroll in the list so you can read them fully.
- Instant list: your tasks appear immediately from cache when you open the app; no more loading flash (and no flash when you complete or delete a task).
- Better low-light contrast: dark text on the red highlights and headers for easier reading in dim light.
No release notes available