0.5.1 - 2026-04-28
Release Notes
Added
-
Annual component extension to the periodic AR inflow model. Selecting
"order_selection": "pacf_annual"in the estimation config activates the
PAR(p)-A path: the fitting pipeline emits a newAnnualComponenttriple
(coefficient,mean_m3s,std_m3s) per (hydro, season) on top of the
classical AR coefficients, allowing the model to capture multi-year
hydrological persistence. The triple is exposed onInflowModel.annualand
is also written to a new output file
output/stochastic/inflow_annual_component.parquet(5 columns:
hydro_id,stage_id,annual_coefficient,annual_mean_m3s,
annual_std_m3s) by both the CLI and the Python bindings. -
HistoryClasstaxonomy on PAR(p)-A historical buckets. Each
(hydro plant, stage) observation series is classified before fitting:
constant series (Constant), saturating caps such as turbine flow
ceilings or low-flow constants (Saturated), and series dominated by
more than 10% strictly negative observations (ManyNegative) are now
detected automatically.ConstantandSaturatedbuckets force a
degenerate fit (order 0, no AR/annual coefficients) so structurally
uninformative buckets do not propagate spurious autoregressive
structure into adjacent months' PACFs.ManyNegativeis purely
diagnostic and does not override the fit. -
Two extensions to the PACF order-selection rule for the PAR(p)-A path:
a structural-zero short-circuit forces the model to order 0 when the
lag-1 conditional FACP is exactly zero (degenerate Schur complement),
and a minimum-order-1 default keeps an AR(1) base whenever the lag-1
FACP is well defined but no lag exceeds the 95% significance threshold. -
Maceira-Damazio iterative order reduction across the full periodic
cycle. After the initial PACF + Yule-Walker fit, the
recursively-composed contributions of each lag through the periodic
monthly chain are computed; if any contribution is negative, the
offending season's AR ceiling is reduced and the fit is re-run at the
new ceiling. The reduction iterates across all seasons until every
season's contribution recursion yields non-negative entries. This
prevents negative chain-composed contributions from propagating as
unstable Benders cuts in downstream SDDP recursions. Exposed as
cobre_stochastic::par::fit_par_annual_with_reductionand wired into
thepacf_annualestimation path.
Changed
-
PAR(p)-A seasonal stats (
σ^Z_m) and Z⊗A cross-covariance now use the
population (1/N) divisor and a max-bucket-size cross-cov divisor,
matching the Maceira-Damazio PAR(p)-A standard-deviation convention.
The classical PAR(p) path (without annual component) is unchanged. -
HiGHS default options retuned for warm-started master LPs dominated by
many slack rows: Devex dual-edge weight pricing, dual-simplex cost
perturbation disabled, initial-condition check disabled, row-wise PRICE
strategy, and a loosened rebuild-refactor solution-error tolerance
(1e-6). These changes alter the simplex trajectory and may yield a
different optimal basis representation at the same objective value;
the deterministic-suite parity hashes for D03, D06, and D07 were
refreshed accordingly. Numerical answers are unchanged within solver
tolerances. -
JSON Schemas under
book/src/schemas/regenerated from the current
Rust structs viacobre schema export. The previously committed
schemas had drifted from the source of truth (most visibly,
CutSelectionConfigwas renamed toRowSelectionConfigand
ExportsConfigwas trimmed to its two active flags). No
config-file shape change for users on the supported variants.
cobre-cli 0.5.1
Install cobre-cli 0.5.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/cobre-rs/cobre/releases/download/v0.5.1/cobre-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/cobre-rs/cobre/releases/download/v0.5.1/cobre-cli-installer.ps1 | iex"Download cobre-cli 0.5.1
| File | Platform | Checksum |
|---|---|---|
| cobre-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| cobre-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| cobre-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| cobre-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| cobre-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cobre-mcp 0.5.1
Install cobre-mcp 0.5.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/cobre-rs/cobre/releases/download/v0.5.1/cobre-mcp-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/cobre-rs/cobre/releases/download/v0.5.1/cobre-mcp-installer.ps1 | iex"Download cobre-mcp 0.5.1
| File | Platform | Checksum |
|---|---|---|
| cobre-mcp-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| cobre-mcp-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| cobre-mcp-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| cobre-mcp-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| cobre-mcp-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |