strhet_mvmr() has been reimplemented. The previous version built a combinatorial grid of candidate coefficients with utils::combn() (which could exhaust memory with four or more exposures) and never actually minimised the Q-statistic, returning invalid conditional F-statistics. It now estimates the coefficients by iteratively reweighted least squares, giving distinct, well-identified conditional F-statistics for each exposure. Reported values will differ from previous versions.qhet_mvmr() now uses the estimated heterogeneity parameter (the minimiser) rather than the minimised objective value when constructing the model weights. This corrects the effect estimates, which will differ from previous versions.snpcov_mvmr() now returns correct covariance matrices when the genetic instrument data are supplied as a matrix rather than a data frame.strength_mvmr() and pleiotropy_mvmr() now select the covariance-matrix calculation based on whether gencov is a list, fixing a division-by-zero that occurred when a gencov list for exactly two variants was supplied.ivw_mvmr() no longer emits a spurious warning about fixing the covariance at zero; the gencov argument does not affect the IVW estimates and is retained only for interface consistency.mvmr() no longer fits the same weighted regression twice.format_mvmr() internal column naming.snpcov_mvmr() function accidentally omitted intercepts from its regressions of exposure on genotype. This has been fixed.qhet_mvmr() function with argument CI = TRUE is now faster as it can use multiple processor cores (except on Windows) and it calculates the bootstrap confidence interval limits more efficiently as an unnecessarily repeated function call has been removed (thanks @nickhir).