From 06c576b0241d1e82dc5a8159fd962b78f7bc295b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Sat, 30 May 2026 17:24:35 -0700 Subject: [PATCH] fix: use bucket-specific endpoint to list Todo tasks /projects/{id}/tasks returns bucket_id=0 for all tasks. Use /projects/{p}/views/{v}/buckets/{b}/tasks instead. --- dispatcher/dispatcher.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dispatcher/dispatcher.py b/dispatcher/dispatcher.py index f5b34b5..a3611c3 100644 --- a/dispatcher/dispatcher.py +++ b/dispatcher/dispatcher.py @@ -40,6 +40,7 @@ VIKUNJA_BASE_URL = os.environ.get("VIKUNJA_BASE_URL", "https://tasks.ctz.fyi") VIKUNJA_PROJECT_ID = int(os.environ.get("VIKUNJA_PROJECT_ID", "78")) VIKUNJA_TODO_BUCKET_ID = int(os.environ.get("VIKUNJA_TODO_BUCKET_ID", "116")) VIKUNJA_IN_PROGRESS_BUCKET_ID = int(os.environ.get("VIKUNJA_IN_PROGRESS_BUCKET_ID", "117")) +VIKUNJA_KANBAN_VIEW_ID = int(os.environ.get("VIKUNJA_KANBAN_VIEW_ID", "114")) K8S_NAMESPACE = os.environ.get("K8S_NAMESPACE", "autojanet") AGENT_IMAGE = os.environ.get("AGENT_IMAGE", "registry.ctz.fyi/library/autojanet-agent:latest") @@ -88,7 +89,7 @@ def list_todo_tasks(vikunja_token: str) -> list[dict]: page = 1 while True: resp = httpx.get( - f"{VIKUNJA_BASE_URL}/api/v1/projects/{VIKUNJA_PROJECT_ID}/tasks", + f"{VIKUNJA_BASE_URL}/api/v1/projects/{VIKUNJA_PROJECT_ID}/views/{VIKUNJA_KANBAN_VIEW_ID}/buckets/{VIKUNJA_TODO_BUCKET_ID}/tasks", headers={"Authorization": f"Bearer {vikunja_token}"}, params={"page": page, "per_page": 50}, timeout=15, @@ -101,8 +102,7 @@ def list_todo_tasks(vikunja_token: str) -> list[dict]: if len(batch) < 50: break page += 1 - # Filter to Todo bucket only - return [t for t in tasks if t.get("bucket_id") == VIKUNJA_TODO_BUCKET_ID] + return tasks def extract_agent_role(task: dict) -> str | None: