summaryrefslogtreecommitdiff
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-23Fix critical resilience issues from code reviewPeter Stone
- DB connection pool: Allow 5 connections instead of 1 for better concurrency - JSON unmarshal: Add error handling to prevent nil slice issues - Context cancellation: Check ctx.Done() in aggregateData goroutines - Migration path: Make configurable via MIGRATION_DIR env var Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23UI improvements: styling and layout fixesPeter Stone
- Prefill first store in shopping quick-add - Tone down overdue/priority styling (red -> amber) - Remove quick-add panel from tasks tab (use modal instead) - Increase card opacity for better readability - Swap task/event formatting (tasks get cards, events get border-l-4) - Add grid layout for tasks (2-3 columns on wider screens) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Add shopping quick-add featurePeter Stone
- Add Shopping tab to action modal (Ctrl+K) - Add /partials/shopping-lists endpoint to fetch lists from Shopping board - Store dropdown populated dynamically from Trello - Items added via existing unified-add endpoint Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Fix slice reallocation bug in GetBoardsPeter Stone
The boardMap was storing pointers to Board structs in the boards slice. When the slice grew and reallocated, those pointers became stale, causing cards to be added to old memory locations instead of the current slice. Fixed by storing indices instead of pointers in boardMap. Added tests to verify multiple boards with varying card counts are correctly saved and retrieved. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Fix slice reallocation bug in GetBoardsPeter Stone
2026-01-22Add debug logging to board save/retrievePeter Stone
2026-01-22Fix refresh button JS errorPeter Stone
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-22Support multiple Google CalendarsPeter Stone
GOOGLE_CALENDAR_ID now accepts comma-separated calendar IDs: GOOGLE_CALENDAR_ID=cal1@group.calendar.google.com,cal2@gmail.com Events from all calendars are merged and sorted by start time. If one calendar fails to fetch, others still load. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Add debug logging for Google CalendarPeter Stone
Log calendar ID on init and event count on fetch to help diagnose configuration issues. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Add Google Calendar integrationPeter Stone
- Add GoogleCalendarClient for fetching upcoming events - Add GoogleCalendarAPI interface and CalendarEvent model - Add config for GOOGLE_CREDENTIALS_FILE and GOOGLE_CALENDAR_ID - Display events in Planning tab with date/time formatting - Update handlers and tests to support optional calendar client Config env vars: - GOOGLE_CREDENTIALS_FILE: Path to service account JSON - GOOGLE_CALENDAR_ID: Calendar ID (defaults to "primary") Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Add migration to remove resolved bugsPeter Stone
Deletes 12 bug reports that have been fixed: - Hide future tasks, modal menu, tap to expand - terst.org styling, visual differentiation, urgency sort - Todoist link, completed tasks, timestamp, background image - Task edit details Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Complete dark translucent theme for all templatesPeter Stone
Update all HTML templates to match terst.org styling: - Dark semi-transparent backgrounds (bg-black/60) - White text with opacity variants for hierarchy - Glass effect with backdrop-blur - Dark form inputs with subtle borders - Updated modals and FAB button - Login page with background image Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22translucent themePeter Stone
2026-01-22run npm build in deploy scriptPeter Stone
2026-01-22Add deploy script and remove resolved issuesPeter Stone
- Add deployment/deploy script for server-side deploys - Remove 10 completed issue files (001-016 batch) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Fix background image CORS issuePeter Stone
Switch from Unsplash Source API to Lorem Picsum which has proper CORS headers for cross-origin image loading. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>