diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-15 02:18:42 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-16 02:48:28 +0000 |
| commit | 5250747bd044a744df73c3686cd528d7599139b8 (patch) | |
| tree | 242ef84bea5a012cb1883e3b98ab9657afe24941 /.agent | |
| parent | aa5d0e4bf849625ab6876129950c71992ea322b8 (diff) | |
Update worklog for post-recurrence fixups and dead-code cleanup
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
Diffstat (limited to '.agent')
| -rw-r--r-- | .agent/worklog.md | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/.agent/worklog.md b/.agent/worklog.md index a18fc33..4448dd4 100644 --- a/.agent/worklog.md +++ b/.agent/worklog.md @@ -4,6 +4,7 @@ Cleaned Backlog ## Recently Completed +- **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`. - **Widget regressions + multi-day calendar events** — fixed popup-shows-behind-settings (missing `taskAffinity` on popup activities caused `FLAG_ACTIVITY_NEW_TASK` to reuse SettingsActivity's task), floored header text at NORMAL scale even when the Small text-size setting is selected, fixed settings-screen label colors, and replaced the event-detail popup with a direct tap-to-open-source link (removed `EventDetailActivity` and its now-dead recurrence-lookup endpoint). Separately, fixed multi-day calendar events: they previously either only rendered in a single hourly grid slot on their start day (vanishing on later days) or, for genuine all-day events, never had their end date forwarded at all. Now render as an all-day-style row on every day they span (web Today/Tomorrow sections + widget), labeled "starts/ends HH:MM" or plain, correctly accounting for Google Calendar's exclusive all-day end-date convention (caught and fixed during review — a single-day all-day event's raw end date is one calendar day past its own day). Deployed both the Go server and `doot-widget.apk`. - **Widget tomorrow-section fix + configurable text size** — fixed `calcGridStart`/`calcGridEnd` (`DootWidget.kt`) skewing today's hour-grid bounds off tomorrow's event hours, which manufactured empty rows and pushed the non-scrolling TOMORROW section below the widget's visible area; added `WidgetTextSize` enum (Small/Normal/Large, independent header/content scale+weight, default Normal) wired through widget rendering and a new picker in widget Settings. Deployed to `doot-widget.apk`. |
