Skip to content

v0.1.20

Choose a tag to compare

@github-actions github-actions released this 30 Aug 21:52
· 28 commits to main since this release

Added

  • celmis is on PyPI, and the pack now says so. Published 0.1.0 and
    verified from the live index: installed on Python 3.9.25 in a clean
    container, all five commands run against a real production pack, one flipped
    bit reported as findings.json: sha256 mismatch with exit 1, a missing file
    with exit 2. summary.md inside every pack said "recompute them and
    compare", which was true and had no executable form; it now names
    pip install celmis and celmis verify, and says in the same breath that
    you are not required to use it — the manifest is plain JSON and sha256 is
    sha256. A tool that made checking us require trusting us would defeat the
    point of the pack.

  • packaging/pypi/ — the evidence-pack verifier, as a standalone package.
    summary.md inside every pack tells a third party they can check it without
    trusting the tool that made it, and until now the only way to reach
    verify_pack() was to clone an AGPL repository and install forty
    dependencies under Python 3.13. The claim was true and unexecutable. The
    verifier is a few hundred lines of hashlib, io, json and zipfile, so
    it lifts out with no dependencies at all and runs from Python 3.9 — which is
    where a locked-down audit box usually is. Two commands, verify and show,
    with exit codes an auditor's CI can read: 0 intact, 1 problems found, 2 could
    not check.

    A fixture pack is committed in both trees and a drift test builds a fresh
    pack from build_evidence_pack() and runs the packaged verifier over it.
    Without it, the day somebody adds a file to the producer every installed
    celmis verify starts reporting present but not in the manifest — a false
    accusation of tampering, produced by our own tooling, against the operator.

Changed

  • The platform's distribution is celmis-platform. celmis on PyPI is the
    verifier above, and while both were called the same thing two failures were
    one command away: python -m build from the repository root would publish
    the entire server under the verifier's name, and in a shared environment
    importlib.metadata.version("celmis") would answer with the verifier's
    version — which src/vault/provenance.py stamps into every generated
    document and /api/capabilities reports as the running platform. Both
    DISTRIBUTIONS tuples now ask for celmis-platform first, and the root
    carries a Private :: Do Not Upload classifier, which is not a real
    classifier and which PyPI therefore rejects — a hard stop rather than a note.

  • Two sentences kept the mark after the labels above them lost it. The
    navigation entry and the tour heading were renamed to "Agent"; the subtitle
    and the tour's own description still said "Dispatch a bug straight to the
    Claude agent" and "Claude agent: code-editing sessions on your repos". A scan
    for "Claude agent" found seven locales of sixteen — the other nine inflect it
    ("agentovi Claude", "à l'agent Claude", "al agente de Claude"), which is why
    the first pass missed them. All thirty-two strings are fixed, and the guard
    now covers the keys that name a section of ours, not only the button.

    Naming Anthropic's product is untouched: "Claude Code agent — researches the
    code" is an engine the operator picks between, and erasing the mark there
    would leave them guessing what they chose.