From 2be0b6a90cd83c8052ee13a172217e4a355c7df7 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Wed, 4 Mar 2026 11:20:05 -1000 Subject: fix: migrate Todoist client from deprecated REST v2 to API v1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit REST v2 (https://api.todoist.com/rest/v2) is being sunset — the /close endpoint was returning HTTP 410 in production, breaking task completion. Update base URL to https://api.todoist.com/api/v1; endpoint paths are unchanged (/tasks/{id}/close, /tasks/{id}/reopen, etc.). Test: TestTodoistClient_UsesAPIv1BaseURL asserts the correct base URL. Co-Authored-By: Claude Sonnet 4.6 --- internal/api/todoist_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'internal/api/todoist_test.go') diff --git a/internal/api/todoist_test.go b/internal/api/todoist_test.go index f7ca719..159be61 100644 --- a/internal/api/todoist_test.go +++ b/internal/api/todoist_test.go @@ -143,6 +143,14 @@ func TestTodoistClient_CreateTask_WithDueDate(t *testing.T) { } } +func TestTodoistClient_UsesAPIv1BaseURL(t *testing.T) { + client := NewTodoistClient("test-key") + const want = "https://api.todoist.com/api/v1" + if client.BaseURL != want { + t.Errorf("expected base URL %q, got %q — Todoist REST v2 is deprecated (HTTP 410)", want, client.BaseURL) + } +} + func TestTodoistClient_CompleteTask(t *testing.T) { // Mock server server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { -- cgit v1.2.3