| Age | Commit message (Collapse) | Author |
|
Add Quick Add form to create Todoist tasks or Trello cards directly
from the Tasks tab with optional due date support.
Features:
- HandleUnifiedAdd handler with due date parsing
- HandleGetListsOptions for dynamic Trello list loading
- Quick Add form with source toggle (Todoist/Trello)
- Date picker for due dates
- HX-Trigger refresh after successful creation
- Pass boards to tasks-tab template for board selector
Cleanup:
- Remove resolved issue tracking files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
Add checkbox UI to Tasks tab for completing Todoist tasks and archiving
Trello cards. Fix cache synchronization so completed items stay gone
after page reload by deleting them from SQLite cache after API success.
- Add HandleCompleteAtom handler routing to Todoist/Trello APIs
- Add DeleteTask/DeleteCard store methods for cache removal
- Add htmx.process() calls after innerHTML updates in app.js
- Add comprehensive tests for completion and cache behavior
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
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>
|
|
|
|
Make Todoist tasks visible by integrating into Planning tab:
- Add todoist-tasks template to planning-tab.html
- Update HandlePlanning to fetch and pass Tasks data
- Pass empty Projects slice (quick add form won't show initially)
- Completion checkboxes now visible and functional
Tasks with checkboxes now appear on Planning tab above Trello boards.
Users can click checkboxes to complete tasks instantly.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Complete Todoist task creation and completion functionality:
Handlers:
- Update aggregateData to fetch and populate Projects
- Add HandleCreateTask: creates task, refreshes list, re-renders
- Add HandleCompleteTask: marks task complete, returns empty
- Both handlers pass Projects to template for dropdown
Routes:
- Register POST /tasks for task creation
- Register POST /tasks/complete for task completion
UI (todoist-tasks.html):
- Add Quick Add form with collapsible details element
- Project selector dropdown (iterates over .Projects)
- Content input field with validation
- HTMX integration: hx-post, hx-target, hx-swap
- Functional completion checkboxes on each task
- Remove disabled attribute from checkboxes
- Add todoist-task-item wrapper class for HTMX targeting
- Glassmorphism styling for form
Features:
- Create Todoist tasks with optional project assignment
- Mark tasks complete with single click (disappears)
- Real-time task list updates without page reload
- Seamless HTMX partial updates
All tests pass. Full Todoist write operations now live in UI!
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Add CreateTask and CompleteTask methods to Todoist API client:
Models:
- Add Project struct (ID, Name) to types.go
- Add Projects []Project field to DashboardData
API Interface:
- Change GetProjects signature to return []models.Project
- Ensure CreateTask and CompleteTask are defined
Todoist Client:
- Add baseURL field for testability
- Refactor GetProjects to return []models.Project
- Update GetTasks to build project map from new GetProjects
- Implement CreateTask with JSON payload support
- Implement CompleteTask using POST to /tasks/{id}/close
Tests:
- Create comprehensive todoist_test.go
- Test CreateTask, CreateTask with due date, CompleteTask
- Test error handling and GetProjects
- Update mock client in handlers tests
All tests pass. Ready for handlers and UI integration.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Implement interactive Trello card management with HTMX:
Frontend:
- Create trello-board.html partial with add card form
- Add collapsible form with list selector and card title input
- Add completion checkbox on each card
- Update trello-boards.html to use new partial
- Use HTMX for seamless partial updates (hx-post, hx-swap)
Backend:
- Add HandleCreateCard: creates card and re-renders board
- Add HandleCompleteCard: marks card as closed
- Register /cards and /cards/complete POST routes
Features:
- Add cards to any list via dropdown
- Mark cards complete with checkbox (removes from view)
- Real-time board updates without full page reload
- Glassmorphism styling for form
All tests pass. Full Trello write operations now available in UI.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
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>
|
|
Add Errors field to HandleNotes data structure to match notes-tab
template expectations. The error-banner partial requires this field.
- Add template_test.go with reproduction test
- Update HandleNotes to include Errors field in data struct
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Step 3 - Trello Smart Sorting:
- Update GetBoards SQL with LEFT JOIN and MAX(c.id) for activity sorting
- Update GetBoardsWithCards to find max card ID per board
- Sort by: 1) Has cards, 2) Newest card activity, 3) Board name
- Trello IDs are chronologically sortable (newer > older)
Step 4 - Todoist Due-First Sorting:
- Update GetTasks ORDER BY with CASE WHEN due_date IS NULL
- Sort by: 1) Incomplete, 2) Has due date, 3) Earliest date, 4) Priority
- Tasks with due dates appear before tasks without due dates
Step 5 - Obsidian Search:
- Add SearchNotes method with LIKE queries on title/content
- Update HandleNotes to check 'q' query param and HX-Target header
- Implement smart partial rendering (obsidian-notes vs notes-tab)
- Add search input with 300ms debounce and HTMX integration
- Real-time search without page reload
Mark Steps 1-5 as complete in PHASE_2_SURGICAL_PLAN.md
All tests passing
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
- Extract tab query param in HandleDashboard, default to "tasks"
- Wrap DashboardData with ActiveTab field for template access
- Update index.html with conditional tab-button-active class
- Add hx-push-url="?tab=..." to each tab button for URL persistence
- Update content div to load active tab from server state
- Update app.js to read currentTab from URL query parameters
- Add comprehensive tab_state_test.go test suite
- Tab selection now persists through page reloads
- All tests passing
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
|
|
Complete UI overhaul implementing modern design patterns with HTMX for
dynamic updates, proper Tailwind build pipeline, and improved UX.
Build Pipeline:
- Add npm + PostCSS + Tailwind CSS configuration
- Custom design system with brand colors
- Compiled CSS: 27KB (vs 3MB CDN), 99% reduction
- Makefile for unified build commands
- Inter font for improved typography
Tab Interface:
- Separate Tasks tab from Notes tab using HTMX
- Partial page updates without full refreshes
- Tab state management with proper refresh handling
- New endpoints: /tabs/tasks, /tabs/notes, /tabs/refresh
Template Architecture:
- Modular partials system (7 reusable components)
- Cleaner separation of concerns
Empty Board Management:
- Active boards in main 3-column grid
- Empty boards in collapsible section
- Reduces visual clutter
Visual Design Enhancements:
- Inter font, brand color accents
- Improved typography hierarchy and spacing
- Enhanced card styling with hover effects
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
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>
|