From 945c34590677e161a711ccaff0e1077197b1b178 Mon Sep 17 00:00:00 2001 From: Doot Agent Date: Mon, 6 Jul 2026 00:00:59 +0000 Subject: feat: remove Todoist integration entirely Native tasks (native_tasks table) fully replace Todoist. All Todoist API code, store functions, handlers, routes, templates, and tests have been removed. Migration 021 drops the now-unused tasks cache table. Co-Authored-By: Claude Sonnet 4.6 --- internal/handlers/agent.go | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) (limited to 'internal/handlers/agent.go') diff --git a/internal/handlers/agent.go b/internal/handlers/agent.go index 826ffd7..073084f 100644 --- a/internal/handlers/agent.go +++ b/internal/handlers/agent.go @@ -414,12 +414,6 @@ func (h *Handler) handleAgentTaskToggle(w http.ResponseWriter, r *http.Request, var err error ctx := r.Context() switch source { - case "todoist": - if complete { - err = h.todoistClient.CompleteTask(ctx, id) - } else { - err = h.todoistClient.ReopenTask(ctx, id) - } case "trello": err = h.trelloClient.UpdateCard(ctx, id, map[string]interface{}{"closed": complete}) case "gtasks": @@ -450,17 +444,11 @@ func (h *Handler) handleAgentTaskToggle(w http.ResponseWriter, r *http.Request, if complete { title, dueDate := h.getAtomDetails(id, source) _ = h.store.SaveCompletedTask(source, id, title, dueDate) - switch source { - case "todoist": - _ = h.store.DeleteTask(id) - case "trello": + if source == "trello" { _ = h.store.DeleteCard(id) } } else { - switch source { - case "todoist": - _ = h.store.InvalidateCache(store.CacheKeyTodoistTasks) - case "trello": + if source == "trello" { _ = h.store.InvalidateCache(store.CacheKeyTrelloBoards) } } @@ -485,8 +473,6 @@ func (h *Handler) HandleAgentTaskUpdateDue(w http.ResponseWriter, r *http.Reques var err error ctx := r.Context() switch source { - case "todoist": - err = h.todoistClient.UpdateTask(ctx, id, map[string]interface{}{"due_datetime": req.Due}) case "trello": err = h.trelloClient.UpdateCard(ctx, id, map[string]interface{}{"due": req.Due}) default: @@ -500,10 +486,7 @@ func (h *Handler) HandleAgentTaskUpdateDue(w http.ResponseWriter, r *http.Reques } // Invalidate cache - switch source { - case "todoist": - _ = h.store.InvalidateCache(store.CacheKeyTodoistTasks) - case "trello": + if source == "trello" { _ = h.store.InvalidateCache(store.CacheKeyTrelloBoards) } @@ -525,13 +508,6 @@ func (h *Handler) HandleAgentTaskUpdate(w http.ResponseWriter, r *http.Request) var err error ctx := r.Context() switch source { - case "todoist": - // Map generic updates to Todoist specific ones if needed - if title, ok := updates["title"].(string); ok { - updates["content"] = title - delete(updates, "title") - } - err = h.todoistClient.UpdateTask(ctx, id, updates) case "trello": if title, ok := updates["title"].(string); ok { updates["name"] = title @@ -553,10 +529,7 @@ func (h *Handler) HandleAgentTaskUpdate(w http.ResponseWriter, r *http.Request) } // Invalidate cache - switch source { - case "todoist": - _ = h.store.InvalidateCache(store.CacheKeyTodoistTasks) - case "trello": + if source == "trello" { _ = h.store.InvalidateCache(store.CacheKeyTrelloBoards) } @@ -587,9 +560,6 @@ func (h *Handler) HandleAgentTaskCreate(w http.ResponseWriter, r *http.Request) var err error ctx := r.Context() switch req.Source { - case "todoist": - _, err = h.todoistClient.CreateTask(ctx, req.Title, req.ProjectID, req.DueDate, req.Priority) - _ = h.store.InvalidateCache(store.CacheKeyTodoistTasks) case "trello": if req.ListID == "" { http.Error(w, "list_id is required for Trello", http.StatusBadRequest) -- cgit v1.2.3