Release 3.2
·
22 commits
to main
since this release
Security, Adaptive Interviews & Payments Release
- Secured Gemini AI and Neon/Drizzle access behind authenticated server-side API routes.
- Removed public exposure of database and Gemini environment variables.
- Added server-side validation, ownership checks, rate limiting, prompt-injection guardrails, and contact-form spam protection.
- Renamed
ContecttoContactand retained the existing contact submission flow through a secure API endpoint. - Added dynamic interview generation with 5 initial questions and one adaptive 2–3 question follow-up round.
- Enforced a configurable interview ceiling, capped at ten questions.
- Added variation seeds and duplicate-question checks so generated interviews remain distinct.
- Improved answer evaluation with validated 1–10 ratings and structured actionable feedback.
- Updated feedback history to retain old and new answers, display newest-first attempts, and group attempts in blocks of five.
- Fixed Next.js dynamic route handling for existing and new interviews, question sets, practice sessions, and feedback pages.
- Added secure server-side audio transcription with compressed WebM audio, request-size protection, and a 3 minute 30 second recording limit.
- Updated the shared Gemini model to
gemini-3.5-flash-litefor question generation, feedback, and transcription. - Added Stripe Payment Link handling for Monthly and Yearly plans.
- Added Stripe-signed webhook verification and database-backed subscription/payment storage.
- Replaced browser-local payment activation with server-verified subscription status.
- Updated README environment-variable guidance for server-only Gemini, database, prompt, Stripe payment links, and webhook configuration.
- Preserved Clerk public configuration and non-secret public interview UI variables.