Add temporary admin contacts-census diagnostic (v0.1.0:105)
A throwaway, admin-only diagnostic for the deferred contacts <-> fundraising_contacts consolidation: GET /api/admin/contacts-census + a Settings -> Admin "Run census" button report the A/B/C populations (linked / contacts-only / pill-only) plus the communications/opportunities repointing surface. Counts only, no PII -- mirrors backend/scripts/contacts_census.sql so the numbers can be read off the box without a shell. All pieces are tagged TEMPORARY; delete the endpoint + route + button after the census is captured. No schema change. 45/45 tests, render-smoke green.
This commit is contained in:
@@ -115,5 +115,5 @@ _**Box live at v0.1.0:104 (deployed + verified 2026-06-20)** — clean StartOS m
|
||||
- **New (v0.1.0:104):** admin-only **Purge Deleted Data** (Settings → Admin) — guarded, type-to-confirm hard-delete of soft-deleted rows; see the soft-delete convention + `test_purge_soft_deleted.py`.
|
||||
- **Verification:** **45/45** backend, render-smoke green, reviewer-agent APPROVE after fixing **1 blocker** (contact purge left a dangling `reminders.contact_id` — now NULLed + test-guarded). New UI behavior is **live-smoke / on-device only** (jsdom can't drive touch).
|
||||
- **Bug A — Grant is handling:** `odell/marty/finance/ten31@` can't enroll for email capture ("could not resolve user_id") because the enroll flow requires a CRM `users` row; Grant is creating user accounts for those mailboxes.
|
||||
- **Next:** (A) confirm the two stuck mailboxes pulled current + Grant's 4 new mailbox users enroll; (B) **retire `contact_type`** — replace the Contacts Investors/Prospects tabs + TYPE badge with grid-derived `existing_investor`/`pipeline_stage`, then drop the column (see ROADMAP); (C) **contacts ↔ `fundraising_contacts` consolidation** — census-first (count A/linked, B/contacts-only, C/pill-only on the box; see ROADMAP); (D) carried: bell approve-on-phone → Matrix-thread-clears round-trip spot-check.
|
||||
- **Next:** (A) confirm the two stuck mailboxes pulled current + Grant's 4 new mailbox users enroll; (B) **retire `contact_type`** — replace the Contacts Investors/Prospects tabs + TYPE badge with grid-derived `existing_investor`/`pipeline_stage`, then drop the column (see ROADMAP); (C) **contacts ↔ `fundraising_contacts` consolidation** — census-first (count A/linked, B/contacts-only, C/pill-only on the box; see ROADMAP). **A TEMPORARY admin census ships in v0.1.0:105 to read A/B/C off the box: `GET /api/admin/contacts-census` + a Settings → Admin "Run census" button (mirrors `backend/scripts/contacts_census.sql`). DELETE the endpoint + handler + route + button once the numbers are captured** (all tagged `TEMPORARY` in code). (D) carried: bell approve-on-phone → Matrix-thread-clears round-trip spot-check.
|
||||
- **Open / risks:** the Contacts pagination, the purge, and the email-sync auto-recovery are **live-smoke / not yet device-confirmed**. Carried: **Claude/Architect path unverified live on the box**; vision OCR small-in-frame misread (`mara.com→marac.com`); doc drift — `crm-overview.md` narrative + `EVALUATION.md` still describe `lp_profiles` (the active API/schema claims were fixed; the deeper Phase-0 narrative is deferred to a doc pass).
|
||||
|
||||
Reference in New Issue
Block a user