-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
108 lines (87 loc) · 3.77 KB
/
justfile
File metadata and controls
108 lines (87 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# ColdVox Development Commands
# Install just: https://github.com/casey/just
set windows-powershell := true
# Default recipe lists all available commands
default:
@just --list
# Run local CI checks (mirrors GitHub Actions exactly)
ci:
bash ./scripts/local_ci.sh
# Run pre-commit hooks manually
check:
pre-commit run --all-files
# Quick development checks (format, clippy, check)
lint:
cargo fmt --all
cargo clippy --all-targets --locked -- -D warnings
cargo check --workspace --all-targets --locked
# Run all tests
test:
{{ if os_family() == "windows" { "just windows-test" } else { "cargo test --workspace --locked" } }}
# Build all crates
build:
cargo build --workspace --locked
# Build release
build-release:
cargo build --workspace --locked --release
# Clean build artifacts
clean:
cargo clean
# Format code
fmt:
cargo fmt --all
# Generate documentation
docs:
cargo doc --workspace --no-deps --locked --open
# Install pre-commit hooks
setup-hooks:
pre-commit install
# Skip Rust checks in pre-commit (useful for quick commits)
commit-fast *args:
{{ if os_family() == "windows" { "cmd /c \"set SKIP_RUST_CHECKS=1&& git commit " + args + "\"" } else { "SKIP_RUST_CHECKS=1 git commit " + args } }}
# Run specific test by name
test-filter filter:
cargo test --workspace --locked {{filter}}
# Windows entrypoints for local run validation
windows-run-preflight:
pwsh -NoProfile -File scripts/windows_live_validate.ps1 -Mode Preflight
windows-smoke:
pwsh -NoProfile -File scripts/windows_live_validate.ps1 -Mode Smoke
windows-live:
pwsh -NoProfile -File scripts/windows_live_validate.ps1 -Mode Live
# Windows-local test gate. Keep the required matrix package-scoped so it stays
# meaningful on Windows even while the wider workspace still includes
# non-Windows members.
windows-test:
cargo test -p coldvox-foundation --lib --locked
cargo test -p coldvox-audio --lib --locked
cargo test -p coldvox-vad --lib --locked
cargo test -p coldvox-telemetry --lib --locked
cargo test -p coldvox-stt --lib --no-default-features --features parakeet --locked
cargo test -p coldvox-gui --lib --locked
cargo test -p coldvox-text-injection --lib --locked
cargo test -p coldvox-text-injection --example test_enigo_live --no-run --no-default-features --features enigo --locked
cargo test -p coldvox-app --test settings_test --locked
cargo test -p coldvox-app --test verify_mock_injection_fix --locked
cargo test -p coldvox-app --test golden_master --no-run --no-default-features --features parakeet,silero,text-injection-enigo --locked
just windows-smoke
if ($env:COLDVOX_RUN_WINDOWS_LIVE -eq '1') { cargo run -p coldvox-text-injection --example test_enigo_live --no-default-features --features enigo --locked; if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }; just windows-live; if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } } else { Write-Host 'Skipping live Windows validation; set COLDVOX_RUN_WINDOWS_LIVE=1 to run the Enigo example and just windows-live.' -ForegroundColor Yellow }
# Run main app with the canonical wave-1 HTTP remote profile
run:
#!/usr/bin/env pwsh
if ($IsWindows) {
$base = uv run python -c "import sys; print(sys.base_prefix)"
$env:PATH = "$base;$env:PATH"
}
cargo run -p coldvox-app --bin coldvox --features http-remote,text-injection
# Run TUI dashboard with the canonical wave-1 HTTP remote profile
tui:
#!/usr/bin/env pwsh
if ($IsWindows) {
$base = uv run python -c "import sys; print(sys.base_prefix)"
$env:PATH = "$base;$env:PATH"
}
cargo run -p coldvox-app --bin tui_dashboard --features http-remote,text-injection
# Run mic probe utility
mic-probe duration="30":
cd crates/app && cargo run --bin mic_probe -- --duration {{duration}}