Changelog

All notable changes and updates to Learn Thai.

0.6.0 (2026-04-02)

Bug Fixes

  • auth: use dynamic port for trusted origins and postgres URL
  • chatwoot: reinitialize widget on auth lifecycle changes
  • romanization, syllable_parser, tokenizer: enhance handling of silent ร clusters
  • romanization: update handling of ทร cluster pronunciation
  • setup: copy Google credentials file in workspace setup
  • setup: use POSTGRES_DATABASE env var for workspace DB setup
  • syllable_parser, tokenizer: enhance syllable parsing and decomposition logic

Features

  • add phrase-to-deck integration and sidebar redesign
  • auth: add password recovery flow
  • home: add translation history feed with voice input
  • home: enhance history item display and save feedback
  • home: enhance translation features with sentence breakdown and animation
  • home: implement history feed and day grouping for translation history
  • home: redesign translate input with iOS-style toggle, history drawer, and polish
  • tone-quiz: standalone tone quiz game with leaderboard
  • word-lookup: add favorite words with star/filter UI

0.5.0 (2026-03-15)

Bug Fixes

  • deck: close dropdown menu when scrolling, closes #5
  • resolve type error in backfill-tone-rules script
  • update cumulative frequency threshold in MongoDB repository

Features

  • add Anki APKG export and share/copy quiz prompt
  • add ChatwootWidget for customer support integration
  • add Google Translate-like translation page with romanization
  • add LogRocket initialization for session tracking
  • add microphone button and debounced translation hook
  • add microphone search with TH/EN language toggle to word-lookup page
  • add pre-commit hook for TypeScript checks and build process
  • add reusable ListenButton with browser TTS for dictionary cards
  • add Romanization feature with history management
  • add speech-to-text input and server-side history pagination
  • add Thai frequency dictionary with bilingual search
  • add tone rules breakdown component and enhance card model for detailed tone analysis
  • add translation history with cache and auto-save
  • add workspace name environment variable and UI display
  • enhance development setup with workspace script and dynamic port configuration
  • enhance layout and components with new features and optimizations
  • enhance MicButton and DeckBuilder components for improved UI
  • enhance romanization engine with vowel overrides and glossary integration
  • enhance Thai romanization logic and add deduplication and orphan card removal scripts
  • enhance Thai text analysis and romanization with new features
  • enhance Thai text normalization and audio synthesis parameters
  • enhance Thai tone analysis API with detailed tone rules and documentation
  • implement batch processing for Thai text analysis in API, enhancing performance and adding comprehensive documentation
  • implement data-driven vowel pattern detection and enhance romanization engine
  • implement deck builder functionality with user authentication
  • implement DictionaryClient and Word Lookup page
  • implement logging for tone enrichment process and enhance analyze URL retrieval
  • implement translation history management and refactor actions
  • integrate LogRocket component into layout for session tracking
  • move romanization tool to user-facing page with history
  • redesign mobile card layout with compact single-row design
  • replace inline category pills with drawer filter on My Cards page
  • restrict romanization page to admin users
  • romanization
  • show romanization in translation history and backfill missing data
  • update deck management and viewing components
  • update navigation and introduce flashcards feature
  • update sidebar navigation for admin-only access
  • update test paths and add comprehensive Paiboon+ compliance tests for Thai romanization

Performance Improvements

  • progressive card loading, debounced search, and compact mobile cards

0.4.0 (2026-02-24)

Bug Fixes

  • vercel: update API source path for CORS headers to include 'thaiscript'

Features

  • api: add Thai romanization and tone detection functionality
  • api: implement Thai tone detection API and local development server
  • api: introduce Thai script analysis API for tone and romanization
  • card issues, voice generation improvements
  • docs: add comprehensive documentation for voice generation configuration system
  • pdf: add PDF splitting functionality and voice playground components
  • tone: enhance local development server and improve romanization engine
  • tone: enhance Thai tone detection with corrections and API integration
  • tone: implement custom Thai tone detection and romanization engines

0.3.0 (2026-02-19)

Bug Fixes

  • changelog: clean up changelog display by removing commit and issue links

Features

  • CardSearchInput: enhance search input with sticky behavior and focus management
  • layout: update viewport settings for improved responsiveness

0.2.0 (2026-02-19)

Bug Fixes

  • deck: resolve input state issue causing fade effect during deck name entry
  • generate-audio: refactor database connection to use connectDB function for improved clarity and maintainability
  • hooks: ensure session completion status reflects initialization state in study session
  • layout: adjust padding and improve deck item layout for better UX
  • layout: make sidebar navigation responsive for mobile
  • sidebar: always show all nav items without auth loading skeletons
  • SidebarNav: show skeleton placeholders during session loading and reorder admin item

