- Add SSRF validation to TTS route with baseUrl allowlist
- Fix concurrency.ts: validate maxConcurrent >= 1, fill aborted slots
- Add .env existence check to shell script with error messaging
- Add language identifier to README code block (markdownlint MD040)
- Add input validation and 30s timeout to groq-tts route
- Preserve previous summary on error in SummarizeModal
- Pass maxLength parameter through to summarize API
- Fix unused docType parameter in dexie.ts getSummary
- Reject whitespace-only text in summarize API
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add /api/groq-tts route to handle TTS requests directly in Next.js
- Add /api/groq-tts/voices endpoint for listing available voices
- Remove groq-tts-proxy.py Python server dependency
- Remove authentication system (auth route, middleware, lib)
- Simplify startup script to only run the Next.js app
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Deleted `package-lock.json` to streamline dependency management.
- Updated URLs in `OPENREADER_SETUP.md`, `openreader-webui.sh`, and `README.md` to reflect local development settings instead of production URLs.