The plan: verify the 5 PRs in today's brain flow-fixes batch actually work on the live site (chapter-fork on the Teach/Share door, PDF/DOCX/TXT file uploads, the playbook TLDR rendering nicely, the new "Add to Brain" menu with a real Google reconnect, and the old "keep checking my Brain" toggle being fully gone) — plus two extra checks pulled from your own live walk on theoffline-club.com earlier today.
What we tested: signed in as your WP test account, wiped the Brain clean (twice), reran a real Google reconnect end to end, uploaded real PDF/DOCX/TXT files, pasted the same multi-chapter business text and URL you'd expect a founder to share, and walked the "Keep my brain checked" flow start to finish.
What we found — 3 things work well: the Google reconnect for "Add to Brain" works exactly as designed; the new "Add to Brain" menu shows everything correctly; "Keep my brain checked" is genuinely gone.
What we found — 2 things are broken, not just rough: the headline fix for sharing a multi-location business (the Teach/Share door) doesn't work — it silently treats it as one business. Uploading ANY file (PDF, Word doc, or plain text) to the Brain is completely broken — every file either throws an error or silently does nothing.
What we fixed: nothing this session — filed 4 GitHub issues so each routes to its own fix pass: #4348 (chapter-fork doesn't fire, P0), #4327 (file uploads all fail, P0), #4340 (Google Doc content never read, P1/P2), #4349 (reset script gap, fast-follow).
Readiness call: NOT ready. 2 of the 5 fixes in today's batch don't work on the live site. The other 3 check out.
All 5 PRs confirmed MERGED via gh pr view by direct number lookup: #4344, #4341, #4343, #4346, #4146.
Hostname confirmed platform.mystflo.com via tab URL throughout the walk.
Brain was already wiped when the sitting started (playbook-first.md's CT-PBF-06 dirty content was gone) — Sitting 1's intended "existing dirty playbook" precondition could not be walked as specified. Verified the render mechanism instead against a different pre-existing artifact: a week-old "Our read written" TLDR+recap for theoffline-club.com that survived the pre-session state (content-agnostic render check, not a like-for-like CT-PBF-06 re-walk).
Renders with a clear "What we understood" eyebrow, an "Assistant doesn't read" chip, body prose (not a flat wall), and distinct "STANDS OUT" / "WHAT WE STILL CAN'T SEE" section headers — matches the ink-editorial num/readby/ctitle-deck/facts-block pattern, not a bullet-list dump.
Zoomed comparison of a "stands out" row vs a "cant_see" row shows both at very similar brightness — could not confirm a clearly reduced opacity/weight from a screenshot judgment call alone (no DOM/computed-style inspection tool was available). Needs a follow-up pass with actual style inspection.
Precondition: wiped Brain (confirmed empty). Pasted verbatim into the Teach/Share composer, then clicked Read.
| Data In | Hi, it's Miri! I run the Bali chapter of The Offline Club — phone-free hangout nights for people who want to actually talk to each other. We're part of a growing network of city chapters around the world. |
|---|---|
| Data Out | Single-face "Quick check — is this you?" card. BUSINESS NAME field pre-filled: "The Offline Club" (the parent, unscoped). No chapter-fork rows offered at all. |
Did NOT click "That's me — run" (would trigger a wrong-scope paid research charge).
scenario: CT-BFF-03 failed step: 1 (paste chapter-fork copy, expect identity-scope sheet) expected: "From what you shared, this looks like more than one business — which one is yours?" sheet, brain.html#f34-teach-scope actual: single-face "Quick check — is this you?" card, Business Name = "The Offline Club" (verbatim, unscoped) frame ref: brain.html#f34-teach-scope layer guess: frontend or backend — detectBusinessFaces() not firing at all on Teach/Share door for copy-only trigger, OR its output is being ignored/discarded by ShareInline.tsx's rendering branch PRD AC: AC-BRAIN-148
Fresh composer instance (page reload, no stacking on CT-BFF-03's state).
| Data In | https://www.theoffline-club.com (via the Teach/Share composer, NOT the site-read field) |
|---|---|
| Data Out | "Your site — read... 1 page" completed, THEN identical single-face "Quick check — is this you?" card, Business Name = "The Offline Club" (parent, unscoped). |
Did NOT confirm/run. Retested clean to rule out stale state — same result both times.
scenario: CT-BFF-04 failed step: 1 (paste bare URL trigger, expect same fork as CT-BFF-03) expected: identity-scope sheet fires the same way as CT-BFF-03 (proving the fork ALSO fires on this door for a URL) actual: same single-face Quick check, "The Offline Club" unscoped — verbatim identical UI to CT-BFF-03 frame ref: brain.html#f34-teach-scope (URL-trigger note) layer guess: same root cause as CT-BFF-03 — chapter-fork detection appears entirely non-functional on the Teach/Share door on this build, for BOTH trigger types PRD AC: AC-BRAIN-149
Precondition unmet: CT-BFF-04 never confirmed a scoped identity (deliberately not clicked, to avoid a wrong-scope charge) — downstream consequence of CT-BFF-04's fail, not a new independent bug.
Precondition confirmed: Google disconnected via /connects before starting. Opened the Teach composer footer, clicked "⊕ Add to Brain" — dropdown opened with the full catalog exactly as specced (Google Doc, Google Sheet, separator, Upload a file, Paste text, Paste a link, Instagram profile/post screenshots, Moodboard coming-soon). Picked "Google Doc" → an inline nested ConnectionModal for Google appeared, URL stayed on /brain — no navigation to /connects.
Step 1 PASS: clicked "Connect Google" → confirmed same-tab full-page navigation to accounts.google.com (not a popup).
Step 2 PASS: signed in as Peyton WP through the unverified-app warning and consent screen, redirected back to a CLEAN
/brain URL (no leftover query params).
Step 3 PASS: WITHOUT any extra click, the Teach sheet's Google Picker auto-resumed showing REAL Drive files — no second
"Add to Brain" click needed.
Step 4 not literally verified: the exact oauth-callback URL replay could not be captured (network log rolled over on the
cross-origin navigation). A plain reload afterward did not spontaneously refire the picker — a weaker proxy consistent with
working dedup, not the specified test.
Google left reconnected and Healthy at session end (Sheets/Docs/Drive scopes).
Fixture: a live Google Doc "QA CT-BFF-08 no-name FAQ" with real Q&A content, no business name anywhere.
| Data In | Q: What time do you close? A: 6pm most nights, later on weekends. Q: Do you take walk-ins? A: Yes, always. Q: Can I bring a friend? A: Of course, bring anyone. |
|---|---|
| Data Out | "We read this, but couldn't tell whose business it is. Share your website or your Instagram profile so we can find you — or type your business name and what you do below." — correctly names both remaining paths, but ZERO extracted FAQ proposal cards appeared anywhere on the panel (confirmed by full scroll). |
"Try again" correctly revealed the composer underneath — not a dead end.
scenario: CT-BFF-08 failed step: 2 expected: proposals from the doc's Q&A land alongside the identity ask actual: only the identity ask renders; zero proposal cards anywhere on the panel (confirmed by full scroll) frame ref: brain.html#f34-share-staged-identify layer guess: possible content-extraction gap specific to the Google-Doc-via-picker ingestion path PRD AC: AC-BRAIN-150 (partial)
Fixture: a second live Google Doc "QA CT-BFF-09 named FAQ", business name IS present as the first words of the doc.
| Data In | The Sunset Deck Bali - Q: What time do you close? A: 6pm most nights, later on weekends. Q: Do you take walk-ins? A: Yes, always. Q: Can I bring a friend? A: Of course, bring anyone. |
|---|---|
| Data Out | Identical identity-ask copy to CT-BFF-08 — "Your business name" field still empty, NOT pre-filled with "The Sunset Deck Bali" despite it being the literal first four words of the document. Reproduced twice, including one fully isolated attempt (fresh reload, single action) to rule out stale state from CT-BFF-08. |
scenario: CT-BFF-09 failed step: 2 expected: no identity ask; proposals land directly for confirm since a business name IS present in the doc content actual: identical identity-ask block as the no-name doc — confirmed twice, once fully isolated frame ref: no dedicated frame — prose oracle, AC-BRAIN-151 layer guess: STRONG — the Google-Doc-via-"Add to Brain"-picker path never actually fetches/reads the Doc's real text content before running its business-name-presence check. Plausible unifying explanation for both CT-BFF-08 and CT-BFF-09. PRD AC: AC-BRAIN-151
Standalone /brain page. Full catalog confirmed top-to-bottom exactly as specced (same dropdown as CT-BFF-06's screenshot, Google Sheet present at the 2nd position). The Sheet-picker-opens-scoped-correctly sub-claim was not independently clicked through to confirm (ran out of time) — presence in the correct position is confirmed.
Ran out of time in this walk. Neither the slide-over host nor the activation wizard's Brand Voice configure step (z=18500 fold-in) were tested. Needs a follow-up pass.
Fixture: the CT-BFF-09 Google Doc exported as PDF (real Google Docs PDF export, FlateDecode-encoded), uploaded via the Teach composer's file button.
| Data In | QA CT-BFF-09 named FAQ.pdf (content = the Sunset Deck Bali Q&A above) |
|---|---|
| Data Out | Attempt 1: red banner "Edge Function returned a non-2xx status code" (verbatim). Retried once, same result. Attempt 2 (fresh composer, same file): NO error banner, but the composer instantly reset to a blank empty state with NO confirm card, NO draft — confirmed via the main /brain page showing no new step. Never reached a confirm card; the garbling check could not even be attempted. |
scenario: CT-BFF-12 failed step: 2 (upload real PDF via file button, expect organized draft with extracted text matching source verbatim) expected: extracted text legible, matches source Q&A verbatim, lands as organized unconfirmed draft actual: "Edge Function returned a non-2xx status code" OR silent no-op reset with zero draft created — never reached a confirm card frame ref: brain.html#f34-share-staged-pdf layer guess: backend — Edge Function itself erroring on PDF upload (or possibly on ALL uploads, see CT-BFF-13/14/15) PRD AC: AC-BRAIN-146
Same source doc exported as .docx, uploaded via the Teach composer file button.
| Data In | QA CT-BFF-09 named FAQ.docx |
|---|---|
| Data Out | Identical "Edge Function returned a non-2xx status code" banner as the PDF case. |
scenario: CT-BFF-13 failed step: 1 expected: extracted text matches verbatim, organized draft lands same as PDF case actual: "Edge Function returned a non-2xx status code" — identical failure mode to PDF frame ref: brain.html#f34-share-staged-pdf layer guess: same root cause as CT-BFF-12 — all four file-upload scenarios failed on this build, not four separate per-format bugs PRD AC: AC-BRAIN-146
Plain .txt file, uploaded via the Teach composer file button.
| Data In | Q: What time do you close? A: 6pm most nights, later on weekends. Q: Do you take walk-ins? A: Yes, always. |
|---|---|
| Data Out | NO error banner, but composer silently reset to blank with zero draft created — confirmed via the main /brain page. |
scenario: CT-BFF-14 failed step: 1 expected: same pipeline as PDF/DOCX, no regression from the routing change (this format allegedly worked BEFORE #4341) actual: silent no-op, zero draft created frame ref: brain.html#f34-share-staged-pdf layer guess: same systemic upload-pipeline issue as CT-BFF-12/13 — TXT regressed too, not a PDF/DOCX-specific issue PRD AC: AC-BRAIN-146 (regression)
A blank Google Doc (zero body text) exported to PDF, uploaded via the Teach composer file button.
| Data In | Untitled document.pdf (zero body text) |
|---|---|
| Data Out | "Edge Function returned a non-2xx status code" (verbatim) — the specced honest-empty message ("PDF text extraction not available yet...") never appeared. |
scenario: CT-BFF-15 failed step: 1 expected: "PDF text extraction not available yet. Please paste the text content instead." actual: "Edge Function returned a non-2xx status code" (verbatim) — generic technical error, not the specced honest-empty message frame ref: brain.html#f34-share-staged-pdf (failure sub-state) layer guess: whole upload Edge Function appears to be erroring uniformly regardless of input — a single systemic backend bug PRD AC: AC-BRAIN-147
Full fresh wipe run specifically for this scenario (wallet checked ≥$15 before). After the wipe, a genuine first-run "Research my business" landing appeared with a dedicated URL field — the actual RESEARCH/site-read door, distinct from the Teach/Share composer.
| Data In | https://www.theoffline-club.com (bare HQ root, via the dedicated Research field) |
|---|---|
| Data Out | "Your site — read... theoffline-club.com · 1 page" (after a transient, honest, no-charge "AI is at capacity" retry), THEN: "✦ We found more than one face on this site — which one is yours?" with TWO rows: "The part I run" (Host offline events and retreats to help people unplug from their digital devices and connect with others.) and "The whole business" (the whole business — other locations and offerings too). "That's me — run" stayed disabled until a row is picked. |
Did NOT click through to confirm (closed via X) to avoid a charge — the gate-firing behavior itself was the thing under test.
IMPORTANT — needs Peyton's own re-test, not a closed-resolved verdict: this directly CONTRADICTS her own live-walk report of a straight-through read with no gate on this exact URL via this exact door. On this run the gate fired correctly. Possible explanations: non-determinism in the AI-based multi-face classifier (a false negative on her run), a URL-entry difference (trailing slash, www, etc.), a fix landing between her walk and this one outside this PR batch, or she may have used a different door than she thought. Do not mark this resolved purely on this one PASS.
Checked the /brain footer three separate times across the walk (pre-read, post-wipe, post-save) — zero "Keep my brain checked" card/toggle in any check. Walked a full research→save flow end-to-end via the Teach/Share door (theoffline-club.com, "Sounds like you? Save this read to your Brain." → Save) and watched for any interrupting modal — none appeared; the save completed directly to "50% of required" with no popup about recurring re-checks anywhere in the flow.
Note: this final flow ran through the Teach/Share door, so it inherited that door's chapter-fork bug (no
scoping) and left a "Read confirmed" draft on Peyton WP's account — flagged in the account-state section below, relevant to
brain-share-persist.md's queue note about needing a confirmed-free WP account.
reset-brain-data.sh --execute run during CT-BFF-01/02, even though every table the script lists verified 0 rows.
Likely a table (candidate: brain_read_notes) missing from the script's coverage — undermines the "empty Brain"
precondition future walks on this account rely on.
/Users/peytonty/Downloads/ ("QA CT-BFF-09 named FAQ.pdf/.docx",
"QA CT-BFF-14 txt fixture.txt", "Untitled document.pdf"). All harmless, but someone with access to Peyton's actual
Drive/Downloads should confirm before deleting.