Features

  • account: enhance account page with profile and stats display
  • account: refactor account page to fetch content tiers and remove unused components
  • account: replace spinner with skeleton loader matching page layout
  • add test-google-tts script and conversation saving hook
  • admin: add support for file uploads in deck generation
  • admin: add tier picker and tiers column to invitations UI
  • admin: fetch and pass available content tiers to invitations UI
  • alert: add Alert component for displaying notifications and integrate it into the account page with a test mode message; update .gitignore to exclude local environment files
  • analytics: integrate Vercel Analytics for enhanced tracking
  • app: add audio generation scripts and audio files
  • app: add auto-play toggle and improve session reset confirmation in study deck
  • app: add lesson decks for practicing Thai vowels and update page to display lessons
  • app: add more content, alphabet and vowels
  • app: add support for sub-decks and enhance deck display layout
  • app: enhance study deck functionality with unknown card tracking and UI improvements
  • app: implement audio preloading for study deck cards and display loading progress
  • app: implement session reset functionality and update progress tracking in study deck
  • app: init project and basic implementation
  • app: integrate audio playback functionality in study deck
  • app: update deck card component with enhanced status indicators and progress summary
  • audio generation pipeline
  • audio: enhance audio status management for cards and decks
  • audio: optimize audio handling with caching and improve audio preloading logic for study decks
  • auth: integrate better-auth for authentication, add sign-in and sign-up pages, and implement AuthStatus component for user session management
  • branding: swap display font to Bricolage Grotesque and create shared AppLogo component
  • cards: add ownerId to card model and update related endpoints
  • cards: implement card management for user decks
  • cards: implement card search functionality with fuzzy matching
  • CategoryFilter: enhance category filtering with dynamic height and overflow handling
  • components: refactor card rendering with CardTile and AudioButton components
  • content-access: implement content access management for admin users
  • database: migrate flashcard decks to MongoDB, update deck management scripts, and enhance vocabulary extraction skill
  • deck-management: enhance deck navigation and loading experience
  • deck-progress: enhance deck item display with progress tracking
  • deck-repository: refine MongoDB queries for improved filtering
  • deck-study: add slide-in animations for card transitions
  • deck-study: enhance UI components and improve layout
  • deck: add DeckViewClient and DeckViewPage components for viewing deck details and cards, including audio playback functionality
  • deck: add Duke Day 2 lesson deck and integrate into existing decks
  • deck: add reversed mode for flashcards to practice English to Thai and update UI elements accordingly
  • deck: enhance deck view with new features and loading states
  • deck: implement duplicate checking for deck creation and card management
  • deck: implement undo functionality for study session actions and maintain history state
  • deck: implement user session handling and loading state for deck display
  • docs: add comprehensive documentation for authentication, database structure, and application features
  • flashcards: introduce new command for creating flashcards from images, enhance Thai vocabulary extraction with JSON review step, and add comprehensive romanization rules documentation; remove outdated classroom expressions vocabulary file
  • home: redesign homepage layout and content for Thai learning
  • icons: add new icons and manifest for web app, including SVG and PNG formats
  • invitation: add contentTiers field to Mongoose schema
  • invitation: add contentTiers to Invitation type and repository interface
  • invitations: grant content access on invitation acceptance
  • invitations: implement invitation management system with admin interface
  • invitations: pass contentTiers through invitation creation API
  • invitation: wire contentTiers through MongoDB repository
  • layout: unify navigation and layout across the application
  • layout: update max-width for mobile site and refactor header/footer
  • my-decks: enhance mobile-friendly design for deck components
  • NewDeckPage: add image upload handling with improved file validation and user feedback; implement generator visibility toggles and reset functionality
  • NewDeckPage: enhance image upload functionality with compression, improved validation, and dynamic error handling; integrate new upload limits and preview features
  • package: add Qstash CLI command for development
  • pnpm-lock: update dependencies and add new packages
  • release: add release configuration and changelog support
  • settings: add settings page for theme and palette customization
  • study: move study settings into bottom drawer and polish UI
  • study: replace fixed audio preloading footer with inline circular progress
  • styles: enhance global styles with new color variables and remove redundant theme toggle
  • styles: update color scheme and animations for improved UI
  • subscription: implement Stripe integration for subscription management, including checkout and webhook handling; add account settings page for user subscription management
  • tests: add screenshot tests and authentication setup for Playwright
  • theme: add theme toggle component and update global styles for dark mode support
  • theme: enhance theme toggle functionality and improve dark mode support in global styles
  • todos: add a new TODOs file to track housekeeping tasks, bugs, features, architecture improvements, UI/UX enhancements, content creation, and troubleshooting items
  • todos: create a new TODOs file to organize tasks related to global search, housekeeping, bugs, features, architecture, UI/UX, content creation, and troubleshooting
  • todos: update TODOs with new features and housekeeping tasks
  • translate: implement translation functionality for Thai words and add vowel lesson guidelines
  • ui: improve header mobile spacing, Thai greeting, and collapsible categories
  • ui: single-column deck list layout and standardized study page width
  • vocabulary: add essential classroom expressions vocabulary and integrate new lesson deck for Duke Day 1
  • vocabulary: introduce Thai vocabulary extraction skill and generate audio files for flashcard decks
  • vocabulary: update vocabulary extraction process to include JSON review step and enhance deck addition script with dynamic JSON loading