fb336924526589846fd4ceec4bbc7f61f6628282
Click a VIN in the list to open a modal with the full decode internals: - Proxy times per provider (pcat/emex/pl24/vin-api) from query_logs.timings - Race/lock status (lock_wait ms + cache_source='lock_wait' → "aynı VIN paralelde çözülüyordu"), candidate_pick, pl24 circuit, aborted - Candidate counts (pcat_car_count, emex_candidate_count), result_kind, wmi - User behaviour for that vehicle, correlated from PostHog custom events in the panel DB by user_id + vehicle_id: categories opened (parts_panel_viewed) and OEM copied (oem_code_copied + distinct codes) New: getVinDecodeDetail/getVinUserBehavior (cross-DB: sase RO + panel), GET /api/sase/query-log/[id] (auth-guarded), client VinDetailButton modal. Both queries verified against prod data. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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%