- Store ONNX Session in Option<Mutex<Session>> for thread-safe concurrent access - Lock session before run() in predict(), map lock poisoning to PredictionFailed - Preserve ModelUnavailable when session is None - Reject non-finite values (NaN, +inf, -inf) in prediction_from_probabilities - Add unit tests for NaN, positive infinity, and negative infinity rejection - Keep all existing tests passing Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>