Files
foxhunt/docs/dependency-cleanup-report.md
jgrusewski 2df1ea92e1 feat(ml): WAVE 29 DQN Codebase Cleanup & Refactoring Campaign
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>
2025-11-27 23:46:13 +01:00

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

  1. Safe to commit - All changes verified and builds pass
  2. 💡 Consider periodic dependency audits using cargo machete or cargo udeps
  3. 📊 Reduced dependency tree should improve compile times slightly
  4. 🔍 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