Add comprehensive dependency documentation to docs/dev/dependencies.md #139
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds comprehensive dependency documentation to address the need for transparency and maintainability of all project dependencies, especially pinned dependencies that can block CI and development workflows.
What's New
Created
docs/dev/dependencies.md(830 lines) documenting all dependencies across the ColdVox workspace with justifications, security considerations, and maintenance recommendations.Documentation Coverage
Pinned Dependencies Analysis
Git Dependencies: Documented the
voice_activity_detectordependency pinned to commit234b7484Exact Patch Pins: Identified
zbus = "5.11.0"andcpal = "0.16.0"GitHub Actions: Documented inconsistent pinning strategies across workflows
actions/checkoutComplete Dependency Inventory
Rust Crates (~50 direct dependencies):
Each dependency includes:
System Dependencies:
Critical Issues Identified
No Rust Toolchain Pin: Missing
rust-toolchain.tomlfileGit Dependency Without Update Policy:
voice_activity_detectorneeds verificationInconsistent GitHub Actions Pinning: Security and reproducibility concerns
Outdated Security-Sensitive Dependencies:
enigo = "0.6"is 2+ years old, handles keyboard inputwl-clipboard-rs = "0.9"may have updates availableNo Automated Dependency Monitoring:
cargo-auditin CIMaintenance Recommendations Provided
The documentation includes:
Statistics
Why This Matters
Clear dependency documentation:
Next Steps
After merging, recommended actions:
cargo-auditto CI pipelinerust-toolchain.tomlto prevent MSRV confusionCloses #[issue_number]
Original prompt
Can you go ahead and comprehensively review all dependencies, especially all pinned dependencies? Justify them and write all pinned dependencies to docs/dev/dependencies.md
ang = entire CI blocked
Proposed Architecture 🏗️
Strategy: Hybrid Runners
New Workflow Structure
Benefits
Concrete Implementation Plan 📋
I can implement this in phases:
Phase 1: Stabilize Model Caching (Day 1)
AI: (3 attempts with exponential backoff)
Phase 2: Split Workflows (Day 1-2)
fast-check.yml: Runs onubuntu-latest, parallel jobshardware-tests.yml: Runs on self-hosted, only if fast-check passesPhase 3: Fix Cargo Caching (Day 2)
dtolnay/rust-toolchain+Swatinem/rust-cache@v2everywhereactions-rust-lang/setup-rust-toolchainusagePhase 4: Add Resilience (Day 3)
Phase 5: Optional - Matrix Expansion (Future)
Questions Before I Start ❓
Cache strategy: Should I use GitHub Actions cache API (automatic eviction, 10GB limit) or keep your manual
/home/coldaine/ActionRunnerCache/structure?Test categorization: Should I split tests into:
cargo test --lib(unit tests, no hardware)cargo test --test audio_*(audio device tests)cargo test --test text_injection_*(X11/clipboard tests)cargo test --test e2e_*(full STT pipeline)Or do they naturally separate already?
Failure notifications: When self-hosted tests fail, do you want:
GPU testing: You mentioned GPU hardware soon. Is this:
Agent safety: Should I add a "lockfile" check that prevents agents from modifying workflow files without explicit approval? (e.g., require manual dispatch for workflow changes)
Let me know your preferences and I'll implement the new CI architecture!
User: no, I asked you to just reply and answer those questions. not make any changes:
AI: Ah, sorry! Let me just answer your questions directly:
Answers to Your Questions
1. Cache strategy preference?
Keep your manual
/home/coldaine/ActionRunnerCache/structure. You already have it working and GitHub Actions cache has a 10GB limit that could be annoying with multiple Vosk models. Plus, you only have one runner, so no need for the distributed caching benefits.2. Test categorization?
Looking at the codebase:
AI:
The natural split would be:
cargo test --lib→ Pure unit tests (no hardware)cargo test --test '*'→ Integration tests (some need hardware)So yes, ...
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.