# 2026-02-24 (Tuesday)

## 06:00 Memory Review (cron)
Reviewed Feb 21, 22, 23 daily logs. MEMORY.md updated with:

### New items added
- Tradeify: Code audit (44/50 issues fixed) + QA audit (19/22 fixed), bundle 1,091KB → 858KB, standalone invoicing added, robots.txt Disallow: / until go-live
- Tradeify DB: Expanded to 7,153 tradespeople (Feb 23). 2,196 websites, 674 emails. Supabase count updated.
- MN Group Lead Intelligence project added to Active Projects: Cloudflare Worker + mn-leads.pages.dev dashboard. Alan + Kieran emailed.
- AI Media Buyer concept noted (no build order yet)

### Open items flagged for this week
- **TOMORROW (Feb 25, 9am):** Cair Merchant Center pre-review check -- confirm no phone on contact page, feed dropped to ~20 EUR products, then request review on Feb 26
- **Feb 27:** Illumination Lighting Google Ads performance review (PMax + Search changes made Feb 21)
- **Feb 28:** Local Business Automation playbook (Rob's north county Dublin pitch approach)
- **TODAY:** Seedance 2.0 API global launch expected after Feb 24 -- monitor @gokayfem, @hckinz on X for announcement
- **Ongoing:** Tradeify messaging schema fix (SQL ready), quote/job flow merge, Cair correct account audit (8498379366)
- **Ongoing:** Alan Maher to confirm tracking snippet installed on 4 MN Group sites
- **Ongoing:** Rob sending Ignite90 emails himself (19 prospects in HubSpot) -- likely this week
- **Ongoing:** Tilt SEO pages (5 draft pages + 4 blog/case study pages) -- still unpublished
- **Rob in Spain until ~Mar 8** -- free rein, no check-in needed for day-to-day work

## Advisory Council Briefing (8:01 AM)
Ran weekly advisory council with 3 sub-agents (Revenue Analyst, Growth Strategist, Operations Critic).

**Critical issues identified:**
1. Anthropic OAuth compliance — infrastructure runs on prohibited auth method
2. Tradeify has 3 broken core features (messaging, quotes, claim overlap) unfixed since Feb 20
3. Illumination ROAS collapsed 43% (2.63x → 1.51x)
4. Ignite90: 19 prospects loaded, zero emails sent

**Top 3 priorities:** Fix Tradeify bugs + open robots.txt, send Ignite90 emails, verify Cair Merchant Center before Feb 26 review.

Briefing delivered to Rob via Telegram.

## 12:00 Email Check (cron)
- **Alan Maher (alan.maher@tilt.ie):** Confirmed tracking snippet installed on all 4 MN Group sites.
- Requested a visitor tracking data report by **Friday 27 Feb at 1pm**.
- Replied confirming report will be ready Friday by 1pm. CC'd Rob.
- **ACTION NEEDED FRIDAY 27 FEB 1PM:** Pull visitor data report from the tracking setup and email Alan.

## Tradeify Session - Feb 24

### Completed Today
- Ask Tradeify (renamed from Handy Helper) - AI chatbot with emergency detection
- Enterprise/Pro tier badges moved to rating line on cards
- Code splitting - 870KB → 293KB main bundle (lazy-load all pages)
- Server-side search with sessionStorage caching (500 row limit)
- Supabase max rows bumped to 100k (Rob did in dashboard)
- 13,300 tradespeople showing in search
- Tier sorting on ALL sort modes (Enterprise/Pro always top)
- Price filter removed (no pricing data yet)
- Messages page rebuilt with unified search bar (search conversations + tradespeople)
- Messaging FK workaround (separate queries instead of join)
- Messaging working - first message sent (customer → Mahony Group)
- Map fix: shows all geocoded pins even during text search
- Performance best practices documented in memory/knowledge/

### Outstanding - Tradeify Launch List
- [ ] Message bubble styling - too narrow, needs proper min/max width like WhatsApp
- [ ] Photo sharing in messages - camera/attachment button
- [ ] Voice messages in messages - mic button
- [ ] Admin RLS server-side (currently client-side whitelist only)
- [ ] AI helper API rate limiting
- [ ] CORS headers on AI API
- [ ] Remove/disable test accounts before launch
- [ ] Rate limit open INSERT policies (profile_events, quote_requests, business_claims)
- [ ] Migration 006 (team management) - still pending
- [ ] Add FK: conversations.tradesperson_id → tradespeople.id (run in SQL editor)
- [ ] OAuth providers (Google, Apple, Facebook) - Rob's task
- [ ] Stripe go-live - keys stored, STRIPE_ENABLED=false
- [ ] Email notifications (quote received, claim approved, etc.)
- [ ] Cut over tradeify.ie from holding page
- [ ] Geocode remaining tradespeople (12,800 without coords) - optional, low priority

## Bookmarks
- **api2cli** (github.com/alexknowshtml/api2cli) - Generates CLI tools from OpenAPI specs. Could wrap HubSpot/Supabase APIs into terminal commands.
- **Rowboat** (open source) - AI coworker with knowledge graph, runs locally. Markdown-based memory. Interesting but not needed -- we have our own memory system.

## Tradeify Decisions - Late Night Feb 24

### Tier Structure (confirmed by Rob)
**Free:** Basic profile, appear in search, contact details hidden
**Pro €39/mo:** Full profile, messaging, invoicing, quote requests, reviews, 5% transaction fee
**Enterprise €149/mo:** Everything in Pro + team management, analytics dashboard, priority search, verified badge, 3% transaction fee, dedicated support

### Stripe Payments
- Platform fee: 5% Pro, 3% Enterprise, Free gets no in-app payments
- Stripe fees (1.4% + €0.25) come out of transaction, no cost to us
- Tradesperson absorbs fees (customer sees clean invoice total)
- Need Stripe Connect for connected accounts per tradesperson
- Update Terms & Conditions with fee structure

### UI Bugs Found (Rob testing at 2-3am)
- [ ] Profile pic upload on Edit Profile page (needs avatar storage bucket)
- [ ] Chatbot FAB overlaps modals/filters -- needs lower z-index or hide when modal open
- [ ] "Upgrade to Enterprise" button doesn't work (needs Stripe)
- [ ] Invoicing should be Pro tier, not Enterprise (moved)

## Overnight Fixes (3am-4am session)

### Deployed
- Profile pic upload on customer Edit Profile (camera overlay, Supabase storage, user metadata)
- Tier structure updated in tiers.ts (Free/Pro €39/Enterprise €149 with searchRadius, maxActiveQuotes, transactionFee)
- Invoicing moved from Enterprise-only to Pro+ (free tier gated)
- Terms of Service updated with transaction fee section (5% Pro, 3% Enterprise)
- Upgrade button text changed from "Enterprise" to "Pro" for invoicing gate

### Tier Decisions (confirmed by Rob)
- **Free:** Basic profile, appear in search, contact details hidden, no quoting, no in-app payments
- **Pro €39/mo:** Full profile, messaging, invoicing, quotes (15 active), reviews, 25km radius, 5% fee
- **Enterprise €149/mo:** Everything in Pro + team mgmt, analytics, priority search, verified badge, 50km radius, unlimited quotes, 3% fee, dedicated support
- Transaction fees absorbed by tradesperson (customer sees clean price)
- Stripe Connect model (connected accounts per tradesperson)

### Still Outstanding
- [ ] Photo/voice sharing in messages
- [ ] Push notifications for new messages
- [ ] Standalone quote customer picker needs customer names (currently shows email prefix)
- [ ] Quote PDF preview
- [ ] Stripe Connect integration
- [ ] Error tracking (Sentry)
- [ ] CI/CD pipeline
- [ ] Profile-photos storage bucket may need creating in Supabase (if upload fails)
