Design preview · not yet built
← Design HQ HTML on GitHub ↗ PRD · prd-pl-pulse-dashboard ↗

Pulse — monitor and manage

Pulse is the monitor — Overview, lists, detail, Runs.

SizePortrait scrolls 375 · sideways is a slide deckNotes
Design brief — overview · scope · journey (closed)

The monitor surface — Overview glance (Runs this week · Health · MTD Cost · Attention), Active/Past card walls, account-wide Runs, and the post-activation detail modal — real structure from Pulse.tsx / AssistantSummaryCard.post.tsx / AssistantDetailModal.post.tsx / LogsTab.tsx in the canon idiom.

4 tabs: Overview · Active · Past · Runsempty Pulse = real chrome at zero, not get-startedfounder error copy · no Runs error bannerone page-lead focal (weight-200)no cost charts on Pulse — Usage owns that

The widths drawn here are samples of a fluid continuum, not the only states that exist — content (spacing, type, gaps, card/column widths) scales continuously between them, each clamp reading a named container. Structure (rail, row↔stack, grid columns) steps only at sm 640 · md 768 · lg 1024; radius, hairlines, and pills never scale. Kit: design-canon.md U8.

Reading order in this document is desktop first, then mobile, with a section's mobile frames side by side — a review-document convention only (this repo's design-canon.md § Mockup review reading order). Mobile 375px is still designed and scored FIRST in the /design ritual (kit canon U5/U8) — the two rules never conflate.

