Releases: hseshadr/assay
Release list
avow 0.4.1
Avow 0.4.1 is the corrective release for Python CLI ledger writers and supersedes 0.4.0.
The ledger append and convenience-head update now share one bounded, durable process-lock boundary. Recovery fails closed on stale or missing pins; malformed and oversized ledgers are bounded; receipt, keypair, and head persistence use staged atomic writes; and CLI failures redact caller values. Mixed 0.4.0/0.4.1 writers continue to coordinate on the legacy ledger-file lock.
The release also freezes deterministic latency and RSS budgets, brings every Python function under the repository's Grade A complexity contract, and keeps Python/TypeScript receipt bytes and metric answers pinned by shared vectors.
Published as avow==0.4.1 on PyPI with PEP 740 attestations and @edgeproc/avow@0.4.1 on npm with SLSA provenance. Users of assay score --ledger should upgrade from 0.4.0.
Full detail: CHANGELOG.md.
avow 0.4.0
Adds an agreement face for ordered raters: quadratic-weighted Cohen's kappa, Kendall tau-b, exact and weighted agreement, with explicit undefined results instead of flattering degenerate scores.
The Python scoring face now exposes confusion counts and false-negative rate. The pair-versioned @edgeproc/avow browser package gains recall@k, precision@k, F1@k, MRR, and binary confusion metrics, pinned to Python by 23 shared hand-computed vectors.
The release gate breaks 46 named claims—17 in TypeScript—and requires every guard to turn red before restoring the whole suite green. A __proto__ document-id parity defect and mutation-harness stale-bytecode defect are fixed.
Published as avow==0.4.0 on PyPI with PEP 740 attestations and @edgeproc/avow@0.4.0 on npm with SLSA provenance. Full detail: CHANGELOG.md.
avow 0.3.0
Adds assay.ranking — precision@k, recall@k, nDCG@k, MRR and MAP over ir_measures/trec_eval, the IR field's reference implementation.
scikit-learn was rejected: its ranking metrics are multilabel-classification metrics and needed two hand-written semantic corrections at the boundary — without one, retrieving 1 of 4 relevant documents scored 1.0. Both corrections are deleted.
Also renames ReplayMismatch → PayloadHashMismatch (breaking). Published to PyPI as avow and npm as @edgeproc/avow, both with provenance.
Full detail in CHANGELOG.md.