summaryrefslogtreecommitdiff
path: root/internal/api/trello.go
AgeCommit message (Collapse)Author
2026-01-23Fix high priority issues from code reviewPeter Stone
- Default password: Fatal error in production if DEFAULT_PASS not set - API timeouts: Reduce from 30s to 15s (4 APIs × 15s < 60s global) - Trello lists: Log warning when list fetch fails instead of silent ignore Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Add debug logging for Trello card fetchingPeter Stone
Log API responses and errors to diagnose empty boards issue. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Implement efficient sync for Todoist and Trello APIsPeter Stone
- Add Todoist Sync API v9 support with incremental sync tokens - Store sync tokens in SQLite for persistence across restarts - Add field filtering to Trello API calls to reduce payload size - Update handlers to use incremental sync (merge changes vs full replace) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19Refactor Trello client to use url.Values for query paramsPeter Stone
Replace manual string concatenation with url.Values for cleaner, safer query parameter construction in GetBoards, GetCards, and getLists. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18Fix Trello closed boards bug - filter API and clear stale cachePeter Stone
Closed boards were appearing because: 1. API fetched all boards including closed ones 2. Cache used upsert logic that never removed old data Fixes: - Add filter=open to GetBoards API call - Add filter=visible to GetCards API call - Clear boards/cards tables before inserting fresh data in SaveBoards Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18Implement Trello task heuristics for Tasks tab (Phase 3 Step 6)Peter Stone
Add filtering logic to show Trello cards as actionable tasks when they have due dates OR are in lists named like "todo", "doing", "in progress", "tasks", "next", or "today". This makes the Tasks tab more useful by surfacing cards that represent work items even without explicit due dates. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13Add Trello Lists support for UI dropdownsPeter Stone
Expose Trello Lists in Board model to enable card creation UI: - Add List model struct (ID, Name) to types.go - Add Lists []List field to Board model - Add GetLists method to TrelloAPI interface - Refactor private getLists to return []models.List - Update GetCards to build list map from slice - Add public GetLists method wrapping private implementation - Update GetBoardsWithCards to populate Lists field concurrently - Update mock Trello client in tests to implement GetLists All tests pass. Boards now include their lists for UI rendering. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-13Implement Trello write operations (Phase 3 Step 1)Peter Stone
Add CreateCard and UpdateCard methods to Trello API client with full testability support: - Refactor TrelloClient with configurable baseURL for testing - Replace hardcoded trelloBaseURL constant with c.baseURL - Implement CreateCard with support for description and due date - Implement UpdateCard with flexible field updates - Add comprehensive test suite using httptest.NewServer - Tests cover success cases, error handling, and edge cases All tests pass. Write operations ready for Phase 3 UI integration. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-13 Implement Trello smart sorting by newest card activityPeter Stone
- Update GetBoards SQL query with LEFT JOIN and GROUP BY - Sort by: 1) Has cards, 2) Newest card (MAX ID), 3) Board name - Update GetBoardsWithCards to match SQL sorting behavior - Leverage Trello ID chronological sortability (newer > older) - Active boards with recent activity appear first - All tests passing Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12Sort Trello boards with active boards firstPeter Stone
Improves UX by prioritizing boards with cards over empty boards. Both API and cached results now sort consistently: non-empty boards appear first, then empty boards, with alphabetical ordering within each group. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12Parallelize Trello card fetching for improved performancePeter Stone
Replaced sequential card fetching in GetBoardsWithCards with concurrent goroutines limited by a semaphore (max 5 concurrent requests). This significantly reduces load times for users with multiple boards. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12Initial commit: Personal Consolidation Dashboard (Phase 1 Complete)Peter Stone
Implemented a unified web dashboard aggregating tasks, notes, and meal planning: Core Features: - Trello integration (PRIMARY feature - boards, cards, lists) - Todoist integration (tasks and projects) - Obsidian integration (20 most recent notes) - PlanToEat integration (optional - 7-day meal planning) - Mobile-responsive web UI with auto-refresh (5 min) - SQLite caching with 5-minute TTL - AI agent endpoint with Bearer token authentication Technical Implementation: - Go 1.21+ backend with chi router - Interface-based API client design for testability - Parallel data fetching with goroutines - Graceful degradation (partial data on API failures) - .env file loading with godotenv - Comprehensive test coverage (9/9 tests passing) Bug Fixes: - Fixed .env file not being loaded at startup - Fixed nil pointer dereference with optional API clients (typed nil interface gotcha) Documentation: - START_HERE.md - Quick 5-minute setup guide - QUICKSTART.md - Fast track setup - SETUP_GUIDE.md - Detailed step-by-step instructions - PROJECT_SUMMARY.md - Complete project overview - CLAUDE.md - Guide for Claude Code instances - AI_AGENT_ACCESS.md - AI agent design document - AI_AGENT_SETUP.md - Claude.ai integration guide - TRELLO_AUTH_UPDATE.md - New Power-Up auth process Statistics: - Binary: 17MB - Code: 2,667 lines - Tests: 5 unit + 4 acceptance tests (all passing) - Dependencies: chi, sqlite3, godotenv Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>