# Session State ## Current Focus Implementing bugs from production database ## Recently Completed Bugs - **#74**: Feature toggles - Added feature toggle system with UI at `/settings` - **#56**: Box contents overflow - Added overflow-hidden to card/panel classes - **#65**: Google tasks don't show up - Added logging, fixed tasks without due dates - **#66**: Tasks use outdated template - Added no-cache headers to dynamic responses - **#67**: Pop up menus need higher z-index - Updated to z-[100] - **#68**: Track completion in external sources - Already implemented - **#69**: Timeline calendar view - Implemented calendar-style Today section with: - Hourly grid (6am-10pm) - Events positioned by time with duration-based height - Separate compact section for overdue/all-day/untimed items - Added IsOverdue and IsAllDay fields to TimelineItem model - **#70**: Clear input boxes on success - Fixed shopping-mode.html reset - **#71**: Shopping items no checkmarks - Removed checkboxes from shopping-tab (only in shopping mode) - **#72**: Inline add per store - Added inline input at end of each store section - **#73**: Store grouping optional - Added Grouped/Flat view toggle with query param ## Active Feature **Agent Context API** — `issues/feature_agent_context_api.md` - Status: [REVIEW_READY] Phase 1 Complete + Browser-Only Agent Endpoints + Refactored - Phase 2 (Write Operations) and Phase 3 (Create + Management) pending ### Recent Updates **Refactoring (agent.go):** - Reused `BuildTimeline()` from timeline_logic.go instead of duplicating fetch logic - Added section headers for code organization - Extracted helpers: `isSessionExpired()`, `renderAgentTemplate()` **Enhanced Context API:** - Extended date range: 7 days back (overdue) to 14 days forward - Added `completed_log` - tracks completed tasks with title, due date, completion date - Added `day_section` field to timeline items (overdue/today/tomorrow/later) - Calendar-style view for today (6am-10pm) in HTML template - Tabs for Timeline vs Completed Log in web view **New Database:** - `completed_tasks` table (migration 011) - logs completed task history - `SaveCompletedTask()` / `GetCompletedTasks()` store methods - `CompletedTask` model type ### Phase 1 Completed Items - [x] Migration `migrations/010_agent_tables.sql` — agents and agent_sessions tables - [x] Store methods in `internal/store/sqlite.go` — full CRUD for agents/sessions - [x] Agent handlers in `internal/handlers/agent.go`: - POST `/agent/auth/request` — request access (returns request_token) - GET `/agent/auth/poll` — poll for approval status - POST `/agent/auth/approve` — user approves (browser auth required) - POST `/agent/auth/deny` — user denies (browser auth required) - GET `/agent/context` — full 7-day context (agent session required) - [x] WebSocket hub in `internal/handlers/websocket.go`: - GET `/ws/notifications` — push agent request alerts to browsers - [x] Routes registered in `cmd/dashboard/main.go` - [x] Frontend approval UI in `web/static/js/app.js`: - WebSocket connection with auto-reconnect - Approval modal with trust indicators - Countdown timer for request expiry - [x] Unit tests in `internal/handlers/agent_test.go` ### Phase 1.5: Browser-Only Agent Endpoints (NEW) - [x] GET `/agent/web/request?name=X&agent_id=Y` — HTML page with request token - [x] GET `/agent/web/status?token=TOKEN` — HTML page showing approval status - [x] GET `/agent/web/context?session=TOKEN` — HTML page with timeline data - [x] Templates: `agent-request.html`, `agent-status.html`, `agent-context.html`, `agent-error.html` - [x] All templates include embedded JSON in `