diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-03-22 23:45:19 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-03-22 23:45:19 +0000 |
| commit | 8abc63efdbc0bb96cd6c9aa99d6e9166e0bcabae (patch) | |
| tree | f4d6a082eed9b10bc67436a3ca5188e0182961eb /.agent/worklog.md | |
| parent | 11b905fd437d651b2e39745aa82a5dd36f70331e (diff) | |
chore: unify and centralize agent configuration in .agent/
Diffstat (limited to '.agent/worklog.md')
| -rw-r--r-- | .agent/worklog.md | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/.agent/worklog.md b/.agent/worklog.md new file mode 100644 index 0000000..08f6409 --- /dev/null +++ b/.agent/worklog.md @@ -0,0 +1,81 @@ +# Session State + +## Current Focus +Sync log + clear cache feedback + +## Recently Completed +- **Sync log + clear cache feedback** — migration `016_sync_log.sql`, store methods `AddSyncLogEntry`/`GetRecentSyncLog`, handler changes, template partial `sync-log.html` + - `HandleClearCache` now renders sync log HTML (replaces `hx-swap="none"`) + - `HandleSyncSources` adds log entry after sync + - `HandleSettingsPage` passes `SyncLog []store.SyncLogEntry` to template + - Tests: `TestStore_AddAndGetSyncLog`, `TestStore_GetRecentSyncLog_LimitsResults`, `TestHandleClearCache_AddsLogEntry`, `TestHandleClearCache_ReturnsHTMLSyncLog`, `TestHandleSettingsPage_IncludesSyncLog`, `TestHandleSyncSources_AddsLogEntry` + + +- **Bug 1: Todoist incremental sync** — added 5 tests exercising the incremental merge path (upsert, delete completed/deleted, sync token storage/reuse, forceRefresh). Code was already correct, just untested. + - Tests: `TestFetchTasks_IncrementalSync_UpsertsActiveTasks`, `TestFetchTasks_IncrementalSync_DeletesCompletedAndDeletedTasks`, `TestFetchTasks_IncrementalSync_StoresNewSyncToken`, `TestFetchTasks_IncrementalSync_UsesSavedSyncToken`, `TestFetchTasks_ForceRefresh_ClearsSyncToken` +- **Bug 2: Task completion response/headers** — added assertions for response body (`rendered:completed-atom`), Content-Type header, HX-Reswap/HX-Trigger headers, template data verification. Code was correct, assertions were missing. + - Tests updated: `TestHandleCompleteAtom_Todoist`, `TestHandleUncompleteAtom_Todoist` + - New test: `TestHandleCompleteAtom_RendersCorrectTemplateData` +- **Bug 3: Google Calendar cache layer** — calendar events now cached via `CacheFetcher` pattern, surviving API outages. + - New migration: `migrations/015_calendar_events.sql` + - New store methods: `SaveCalendarEvents`, `GetCalendarEvents`, `GetCalendarEventsByDateRange` + - New cache key: `store.CacheKeyGoogleCalendar` + - New handler method: `fetchCalendarEvents` (uses `CacheFetcher` with stale-cache fallback) + - `BuildTimeline` now reads events from store (removed `calendarClient` param) + - Tests: `TestBuildTimeline_ReadsCalendarEventsFromStore`, `TestFetchCalendarEvents_CacheFallbackOnAPIError`, `TestSaveAndGetCalendarEvents` +- All tests pass (`go test ./...`) + +## Previously Completed +- Extracted project-agnostic dev methodology to `~/.claude/CLAUDE.md` +- Created `~/.claude/roles/` with architect.md, implementor.md, reviewer.md +- Slimmed task-dashboard `CLAUDE.md` (87→72 lines, references global for methodology) +- Trimmed `DESIGN.md` (removed Development Workflow, Git Practices, TDD methodology, ADR methodology, Config Reference duplication) +- Deleted `ARCHITECT_ROLE.md`, `IMPLEMENTOR_ROLE.md`, `REVIEWER_ROLE.md` from repo + +## Previously Completed +- Build version footer with ldflags injection (`deploy.sh`, `index.html`) +- `assertTemplateContains` test helper, refactored existing template tests +- `scripts/logs` for fetching production journalctl +- Fix passkey registration: hide UI when WebAuthn not configured (WebAuthnEnabled flag) +- Added no-cache header tests for #66 + +## Completed Bugs (All Verified) +- **#74**: Feature toggles — tests: `TestHandleToggleFeature`, `TestHandleCreateFeature`, `TestHandleDeleteFeature`; docs: DESIGN.md §4.3 +- **#56**: Box contents overflow — CSS-only fix, documented in DESIGN.md +- **#65**: Google Tasks — timeline tests cover integration; API client lacks dedicated unit tests +- **#66**: No-cache headers — tests: `TestHTMLResponse_SetsNoCacheHeaders`, `TestJSONResponse_SetsNoCacheHeaders` +- **#67**: Z-index — CSS-only fix, documented in DESIGN.md §z-index hierarchy +- **#68**: Track completion — tests: `TestHandleCompleteAtom_Todoist`, `TestHandleCompleteAtom_Trello` +- **#69**: Timeline calendar — tests: `TestCalcCalendarBounds`, `TestBuildTimeline_IncludesOverdueItems`; docs: DESIGN.md §Timeline View +- **#70**: Clear inputs — tests: `TestShoppingQuickAdd_Success`; docs: DESIGN.md §Quick Add UX +- **#71**: Shopping checkmarks — tests: `TestShoppingModeItemsTemplateFiltersChecked` +- **#72**: Inline add per store — tests: `TestShoppingQuickAdd_ShoppingModeReturnsStoreItems` +- **#73**: Store grouping — partial tests, partial docs + +## Agent Context API +- Status: [REVIEW_READY] Phase 1 Complete +- Tests: `internal/handlers/agent_test.go` (comprehensive) +- Docs: ADR-005, DESIGN.md §Agent Context API +- Phase 2 (Write Operations) and Phase 3 (Create + Management) pending + +## Known Gaps +- Google Tasks API client lacks dedicated unit tests (integration tested via timeline) +- WebAuthn passkeys require `WEBAUTHN_RP_ID` and `WEBAUTHN_ORIGIN` env vars in production + +## Remaining Items (Feature Requests) +- #12: Research task durations +- #28: Bugs as first-class atoms +- #30: Consistent background opacity +- #31: PlanToEat ingredients +- #33-38: Shopping/timeline features + +## Next Steps +1. Set `WEBAUTHN_RP_ID` and `WEBAUTHN_ORIGIN` in production to enable passkeys +2. **Phase 2**: Agent write operations (complete, uncomplete, update due date) +3. **Phase 3**: Create task/shopping item, agent management UI + +## Process Improvements +- Extracted dev workflow to `~/.claude/CLAUDE.md` — reusable across projects +- Role definitions now in `~/.claude/roles/` — project-agnostic +- CLAUDE.md reduced from 87 to 72 lines — faster to parse +- DESIGN.md trimmed ~200 lines of duplicated methodology |
