بنقرة واحدة
regression-test
// Run regression tests for voxtype releases. Use before major releases to verify core functionality, CLI commands, and configuration handling.
// Run regression tests for voxtype releases. Use before major releases to verify core functionality, CLI commands, and configuration handling.
Build all voxtype binaries for release. Builds Whisper (AVX2, AVX-512, Vulkan) and ONNX (AVX2, AVX-512, CUDA) binaries using Docker. Use when preparing a new release.
Run interactive smoke tests for voxtype. Tests recording cycles, CLI overrides, signal handling, and service management. Use after installing a new build.
Triage a GitHub issue or PR by checking for duplicates, documentation alignment, project fit, and recommending labels.
Publish voxtype to AUR. Updates PKGBUILD, generates checksums, and pushes to AUR. Use after a GitHub release is published.
Test voxtype in Docker containers. Use for testing builds, verifying packages work on different distros, or isolating test environments.
Package voxtype for release. Creates deb and rpm packages from binaries. Use when building distribution packages.
| name | regression-test |
| description | Run regression tests for voxtype releases. Use before major releases to verify core functionality, CLI commands, and configuration handling. |
| user-invocable | true |
| allowed-tools | ["Bash","Read","Glob","Grep"] |
Comprehensive testing checklist for voxtype releases.
Note: For detailed manual smoke tests (recording cycles, GPU isolation, output drivers, etc.), see docs/SMOKE_TESTS.md. Run those tests for thorough pre-release validation.
# Build and basic checks
cargo build --release
./target/release/voxtype --version
./target/release/voxtype --help
./target/release/voxtype setup --help
cargo test
Key test modules:
text:: - Spoken punctuation and replacementscli:: - Command-line argument parsingstate:: - State machine transitions# List available models
./target/release/voxtype setup --list-models
# Show current configuration
./target/release/voxtype setup --show-config
# Check GPU detection (if available)
./target/release/voxtype setup gpu --status
# Check daemon status (will fail if not running, that's ok)
timeout 2 ./target/release/voxtype status || echo "Daemon not running (expected)"
# JSON output format
timeout 2 ./target/release/voxtype status --format json || echo "Daemon not running (expected)"
# Test with a sample audio file (if available)
./target/release/voxtype transcribe test.wav
# Should not error with missing config
rm -f ~/.config/voxtype/config.toml
./target/release/voxtype --help
# Should load config without errors
mkdir -p ~/.config/voxtype
cp config/default.toml ~/.config/voxtype/config.toml
./target/release/voxtype setup --show-config
Test that old config files still work:
# Create minimal old-style config
cat > /tmp/test-config.toml << 'EOF'
[hotkey]
key = "SCROLLLOCK"
[whisper]
model = "base.en"
EOF
# Should not error
./target/release/voxtype --config /tmp/test-config.toml --help
For each binary variant, verify:
VERSION=0.4.14
# AVX2
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx2 --version
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx2 --help
# AVX-512
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx512 --version
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx512 --help
# Vulkan
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-vulkan --version
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-vulkan --help
# Start daemon
./target/release/voxtype &
DAEMON_PID=$!
sleep 2
# Check it's running
./target/release/voxtype status
# Stop daemon
kill $DAEMON_PID
./target/release/voxtype &
DAEMON_PID=$!
sleep 1
# SIGUSR1 should start recording (will fail without audio, ok)
kill -USR1 $DAEMON_PID
# SIGTERM should graceful shutdown
kill -TERM $DAEMON_PID
# Validate structure
dpkg-deb --info releases/${VERSION}/voxtype_${VERSION}-1_amd64.deb
# List contents
dpkg-deb --contents releases/${VERSION}/voxtype_${VERSION}-1_amd64.deb
# Check for required files
dpkg-deb --contents releases/${VERSION}/voxtype_${VERSION}-1_amd64.deb | grep -E 'voxtype-avx2|voxtype-avx512|config.toml|voxtype.service'
rpm -qp --info releases/${VERSION}/voxtype-${VERSION}-1.x86_64.rpm
rpm -qp --list releases/${VERSION}/voxtype-${VERSION}-1.x86_64.rpm
cargo test passescargo clippy has no warnings/dev/input access