standup
Standup — 2026-07-21
**[#517](https://github.com/caseproof/memberintel/pull/517) is the anchor commit of this window.** `SiteStats` is now backend-authoritative — recomputed from Me
▶ Watch the 46s summary — Daily standup — Standup 2026-07-21
Daily standup for 2026-07-21. What shipped:
#517 is the anchor commit of this window. SiteStats is now backend-authoritative — recomputed from MemberIntel’s own platform-tagged rows on every sync, replacing the plugin’s MemberPress-only /stats payload that was undercounting multi-platform sites. The fix also resolves two correctness bugs in rollup.py: EDD transactions with expires_at=NULL were being treated as lifetime (they’re not), and churn was dividing churned subscriptions by active members.
Engagement consumption shipped in three phases. #516 adds a community-health line to HEARTBEAT (% connected, % active in 30d). #518 enriches it with per-counter averages over reporting members. #524 opens the per-member surface — a new member_engagement target on query_site_data with most_active/least_active sort and email/active_within_days filters. Cleared for staging by counsel first-pass; prod gated on Allen.
Secondary-platform revenue (#522) adds a platform_breakdown JSONB column to SiteStats, computed at sync time from non-MemberPress Transaction rows, surfaced as a dashboard sub-line and a HEARTBEAT line.
Connector modules. #487 ships BuddyPress_Module. #503 ships EDD_Module. #525 deprecates mrr_cents/churn_rate in get_stats() to null — the plugin was computing MRR as a flat sum with no proration and churn over all-time cancellations with no time window; the backend is now the only source of truth for both.
Admin Brain redesign. #496 ships the SOUL tab (per-line editor, straight-save + toast). #509 ships the Sites and Memory tabs, consolidating two line-block editors into one.
Other. #488 adds a static-analysis CI guard that AST-walks every log_admin_action/log_system_action call and asserts every action string is in _ACTION_MAP; it immediately caught three global_brain.entry_* actions that were rendering as raw dotted strings. #506 establishes blind two-file gold labeling as the standard for committed classifier evals — the prior 83% figure is now documented as an assisted upper bound.
Notable. #489 found that @testing-library/jest-dom was never declared in admin/package.json, so the entire admin Vitest suite was silently loading zero tests on CI — vacuously green for an unknown stretch of time.
Window: 2026-07-19T13:00
→ 2026-07-21T13:37.624Z · Sources: memberintel @ 0c1b70b, memberpress-intel @ 8339f91