v1.0.9May 2026
macOS code signing
- Enable macOS code signing
- feat: add 'nice to have' and 'compensation' sections to JobCard component
- feat: refactor getDictionary function to improve locale fallback logic
- feat: add viewport height adjustment to ChatWidget for responsive design
- feat: add 'close' label to chat widget translations for multiple languages
- feat: enhance knowledge base ingestion script with detailed comments and chunking logic
- feat: add detailed documentation on how the AI assistant works in CrateGuard
- feat: add initial documentation for CrateGuard project, detailing product features, AI components, tech stack, and development process
- feat: add comprehensive documentation for CrateGuard product build, including features, tech stack, and infrastructure
- feat: integrate AI support assistant with RAG-powered chat widget and admin monitoring
- feat: add AI usage statistics to health check endpoint
- feat: add health checks for OpenAI API and AI knowledge base connectivity
- feat: implement rate limit event logging and database table for tracking abuse
- feat: add chat widget and API for AI-driven support interactions with localization
- Refactor locale handling across the application
- feat: add localized 404 Not Found page with translations for multiple languages
- feat: implement knowledge base ingestion and AI database initialization
- feat(blog): add new images for DJ music library organization and management
- fix(blog): update section headers for consistency across multiple language posts
- fix(blog): update image format for consistency across multiple language posts
- Update blog posts and images related to finding duplicate tracks in DJ libraries and the importance of owning music. Added new articles in multiple languages discussing the implications of streaming services for DJs, emphasizing the need for a local music library. Changed image format for consistency across posts.
- feat: add comprehensive guides for DJ music formats, library organization, and tagging
- feat(blog): add ReadingProgress component for enhanced user experience
- Add localized blog posts for "Everyone is a DJ — Organized Library = Better Sets" in Spanish, French, Hebrew, Italian, Japanese, Portuguese, and Chinese
- fix(comments): add secret validation for admin authorization in POST request
- feat(comments): implement comment system with moderation and multilingual support
- feat(distribution): update SEO content checklist and remove completed tasks
- feat(blog): add blog post creation script and update README with workflow details
- feat(blog): add category filtering and improve blog post structure
- refactor(opengraph-image): simplify imports and remove unused static params generation
- feat(blog): add new articles on finding duplicate tracks and filename matching issues
- Refactor code structure for improved readability and maintainability
- fix: handle escaped newlines in ED25519_PRIVATE_KEY for Vercel
- fix: surface actual error message in license generate endpoint
- refactor(auth): enhance admin authorization to check against both HEALTH_SECRET and LICENSE_API_SECRET
- feat(license): add option to send license key via email and handle email sending in API
- refactor(auth): clarify secret handling in admin authorization logic
- feat(auth): implement passkey login and registration endpoints