BREAKING CHANGES: - Removed orphaned dqn.rs monolithic trainer (4,975 lines) - Removed orphaned dqn_ensemble.rs module (816 lines) - Removed orphaned tft.rs and tft_complete_int8_integration_test.rs - TFT trainer split into modular directory structure DQN Module Refactoring: - Split trainers/dqn.rs into modular structure (config.rs, statistics.rs, trainer.rs) - Fixed hyperopt 39D search space (continuous params only) - Boolean flags (use_dueling, use_double_dqn, use_per, use_noisy_nets) are now FIXED architectural decisions - use_distributional defaults to false (Candle BUG #36 - scatter_add gradient issues) Clean Module Structure: - ml/src/trainers/dqn/ directory with proper mod.rs exports - ml/src/trainers/tft/ directory with config.rs, types.rs, model.rs, trainer.rs, tests.rs - All P0 features validated: TD-error clamping, batch diversity, LR scheduler, priority staleness Documentation: - Added comprehensive docs in docs/codebase-cleanup/ - ADR-001 for DQN refactoring decisions - Rainbow DQN component matrix and quick reference guides Build Status: Compiles with zero errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
4.1 KiB
4.1 KiB
Dependency Cleanup Report - Foxhunt Workspace
Date: 2025-11-27 Task: Audit and remove unused dependencies from backtesting, storage, and ml crates
Summary
Successfully removed 11 unused dependencies from 3 crates. All target crates build successfully after cleanup.
1. Backtesting Crate (backtesting/Cargo.toml)
Dependencies Removed (6 total)
| Dependency | Status | Verification Method |
|---|---|---|
thiserror |
✅ REMOVED | grep search: 0 matches in src/ |
crossbeam |
✅ REMOVED | grep search: 0 matches in src/ |
ndarray |
✅ REMOVED | grep search: 0 matches in src/ |
bincode |
✅ REMOVED | grep search: 0 matches in src/ |
prometheus |
✅ REMOVED | grep search: 0 matches in src/ |
fastrand |
✅ REMOVED | grep search: 0 matches in src/ |
Build Verification
cargo check -p backtesting --quiet
Result: ✅ PASSED (only warnings about deprecated types in common crate)
2. Storage Crate (storage/Cargo.toml)
Dependencies Removed (5 total)
| Dependency | Status | Verification Method |
|---|---|---|
tokio-util |
✅ REMOVED | grep search: 0 matches in src/ |
rustc-hash |
✅ REMOVED | grep search: 0 matches in src/ |
indexmap |
✅ REMOVED | grep search: 0 matches in src/ |
fs2 |
✅ REMOVED | grep search: 0 matches in src/ |
dashmap |
✅ REMOVED | grep search: 0 matches in src/ |
backon |
✅ REMOVED | grep search: 0 matches in src/ |
Build Verification
cargo check -p storage --quiet
Result: ✅ PASSED (only warnings about deprecated types in common crate)
3. ML Crate (ml/Cargo.toml)
Dependencies Analyzed (2 total)
| Dependency | Status | Verification Method |
|---|---|---|
arrayfire |
✅ REMOVED | grep search: 0 matches in src/ |
argmin-math |
⚠️ KEPT | USED - Required by hyperopt module (argmin PSO) |
Build Verification
cargo check -p ml --quiet
Result: ✅ PASSED (warnings about unsafe blocks and unused variables)
Note on argmin-math
Initially removed but restored after build failure. The dependency is required for:
- Particle Swarm Optimization (PSO) in hyperparameter tuning
- Math utilities for argmin framework
- Used in
ml/src/hyperopt/module
Overall Results
Dependencies Removed: 11
- backtesting: 6 dependencies
- storage: 5 dependencies
- ml: 1 dependency (arrayfire)
Dependencies Kept: 1
- ml: argmin-math (actively used)
Build Status
✅ All target crates compile successfully ✅ No breaking changes introduced ✅ Workspace integrity maintained
Verification Commands Used
# Search for dependency usage
grep -r "thiserror" backtesting/src/ --include="*.rs"
grep -r "crossbeam" backtesting/src/ --include="*.rs"
grep -r "ndarray" backtesting/src/ --include="*.rs"
grep -r "bincode" backtesting/src/ --include="*.rs"
grep -r "prometheus" backtesting/src/ --include="*.rs"
grep -r "fastrand" backtesting/src/ --include="*.rs"
grep -r "tokio_util" storage/src/ --include="*.rs"
grep -r "rustc_hash" storage/src/ --include="*.rs"
grep -r "indexmap" storage/src/ --include="*.rs"
grep -r "fs2" storage/src/ --include="*.rs"
grep -r "dashmap" storage/src/ --include="*.rs"
grep -r "backon" storage/src/ --include="*.rs"
grep -r "arrayfire" ml/src/ --include="*.rs"
grep -r "argmin_math" ml/src/ --include="*.rs"
# Build verification
cargo check -p backtesting --quiet
cargo check -p storage --quiet
cargo check -p ml --quiet
Recommendations
- ✅ Safe to commit - All changes verified and builds pass
- 💡 Consider periodic dependency audits using
cargo macheteorcargo udeps - 📊 Reduced dependency tree should improve compile times slightly
- 🔍 Monitor for any downstream crates that may have relied on transitive dependencies
Files Modified
/home/jgrusewski/Work/foxhunt/backtesting/Cargo.toml/home/jgrusewski/Work/foxhunt/storage/Cargo.toml/home/jgrusewski/Work/foxhunt/ml/Cargo.toml
Total lines removed: ~15 dependency declarations