Release v0.34.6 - "Thunder Sniper"
Release Date: July 03, 2026
This release lands an adversarial math & logic audit of the trajectory calculator, dope cards, and supporting endpoints — 41 verified fixes (MBA-1082 … MBA-1125).
Bug Fixes — Trajectory & Dope
- Elevation-aware shots corrected —
/v1/calculate_elevation (and the main calculator's elevation path) injected the terrain incline into the barrel offset instead of the look angle, producing wildly wrong come-ups on any sloped shot. Incline now drives the shooting angle, so up/down-hill dope is correct.
- Aerodynamic jump in the 2D auto-zero — the level-shot zero solver ignored the crosswind aerodynamic jump the fired trajectory applies, so the headline drop disagreed with the DOPE table in wind. They now match.
- Velocity-dependent BC across segment gaps — a velocity between two BC bands averaged all bands (mixing subsonic and supersonic); it now interpolates between the neighboring bands.
- Gyroscopic stability (Sg) — the reported Sg fed Celsius into a Fahrenheit formula and ignored station pressure; both are now converted at the boundary. Twist-rate recommendations use the correct 1/twist² scaling.
Bug Fixes — Units & Inputs
- Metric requests — omitted twist rate / bullet diameter / sight height no longer mis-convert their imperial defaults as millimeters; metric responses report final velocity in m/s and max height in meters.
- Altitude — when pressure is omitted it now defaults to ISA station pressure at the given altitude, so altitude actually affects the trajectory.
- Powder temperature sensitivity — the correction converts the Celsius temperature delta to the Fahrenheit reference it expects, and the solver's canonical value is no longer corrupted by response formatting.
- Batch range cards — metric distances are converted correctly, and the batch cache returns results in the requested order.
Bug Fixes — Robustness & Correctness
- JSON boolean flags no longer crash the API — POST requests sending real JSON booleans for flags (e.g.
fast_mode: true) previously returned HTTP 500; all request flags now parse tolerantly.
- Trajectory cache correctness — the cache key now includes every physics-affecting parameter (incline, winds, indoor, coordinates, powder, effect toggles, …), so requests differing only in one no longer receive stale dope.
- BC calibration —
/v1/calibrate_bc and /v1/estimate_bc no longer clamp away the G1 calibration (previously returning G1 BC ~25–32% too low).
- Precision analysis now uses true MOA (1.047 in/100 yd); Monte-Carlo mechanical dispersion is applied to both axes; several confidence and drag-comparison calculations corrected.
Chores
← All Releases