90 lines
6.0 KiB
Markdown
90 lines
6.0 KiB
Markdown
# 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.
|
|
|
|
## Infrastructure
|
|
- Caddy on VPS (72.60.68.214) now proxies:
|
|
- `hammer.donovankelly.xyz/hooks/*` → gateway (hooks only, Control UI blocked)
|
|
- `ws.hammer.donovankelly.xyz` → gateway (WebSocket, token-auth)
|
|
- `app.todo.donovankelly.xyz` → todo frontend
|
|
- `api.todo.donovankelly.xyz` → todo backend
|
|
- Wildcard DNS `*.hammer.donovankelly.xyz` → 72.60.68.214 (set by Donovan)
|
|
- Hostinger firewall opened: SSH, HTTP, HTTPS (TCP)
|
|
- Cron job "task-worker" runs every 30min, picks up active tasks, spawns sub-agent to work
|
|
- Chat relay architecture: browser → dash backend `/api/chat/ws` (session auth) → `wss://ws.hammer.donovankelly.xyz` (token auth) → gateway
|
|
|
|
## 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)
|
|
|
|
## Dashboard UX Polish (Task Worker) - 7:30 AM UTC
|
|
- Added Toast notification system (success/error/info) with auto-dismiss, context provider
|
|
- Added delete task functionality with confirmation dialog (TaskDetailPanel + TaskPage)
|
|
- Added due date badges and subtask progress bars to TaskCard in queue view
|
|
- Added Escape keyboard shortcut to close detail panels
|
|
- Integrated toast feedback into QueuePage (status changes, task creation) and TaskDetailPanel (save)
|
|
- TaskPage now has "Danger Zone" section with delete, and "copy link" shows toast
|
|
- Deployed to dash.donovankelly.xyz via Dokploy
|
|
|
|
## Dashboard UX Polish Batch 2 (Task Worker) - 8:00 AM UTC
|
|
- Enhanced CreateTaskModal: project selector, due date picker, priority toggle buttons, "More options" for source
|
|
- Project (📁) and assignee (👤) badges on TaskCard + dashboard active cards
|
|
- Status filter dropdown on QueuePage + clear filters button + filter count indicator
|
|
- Ctrl+N keyboard shortcut to create new task from queue page
|
|
- Assignee picker in TaskDetailPanel: quick-assign buttons for Hammer/Donovan/David
|
|
- Dashboard: Up Next and Recently Completed items now link to task detail pages, priority badges on Up Next
|
|
- Search now also matches assignee names
|
|
- Three commits pushed and deployed to Dokploy
|
|
|
|
## 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
|
|
|
|
## Chat WS Relay Fix + UX (Task Worker) - 8:30 AM UTC
|
|
- Fixed critical chat bug: docker-compose.dokploy.yml was reading `VITE_WS_URL` (not set) instead of `GATEWAY_WS_URL` (set to wss://ws.hammer.donovankelly.xyz)
|
|
- Backend gateway-relay.ts also had wrong default and VITE_ env var fallback — cleaned up
|
|
- Fixed Elysia TS errors in all error handlers (ElysiaCustomStatusResponse missing .message)
|
|
- Chat UX improvements: thinking indicator (bouncing dots), tap-to-show timestamps, double-click thread rename, auto-resize textarea
|
|
- Deployed to Dokploy — chat should now connect to gateway via ws.hammer.donovankelly.xyz
|
|
- This should unblock Phase 2 of HQ-21 (Chat integration)
|