This commit is contained in:
46
docs/redesign-warm-hive/smoke-pr7a-20260624/REPORT.md
Normal file
46
docs/redesign-warm-hive/smoke-pr7a-20260624/REPORT.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# PR7a Billing — Live Smoke (2026-06-24)
|
||||
|
||||
Branch `feature/warm-hive-pr7a`. Live-driven via chrome-devtools against a freshly-started
|
||||
dev stack: sidecar **:3333** (`tsx src/local/start.ts`, TRIAL tier, **Stripe NOT configured** —
|
||||
no `STRIPE_SECRET_KEY`) + vite **:8080** (proxies `/api` → 3333). Dark + light. **0 console errors throughout.**
|
||||
|
||||
The Stripe-unconfigured dev env is the *ideal* condition to prove the F8 honest state end-to-end.
|
||||
|
||||
## Verdict
|
||||
**PASS.** Every adversarially-confirmed review fix verified against the running app. The smoke also
|
||||
**caught a real regression the unit tests could not**: finding #4's glow fix (a Tailwind class swap)
|
||||
still rendered `box-shadow: none` — a Tailwind v4 arbitrary-shadow gotcha. Fixed live to the proven
|
||||
inline-style pattern and re-verified.
|
||||
|
||||
## What was verified (file:evidence)
|
||||
|
||||
| Finding / behavior | Expected (honest) | Live result | ✓ |
|
||||
|---|---|---|---|
|
||||
| **D12** `/settings?tab=billing` deep-link | snaps to Plan tab | Plan tab `aria-selected=true` | ✅ |
|
||||
| **#7** §14 subhead | "Memory is free forever. You only pay for scale…" | renders (dark + light) | ✅ |
|
||||
| **#6** TRIAL "Current" | trial ≠ purchasable plan → Solo NOT "Current"/"Your plan" | tier=TRIAL → Solo shows **"Included"**, no "Current" badge anywhere | ✅ |
|
||||
| **#8** a11y | honest `aria-pressed` toggle buttons (not a false radiogroup) | Monthly/Annual are `button[aria-pressed]`; clicking flips pressed-state | ✅ |
|
||||
| **#3 / F8** Stripe-not-configured | upgrade CTAs disabled **pre-click**, not a 503 after | probe `GET /api/stripe/status` → `configured:false` → Pro/Teams CTAs **"Unavailable" disabled** | ✅ |
|
||||
| **#4** Pro "Most popular" glow | honey glow on the focal card | **was `none` even after class swap** → fixed to inline `boxShadow:var(--shadow-honey)` → renders `rgba(233,165,44,.25) 0 0 0 1px, rgba(233,165,44,.35) 0 8px 30px -10px` (dark + light) | ✅ (fixed in smoke) |
|
||||
| Annual toggle (D8/F9 display) | price swaps to the real annual labels | Monthly $19/$49 → Annual **$15 / mo · billed yearly**, **$39 / seat · yearly** | ✅ |
|
||||
| **F5** `/payment-success` no-fabrication | no completed checkout → honest, never a fake receipt | headline **"Nothing to confirm"**; no "You're Pro", **zero** receipt rows (no Trial-ends / Emailed / Receipt / $19.00 / VISA / ···4242) | ✅ |
|
||||
| Console | 0 errors/warnings | clean on `/settings?tab=billing` (dark+light) and `/payment-success` | ✅ |
|
||||
|
||||
## The regression the smoke caught (#4 glow)
|
||||
`shadow-[var(--shadow-honey)]` (Tailwind v4 arbitrary class) computed to `box-shadow: none` on the
|
||||
Pro card — verified twice incl. a hard reload (`ignoreCache`). The sibling `border-[var(--honey-line)]`
|
||||
from the *same* class string DID apply, so it's specific to the arbitrary-shadow-with-CSS-var utility,
|
||||
not staleness. Injecting `style.boxShadow='var(--shadow-honey)'` resolved to the full glow, so the fix
|
||||
is the **BenchmarkApp inline-style pattern** (`BenchmarkApp.tsx:367`). Re-verified: glow renders in
|
||||
dark and light. (AskBar/ChatApp use `focus-within:shadow-[var(--shadow-honey)]` — unverified here,
|
||||
flagged as possibly the same latent gotcha; out of PR7a scope.)
|
||||
|
||||
## Evidence
|
||||
- `01-billing-plans-dark-annual.png` — dark, Annual selected: 3 cards, Pro glow, F8 "Unavailable" CTAs.
|
||||
- `02-billing-plans-light.png` — light (warm paper `rgb(247,241,228)`): glow + tokens + F8 hold.
|
||||
|
||||
## Not exercised (no honest data source in this env)
|
||||
- **Paid Success ("You're Pro") + Manage Portal launchpad** — needs a PRO/TEAMS tier + a real Stripe
|
||||
customer; covered by unit tests (`pr7a-billing.test.tsx`: synced-tier confirmation, success-race guard).
|
||||
- **Enabled checkout CTAs / hosted-Checkout redirect** — needs `STRIPE_SECRET_KEY` in the sidecar env;
|
||||
the disabled F8 path is the honest state here and was the one under test.
|
||||
Reference in New Issue
Block a user