3.8 KiB
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 paperrgb(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_KEYin the sidecar env; the disabled F8 path is the honest state here and was the one under test.