summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-01-21Implement 10 UI/UX improvements and bug fixesPeter Stone
- Fix outdated Todoist task URL format (showTask -> app/task) - Fix quick-add date defaulting to tomorrow in evening (client-side JS) - Add tap-to-expand for task descriptions with checkbox completion - Add visual differentiation: overdue (red), future (gray), today (normal) - Sort tasks by urgency: overdue > today-timed > today-allday > future - Keep completed tasks visible with strikethrough until refresh - Add random Unsplash landscape background with content overlay - Hide future tasks behind collapsible fold with count badge - Unified modal menu for Quick Add + Bug Report (Ctrl+K shortcut) - Click task title to edit description in modal Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20UI improvements and bug fixesPeter Stone
- Gray out overdue tasks (past today) - Sort tasks with specific times before midnight-due tasks - Fix timezone bug in quick add (use local timezone) - Remove "Personal Dashboard" header, minimal refresh/logout bar - Change Todoist icon from checkmark to red circle - Show due time when set (not just date) - Compact task list styling Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add in-app bug reporting featurePeter Stone
- New bugs table in SQLite (migration 005) - Store methods for saving and retrieving bugs - Handlers for GET/POST /bugs - Floating bug button with modal UI - Shows recent bug reports in modal Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add faviconPeter Stone
Simple SVG favicon with gradient checkmark icon matching the app's indigo/purple theme. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Improve mobile responsivenessPeter Stone
- Hide full header on mobile, show compact version - Make Quick Add collapsible to save space - Compact task cards: smaller padding, text, and gaps - Remove checkbox decoration, tap card to complete - Reduce side padding on mobile - Smaller tab buttons on mobile Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Fix CSRF token missing from refresh fetch requestsPeter Stone
Manual JavaScript fetch() calls weren't including the CSRF token, causing 403 Forbidden on /api/refresh. Extract token from hx-headers body attribute and include in all POST requests. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Update deployment docs with real-world fixesPeter Stone
- Add explicit permission steps (755 dirs, 644 files) - Document systemd override for .env sourcing - Expand troubleshooting with common errors: - AH01144 proxy module error - 403 forbidden on static files - Template nil pointer panic - Readonly database error Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add VPS deployment artifacts and documentationPeter Stone
Include systemd service file, Apache reverse proxy config, and comprehensive deployment guide for Linux VPS setup. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add STATIC_DIR configuration supportPeter Stone
Allow static file directory to be configured via environment variable for flexible deployment layouts. Also fix gitignore to not ignore cmd/dashboard directory. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Mark authentication task as approvedPeter Stone
All critical issues resolved: auth tests, CSRF protection, and acceptance tests updated. All tests passing. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add sqlmock dependency for auth unit testsPeter Stone
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add project documentationPeter Stone
Include design system guidelines, Phase 3 roadmap, code quality review, proposed README, and authentication ADR. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add task tracking issuesPeter Stone
Document completed and planned tasks: - Obsidian removal (completed) - Authentication implementation (completed) - VPS deployment preparation (planned) - API sync optimization research Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add API research tests for sync optimizationPeter Stone
Include tests exploring Todoist Sync API and Trello field filtering for efficient incremental data fetching. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add workflow documentation for auth implementationPeter Stone
Include surgical instructions and code review feedback from authentication feature development. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add architect and reviewer role definitionsPeter Stone
Define workflow personas for multi-agent development process with clear responsibilities and handoff protocols. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add compiled binary to gitignorePeter Stone
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Simplify planning tab templatePeter Stone
Remove inline content and delegate to trello-boards partial. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Update session state with auth implementation progressPeter Stone
Track completed authentication work and remaining next steps for CSRF protection and testing. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Remove obsolete planning and documentation filesPeter Stone
Clean up repository by removing outdated planning documents, implementation specs, and setup guides that are no longer relevant. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add CSRF protection and auth unit testsPeter Stone
Add CSRF token middleware for state-changing request protection, integrate tokens into templates and HTMX headers, and add unit tests for authentication service and handlers. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add session-based authenticationPeter Stone
Implement secure authentication using scs session manager with SQLite backing store and bcrypt password hashing. - Add users and sessions tables (migration 004) - Create internal/auth package with Service, Middleware, and Handlers - Protect all routes except /login, /logout, /static/* - Add login page template and logout button to dashboard - Default credentials: admin/changeme (configurable via env vars) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Remove Obsidian integration for public server deploymentPeter Stone
Obsidian relied on local filesystem access which is incompatible with public server deployment. This removes all Obsidian-related code including: - API client and interface - Store layer methods (SaveNotes, GetNotes, SearchNotes) - Handler methods and routes - UI tab and templates - Configuration fields - Related tests 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-19Fix stale Todoist tasks persisting after refreshPeter Stone
Clear tasks table before inserting fresh API data, matching the fix applied to SaveBoards. This ensures completed/updated/deleted tasks are properly removed from the cache. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19Set Quick Add due date default to todayPeter Stone
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-19Refactor: Add cache key constants and configurable template pathPeter Stone
Code quality improvements: - Define CacheKey* constants in store package for type safety - Add TemplateDir to config (default: web/templates, env: TEMPLATE_DIR) - Update handlers to use store.CacheKey* instead of hardcoded strings - Update NewTabsHandler to accept templateDir parameter - Use filepath.Join for cross-platform template path construction Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19Implement Unified Quick Add for Tasks tab (Phase 3 Step 8)Peter Stone
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>
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 unified task completion with cache sync (Phase 3 Step 7)Peter Stone
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>
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-13remove agent access featurePeter Stone
2026-01-13Add Todoist tasks with completion checkboxes to Planning tabPeter Stone
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>
2026-01-13Implement Todoist write operations - Handlers & UI (Part 2)Peter Stone
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>
2026-01-13Implement Todoist write operations - API layer (Part 1)Peter Stone
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>
2026-01-13Add Trello card creation and completion UI (Phase 3 Step 3)Peter Stone
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>
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-13Implement Glassmorphism Foundation (Phase 2.5)Peter Stone
Visual overhaul with glassmorphism design system: - Gradient background (indigo/purple/pink) - Glass morphic cards with backdrop blur - Rounded pill navigation with glass effect - Enhanced shadows and hover states - Refined scrollbar styling Changes: - Update input.css with glassmorphism components and utilities - Modify index.html navigation to use glass container - Mark Bug 001 as resolved in tracking docs Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-13Fix template rendering error in notes tab (Bug 001)Peter Stone
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>
2026-01-13Add issue tracking documentationPeter Stone
- bug_001_template_rendering.md: Template error documentation - bug_002_tab_state.md: Tab state persistence issue (now resolved) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-13Implement Phase 2 Steps 3-5: Sorting and Search improvementsPeter Stone
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>
2026-01-13Fix tab state persistence with URL query parameters (Bug 002)Peter Stone
- 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>
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-13Implement 4-tab architecture with unified Atom renderingPeter Stone
- Create TabsHandler with 4 specialized tab methods - HandleTasks: Unified Atom view (Todoist + Trello due cards) - HandlePlanning: Dedicated Trello boards view - HandleNotes: Obsidian notes view - HandleMeals: PlanToEat meals view - Rewrite tasks-tab template for Atom rendering - Add planning-tab and meals-tab templates - Update index.html navigation with 4 tabs - Smart sorting: Tasks sorted by due date then priority - Clean separation: Tasks (action), Planning (structure), Notes (knowledge), Meals (calendar) Template fixes: - Load initial tab content via HTMX to avoid data structure mismatch - Update refresh logic to use 2-step process (API refresh + tab reload) - Fix manual and auto-refresh to call tab endpoints directly Note: Router changes in cmd/dashboard/main.go (untracked file) at lines 55-78 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-13Implement 4-Tab Architecture with unified Atom modelPeter Stone
2026-01-13Implement 4-Tab Architecture with unified Atom modelPeter Stone
2026-01-13Implement unified Atom model for multi-source abstractionPeter Stone
- Create internal/models/atom.go with Atom struct and enums - Add mapper functions for Task, Card, Note, and Meal types - Normalize priority scales (1-4) and assign brand colors - Update Phase 2 plan with Atom architecture as Step 1 - Document architectural decision in SESSION_STATE.md This abstraction enables consistent handling, sorting, and rendering of items from Trello, Todoist, Obsidian, and PlanToEat sources. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12Modernize frontend with tabs, HTMX, and Tailwind build pipelinePeter Stone
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>