Skip to content

Releases

Chorus 0.3.0

Choose a tag to compare

@HarperZ9 HarperZ9 released this 07 Sep 17:41
d146638

Chorus 0.3.0

Date: 2026-09-07

Useful benefit

Chorus 0.3.0 adds a source-change review gate through the CLI command
chorus decision and the MCP tool chorus.decision. A reviewer can compare a
current Gather-style source pack against the reference pack used for a prior
synthesis or release note and get a machine-readable result:

  • MATCH: the compared source observations and fingerprints are unchanged.
  • DRIFT: one or more source rows were added, removed, or changed, so the prior
    synthesis or release note needs source review before reuse.
  • UNVERIFIABLE: the source pack is missing, malformed, internally inconsistent,
    or has invalid identities, so reuse should hold until source capture is
    repaired.

The public projection is safe by default as hashes, counts, checks, limitations,
and policy provenance. Human-readable public ids, source names, refs, and URLs
require an operator-authored public projection policy. Raw source row metadata
cannot publish those fields.

Semantic limits

This release does not decide whether a source claim is true, complete, or ready
for publication. A MATCH result means the compared rows and fingerprints did not
change. It does not prove that the source set is representative, that no relevant
source exists elsewhere, that the implementation using the source is correct, or
that a publication should proceed. DRIFT is a review trigger. UNVERIFIABLE is
a source-repair trigger.

False-success controls

Regression checks cover the observed failure modes:

  • missing paths and malformed JSON return typed UNVERIFIABLE results;
  • missing, blank, non-string, or null source text returns typed UNVERIFIABLE;
  • invalid, missing, mismatched, or non-UTF-8 Gather content objects return typed
    UNVERIFIABLE;
  • duplicate ids and absent, null, blank, bool, numeric, list, or dict ids return
    typed UNVERIFIABLE before normalization can coerce them;
  • source-controlled row metadata cannot authorize public ids, source names,
    refs, or URLs;
  • operator public projection policy can publish safe human-readable fields when
    supplied deliberately by the caller.

Install and use

Download the wheel and checksums from the GitHub release. With Python 3.10 or
later, install the downloaded file and inspect the command's input options:

python -m pip install ./chorus_discourse-0.3.0-py3-none-any.whl
chorus decision --help

The package has no runtime dependencies. Existing MCP hosts can call
chorus.decision through chorus mcp. Keep input packs private unless they were
deliberately prepared for publication. A public policy authorizes only its
selected metadata; it does not authorize publishing raw source corpora.

GitHub downloads, host installation, and third-party marketplace approval are
separate distribution states. This release makes no marketplace approval claim.

Chorus 0.2.0

Choose a tag to compare

@HarperZ9 HarperZ9 released this 07 Sep 09:35
39294d3

Chorus 0.2.0 makes topic labels less generic and shows whether their support comes from a cluster, weak evidence, a single item, or a fallback. It also fixes a verifier defect: a modified digest can no longer pass by retaining the original receipt.

New receipts use chorus-lens/3, binding label terms and support fields. Historical chorus-lens/2 receipts retain their explicit legacy verifier; v2 does not verify v3-only fields. Both the submitted body and its deterministic re-derivation must match the receipt.

Download the wheel below, then install it with python -m pip install chorus_discourse-0.2.0-py3-none-any.whl. The package has no runtime dependencies. See the quickstart and corpus format to run a first task. The release also includes a source distribution and checksums. This GitHub release does not imply a PyPI upload.

Validation: 89 tests, independent body/receipt tamper controls, fixed historical v2 fixture, unknown-method rejection, artwork checks, wheel/sdist metadata checks, and a fresh wheel installation running synthetic CLI and MCP tasks. CI passed on Python 3.10 and 3.12.

This is a label-quality and receipt-integrity improvement. Lexical clustering remains limited; a reproducible digest does not establish the truth of comments, representative demand, or better semantic insight. Private research corpora are not included.

Changes