# 2026-01-29 ## Lessons Learned - **Don't update Donovan in chat about task progress** — put comments and updates directly in the task (HammerQueue or wherever the task lives). He doesn't want chat noise for status updates. - **Never expose services publicly without asking first** — I enabled hammer.donovankelly.xyz which exposed the Clawdbot Control UI to anyone. Always ask before making something internet-facing. - **Never use HTTP for external communication** — all cross-server comms must be HTTPS. Added to TOOLS.md rules. - **Always build and test before pushing** — run `bun run build` (or equivalent) locally before pushing to git. Dokploy builds from git, so broken code = failed deploys. ## Hammer Queue Webhook Fix Verified - Cron job confirmed the webhook integration is working (3:59 AM UTC) ## Hammer Queue → Hammer Dashboard - Renamed domain from queue.donovankelly.xyz to dash.donovankelly.xyz via Dokploy API - Dokploy is at app.dokploy.com (cloud), API key in Bitwarden - Compose ID: kBdwrcZodIRyNIvQ-wrzG - Fixed TS build errors (unused var, useEffect return type) before successful deploy - hammer.donovankelly.xyz Caddy proxy DISABLED — exposed Clawdbot Control UI without auth. Must add auth layer before re-enabling. ## Dashboard Improvements (Task Worker) - 6:00 AM UTC - Added Dashboard overview page at `/` — stats grid, active task cards, up-next queue, recent activity feed, recently completed - Added progress note input UI in TaskDetailPanel (textarea + Cmd+Enter + Add button) - Added search bar and priority filter to Queue page - Committed chat backend relay code (WebSocket proxy from dashboard to Clawdbot gateway) - Gateway-relay.ts now falls back to VITE_WS_TOKEN env var - Completed "Save/cancel button" task (was already implemented, just marked done) - Chat still blocked: needs Caddy WSS proxy re-enabled on hammer.donovankelly.xyz (restricted to WS, not control UI) - Three deploys to Dokploy ## Task Worker: Due Dates, Subtasks, Task Detail Page - 7:00 AM UTC - Added `due_date` and `subtasks` JSONB columns to tasks schema - Backend: full CRUD for subtasks (add/toggle/delete at /api/tasks/:id/subtasks) - Backend: dueDate support in create/update task endpoints - TaskDetailPanel: due date picker with overdue/due-soon badges, subtask checklist with progress bar - New TaskPage component: full-page task view at /task/HQ-{number} routes - Dashboard cards now link to /task/HQ-{number}, show subtask progress bars and due date badges - Frontend types updated with assigneeName, assigneeId, dueDate, subtasks - Drizzle migration 0001_mighty_callisto.sql (uses db:push on deploy) - Deployed to Dokploy - Chat still blocked: needs Caddy (no sudo access to install) ## Projects Feature (HQ-17) - 5:00 AM UTC - Built full Projects feature for Hammer Dashboard - Backend: `projects` table (name, description, context, repos, links), full CRUD API at `/api/projects` - Backend: added `projectId` FK on tasks table, supported in create/update task APIs - Frontend: Projects page with card grid, detail view, context editor, repo list, task assignment - Frontend: Project selector added to TaskDetailPanel (dropdown in task detail) - Sidebar nav now: Queue → Projects → Chat - Created initial projects: "Hammer Dashboard" (with full context), "Network App (NWM CRM)" - Assigned 7 dashboard tasks to Hammer Dashboard project, 1 task to Network App - HQ-17 completed, HQ-21 updated with progress - All deployed to dash.donovankelly.xyz via Dokploy