# Bug-Fix Punch List (user bug report + new features) ## Investigation - [x] Survey workspace + server/worker state (server OK, worker OK) - [x] Read shared app.js + all page JS files; compare expectations vs actual API responses - [x] Reproduce Gmail bug locally (root cause: fixed sidebar overlapped left content — hid buttons) - [x] Root-cause systemic layout bug: `main#content` lacked margin-left — FIXED in app.css ## Fixes (reported bugs) - [x] Gmail: "Connect Gmail Account" not appearing after SMTP/JSON upload (3 layers fixed: CSS overlap, OAuth redirect 404 → /gmail-accounts, popup-block → location.href + return handling) - [x] Recipients: list not showing up after upload (response-key mismatch → fixed recipients.js summary/sample/commit keys) - [x] Phones: company phone number flagged as missing / not accepted — PHONE_RE rejected (555) 123-4567 + extensions; rewrote validator (normalize_phone/digits_only, 7-15 digits, ext support, digit-normalized dedupe); api() now shows real 422 reason; ALL phones-page buttons browser-verified (Add/Import/ClearAll/Deactivate/Label/Del/search) - [ ] "Clear All" buttons — verified on phones; check remaining pages (recipients, suppression, subjects, templates, attachments) - [ ] Campaigns: emails not sent on start + nothing under "My Campaigns" — full wizard test - [ ] Templates: uploaded HTML file not appearing in saved template list - [ ] Subject line entered but not used in sent emails - [ ] "Edit" option not working (campaigns + others) - [ ] Logo: no logo file in workspace — ASK USER to re-upload ## New features - [ ] Template section: convert HTML body to PDF / image / Word before sending (auto conversion per selected format) - [ ] Campaign monitor: live Recipients / Sent / Failed tracking + explicit stop / pause / resume controls (verify backend + UI wiring) ## Verification & delivery - [x] Restart server (auth.py + phones.py fixes live) - [x] Phone-related tests: 62 passed - [ ] Run full test suite (366 baseline) - [ ] Browser-test EVERY button end-to-end - [ ] Capture screenshots ("send me photo") and deliver with summary ## On hold (awaiting user clarification) - %SenderName% / %RandomCompanyName% variables — blocked pending explanation of third-party brand names (PayPal/Norton/McAfee/Geek Squad) in sendername.xlsx ---SERVER--- 404 ---WORKER--- 12424 bash -lc rm -f 12426 python3 -m celery -A 12441 python3 -m celery -A 12442 python3 -m celery -A 17574 python3 -m uvicorn app.main:app