What's Changed
- fix: render transcript text safely in browser extensions by @nightcityblade in #435
- CI: expand test suite coverage by @boxerab in #436
- audio: add support for raw pcm input via server flag by @boxerab in #437
- Add thread safety to client manager with threading lock by @boxerab in #438
- Bound transcript memory and translation queue size by @boxerab in #439
- Validate server parameters on startup by @boxerab in #440
- Avoid clear screen shell injection by using ANSI escape codes by @boxerab in #441
- Add custom vocabulary / hotwords support by @boxerab in #489
- feat: add Prometheus metrics instrumentation by @boxerab in #492
- Add real-time speaker diarization support by @boxerab in #490
- Document all new features in README by @boxerab in #491
- Add word-level timestamps and confidence scores by @boxerab in #488
- feat: add segment_post_processor hook for external plugins by @boxerab in #487
- feat: add SSE streaming for REST transcription endpoint by @boxerab in #452
- docs: fix setup instructions reported in #405 by @nightcityblade in #434
- Clarify --translate vs --enable_translation CLI flags by @boxerab in #442
- Extract hardcoded buffer constants into class attributes by @boxerab in #443
- Add reconnect logic to WebSocket client by @boxerab in #444
- Improve REST API unsupported param warnings by @boxerab in #445
- Add optional API key auth and rate limiting for REST API by @boxerab in #446
- Add WebSocket authentication via api_key by @boxerab in #449
- fix: add av to package requirements by @nightcityblade in #497
- fix: make caption overlay line count configurable by @nightcityblade in #494
- fix: support Python 3.13 server installs by @nightcityblade in #484
- test: add clean virtualenv install smoke test by @nightcityblade in #482
Full Changelog: v0.8.0...v0.9.0