Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 26 Aug 20:45
· 92 commits to main since this release

Added

  • Cross-dataset generalisation evaluations of the certified grid modal-growth
    detector, with pre-registered protocols and sealed, byte-reproducible
    evidence artefacts: a real-capture ISO-NE leg
    (bench.early_warning_leadtime_isone,
    examples/real_data/iso_ne_forced_oscillation/) and a 13-case WECC 240-bus
    statistical leg (bench.early_warning_leadtime_wecc,
    examples/real_data/wecc_240_osl/). Both report the frozen-transfer and
    local-calibration branches honestly, including the negative findings.
  • Bridge-agnostic live modal sentinel
    (scpn_phase_orchestrator.runtime.modal_sentinel): the operating point is
    read only from a hash-verified sealed evidence artefact, frames follow a
    fail-closed observation contract, and every alarm is sealed as a
    review-only record that never actuates.
  • Real-time PMU capture replay at a sealed operating point
    (bench.pmu_stream_replay), causal with optional wall-clock pacing; paced
    and unpaced replays seal byte-identically.
  • Public demo set on the documentation site: Grid Sentinel Replay, Modal
    Head-to-Head, and The Honest Test, each with a validation page and the
    claim boundary stated on the page.
  • Two manuscripts under papers/submissions/, published as Zenodo preprints
    (DOI 10.5281/zenodo.22113062 and 10.5281/zenodo.22113116) and cited from
    the matched-false-alarm study page.
  • Release publishing for the Rust kernel: spo-kernel wheels (stable-ABI,
    five platforms) and the maturin sdist now publish to PyPI through trusted
    publishing on release tags, alongside the main package.
  • Session-start monitor gate hardening: seed vectors, quality evidence, and
    oscillator counts are validated fail-closed before any session state is
    accepted.

Changed

  • Sealed cross-dataset evidence schema: the internal coded field was advanced
    to the descriptive evaluation: "cross-dataset generalisation"; integrity
    tests reject the stale coded contract exactly, and both payloads were
    regenerated byte-reproducibly with unchanged scientific results.
  • The shared in-band onset estimator accepts search_start_seconds; the
    default keeps the previous whole-capture behaviour byte-identical.

Fixed

  • Sealed-evidence loading rejects non-object JSON payloads fail-closed before
    any hash verification.
  • Hand-maintained licence headers in dependency lockfiles are restored after
    regeneration.

Security

  • Dependency floors raised across every lockfile: cryptography 50.0.1
    (with pyopenssl 26.4.0), h2 4.4.1, GitPython 3.1.60, aiohttp 3.14.3,
    postcss/undici overrides for the studio web workspace, and pip 26.2.1 in
    audit tooling; pymdown-extensions floor 11.0.1 and an explicit
    cryptography dev-transitive floor close the remaining advisory ranges.