0.6.1 - 2026-05-18
Release Notes
Fixed
-
The linearised evaporation flow variable
Q_evis now bounded
symmetrically[-q_max, +q_max]instead of[0, q_max], where
q_max = |k_evap0 + k_evap_v · v_max| · margin. Previously, when
the per-stage net evaporation coefficientc_ev[month]was negative
(net rainfall over the lake surface exceeds open-water evaporation,
common in 5–7 months/year on tropical and subtropical basins), the
upper bound clamped to zero and the equality row forced the
over-evaporation slack to absorb the imbalance at every wet-month
stage of every scenario. NegativeQ_evvalues now flow into the
storage continuity equation as net rainfall input, and the violation
slacks fire only on genuine modelling infeasibility. Cases with
all-positive monthly coefficients are unaffected (bit-identical
output). -
evaporation_m3sinsimulation/hydros.parquetis now a signed
value: positive entries continue to represent net evaporative loss,
while negative entries represent net rainfall input absorbed by the
reservoir. Downstream consumers that filtered or asserted
evaporation_m3s >= 0will need to be updated.
Changed
-
The
HydroEvaporationvariable in
cobre_core::generic_constraint::VariableRefis documented as a
signed net-flow quantity rather than an outflow-only quantity.
Generic constraints referencing it that previously assumed
non-negativity may need their bounds revisited. -
Docstring corrections in
LinearizedEvaporation,
EvaporationIndices, and thepenalty_overridesschema reference:
the linearised coefficientsk_evap0,k_evap_v, and the violation
slacksf_evap_plus/f_evap_minusare stage-averaged flows in m³/s,
not volumes in hm³ as the documentation previously claimed. No
runtime behaviour change.
Added
- New deterministic regression case
d17-evaporation-mixed-sign
exercising a single-hydro four-stage horizon spanning Oct → Jan with
monthly evaporation coefficients that switch sign across stages.
Guarded byparity_hash_d17(byte stability) and
d17_signed_evaporation::d17_evaporation_is_signed_per_month
(explicit sign assertions per stage).
cobre-cli 0.6.1
Install cobre-cli 0.6.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/cobre-rs/cobre/releases/download/v0.6.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.6.1/cobre-cli-installer.ps1 | iex"Download cobre-cli 0.6.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.6.1
Install cobre-mcp 0.6.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/cobre-rs/cobre/releases/download/v0.6.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.6.1/cobre-mcp-installer.ps1 | iex"Download cobre-mcp 0.6.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 |