- Add ruff>=0.11.0 as dev dependency via [dependency-groups]
- Configure [tool.ruff]: line-length=100, py310 target, LF line endings
- Lint rules: E, F, UP, B, SIM, I (ignoring E501/B905)
- Add lint:server and lint:server:fix scripts to root package.json
- Update format/format:check to also run ruff for server/
Switch vibevoice dependency from microsoft/VibeVoice to JezzWTF/VibeVoice
fork (commit e76701f) which contains the async decode + parallel CFG
optimisations directly in generate(). Removes the instance-method
patching approach (vibevoice_generate_patch.py deleted).
server/vibevoice_server.py:
- Add _cfg_executor (ThreadPoolExecutor, 1 worker) alongside _decode_executor
- _install_cpu_pipeline_optimizations now sets both executors directly as
model._vibepod_decode_executor and model._vibepod_cfg_executor
- Both executors shut down in lifespan on exit
- Remove vibevoice_generate_patch import/install (no longer needed)
server/pyproject.toml:
- vibevoice source changed to git+https://github.com/JezzWTF/VibeVoice.git
- No machine-local paths; works identically on any clone