Brohammad / Brohammad/VoxForge
Expand WebSocket voice-turn coverage for api/ws/voice.py
- Dominant language
- Python
- Stars
- 4
- Forks
- 1
- Avg merge
- 5d 13m
- Merged PRs (30d)
- 10
Description
## Summary
Coverage ratchet calls out `api/ws/voice.py` as a high-gap module. Existing WS tests lean on session lifecycle; audio-turn e2e exists for listening but coverage docs still want this path expanded toward the 75% ratchet.
## Context
- `docs/testing/coverage.md` (high-gap list + 75% ratchet)
- `src/voxforge/api/ws/voice.py`
- `tests/integration/test_websocket_audio_turn_e2e.py`
- `tests/integration/test_voice_pipeline_e2e.py`
- `docs/architecture/ci-hardening.md`
## Acceptance criteria
- [ ] Additional mock-provider WS turn assertions (messages + eval artifacts)
- [ ] Measurable coverage increase on `api/ws/voice.py` (report in PR)
- [ ] No live STT/LLM/TTS keys
- [ ] Distinct from #31 (Playwright barge-in)
Keep tests hermetic for PR CI.
Contributor guide
Research direction
Read src/voxforge/api/ws/voice.py and the existing tests in tests/integration/test_websocket_audio_turn_e2e.py and tests/integration/test_voice_pipeline_e2e.py. Use docs/testing/coverage.md and docs/architecture/ci-hardening.md to understand the 75% ratchet and hermetic CI expectations. Add mock-provider WebSocket turn assertions for messages and evaluation artifacts, then report a measurable coverage increase without live STT, LLM, or TTS keys.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, testing
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100