- ml/tests/dqn_training_pipeline_test.rs: the inline TODO speculated
about a future `load_checkpoint` hook; loader round-trip coverage
already lives in dqn_checkpoint_tests. Reword to point there.
- ml/tests/ppo_lstm_training_loop_tests.rs: the assertion on
`hidden_state_manager.is_some()` is the public-surface proxy for
"LSTM path active"; deeper introspection isn't exposed. Say so.
- ml/tests/ppo_recurrent_integration_tests.rs: the test is already
`#[ignore]`d; rewrite the inline TODO as a description of the
missing `from_varbuilder` constructors on LSTMPolicyNetwork /
LSTMValueNetwork.
- risk/risk_engine.rs: VarEngine receives a default asset-class
config because the schema-to-config conversion is not wired.
Reword the TODO to describe that plainly.
- trading_engine/types/errors.rs: `common::ConversionError` does
not exist; keep ConversionError local and drop the aspirational
re-export comment.
- trading_engine/tests/audit_persistence_tests.rs: describe why
the query assertion only checks the Ok shape (row-to-event
mapping not wired) rather than pointing at a nonexistent line
number.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Cast input to weight dtype in DQN residual, rmsnorm, noisy_layers
- Set use_gpu=true in QNetworkConfig defaults and all config sites
- Resolve BF16 boundary mismatches in attention, curiosity, branching,
distributional_dueling across ml-dqn
- GPU-resident regime ops with BF16 boundary casts, eliminate .expect() in CUDA paths
- Eliminate all Device::Cpu fallbacks — GPU-only across 10 ML crates
- PPO: cast logits to F32 before softmax, cast batch tensors to training dtype
- Gradient collapse detection for RegimeConditionalDQN
- Wire halt_grad_collapse from CUDA guard kernel to halt training
- Dead neuron detection uses active network VarMap + squeeze factored readback
- Increment gradient_logging_step in GPU PER path
- Gradient collapse warmup guards use original buffer_size
- Cap training steps per epoch + tracing migration
- Replace Tensor::all() with sum_all() for pinned Candle compatibility
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove #[ignore] from 3 Redis tests and use REDIS_URL env var from CI.
Add Redis 7 sidecar to test-gate pod with readiness probe + nc wait loop.
Tests gracefully skip if Redis unavailable (local dev without Docker).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Prometheus registry.register() returns AlreadyReg when another test
thread triggers the lazy_static counters first. Both Ok and AlreadyReg
are valid — only hard errors indicate a real problem.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Three Redis tests were running unconditionally on CI despite requiring
a local Redis server. They spin on connection attempts causing 60s+
timeouts and eventual test-gate failure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove stale test reports, quick-start guides, benchmark analyses,
profiling reports, and tool artifacts from across the workspace.
Keeps only root README.md per crate/service.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove entire trading_engine/src/compliance/ directory (9 files, 16,068 LOC)
and 18 associated test files (18,069 LOC). Comprehensive audit confirmed
zero external callers for all types (ISO 27001, SOX, MiFID II, best
execution, automated reporting). Remove unused cron dependency.
Independent compliance modules in risk/ and risk-data/ are preserved.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The RetryStrategy enum in trading_engine/src/types/error.rs was an exact
duplicate of common::error::RetryStrategy with zero callers in the crate.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace raw f64 price/quantity in SmallBatchOptimizer with typed
financial values. Conversion to f64 happens at the SIMD boundary
(_mm256_loadu_pd) only. Delete 3 orphaned dead-code files:
financial_safe.rs, simd_optimizations.rs, tests/financial_tests.rs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace all `.to_string().parse::<f32/f64>()` patterns with
`num_traits::ToPrimitive` methods (`.to_f32()`, `.to_f64()`).
Each string roundtrip heap-allocated per conversion — fatal in
DQN hot loop (300K+ bars × epochs). Decimal stays as canonical
financial type; conversions happen at GPU/float boundaries only.
Also fixes blocking_read() in async context (risk_integration.rs).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
small_batch_ring::test_performance_characteristics asserts <500ns
latency which is unreliable on shared L4 nodes running parallel jobs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Performance benchmark asserts 70k bucketing ops < 10ms, unreliable
on shared CI infrastructure due to noisy neighbors. Same pattern
as lockfree::test_high_throughput fix.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
test_high_throughput asserts sub-12μs latency which is unreliable
on shared CI infrastructure due to noisy neighbors. Run this on
dedicated hardware only.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move 17 library crates into crates/, CLI binary into bin/fxt,
consolidate 10 test crates into testing/, split config crate
from deployment config files.
Root directory reduced from 38+ to ~17 directories.
All Cargo.toml paths and build.rs proto refs updated.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>