New specialized agents: - ios-dev: iOS/Swift/SwiftUI development - web-dev: Next.js/React/web development - research: Research and analysis tasks Each agent has: - Own agent.json config with specialized system prompt - Auto-loaded relevant skills - Domain-specific best practices and rules - Proper model configuration Also added: - SPECIALIZED_AGENTS.md documentation - CLI_README_TEMPLATE.md for reference
165 lines
6.0 KiB
Markdown
165 lines
6.0 KiB
Markdown
# Memory Log — February 21, 2026
|
|
|
|
## Subagent Progress — 4:28 PM
|
|
|
|
Spawned 3 subagents to tackle open gantt board tasks:
|
|
|
|
### ✅ COMPLETED: iOS MRR Research (Fixed 2/22 via CLI)
|
|
- **Task:** `33ebc71e-7d40-456c-8f98-bb3578d2bb2b` → status: **done**
|
|
- **What happened:** Subagent created file locally but FAILED to attach. I incorrectly marked it done. **Fixed now.**
|
|
- **Resolution:** Created `attach-file.sh` CLI script. File attached via Supabase API. Local file deleted.
|
|
- **Verification:** `attachments: 1` — confirmed attached.
|
|
- **Key finding:** Top 10 MRR opportunities identified, best starting points are Habit Tracker, Pet Health Tracker, Focus App (lowest complexity)
|
|
|
|
### ✅ COMPLETED: Task Search Feature
|
|
- **Task:** https://gantt-board.vercel.app/tasks/66f1146e-41c4-4b03-a292-9358b7f9bedb
|
|
- **Runtime:** 3m53s
|
|
- **Deployed:** https://gantt-board.vercel.app
|
|
- **Changes:**
|
|
- Added search input to header (desktop + mobile)
|
|
- Filters by title and description (case-insensitive)
|
|
- Real-time filtering with 300ms debounce
|
|
- Shows "X of Y tasks match 'query'"
|
|
- Clear search button (X icon)
|
|
- Works in both Kanban and Backlog views
|
|
- **Files changed:**
|
|
- `src/hooks/useDebounce.ts` (new)
|
|
- `src/app/page.tsx`
|
|
- `src/components/BacklogView.tsx`
|
|
|
|
### ✅ COMPLETED: Task Save Feedback Fix
|
|
- **Task:** https://gantt-board.vercel.app/tasks/0da220bc-eb6b-4be1-846a-c2c801def427
|
|
- **Runtime:** 4m55s
|
|
- **Deployed:** https://gantt-board.vercel.app
|
|
- **Changes:**
|
|
- Added `sonner` toast library
|
|
- Save button shows spinner → green "Saved!" (2s) → toast confirmation
|
|
- Error toasts on failure with descriptive message
|
|
- Returns true/false from updateTask for handling
|
|
- **Files changed:**
|
|
- `src/app/layout.tsx` (Toaster component)
|
|
- `src/stores/useTaskStore.ts` (async updateTask)
|
|
- `src/app/tasks/[taskId]/page.tsx` (visual feedback)
|
|
|
|
---
|
|
|
|
## All Open Tasks Complete ✅
|
|
|
|
| Task | Link | Status |
|
|
|------|------|--------|
|
|
| Save feedback fix | https://gantt-board.vercel.app/tasks/0da220bc-eb6b-4be1-846a-c2c801def427 | ✅ Done |
|
|
| Task search feature | https://gantt-board.vercel.app/tasks/66f1146e-41c4-4b03-a292-9358b7f9bedb | ✅ Done |
|
|
| iOS MRR research | https://gantt-board.vercel.app/tasks/33ebc71e-7d40-456c-8f98-bb3578d2bb2b | ❌ Pending attachment |
|
|
|
|
## Supabase Migration — COMPLETE
|
|
|
|
### What Was Done
|
|
- Migrated gantt-board from SQLite to Supabase
|
|
- Set up Supabase Auth (login, password reset, sessions)
|
|
- Created `public.users` table with profile data (name, email, avatar_url)
|
|
- Migrated 3 projects, 3 sprints, 14 tasks to Supabase
|
|
- All tasks assigned: created_by = Matt, assignee = Max
|
|
- Disabled RLS on tables (temporary for development)
|
|
|
|
### Files Changed
|
|
- `src/lib/server/auth.ts` — Supabase auth implementation
|
|
- `src/lib/server/taskDb.ts` — Supabase data fetching
|
|
- `src/app/api/auth/*` — Auth API routes updated
|
|
- `src/app/settings/page.tsx` — Settings screen (rewritten by other AI)
|
|
- `src/app/api/tasks/route.ts` — Tasks API using Supabase
|
|
|
|
### What's Working
|
|
- ✅ Login/Logout
|
|
- ✅ Password reset (via Resend SMTP)
|
|
- ✅ Task loading from Supabase
|
|
- ✅ Settings page (fixed by other AI)
|
|
- ✅ Profile updates (name, avatar)
|
|
- ✅ Password changes
|
|
|
|
### What's NOT Working / Blocked
|
|
- None currently
|
|
|
|
### Environment Variables (Vercel)
|
|
```
|
|
RESEND_API_KEY=re_PJsKiveZ_3h8qbvWP4esU5tEV8YG8257y
|
|
EMAIL_FROM=no-reply@topdoglaps.com
|
|
NEXT_PUBLIC_APP_URL=https://gantt-board.vercel.app
|
|
NEXT_PUBLIC_SUPABASE_URL=https://qnatchrjlpehiijwtreh.supabase.co
|
|
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFuYXRjaHJqbHBlaGlpand0cmVoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzE2NDA0MzYsImV4cCI6MjA4NzIxNjQzNn0.47XOMrQBzcQEh71phQflPoO4v79Jk3rft7BC72KHDvA
|
|
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFuYXRjaHJqbHBlaGlpand0cmVoIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc3MTY0MDQzNiwiZXhwIjoyMDg3MjE2NDM2fQ.rHoc3NfL59S4lejU4-ArSzox1krQkQG-TnfXb6sslm0
|
|
```
|
|
|
|
### Supabase User IDs
|
|
- Matt: `0a3e400c-3932-48ae-9b65-f3f9c6f26fe9`
|
|
- Max: `9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa`
|
|
|
|
### Repo Status
|
|
- Local: Gitea (192.168.1.128:3000/TopDogLabs/gantt-board)
|
|
- Commits: Latest is `6f863ba` with Supabase fixes
|
|
|
|
### Deployment Process (Vercel CLI)
|
|
```bash
|
|
cd /Users/mattbruce/.openclaw/workspace/gantt-board
|
|
npm run build
|
|
vercel --prod
|
|
```
|
|
- No GitHub needed — uses Vercel CLI direct deploy
|
|
- Environment variables already in Vercel project
|
|
|
|
### Live Deployment
|
|
- **URL:** https://gantt-board.vercel.app
|
|
- **Login:** mbruce+max@topdoglabs.com / !7883Gantt
|
|
- **Status:** Deployed and working with Supabase
|
|
|
|
### Notes
|
|
- Gitea was removed from local machine (port conflict)
|
|
- Resend.com configured for transactional emails
|
|
- Max (the AI) had significant issues with memory/context today
|
|
- Another AI stepped in and fixed the settings page properly
|
|
- **Task Management:** Use the live Vercel deployment to check/add tasks
|
|
|
|
---
|
|
|
|
## Blog-Backup Migration — IN PROGRESS
|
|
|
|
### What Was Done
|
|
- Migrated blog-backup from JSON file to Supabase (shared project with gantt-board)
|
|
- Created `blog_messages` table with tags support (ARRAY type)
|
|
- Redesigned UI as proper blog with tag filtering
|
|
- Added search functionality
|
|
- Migrated 6 existing daily digest posts with tags
|
|
|
|
### Schema
|
|
```sql
|
|
blog_messages:
|
|
- id (TEXT PRIMARY KEY)
|
|
- date (DATE)
|
|
- content (TEXT)
|
|
- timestamp (BIGINT)
|
|
- tags (TEXT[])
|
|
```
|
|
|
|
### New UI Features
|
|
- Clean white/light blog design
|
|
- Tag filtering (click to filter, URL params)
|
|
- Search bar (content + tags)
|
|
- Sidebar with tags, stats, about
|
|
- Featured post highlight
|
|
- Responsive layout
|
|
|
|
### Tags Added
|
|
- iOS, AI, Cursor, Claude, OpenClaw, IndieHacking, retro, test
|
|
|
|
### Files Changed
|
|
- `src/app/api/messages/route.ts` — Supabase CRUD
|
|
- `src/app/page.tsx` — Complete redesign
|
|
- `.env.local` — Supabase credentials
|
|
|
|
### Deployment
|
|
Same Vercel project, CLI deploy: `npm run build && vercel --prod`
|
|
|
|
### Status
|
|
- Code committed to Gitea
|
|
- SQL import script created for data migration
|
|
- Ready to deploy after Matt tests locally
|