StoriesNewsroomAboutPricing
Ask GaganGet started

Explore

  • Home
  • About
  • Stories
  • Newsroom
  • Pricing

Connect

  • Ask
  • Book a call
  • Send an email

Resources

  • Documentation
  • Media Kit
  • Site Map
  • RSS Feed

Legal

  • Privacy
  • Terms of Use

Copyright © 2026 Gagan Malik. All rights reserved.

Privacy|Terms of Use|Site Map
  1. Home
  2. Release v1.19.19 is now live
UPDATEApril 12, 2026

Release v1.19.19 is now live

By Gagan Malik

Release 1.19.19 improves the Ask voice fullscreen experience for accessibility and clarity. The dialog uses an explicit title and description for assistive technology, dynamic status text for listening, connecting, TTS, mute, and follow-up prompts, and a short trust line under the sources pill when collapsed. The TTS answer region uses aria-live off during word-level highlighting to reduce screen reader churn; transcript scrolling respects reduced motion. The waveform halo animation respects prefers-reduced-motion, and the particle canvas skips heavy drawing while the tab is hidden. Closing the session returns focus to the voice entry control, and a Type with keyboard instead action exits to the main Ask view. Analytics records voice session end and fullscreen close with a source (button, Escape, or type instead). Hub and hero artwork reflect this release.

The same delivery cycle includes a security and quality pass (repo structure can be explored with Graphify when a local graph is built; see project-documentation/GRAPHIFY.md). Optional Upstash Redis rate limits protect /api/chat, /api/ask/transcribe, and /api/feedback when UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN are set; without them, behavior is unchanged. Global response headers add X-Frame-Options, X-Content-Type-Options, and Referrer-Policy alongside the existing Permissions-Policy. Chat and transcribe return generic errors to clients while details stay in server logs. Billing validates Stripe customer ids (cus_…) from cookies or body. Web Push subscribe payloads use schema validation with bounded user-agent length. Ask feedback auto-issues use the correct GitHub repository.

Added

  • Ask: voice fullscreen sr-only title and description; sources trust cue when the list is collapsed
  • Ask: Type with keyboard instead link; focus return to the voice mode control after closing
  • Ask: analytics for ask_voice_session_end and ask_voice_fullscreen_close (source: button, escape, type_instead)
  • Optional per-IP rate limiting via @upstash/ratelimit (chat, transcribe, feedback) when Redis env is configured
  • Security headers: X-Frame-Options, X-Content-Type-Options, Referrer-Policy
  • Newsroom: this combined release note (hub card and article)

Changed

  • Ask: voice status line (listening, mic ready, speaking, follow-up hint, prompt)
  • Ask: TTS scroll container aria-live strategy during highlight; transcript and answer scrolling honor reduced motion
  • Ask: waveform halo and canvas idle when the document is hidden
  • Ask: chat and transcribe generic client errors; upstream detail in logs only
  • Billing portal: validate Stripe customer ids before use
  • Web Push subscribe: Zod validation and user-agent length cap

Fixed

  • Feedback: GitHub repo path for Ask feedback issues (gagan-malik/gagan-malik-website)

More from Newsroom

View archive
UPDATE

Release v1.18.18 is now live

April 6, 2026
UPDATE

Release v1.17.17 is now live

March 22, 2026
UPDATE

Release v1.16.16 is now live

March 16, 2026