fix(windows): wire windows-parakeet.toml to canonical http-remote plugin + restore live integration tests#422
Conversation
promote tauri-base: Windows runnable cleanup stack
…gin + integration tests The Windows live override file selected preferred="parakeet" (local CUDA via parakeet-rs), but the canonical Windows path documented in docs/windows-live-runbook.md and exercised by ops/parakeet/docker-compose.yml is the OpenAI-compatible HTTP container at http://localhost:5092. The wiring live integration test windows_parakeet_settings_wire_through_to_real_transcript caught the mismatch immediately. Changes: - config/windows-parakeet.toml: preferred = "http-remote", require_local = false, expanded comments documenting the docker-compose bring-up flow. - Cherry-picks the live integration tests + integration_parakeet.ps1 from feat/parakeet-http-remote-live-tests (originally PR #410, whose test files did not actually land in the squashed merge): * crates/coldvox-stt/tests/http_remote_live.rs (plugin-level) * crates/app/tests/http_remote_wiring_live.rs (Settings -> plugin wiring) * scripts/integration_parakeet.ps1 + just integration-parakeet recipe Validation (this commit, on Windows 11 + RTX 5090 + Docker Desktop 29.2.1): docker compose -f ops/parakeet/docker-compose.yml up -d parakeet-cpu -> healthy on :5092 cargo test -p coldvox-stt --features http-remote --test http_remote_live -- --ignored -> 1 passed cargo test -p coldvox-app --features http-remote --test http_remote_wiring_live -- --ignored -> 1 passed
|
CodeAnt AI is reviewing your PR. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThis PR adds HTTP-remote Parakeet integration testing infrastructure. The Windows profile configuration is updated to use an HTTP-remote endpoint instead of local Parakeet. Two new integration tests exercise the plugin and wiring layers against a running Parakeet HTTP service, with a PowerShell orchestration script to manage container startup and test execution. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@scripts/integration_parakeet.ps1`:
- Around line 38-52: The probe loop swallows exceptions in the empty catch,
losing the last failure; capture the caught exception (e.g. assign $_ to a
$lastHealthError variable) and either Write-Verbose the error inside the catch
before Start-Sleep or include $lastHealthError in the final throw message so the
timeout error reports the last health-check failure (update references to
variables $r, $healthy, $deadline, and HealthTimeoutSeconds accordingly).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 9aa3d2af-b13a-4136-9d7b-1b0ec1e0746b
📒 Files selected for processing (6)
config/windows-parakeet.tomlcrates/app/Cargo.tomlcrates/app/tests/http_remote_wiring_live.rscrates/coldvox-stt/tests/http_remote_live.rsjustfilescripts/integration_parakeet.ps1
|
CodeAnt AI finished reviewing your PR. |
There was a problem hiding this comment.
Pull request overview
This PR fixes the Windows “parakeet” live override to use the codebase’s canonical Parakeet HTTP-remote (container) plugin path, and restores the missing live integration tests/runner that validate the full Settings → plugin wiring against a real parakeet-cpu container.
Changes:
- Update
config/windows-parakeet.tomlto preferhttp-remoteand disablerequire_local, with comments documenting the docker-compose bring-up flow. - Re-introduce two
#[ignore]-gated live integration tests: one at thecoldvox-sttplugin layer and one end-to-end wiring test incoldvox-app. - Add a
just integration-parakeetrecipe and a PowerShell runner script to bring up the container, wait for/health, and run both live tests.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/integration_parakeet.ps1 | Adds a PS7 script to start parakeet-cpu, wait for /health, and run the ignored live tests. |
| justfile | Adds integration-parakeet recipe to invoke the new integration runner script. |
| crates/coldvox-stt/tests/http_remote_live.rs | Adds a plugin-level live integration test hitting the canonical HTTP endpoint and asserting the exact transcript. |
| crates/app/tests/http_remote_wiring_live.rs | Adds an end-to-end wiring live test verifying windows-parakeet.toml resolves to http-remote and successfully transcribes via the real container. |
| crates/app/Cargo.toml | Registers the new http_remote_wiring_live test (needed because autotests = false) and gates it on http-remote. |
| config/windows-parakeet.toml | Fixes the Windows live override to prefer http-remote (container path) and documents the intended workflow. |
Address CodeRabbit review on PR #422 by capturing the last health probe exception during the wait loop and surfacing it in the timeout message.
|
CodeAnt AI is running the review. |
Sequence DiagramThis PR updates the Windows live configuration to use the http-remote Parakeet container and enhances the integration script to start the container, wait for a healthy status, and run live transcription tests. sequenceDiagram
participant Tester
participant IntegrationScript
participant ParakeetContainer
participant ColdvoxApp
participant ParakeetHTTPService
Tester->>IntegrationScript: Run integration parakeet script
IntegrationScript->>ParakeetContainer: Start Parakeet CPU container and wait for health
IntegrationScript->>ColdvoxApp: Run http-remote live tests
ColdvoxApp->>ColdvoxApp: Load Windows Parakeet config selecting http-remote plugin
ColdvoxApp->>ParakeetHTTPService: Send audio transcription request
ParakeetHTTPService-->>ColdvoxApp: Return transcription result
ColdvoxApp-->>Tester: Report live tests passed
Generated by CodeAnt AI |
|
CodeAnt AI finished running the review. |
User description
Summary
Fixes the Windows live override and re-lands the live integration tests that were missing from the squashed merge of #410.
The user reported that "parakeet doesn't work on Windows" despite multiple landings. Investigation showed:
main(PRs fix(stt): restore canonical HTTP remote Parakeet path #409, test(stt): live parakeet http-remote integration tests #410).ops/parakeet/docker-compose.yml,crates/coldvox-stt/src/plugins/http_remote.rs,[stt.remote]defaults inconfig/default.toml, andconfig/plugins.jsonwithpreferred_plugin = "http-remote"are all present.config/windows-parakeet.tomlselected the wrong plugin. It setpreferred = "parakeet"(local CUDA viaparakeet-rs), bypassing the entire container path the rest of the codebase is wired for. Anyone settingCOLDVOX_CONFIG_PATH=config/windows-parakeet.tomlon Windows would hit the local-GPU path that's known-painful, not the OpenAI-compatible HTTP container athttp://localhost:5092.crates/coldvox-stt/tests/http_remote_live.rsandcrates/app/tests/http_remote_wiring_live.rsexist onfeat/parakeet-http-remote-live-testsbut not onmain.Changes
config/windows-parakeet.toml:preferred = "http-remote",require_local = false, plus expanded comments documenting the docker-compose bring-up flow.feat/parakeet-http-remote-live-tests:crates/coldvox-stt/tests/http_remote_live.rs— plugin-level live test.crates/app/tests/http_remote_wiring_live.rs— end-to-end Settings → plugin wiring test (this was the test that caught the misconfigured TOML).scripts/integration_parakeet.ps1+just integration-parakeetrecipe.Validation
Run on Windows 11 + RTX 5090 + Docker Desktop 29.2.1, this branch:
The wiring test mutation-tested the fix: with the previous
preferred = "parakeet"value, the test failed withassertion failed: windows-parakeet.toml must wire to the http-remote plugin / left: Some("parakeet") right: Some("http-remote").Out of scope
parakeet-gpuprofile (port 8200, RTX 5090, ~28 GB VRAM in use) comes up healthy from the same compose file but exposes a non-OpenAI API (/audio/transcriptionsinstead of/v1/audio/transcriptions). Wiring a second[stt.remote]profile for it can be a follow-up; the canonical CPU container path is the one the rest of the codebase already targets and is what this PR validates.CodeAnt-AI Description
Use the Windows Parakeet override with the HTTP container and add live checks
What Changed
http-remoteParakeet path instead of the local GPU path, so the supported Windows setup uses the same container endpoint documented for live runsintegration-parakeetcommand that starts the container, waits for it to become healthy, and runs both live testsImpact
✅ Fewer Windows transcription setup failures✅ Clearer Parakeet live-test coverage✅ Faster validation of the Windows HTTP transcription path🔄 Retrigger CodeAnt AI Review
Details
💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.
Windows Parakeet Configuration Fix & Integration Tests Restoration
Problem Addressed
config/windows-parakeet.tomlwas configured withpreferred = "parakeet"(local CUDA via parakeet-rs), bypassing the canonical HTTP-remote container athttp://localhost:5092defined inops/parakeet/docker-compose.yml. This caused Windows users withCOLDVOX_CONFIG_PATH=config/windows-parakeet.tomlto hit the local-GPU path instead of the documented HTTP container endpoint.Key Changes
Configuration Update
config/windows-parakeet.tomlstt.preferred = "http-remote"andstt.require_local = falseIntegration Test Restoration
Two missing live test files cherry-picked from prior branch:
crates/coldvox-stt/tests/http_remote_live.rshttp://localhost:5092with test audio (test_1.wav); marked#[ignore]crates/app/tests/http_remote_wiring_live.rshttp-remoteplugin selection, validates remote endpoint configuration, exercises full transcription flowBuild & Automation
crates/app/Cargo.toml: Added integration test target forhttp_remote_wiring_live.rs(requireshttp-remotefeature)justfile: Newintegration-parakeetrecipe invokes PowerShell integration scriptscripts/integration_parakeet.ps1: PowerShell 7 orchestration script that:parakeet-cpucontainer viaops/parakeet/docker-compose.ymlhttp://localhost:5092/healthwith configurable timeout (default 180s)--ignoredflagValidation
Tested on Windows 11 + RTX 5090 + Docker Desktop 29.2.1:
parakeet-cpucontainer healthy on:5092http_remote_livetest passedhttp_remote_wiring_livetest passed (detected original misconfiguration)Out of Scope