Phase 37New FeatureImprovementFix
Real-time achievements + a cleaner upgrade flow
- Achievement toasts now appear on any /hubb page — not just home. Log a sale, send a comment, click Call, or hit a 10th / 25th / 50th milestone and the celebration pops on whatever screen you're on
- Office-wide celebrations — when a teammate hits a big milestone (50+ calls, 100 sales, etc.) the rest of the office sees a quick "Way to go, Sarah" toast too
- Three new rewards: Search for a person (Solo, $10), Jot in the Notepad (Growth, $15), Save your first bookmark (Growth, $10). Solo and Growth pools redistributed to keep the same totals
- Trial honesty — your trial now uses the plan you actually subscribed to, not a temporary Full upgrade. No more "wait, where did Forms go?" surprises on day 31. The Rewards panel and feature gates now match what you're paying for
- Upgrades and downgrades during your trial are seamless — switch plans at any time without ending your trial early or being charged today. Just a "Plan updated" confirmation and you're on the new tier
- "Your Plan" badge on the active tier card on /hubb/billing, "Switch to <plan>" labels on the others — clear which plan you have at a glance
- Reviews panel empty state now has a "Connect Google Business" button that deep-links you straight into Settings with the right section already open
- Onboarding got a brighter visual treatment — colorful ambient gradients on the background and a richer purple card. Less dungeon, more product
- Removed the stale "1 of 6 milestones / second month free" copy on the onboarding done screen — rewards now credit your Stripe balance live as you earn them
- Fixed: card comments now correctly attribute to you in the activity heatmap and trigger the "first comment!" toast
- Fixed: new signups were sometimes getting stamped as Full in the database while paying for Starter — every new agency now lands on the correct tier
- Fixed: deleting an agency from /support used to fail at random foreign-key constraints (pool numbers, form sessions). Cleanup is now reliable end-to-end
- Fixed: the Realtime connection on chat and notifications used to drop every 45 seconds, silently losing pushes. Connection now stays alive across token refreshes