42096814e3e2593259ddf16f86c518b7b718a775
inferSubscriptionTier only checked subscription_tier|tier|plan_tier|plan, but Sase.tr's setPeopleProperties writes subscription_plan. Result: every authed user showed tier=— in /insights/sessions/* and the tagger's userValue boost (full=1.0, brand=0.7) collapsed to the 0.5 default. - Add subscription_plan to the key list (priority first since it matches Sase.tr's actual property name) - Extract into shared extractTierFromProps(props) helper - In tag-sessions, re-evaluate tier from enrichment.userProperties and backfill when null. Tag step runs ~2min after ingest, by which point PostHog has the user's post-signup $set props that weren't on the recording row at ingest time.
Süper Panel
Internal admin panel — sp.semih.ai — Tailscale-only access.
Phase 0 skeleton: Next.js 16 + Better Auth (email/password + TOTP) + Prisma + Postgres + Redis. Deployed on Coolify, fronted by Traefik with Let's Encrypt (Cloudflare DNS-01).
See super-panel-prd.md for the full PRD.
Local dev
pnpm install
cp .env.example .env
# fill DATABASE_URL_PANEL, BETTER_AUTH_SECRET (32+ chars)
pnpm --filter @panel/web prisma:generate
pnpm dev
Production deploy
Pushes to main trigger Coolify deploy via webhook.
Deploy status
First production deploy: 2026-05-13. Live at https://sp.semih.ai (Tailscale only).
Description
Languages
TypeScript
99.2%
CSS
0.4%
Shell
0.2%
Dockerfile
0.2%