diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-13 06:54:13 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-13 06:54:13 +0000 |
| commit | 8310f802dd9fc6ef5dff0be7f640f79c5b39987f (patch) | |
| tree | d145bd7be5801f12563e99b6828b0f2facdc370c /internal/api/trello.go | |
| parent | 73fbd05a1230552bcef9834d3ee999ef19957693 (diff) | |
feat(widget): editable task details, scrollable list, and overdue-task fixes
- Add description editing to the widget's task detail popup for
doot/gtasks/trello, backed by new GET /api/widget/detail and
POST /api/widget/update endpoints
- Make Google Tasks and Trello cards completable via the widget (Trello
completion archives the card); fix Trello description never being
fetched, which meant saving could silently wipe a card's real desc
- Fix google_tasks.due_date/updated_at (TEXT columns) never round-tripping
through sql.NullTime, which broke cached Google Tasks reads whenever
the cache was valid
- Fix native-task and Google-Task date-range queries excluding anything
due before the window start, which dropped incomplete tasks off the
widget the moment their due day passed (the "overdue tasks disappeared"
bug)
- Fix native task description edits blanking the task's title
- Make the widget's day list scroll (LazyColumn) instead of clipping
- Optimistically remove a task from the widget immediately on completion,
ahead of the authoritative background refresh
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
Diffstat (limited to 'internal/api/trello.go')
| -rw-r--r-- | internal/api/trello.go | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/internal/api/trello.go b/internal/api/trello.go index 1a5642c..d580d98 100644 --- a/internal/api/trello.go +++ b/internal/api/trello.go @@ -88,7 +88,7 @@ func (c *TrelloClient) GetBoards(ctx context.Context) ([]models.Board, error) { func (c *TrelloClient) GetCards(ctx context.Context, boardID string) ([]models.Card, error) { params := c.authParams() params.Set("filter", "open") - params.Set("fields", "id,name,idList,due,url,idBoard") + params.Set("fields", "id,name,desc,idList,due,url,idBoard") var apiCards []trelloCardResponse path := fmt.Sprintf("/boards/%s/cards?%s", boardID, params.Encode()) @@ -116,11 +116,12 @@ func (c *TrelloClient) GetCards(ctx context.Context, boardID string) ([]models.C cards := make([]models.Card, 0, len(apiCards)) for _, apiCard := range apiCards { card := models.Card{ - ID: apiCard.ID, - Name: apiCard.Name, - ListID: apiCard.IDList, - ListName: listMap[apiCard.IDList], - URL: apiCard.URL, + ID: apiCard.ID, + Name: apiCard.Name, + Description: apiCard.Desc, + ListID: apiCard.IDList, + ListName: listMap[apiCard.IDList], + URL: apiCard.URL, } if apiCard.Due != nil && *apiCard.Due != "" { |
