PR #3995 confirmed MERGED (merge SHA 29cce2aaa8914a1c692cf52091fdaf771515a78d). Its ## BACKEND FLUSH RESULT comment shows Status: applied, flush SHA 653a4c69, function whatsapp-webhook — the live chat path is post-merge code, not the pre-fix bundle.
gh pr view 3995 --json state,mergeCommit,mergedAt → state: MERGED, mergeCommit.oid: 29cce2aaa891.... PR comment: "## BACKEND FLUSH RESULT / PR: #3995 / SHA: 653a4c69 / Status: applied / Function: whatsapp-webhook."Re-ran scripts/seed-brain-playbook-test-account.ts from current origin/main against Peyton WP. Brain header confirmed Bloom Retreats, playbook "Up to date," 7-field required gate at 100% (Why you intentionally left empty — not required). "What you sell" chapter shows The 5-Day Ubud Retreat at $1,450 with dates March 14–21, 2026 — matching the seed's UBUD_DATES literal exactly.
services[0] = {
"name": "The 5-Day Ubud Retreat",
"price": "$1,450",
"dates": "March 14–21, 2026",
"date_occurrences": [{ "start": "2026-03-14", "end": "2026-03-21" }]
}
ops_answers["retreat-host"].rhythm =
"Cohorts run in March, June, September, and November, capped at 20 guests."
{"name":"The 5-Day Ubud Retreat","dates":"March 14–21, 2026","date_occurrences":[{"start":"2026-03-14","end":"2026-03-21"}],"price":"$1,450", ...}
ops_answers.rhythm (retreat-host): "Cohorts run in March, June, September, and November, capped at 20 guests." — trap intact, not deleted.
| Point | Assertion |
|---|---|
| VALUE | services[] name/dates/date_occurrences EQUAL the seed literal — confirmed via DB read-back |
| TENANT | user_id = 088d6829-8ed2-4b6a-a20c-9e103b9e1b1f (Peyton WP) — the row read |
| TRAIL | /brain playbook, "What you sell" chapter — screenshot above |
| SYNC | Confirmed — CT-DATEFB-04's live WhatsApp reply quotes this exact window |
Found 6 leftover QA-fixture cohorts rows blocking this scenario (QA Fixture Event A/B, QA Reactivation Test Event, Phone-Free Hangout, Wheel-Throwing for Beginners, Intro to Shamanic Meditation — none linked to any assistant_id). Peyton approved deletion. Deleted via a scoped DELETE ... WHERE id IN (...) AND host_user_id = '088d6829-...'. Confirmed after: 0 upcoming cohorts, 1 total (a past-dated "Wheel-Throwing for Beginners" from 2026-08-20, left alone — not upcoming, not blocking). No cohort was invented to help the bot; DB-only check, no UI frame for this step.
public.cohorts for host_user_id = '088d6829-8ed2-4b6a-a20c-9e103b9e1b1f' → 0 upcoming, 1 total (past-dated, excluded)| Point | Assertion |
|---|---|
| VALUE | 0 upcoming cohorts (post-cleanup) |
| TENANT | host_user_id = Peyton WP |
| TRAIL | Pulse / offerings show nothing scheduled — acceptable per plan |
| SYNC | Confirmed — CT-DATEFB-04 used the playbook window, not a live cohort date |
Pulse → Active tab shows exactly one Active card: On-Brand Support #23K, 1 connected, Health 100%, $0.50/session. Detail panel confirms assistants.template_id = 'TMPL-9P3X', status = 'active' for this user_id (cross-checked DB + UI). No leftover FFB / Salt & Cedar / Bali naming — reads the now-Bloom Brain.
assistants row id f4f86c39-8f31-4cce-9850-34bdff9d24da — template_id: TMPL-9P3X, status: active, user_id: 088d6829-8ed2-4b6a-a20c-9e103b9e1b1f| Point | Assertion |
|---|---|
| VALUE | template_id=TMPL-9P3X, status=active |
| TENANT | user_id = Peyton WP |
| TRAIL | Pulse Active card + detail panel — screenshots above |
| SYNC | Confirmed — inbound WhatsApp hit this assistant (CT-DATEFB-04/05 thread) |
Peyton sent the phone card live, from her personal number to the connected Peyton WP WhatsApp Business number. Turn 1 — Peyton: "Hi, when is the next retreat?" Bot (verbatim): "The next The 5-Day Ubud Retreat is scheduled for 14–21 Mar 2026. I'll have someone from the team check the current seat availability for you and your partner." Quotes 14–21 Mar 2026 exactly. Does NOT list June/September/November as a calendar. Does NOT claim it lacks specific start dates. The trap was avoided.
The next The 5-Day Ubud Retreat is scheduled for 14–21 Mar 2026. I'll have someone from the team check the current seat availability for you and your partner.
| Point | Assertion |
|---|---|
| VALUE | reply text contains "14–21 Mar 2026" — the March 14–21 window from the seed |
| TENANT | chat session on the Peyton WP connected WhatsApp number |
| TRAIL | WhatsApp thread screenshot above |
| SYNC | Matches CT-DATEFB-01's Brain "What you sell" window exactly |
Same WhatsApp session as CT-DATEFB-04, all four checks clean.
The 5-Day Ubud Retreat is $1,450 total. A $435 deposit holds your seat, with the balance due 14 days before arrival.
The deposit is $435, and it holds your seat.
I'll have someone from the team check the current seat availability for the 14–21 Mar 2026 cohort and get back to you right away.
You can cancel, but please note that your $435 deposit can move to another date only once. Deposits are non-refundable if you cancel within 30 days of the retreat arrival date.
| Turn | Check | Result |
|---|---|---|
| 2 (price) | $1,450 verbatim | PASS |
| 3 (deposit) | $435 verbatim | PASS |
| 4 (seats) | no invented seat count — honest handoff | PASS |
| 5 (cancel) | moves once, non-refundable inside 30 days; answered after the seat handoff | PASS |
PASS. CT-DATEFB-00 through 05 all PASS — the merge proof holds: with zero live cohorts, On-Brand Support correctly quotes the "What you sell" playbook window (March 14–21, 2026 / 14–21 Mar 2026) instead of inventing dates or reciting the "How you run" season-list trap (March, June, September, November). Price, deposit, seat-availability honesty, and cancellation policy all hold on the same thin thread.