Part I · Active — build now
Overview
MystFlo Platform Preview
· Peyton
Workspace
Support
Account
Pulse
Your active assistants
Overview2
Active
Past
Runs
July 2026
Runs this week
142
588 this month
Health
Needs you
MTD Cost
$41.20
Runs $30.20 · AI Usage $11.00
See where it’s going →
Attention
2
Set a budget — your safety line so a busy month never surprises you. Assistants pause when you hit it. Set a budget →
Needs attention (2)
On-Brand Support #7Q2
A connected app disconnected — reconnect to keep it running
Reconnect
Retreat Booking #2M5
Booker owes deposit — was due Jul 12
Mark paid · Extend · Release
Breakdown — July 2026
Status Active Paused by you Completed Stopped Paused — needs you Failed
Assistant Status Runs Cost Health Lifetime Avg Time Created Status since Last Run
On-Brand Support #7Q22x Failed 311 $24.88 94% 2,140 4.2s Aug 1 3d ago 12m ago
Niseko winter bookings #4K2 Active 142 $11.36 96% 918 2.1s Aug 1 3d ago 2h ago
Bali balance chasing #9T1 Paused by you 88 $6.20 91% 340 1.8s Aug 1 3d ago 1d ago
Retreat Booking #2M5 Active 5 $1.75 100% 5 0.6s Aug 1 3d ago Jul 17
Total 6 active 546 $44.19 95% 3,403 Aug 1 3d ago
prd-pl-pulse-dashboard.md · shipped Overview (aligned 2026-08-11 · style unify)
  • Tile set LOCKED to shipped: Runs this week (page-lead) · Health · MTD Cost · Attention — NOT the retired Runs-this-month / Active-assistants / Spent / Wallet set.
  • MTD Cost is the spend handoff to Usage (See where it’s going →); no cost charts on Pulse.
  • Attention tile = count or green check; “View issues” scrolls to the Needs-attention panel below. Empty = check, no “All healthy”.
  • Health tile is operational, not a %. Inbox > 0 → Needs you (or N failed if runs failed). All good only when the inbox is empty and no runs failed. Same count as Attention. Per-assistant Breakdown Health % stays.
  • Inbox order: Band A (assistant cannot run) on top, Band B leftovers under. Chat handoff is never the first row when an assistant is down.
  • Breakdown table lives on Overview — structured .bd-table with 4-item CTO legend, severity left rail, activation Nx chip. Active tab is card-grid only.
  • Breakdown lists every instance from dashboardStats — no row cap, no “See all →”. Sort stays in-table. Card wall for manage/pause lives on Active / Past.
  • Name click opens that instance’s detail modal (Pulse tab first) — never jumps the page tab to Active/Past. Same instance whether it’s Active or Past.
  • Status legend lists every row label 1:1 (Paused by you · Completed · Stopped · Paused — needs you · Failed). Created + Status since columns. Runs use quiet dots. One Needs attention inbox; wallet auto-pause counts.
  • Needs-attention = act-in-place inbox (Reconnect / Mark paid / Adjust limit on the row). Different from Breakdown “Failed” (broken assistant → modal) and Runs “Error” (one bad run → issue sheet 4b). See frame 3b.
  • RP5: amber count on the Overview tab itself = open WhatsApp escalations — distinct from the Attention tile count.
  • Customers section NOT in this build — deferred (#2656); future under Part II (F1–F3).
Pulse
Your active assistants
Overview
Active
Past
Runs
August 2026
Runs this week
0
0 this month
Health
No runs yet
MTD Cost
$0.00
Runs $0.00 · AI Usage $0.00
See where it’s going →
Attention
Set a budget — your safety line so a busy month never surprises you. Set a budget →
Needs attention
Nothing needs you right now.
Breakdown — August 2026
Status Active Paused by you Completed Stopped Paused — needs you Failed
Assistant Status Runs Cost Health Lifetime Avg Time Created Status since Last Run
No assistants yet Browse assistants →
Total 0 active 0 $0.00 0
Overview empty — keep the list chrome at zero (Peyton 2026-08-18 · V3 Mark 2026-08-18 · tiles 2026-08-11 · list tabs 2026-08-15)
  • Do NOT swap any Pulse tab for a get-started guide. A brand-new / guest / no-stats Overview still shows the real metric shell at 0 / — / $0.00 / ✓ so the founder sees what this page will look like once something runs. PulseGetStarted is retired.
  • Needs-attention and Breakdown keep the same list/table you flip into — one empty rail / one empty first row — not a flush line and not a boxed invite. Door lives in the Breakdown row: “No assistants yet · Browse assistants →” (/assistants).
  • V3 Mark once: the full plant (stem included) sits in that empty first row, with the Thread under the copy. Not a centered “hire a double” empty, not lantern (nothing needs you), not a second Mark on the inbox rail. The Mark leaves when the first assistant lands.
  • Totals stay at zero (0 active · 0 · $0.00 · —). Guests see this same Overview chrome (Preview Parity).
  • Active / Past / Runs keep their real tab chrome too — quiet one-liner or empty run table. See frame 2b.
Content truth — restored from src/pages/Pulse.tsx (aligned 2026-08-11 · style unify)
  • Status legend (CTO-locked 4-item resolver taxonomy), then sortable table (click any column header; caret marks active sort), ending in a Total row.
  • Lives on the Overview tab (tertiary after metrics + Needs-attention) — Active tab is card-grid only. Frame 1 embeds the same table; this frame is the anatomy close-up.
  • Row anatomy: severity left border (error / amber / transparent) + optional Nx activation chip when activation_count > 1.
  • Status column = left-aligned (dot + label), same as Assistant — never center. Numbers stay right.
MystFlo Platform Preview
· Peyton
Workspace
Support
Account
Pulse
Your active assistants
Overview2
Active
Past
Runs
Card wall lives on Active — not repeated here
Breakdown — July 2026
Status Active Paused by you Completed Stopped Paused — needs you Failed
Assistant Status Runs Cost Health Lifetime Avg Time Created Status since Last Run
On-Brand Support #7Q22x Failed 311 $24.88 94% 2,140 4.2s Aug 1 3d ago 12m ago
Niseko winter bookings #4K2 Active 142 $11.36 96% 918 2.1s Aug 1 3d ago 2h ago
Bali balance chasing #9T1 Paused by you 88 $6.20 91% 340 1.8s Aug 1 3d ago 1d ago
Deposit chase #8P3 Paused — needs you 24 $3.10 88% 110 3.4s Aug 1 3d ago 3d ago
Retreat Booking #2M5 Active 5 $1.75 100% 5 0.6s Aug 1 3d ago Jul 17
Total 6 active 570 $47.29 94% 3,513 Aug 1 3d ago
Breakdown table anatomy
  • Every column header clickable; caret = active sort (Runs, descending, here).
  • Status = founder-facing words from resolveAssistantStatus — never raw DB strings. Legend is the 4-item CTO lock (not the retired 6-item list).
  • Severity left rail mirrors the cards; 2x chip when reactivated more than once.
  • Total row sums Runs/Cost/Lifetime, averages Health — active assistants only.
  • vs Runs tab: Breakdown = one row per assistant instance (month aggregates). Runs = one row per run event. Same table chrome, different row semantics.
  • List all instances — no overflow link. Name click → detail modal (frame 3b when Failed). Manage/pause card wall stays on Active/Past.
MystFlo Platform Preview
Workspace
Support
Account
Pulse
Your active assistants
Overview2
Active
Past
Runs
July 2026
Runs this week
142
588 this month
Health
Needs you
MTD Cost
$41.20
Attention
2
Needs attention (2)
On-Brand Support #7Q2
A connected app disconnected — reconnect to keep it running
Reconnect
Retreat Booking #2M5
Deposit overdue — Jul 12
Mark paid
Breakdown — July 2026
Status Active Paused by you Completed Stopped Paused — needs you Failed
Assistant Status Runs Cost Health Lifetime
On-Brand Support #7Q22x Failed 311 $24.88 94% 2,140
Niseko winter bookings #4K2 Active 142 $11.36 96% 918
Bali balance chasing #9T1 Paused by you 88 $6.20 91% 340
Total 6 active 546 $44.19 95% 3,403
Tablet 768 — the only tier where shell and content disagree
  • Shell = desktop: 768 is the app’s mobile breakpoint (use-mobile.tsx) — full header + rail render, rail collapsed to its 64px icon width.
  • Content = mobile: metric grid stays 2-col — no sm: override between grid-cols-2 and lg:grid-cols-5.
  • Same shipped tile set + Overview-hosted Breakdown table (Avg Time / Last Run dropped below sm; horizontal scroll if needed).
  • Customers NOT in this build — deferred (unmounted, #2656); future vision under Part II.
Pulse
Your active assistants
Overview2
Active
Past
Runs
July 2026
Runs this week
142
588 this month
Health
Needs you
MTD Cost
$41.20
Attention
2
Set a budget — assistants pause when you hit it. Set →
Needs attention (2)
On-Brand Support #7Q2
A connected app disconnected — reconnect to keep it running
Reconnect
Retreat Booking #2M5
Deposit overdue — Jul 12
Mark paid
Breakdown
Active Paused Needs you Failed
Assistant Status Runs Cost Health
On-Brand Support #7Q2 Failed 311 $24.88 94%
Niseko winter #4K2 Active 142 $11.36 96%
Total 6 546 $44.19 95%
Mobile 375 — Overview populated
  • Same 2-col metric grid as code (grid-cols-2 lg:grid-cols-5) — focal spans both columns; Health / MTD Cost / Attention wrap below.
  • Overview-hosted Breakdown table (compact columns; horizontal scroll) — same vocabulary as desktop, not a competing row list.
  • Customers NOT in this build — deferred (unmounted, #2656); future vision under Part II.
2Overview empty — zero metrics · mobile 375px
Pulse
Your active assistants
Overview
Active
Past
Runs
August 2026
Runs this week
0
0 this month
Health
No runs yet
MTD Cost
$0.00
Attention
Set a budget — pause at the line. Set →
Needs attention
Nothing needs you right now.
Breakdown
Status Active Paused by you
Assistant Status Runs Cost Health
No assistants yet Browse assistants →
Total 0 active 0 $0.00
Overview empty — 375
  • Same zero-metrics shell as desktop — never a get-started infographic on any Pulse tab.
  • Needs-attention empty rail + Breakdown empty table (compact columns). Door is the row link. The Mark sits once in that row. List tabs: frame 2b.
2bActive empty — mobile 375px
Lists
2bActive — account-empty
Pulse
Overview
Active
Past
Runs
No assistant activated yet
Browse assistants →
2bPast — one quiet empty
Pulse
Overview
Active
Past
Runs
No previous assistants
Once you stop an assistant, it will appear here.
2bRuns — empty table
Pulse
Overview
Active
Past
Runs
AllSuccessFailed
Assistant Status Runtime Cost Actions
No runs yet
List tabs empty — keep the chrome, never a guide (Peyton 2026-08-15)
  • PulseGetStarted is retired. Guidance lives on Assistants + the welcome email — Pulse shows what the page will look like at zero.
  • Active account-empty: quiet centered line “No assistant activated yet” + text link “Browse assistants →”. Tab-empty (has past) stays “No active assistants. Reactivate one from Past.”
  • Past: one quiet state for never-had-one and tab-empty — “No previous assistants” / “Once you stop an assistant, it will appear here.”
  • Runs: always the real DashboardRunFeed table. Empty row reads “No runs yet”.
  • Overview’s door lives in the empty Breakdown row (“Browse assistants →”). Active’s link is the same text door, not a second pill.
768 not yet drawn for this flow. Desktop and 375 are the contract.
Pulse
Overview
Active
Past
Runs
No assistant activated yet
Browse assistants →
Active empty — 375
  • Quiet centered line + text link. No step sequence. Tab-empty (has past) points to Past instead.
2bPast empty — mobile 375px
Pulse
Overview
Active
Past
Runs
No previous assistants
Once you stop an assistant, it will appear here.
Past empty — 375
  • One quiet state for never-had-one and tab-empty. No CTA — stopping an assistant is the only way in.
2bRuns empty — mobile 375px
Pulse
Overview
Active
Past
Runs
AllSuccessFailed
Assistant Status Cost
No runs yet
Runs empty — 375
  • Real table chrome, empty row. Never a 4-step guide over the feed.
3Assistant detail modal — mobile 375px (Pulse tab, default)
Active tab
Active
Pause Stop
$0.08
On-Brand Support #7Q2
On-Brand Support
Runs
311 · 94% · 216 customers · 12m ago · $24.88
Details →
Paused
Resume Stop
$1.75
Bali balance chasing #9T1
Direct Booking
Runs
88 · 91% · 12 customers · 1d ago · $6.20
Details →
Pause/Resume and Stop are always icon+label, same top-right position on every card; Pause shows while active, Resume swaps in once paused.
PU4 · PU5 · #1981 — Active-tab card states
  • Manual pause reads NEUTRAL — the founder chose it, no action needed; auto-paused / connection variants get the amber and red reason lines (frame 1 Needs-attention). One badge color axis, severity-coded, shared resolver (lib/assistantStatus.ts).
  • "Details →" + card height identical across this frame’s three states (PU4/PU5); "Details →" stays the card’s only entry point.
  • Customer count (216 / 12) = a new VALUE on the existing #1981 quiet metrics line — never a link, pill, or second doorway; shows only for assistants with customer activity (Past-tab card below has none — line unchanged).
5Pause / resume + reactivate — mobile 375px (Past tab)
Past tab
Stopped
$0.08
Product listings — summer drop #P88
Product Listing Generator
Stopped Jul 02
Runs
31 · 100% · $2.40
Details →
Past card
  • Reactivate row = in-card hairline-top footer — never a detached button below the card.
  • "Reactivated ×2" + Stopped date = quiet text, not extra pills.
  • Start fresh opens the Activation Wizard pre-filled with the previous configuration.
  • "Details →" in the same bottom-right position as every card, right above the Reactivate footer.
5Pause / resume + reactivate — mobile 375px (Reactivating…)
Reactivating…
Stopped
Product listings — summer drop #P88
Product Listing Generator
Details →
Reactivate preflight
  • Quick preflight (apps → Brain → ready) before flipping back to Active.
  • No re-teaching — same instance, run/health history carried forward.
7Reactivated instance — mobile 375px (Lifetime history · no Overview metrics)
Pulse
Your active assistants
Product listings — summer drop #P88 Active
Pulse Overview Personalize Connect
Lifetime 3 periods 78 runs · $6.10 ▾
#3Jul 18 – now 2 days Active
#2Jun 30 – Jul 10 10 days Stopped
#1Jun 2 – Jun 14 12 days Stopped
RP3 — Overview tab (Peyton 2026-08-11)
  • No metrics on Overview. Dropped the Since Activated / RUNS hero — run counts + health live on the Pulse tab (and page-level Overview KPIs), not duplicated here.
  • “Lifetime” collapsible (▾, shown expanded); appears only after more than one activation — every past period with date range, duration, Active/Stopped state. The one place per-stint history shows.
  • Same instance, same ID chip (#P88) across every period.
8Completed card — mobile 375px
Active tab
Completed
$1.20
Studio photos — catalog refresh #C31
Product Listing Generator
Listings doc Image pack
Details →
RP4 — restored from AssistantSummaryCard.post.tsx
  • One-shot generation assistants (Product Listing Generator and similar) park at Completed — NEUTRAL badge, same taxonomy as manual pause (finished, not broken).
  • Footer: latest artifact links, collapsed “Previous versions” disclosure, Run again (same per-run price), quiet Archive (moves the card to Past).
  • Same card shell + height as every other Active-tab card — only badge, meta line, footer content change.
Detail
R30 · D-5 · R17 · R31 — tab set LOCKED (2026-07-23)
  • Tabs: Pulse · Overview · Personalize · Connect — Pulse first and default (R30 · D-5).
  • Pulse = the renamed Activity tab (R17) — contents unchanged (metrics band, status, run feed, health rail).
  • Try dropped from the post tab set (R31) — it never had a distinct built frame, only an inert tabstrip label.
MystFlo Platform Preview
· Peyton
Pulse
Your active assistants
Niseko winter bookings #4K2
Pulse Overview Personalize Connect
24h7d30d
Jul 18
Success· scheduled · $0.08 · 1.2s4:12pm
Success· manual · $0.08 · 0.9s1:03pm
Jul 17
Failed· Google Sheets didn’t respond in time9:41am
View issue →
Status· Resumed8:02am
Load older
This assistant’s activity.
Desktop · Pulse tab activity (Peyton 2026-08-11 · A+C lock)
  • Search stays — quiet dark field. 24h / 7d / 30d stay — real LogsTab windows.
  • Failed = founder one-liner + View issue → sheet 4b. No code dump.
  • Stay in assistant (A): Load older pages this assistant’s history in place. No “All runs →” / account-wide escape — that yanked founders out of analysis. Account-wide Runs stays on the page tab strip when they want it.
Assistant-level Failed ≠ run-level Error
  • Failed (Breakdown status / red rail) = this assistant instance is broken or terminal — open the detail modal, Pulse tab first, fix travels with the red.
  • Error on a Runs row = one bad run — open the issue sheet (frame 4b), not the whole assistant modal by default.
  • Needs attention = founder decision queue — act on the row (Reconnect / Mark paid / Adjust limit). Only open the modal if the row has no in-place fix.
MystFlo Platform Preview
· Peyton
Pulse
Overview · Breakdown name click
On-Brand Support #7Q2 Failed
Pulse Overview Personalize Connect
Can’t reach WhatsApp
This assistant stopped talking to customers until WhatsApp is reconnected.
Reconnect
Runs this month311
Health94%
Last run12m ago · Failed
Recent activity
Jul 18
Failed· WhatsApp didn’t respond12m ago
View issue →
Success· $0.08Yesterday
Fix lives on Connect · red travels with its fixOpen Connect →
Click map (CPO + Chief Designer, 2026-08-11)
  • Breakdown name → this modal (instance detail). Does not switch the page to Active/Past tabs.
  • Needs attention · Reconnect/connects (or Connect tab). Mark paid / Extend → act on the row. Adjust limit → Usage.
  • Inside the modal, a failed run still uses View issue → sheet 4b (run-level), separate from the assistant Failed badge.
768 not yet drawn for this flow. Desktop and 375 are the contract.
Pulse
Your active assistants
Niseko winter bookings #4K2 Active
Pulse Overview Personalize Connect
24h7d30d
Jul 18
Success· scheduled · $0.084:12pm
Success· manual · $0.081:03pm
Jul 17
Failed· Google Sheets didn’t respond in time9:41am
View issue →
Status· Resumed8:02am
Load older
This assistant’s activity.
C11 — Pulse tab (A lock)
  • Search + 24h/7d/30d stay. Failed → View issue sheet.
  • Load older = in-sheet pagination for this assistant. Honesty foot only — no account-wide escape.
3Assistant detail modal — mobile 375px (Pulse tab, pending review)
Pulse
Your active assistants
October cohort waitlist #4B8 Active
Pulse Overview Personalize Connect
Waiting on youReview the launch message before it sends Review
Runs this month18
Cost this month$4.50
Health100% healthy
Last run6m ago
24h7d30d
Jul 21
New signup· 214 total · page live6m ago
Status· Activated8:02am
This assistant’s activity.
D-5 · R31 · D-3 · D-1 — Pulse tab, pending-review item at top
  • Pending item renders at the TOP of the tab body, above the metrics band and run feed — same flag grammar as the Pulse-wall card (eyebrow + one-line verb + right-aligned Review).
  • Still Active, still emerald — a flag on the card, not a status change (D-3). Max ONE pending item, oldest wins.
  • Review deep-links to the tab that owns the fix (D-1); the fix runs through the R35 split.
3Assistant detail modal — mobile 375px (Overview tab · setup only)
Pulse
Your active assistants
Niseko winter bookings #4K2 Active
Pulse Overview Personalize Connect
What it does

Answers booking questions on WhatsApp and writes confirmed stays to your sheet.

Your setup
Tone Friendly, casualEdit
Cancellation 48h notice, $50 feeEdit
Apps WhatsApp · Google SheetsConnect
Activated Jul 17 · first period — Lifetime history shows after a stop + reactivate (frame 7).
Overview = understand / setup (Peyton 2026-08-11)
  • No metrics (runs/cost/health live on Pulse). No Customers (Future F2). No Recent / Go to Pulse (redundant).
  • What it does + Your setup read-back (Edit → Personalize, Connect → Connect tab).
  • Lifetime only when >1 activation — see frame 7. First period: quiet activated line only.
  • C1: header stays lit; dim + sheet only below.
3Assistant detail modal — mobile 375px (Personalize tab)
Pulse
Your active assistants
Niseko winter bookings #4K2
Pulse Overview Personalize Connect
Manual actions
Run now Trigger a run outside its scheduleRun now
Send a test message Check it end-to-endSend test
Personalization
Tone Friendly, casualEdit
Cancellation policy 48h notice, $50 feeEdit
Add-on assistant
Deposit chasing Reads the same BrainActivate add-on
Personalize tab
  • Manual-trigger actions up top (Run now, Send test).
  • This instance’s personalization entries + quiet "+ Add".
  • Add-on row: related assistant reading the same Brain — no re-teaching required.
3Assistant detail modal — mobile 375px (Connect tab)
Pulse
Your active assistants
On-Brand Support #7Q2
Pulse Overview Personalize Connect
Connected apps
WhatsApp Can’t reach — token expiredReconnect
Google SheetsConnected
Payment method
Visa •••• 4242Change →
Brain
Cancellation policy Missing — Support may answer wrongOpen Brain →
Your credentials are encrypted and never stored in third-party systems.
RP7 · RP8 — Connect tab
  • Unhealthy states stand out: amber Reconnect on the broken WhatsApp row; Brain-health row surfaces only for a blocking gap ("Open Brain →"). Healthy rows (Google Sheets) stay quiet — no badge or color when nothing’s wrong.
  • RP7: Payment method between Connected apps and Brain (real 3-section order) — quiet status-with-edit row. Amended 2026-07-26 (#1419): "Change" opens the card form in place (no navigation, modal stays open) behind a one-line replace-confirm ("You have {method} on file. MystFlo keeps one payment method per type — saving a new one replaces the method of that same type") — never names a specific card, since the server only replaces the same type and a founder can tap Apple Pay/Google Pay/Link first. The action is disabled (dimmed) while payment data is still loading, so the gate can never be skipped on a cold Pulse open. A second saved method (card + Link) shows a small "Manage all payment methods →" link beneath the row, still routing to Billing — that path is unchanged.
  • RP8: one-line security footer = same trust copy as the pre-activation Connect step (founders re-authorize real accounts here).
4Run detail — Runs tab, mobile 375px
Runs
Peyton 2026-08-11 — less clutter
  • No account-wide error banner above the Runs table. The Error badge + one founder line on the row is enough; filter to Failed when you want only failures.
  • View issue opens the issue sheet (frame 4b) with plain-language why + one fix. No mono error_code dumps in the log.
  • Connection failures keep a quiet Reconnect on the row (same verb as Connects). Retry stays for recoverable fails.
Pulse
Overview
Active
Past
Runs
AllSuccessFailed
All assistants 50 of 588 runs
Assistant Status Runtime Cost Time Actions
On-Brand Support #7Q2 Success 1.2s $0.08 Jul 18, 4:12pm
Niseko winter bookings #4K2
Google Sheets didn’t respond in time
Error 30.0s $0.00 Jul 17, 9:41am View issueReconnectRetry
Retreat Booking #2M5 Success 0.6s $1.75 Jul 17, 8:20am
Load older
RP6 — Runs tab, desktop (event log, not Breakdown)
  • Same uppercase-tracked table chrome as Overview Breakdown — different row semantics: one row per run event.
  • Status = quiet run outcome dots (Success / Error) — same grammar as Breakdown, not filled pills. Failed rows carry a founder one-liner under the name — never raw provider codes.
  • Filters: All / Success / Failed + All assistants + “N of M runs” + Load older. No error-summary banner.
  • Row actions: View issue (sheet) · Reconnect (if connection) · Retry.
Tap intent (Peyton 2026-08-11) — no pop-up · height follows content
  • Founder reads why + acts → do something → bottom sheet. Not a centered dialog. Not a left slide-over. Never a right drawer.
  • Short content = partial rise. Sheet only as tall as the issue (handle + title + copy + CTA). Rest of the page stays visible under a dark translucent dim — do not stretch the sheet to cover the whole page.
  • Trigger = failed run View issue →. Attention View issues (plural) still scrolls to Needs-attention — no overlay for the list.
  • Quiet third line under Retry: View technical logs → — external n8n execution log, only rendered when the run actually carries one. Never the primary content.
4bMobile 375 — compact sheet over Runs
Overview
Active
Past
Runs
AllSuccessFailed
On-Brand Support · Success · 4:12pm
Niseko winter · Error · 9:41am
Retreat Booking · Success · 8:20am
October waitlist · Success · Jul 16
Issue
Error Niseko winter bookings #4K2

Google Sheets didn’t respond in time

This run tried to read your sheet and gave up after waiting. Usually the sheet is slow, offline, or the connection needs a refresh.

Reconnect Google Sheets Retry this run View technical logs →
Tried 2 times · Jul 17, 9:41am
Mobile
  • Sheet hugs content — Runs list still peeks above through the dark wash.
  • Header stays lit (C1). Borderless edge (T1249). Handle 48×6. Close 44×44. Full-width CTA.
4bDesktop — compact sheet over Runs
MystFlo Platform Preview
· Peyton
Pulse
Overview
Active
Past
Runs
AllSuccessFailed
Assistant Status Time
On-Brand SupportSuccess4:12pm
Niseko winter bookingsError9:41am
Retreat BookingSuccess8:20am
October cohort waitlistSuccessJul 16
Issue
Error Niseko winter bookings #4K2

Google Sheets didn’t respond in time

This run tried to read your sheet and gave up after waiting. Usually the sheet is slow, offline, or the connection needs a refresh.

Reconnect Google Sheets Retry this run View technical logs →
Tried 2 times · Jul 17, 9:41am
Desktop
  • Same compact rule: sheet height = content. Runs table remains visible above under the translucent dark dim.
  • Still a bottom sheet (edge-to-edge width), not a centered card. Build: ModalWrapper presentation="sheet", auto height for short bodies.
768 not yet drawn for this flow. Desktop and 375 are the contract.
Overview
Active
Past
Runs
AllSuccessFailed
All assistants
6 of 588 runs
Assistant Status Cost Time Actions
On-Brand Support #7Q2 Success $0.08 4:12pm
Niseko winter #4K2
Sheets didn’t respond
Error $0.00 9:41am View issue
Retreat Booking #2M5 Success $1.75 Jul 17
C6 — Runs tab (account-wide), mobile
  • Same table idiom as desktop Runs / Overview Breakdown chrome — event rows (not assistant aggregates).
  • Status pill + cost + time; every row names its instance with an ID chip (C6).
  • Failed rows: Retry + (connection failures) Fix connection. Name → assistant Pulse tab.
5Pause / resume + reactivate — mobile 375px (Active tab)
Everything below is deferred, not the current build — never a build target (kit canon U9). It is the Customers work: ActivityFeed is unmounted in prod through the Nina demo (Peyton, 2026-07-11) and its distinct-customer count (#2656) isn’t built. F1 is a duplicate-and-tweak — the Active desktop Overview (frame 1) with the Customers section added back; F2/F3 are the standalone Customers frames; F4 is export (CSV / Google Sheets) for this assistant’s runs — Peyton A+C lock 2026-08-11. Spec: prd-pl-whatsapp-activity-log.md → “Future — Considered, Not Yet Built”.
Not Active — analysis takeaway, not browse
  • Active contract stays in-sheet: Load older only. Export is for founders who want history outside MystFlo.
  • Entry lives on the assistant Pulse tab (quiet action near the honesty foot) — never navigates away to account-wide Runs.
  • Options: Download CSV · Save to Google Sheets (needs Sheets connect). Same instance filter as the Pulse rail.
F4Mobile 375 — export from Pulse tab
Export runs

Niseko winter bookings #4K2 · last 30 days · 48 runs

Download CSV Save to Google Sheets
Stays on this assistant — doesn’t open account-wide Runs.
F4Desktop — same compact sheet
MystFlo Platform
Assistant Pulse tab · Export →
Export runs

Niseko winter bookings #4K2 · last 30 days · 48 runs

Download CSV Save to Google Sheets
Stays on this assistant — doesn’t open account-wide Runs.
MystFlo Platform Preview
· Peyton
Workspace
Support
Account
Pulse
Your active assistants
Overview2
Active
Past
Runs
July 2026
Runs this week
142
588 this month
Health
Needs you
MTD Cost
$41.20
Runs $30.20 · AI Usage $11.00
See where it’s going →
Attention
2
Set a budget — your safety line so a busy month never surprises you. Assistants pause when you hit it. Set a budget →
Needs attention (2)
On-Brand Support #7Q2
A connected app disconnected — reconnect to keep it running
Reconnect
Retreat Booking #2M5
Booker owes deposit — was due Jul 12
Mark paid · Extend · Release
Breakdown — July 2026
Status Active Paused by you Completed Stopped Paused — needs you Failed
Assistant Status Runs Cost Health Lifetime
On-Brand Support #7Q22x Failed 311 $24.88 94% 2,140
Niseko winter bookings #4K2 Active 142 $11.36 96% 918
Bali balance chasing #9T1 Paused by you 88 $6.20 91% 340
Retreat Booking #2M5 Active 5 $1.75 100% 5
Total 6 active 546 $44.19 95% 3,403
Customers
Needs action 2 All activity
Today
Maya booked the Bali retreat· deposit paid2h ago
Jonas asked about the refund policy· escalated to you4h ago
Reply on WhatsApp ↗
Yesterday
Priya confirmed her Niseko dates1d ago
F1 — duplicate-and-tweak of Active frame 1 (U9)
  • Base = Active frame 1 verbatim — all Overview truths (focal, tiles, Needs-attention, Your-assistants row list, RP5, C6 chips) documented there, not restated.
  • Delta: the deferred Customers section threaded in below Breakdown — src/components/ActivityFeed.tsx shape, day-grouped; component unmounted, distinct-customer count (#2656) unbuilt, off in prod through the Nina demo.
  • Intended design: quiet monochrome rail by default; the amber dot marks the one row waiting on a reply — never a fill color. We log actions, not conversations.
Overview tab — Customers section
Customers
Niseko winter bookings #4K2 Needs action All activity
Yesterday
Priya confirmed her Niseko dates1d ago
Monday, Jul 20
Tomás asked about the ski rental add-on2d ago
Desktop
  • Same filtered scoping, wider row — the three chips sit inline with the section marker, never a separate toolbar.
Overview tab — Customers section
Customers
No customer activity yet
When your assistants handle customers — bookings, payments, questions — it shows up here.
Desktop
  • Identical copy and ring treatment, wider padding.
F2Customers section, filtered to one assistant — mobile 375px
Overview tab — Customers section
Customers
Niseko winter bookings #4K2 Needs action All activity
Yesterday
Priya confirmed her Niseko dates1d ago
Monday, Jul 20
Tomás asked about the ski rental add-on2d ago
C6 — entry + filter chips
  • Entry (Future only): a quiet “Customers →” cross-link from the detail modal Overview — not in Active Overview (metrics/Customers/Recent removed 2026-08-11). Lands here scoped to one instance by nickname + ID chip (C6).
  • Applied filter = the engaged chip (✕ clears back to account-wide); Needs action + All activity sit alongside, same chip class, unengaged.
  • We log actions, not conversations.
F3Customers section — empty state — mobile 375px
Overview tab — Customers section
Customers
No customer activity yet
When your assistants handle customers — bookings, payments, questions — it shows up here.
Section-level empty state
  • Founder already has active assistants (Overview above still shows their metrics) — just no customer outcomes logged yet.
  • No step guide or CTA — that’s the whole-account empty state (Active frame 2); just the honest quiet line, matching ActivityFeed.tsx’s real empty copy.
  • We log actions, not conversations.