Completed Phases

Each entry is a one-line dated note. Design rationale lives in mdbook or rustdoc pages, not here.

Phase 16: Neural Solver Workstream — 2026-08-29

Completed the neural_solver package: package scaffolding and committed reference fixtures, deep BSDE for diffusions, Rust/JAX reference agreement, jump-aware deep BSDE with deterministic and log-normal Merton jump reference models, DGM diffusion helpers, and the benchmark ladder. All six stages are Done in docs/project/plan/status.md.

Phase 15: Correlated Diffusions — 2026-08-22

Added the full symmetric Hessian (StateDerivatives::hessian_full and with_full_hessian) and the centered four-corner mixed-derivative stencil in both the BSDE and FD derivative paths. Generalized the LQ regulator generator to the full covariance C C' cross term and validated a correlated two- diffusion LQ model against its Riccati closed form (lq_correlated_fd.rs), keeping the reduced Heston rho drift correction unchanged because the spot-variance correlation is an exact reduced-form term, not a missing grid cross-derivative.

Phase 14: Arbitrary Jump Processes — 2026-08-22

Added JumpKernel<N>, JumpTransition, DimensionKind::Jump, and PdeProblem::jump_kernel with a unit-jump default, generalized the explicit-Euler FD path to sum arbitrary jump kernels, added the AvellanedaLotSize model with a lot_size = 1 reduction limit reproducing the base Avellaneda-Stoikov exact spreads, and documented the jump-kernel convention in solver_pde.md, solver_bsde.md, and the validation test matrix.

Phase 13: Exact-Reduction and Manufactured-Solution Validation — 2026-08-22

Validated every expanded market-making model's degenerate reduction to a closed-form Avellaneda-Stoikov target (Heston, Hawkes, Heston-Hawkes, bilateral Hawkes, order-flow imbalance) at high base intensity with per-component bid/ask checks, fixed the GlobalDiscrete initialization bug, and added a manufactured-solution oracle recovered by FD to machine precision and BSDE to 0.0025.

Phase 12: Stationary and Ergodic Solvers — 2026-08-15

Implemented EllipticProblem, EllipticControlProblem, StationarySolver, StationaryEigenProblem, and PerronSolver. Validated against infinite-horizon LQ (algebraic Riccati) and AvellanedaGueant.

Phase 11: Generic Control and PDE Contracts — 2026-08-15

Implemented ControlProblem<N>, PdeProblem<N>, StateDerivatives, and GridSolution. Replaced the market-making-specific Model<N> and ControlOutput contract. Validated with Merton, LQ regulator, and American put; ported the market-making models to ControlProblem.

Phase 10: Signal-Based Engine Strategies — 2026-08-02

Created SignalEngineStrategy bridging market_model::PriceStrategy to the engine's Strategy trait. Supports multi-signal voting (SignalCombinator) and configurable position sizing. 6 unit tests. Updated engine_strategies.md and implementation_matrix.md.

Phase 8: Rigorous Kelly HJB Solution — 2026-08-02

Implemented KellyHjb model solving the true log-utility HJB via FD policy iteration on a 2D [q, x] grid. Created KellyRigorousStrategy with 3D [q, x, tau] lookup tables. 11 unit tests. Updated optimal_criteria.md with full derivation.

Phase 7: Kelly Criterion Optimal Strategy (Heuristic) — 2026-08-02

Implemented KellyStrategy with online EWMA drift/vol estimation and Kelly target q* = mu/(gamma * sigma^2). 9 tests. Updated docs.

Phase 5: Edition 2024 Migration — 2026-08-01

Changed edition = "2021" to "2024" in all Cargo.toml files. Renamed gen to grid_gen. Fixed deref-pattern ambiguity and collapsed if let chains per edition 2024 clippy rules.

Phase 4: VecEnv Process Genericity — 2026-08-01

Replaced hardcoded Heston with VecEnvProcess enum (GBM, Heston, Bates). Dynamic state_dim. Updated engine_vec_env.md.

Phase 3: Unify Process Dynamics Across Crates — 2026-08-01

Added type Process and fn process() to Model<N>. Process = () for 8 models, Process = HestonProcess for Heston. Integration test confirms model-process consistency. Updated solver_ndim.md.

Phase 2: Solver Crate Structure — 2026-08-01

Moved examples, merged Matrix into solver/src/linalg/, removed a/kappa from Solver::solve_with_spreads. Restructured slow-tests.

Phase 1: Code Cleanup — 2026-08-01

Removed debug print from solver/src/models/avellaneda.rs, added all_outputs() to SimulationResult.

Phase 0: Mathematical Reference Documentation — 2026-08-01

Created docs/src/reference.md with verified equations for all processes, HJB derivations, analytical solutions, and numerical schemes.