summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-07-15 08:39:02 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-07-16 02:49:19 +0000
commitce1aa62b4b5a3a9af9933e73e416d7ae80142660 (patch)
treeec23d7d60769ea9083ffbfd69df26240dc05da41
parent488ab9c91e5b635688102682d92d117ef46235fc (diff)
Update worklog for widget polish batch (fonts, instant complete, recurrence dialog)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
-rw-r--r--.agent/worklog.md1
1 files changed, 1 insertions, 0 deletions
diff --git a/.agent/worklog.md b/.agent/worklog.md
index f30ad52..123492a 100644
--- a/.agent/worklog.md
+++ b/.agent/worklog.md
@@ -4,6 +4,7 @@
Cleaned Backlog
## Recently Completed
+- **Widget polish: task/event font parity, instant task completion, recurrence dialog redesign** — TaskRow's title color (a flat hardcoded gray) now matches EventBlock's (Color.White, dimmed only when past) at the same size/weight — the color gap was reading as a font mismatch. CompleteTaskAction now optimistically removes the completed item from the cached list and re-renders immediately (matching RefreshTaskAction's existing pattern) instead of waiting for the full complete->fetch->render round trip. Redesigned RecurrenceEditDialog: the 4 frequency chips and 7 weekday chips were each in a non-wrapping Row (overflowing/cut off on real phone widths) — now FlowRow-based so they wrap; single-letter weekday chips; a narrow fixed-width interval field with a correctly-pluralized unit label (was "Every N dailys"); muted section labels for visual structure. Deployed new APK.
- **Widget periodic-refresh self-healing fix** — root-caused a report of "all-day events and tasks gone, now-line stuck on this morning" to the widget's periodic background refresh (`RefreshWorker`, every 15 min) having silently stopped ticking, likely because reinstalling the APK (as happened repeatedly this session, outside the Play Store update path) can clear WorkManager's persisted schedule without the widget itself being removed/re-added — the only place that re-establishes the periodic job was `onEnabled`, which only fires on first-widget-add. Manual refresh always worked (confirmed data/rendering were fine); `onUpdate` (fires far more often: reboot, periodic OS ticks) now also re-arms the schedule via `KEEP` (a no-op if already running), making it self-healing. Deployed new APK.
- **Post-recurrence fixups: no more overdue-red, Agent API regression fixed, dead code removed** — removed the red text color for overdue widget tasks (plain title color regardless of overdue state). Found and fixed a real regression via systematic debugging: `agent.go`'s four task write/create switches (complete, update due date, update details, create) never got a `"doot"` case when Todoist was removed in favor of native tasks, so every native-task call through the external Agent API 400'd with "Unknown source" — `go test ./internal/...` is now fully green (also removed a stale `TestMealToAtom` test for a function deleted months earlier). Dead-code sweep: removed unused `SourceMeal`/`TypeMeal` atom constants, an orphaned `HandleGetSourceOptions` handler (never routed, rendered a template that no longer exists), and the always-false `IsRecurring` field/branch (never assigned anywhere; the real recurring indicator is `RecurrenceSeriesID`). Deployed server + widget APK.
- **Task recurrence + task-detail popup editing** — doot-native tasks now support server-owned recurrence (daily/weekly/monthly/yearly, optional specific weekdays, custom interval): a new row for the next occurrence is created either when the current one is completed or once its due date passes (a 15-minute background check), whichever comes first — never both, and never blocked by an ignored/overdue task. New endpoints (`GET /api/widget/task`, `POST /api/widget/task/{update,recurrence,next-date}`). The widget's task-detail popup is redesigned: editable title/description (Edit → Cancel/Save), a linkified description (tappable URLs and phone numbers), and independently-tappable date/recurrence/next-date chips with a recurrence-editing dialog. Trello and Google Tasks cards are unaffected — same title + Complete button as before. Deployed both the Go server and `doot-widget.apk`.