# 2026-03-14 (Saturday)

## 06:00 Memory Review (cron)

Reviewed daily logs Mar 7-13. MEMORY.md updated with current perspective.

### Week Summary (Mar 7-13)

**Mar 7-8:** Retail Targeting major bug fix (mock data deleted, real APIs wired). Tradeify security hardening + all 25 email templates wired. Illumination Google Ads major session (auto-apply off, brand exclusion, ROAS target, bid schedules). AI Visibility Checker built + deployed. Dream 100 dashboards (6 pages, tilt.ie). Tilt directory registrations started.

**Mar 9:** Quiet day. MN pipeline reached 68 prospects. Security scan clean. Illumination location bid adjustments applied.

**Mar 10:** Advisory council: unanimous theme — Rob-gated paralysis blocking revenue. Google Ads verification deadline 6 days away. Illumination Search ROAS check cron fired (first). AI Visibility lead capture still disconnected.

**Mar 11:** GCP "Tilt AI Projects" created, Gemini key updated in Retail Targeting. Big voice note from Rob (10 tasks). Invoice UI improved (Edit + Credit Note). SendGrid template updated to v2. Multiple invoice bugs still open. Cloudflare outage delayed deploys.

**Mar 12:** Zavi project kickoff. EUR 17-21B market, no local AI competitor. Monday Mar 17 MVP target.

**Mar 13 (overnight 4am):** Zavi autonomous 5-phase build completed. Live at https://zavi-app.pages.dev. All 10 tables + RLS + storage buckets. All 5 phases: foundation, knowledge base, dashboard/opportunities, tender workspace, polish/settings/QA.

**Mar 13 (day):** Weekly advisory council — unanimous execution paralysis flag. Zavi major fixes: theme provider (dark mode bug), AI metadata extraction from PDFs, multi-file upload, Excel/CSV support, async_hooks crash (nodejs_compat), column name mismatches fixed. Alan weekly report: attachment missing, resent inline.

### Critical Flags (as of Mar 14 6am)

- **Google Ads identity verification: 2 DAYS LEFT (deadline Mar 16).** Rob must log in and complete. Both accounts blocked. Illumination runs €633/day.
- **GitHub PAT expiry: 3 days (Mar 17).** Blocks all Cloudflare Pages deploys (Zavi, Tradeify, Retail Targeting, AI Visibility Checker). Rob must regenerate at github.com.
- **Zavi auth not wired.** App is live at public URL with no login. Demo-only. Do NOT share externally until auth added.
- **Zavi column fix unverified.** Rob hadn't confirmed upload works after Mar 13 column name fix.
- **Zavi storage bug.** tender-uploads bucket is private but code calls getPublicUrl — document URLs won't resolve.
- **Dream 100 Coole Swan email.** 6+ days since dashboards built, still unsent. Needs rework (more data/numbers).

### Still-Outstanding from Rob's Mar 11 Voice Note
- Love Irish Food x Apple Green meeting notes → email Rob
- Illumination Lighting AI visibility audit → email Rob
- Tilt.ie AI visibility audit → email Rob
- Directory listing draft emails (Tilt + Illumination + HQ Electrical)
- Dream 100 dashboard raw links (more data-driven)
- Google Search Console setup instructions
- OpenClaw update monitoring cron
- MN Scatter tracker ISP exclusion
- LinkedIn matched audience guidance (Love Irish Food, 150 members)
- Seedance/TrueCapCode tutorials email

### Alan Weekly Report Fix
- Alan's Mar 14 report must include data inline (no attachments). Update the cron payload or generation logic.
- Next Alan report: Friday Mar 20, 3pm Dublin.

## ~12:00-12:54 Zavi Session (Rob live in Telegram group)

### Resend Email Setup for Zavi
- Rob shared Resend account (tilt team, max@tilt.ie via Google login)
- Created new "Zavi" API key (sending access only), saved to `.env.resend`
- Deleted the compromised "Onboarding" key (Rob accidentally posted it in group chat)
- Added zavi.ie domain in Resend (Ireland/eu-west-1 region)
- Added 4 DNS records in Cloudflare via API (DKIM TXT, MX for SPF, TXT for SPF, DMARC TXT)
- Cloudflare zone ID for zavi.ie: fd655f799dabc7778e2dde6f0a0c22c7
- Verification triggered -- all records showing "pending", should verify within minutes
- From address will be noreply@zavi.ie (or any @zavi.ie)

### Zavi Domain Setup
- zavi.ie already in Cloudflare with CNAME records pointing to zavi-app.pages.dev (root + www)
- Updated codebase: replaced zavi-app.pages.dev references with zavi.ie
- `.env.local` NEXT_PUBLIC_APP_URL updated to https://zavi.ie

### Zavi UI Changes
- Removed "Built for Irish SMEs" badge from landing page (Rob's request)

### Zavi Service Category Feature (NEW)
- Rob asked: how will Zavi distinguish between different tender types (advertising vs video vs strategy etc) when drafting?
- Discovery: `tenders` table already had a `category` column -- just wasn't wired up
- Built and deployed service category feature:
  - AI auto-detects category from PDF on upload (via Claude metadata extraction)
  - 13 categories: Advertising, PR & Communications, Video & Photography, Strategy & Consulting, Creative Services, Social Media, Digital Marketing, Media Buying, Events, Research, Design, Technology, Other
  - Manual dropdown override on upload form
  - Works in both single and batch upload modes
  - Category saved to DB via API route
  - Category included in GET response for history list
- Deployed to zavi-app.pages.dev (build 42c38d30)
- Next step: wire drafting engine to filter knowledge base by matching category

### Cloudflare Access Notes
- Logged into Cloudflare as max@tilt.ie via Google OAuth (openclaw browser profile)
- Account ID: 3602ca8230bbcac7654196fdd7b4cf14
- Used Cloudflare internal API from browser session to add DNS records (UI dropdowns were uncooperative)
- This approach (fetch from dash.cloudflare.com session) works well for DNS record management
