v2.3.0
Release v2.3.0
Tag: v2.3.0
✨ Features
- Per-batch lead and polyphonic estimator — each chord batch now computes its own down-lead using an adaptive logic that accounts for the number of simultaneous notes. The
SendLatencyEstimatoris extended with polyphony buckets and a linear lead model, so chords of different sizes are dispatched with the right anticipation instead of a single fixed offset. (712c02e) - Exponential forgetting for the latency estimator — introduces a
lin_forgetfactor and RLS-style accumulators, so the estimator tracks recent network/system jitter instead of a stale long-term mean. State serialization and warm-up updated accordingly. (1a94ce2)
🚀 Performance
- Trimmed dispatch hot-path allocations and tightened the spin loop in
orchestration/dispatch_loop.py, reducing per-action overhead on the tightperf_counter_nsloop. (7cdb8fb)
🐛 Fixes
- Safe latency deque snapshot — the UI now retries and falls back to an empty list when the latency deque is mutated mid-iteration, instead of raising
RuntimeErrorunder load. (4191b83) - Disable lead cache in DryRunBackend —
_lead_cache_enablednow returnsFalsewhen the active backend isDryRunBackend, preventing a stale cached lead from skewing dry-run timing previews. (911d123)
📦 Assets
Sky-Player-v2.3.0.zip— standalone Windows build. Extract anywhere and runSky-Player.exe.