Skip to content

0.4.0

Choose a tag to compare

@ciceroyang ciceroyang released this 21 Sep 15:11
· 36 commits to main since this release

Release 0.4.0 — the index can carry two kinds of record, counted apart.

Attached: our own CycloneDX 1.5 SBOM, generated by the publish workflow from commit
682b3bd before the tarball was uploaded. It covers the 138 shipped source files with a
sha256 each, and records that this package has no third-party runtime dependencies.

The npm tarball is built from the same commit by GitHub Actions and carries SLSA provenance:

npm view @zhiliangtech/agentgate@0.4.0 dist.attestations
npm view @zhiliangtech/agentgate@0.4.0 dist.integrity

  • The index can carry two kinds of record, and they are counted apart. build-index.mjs --github <census> --classification <file> adds a repository-level record for every repository the
    classification called a server and the registry does not already cover. Such a record can
    never be clean: its packageManifest component is skipped
    (no-package-declared-in-repository), so the state is incomplete by construction. A repository
    already represented by a registry row is not added again, and two records may not share one
    identity. /v1/index/summary and the evidence page report registry entries and repository
    records separately, because one coverage percentage over both would flatter the second kind.

  • agentgate refresh --repositories runs the slower half of the chain: an incremental GitHub
    census (--since, unioned with the previous output) followed by an incremental classification
    that only fetches repositories whose pushed_at moved, with a path kept for every verdict.
    Without the flag, and without the artifacts on disk, the index is exactly what it was before.

  • The formats are frozen and the promise is written down:
    docs/spec/compatibility.md says what each version identifier means,
    what may change inside one, how a breaking change is announced, and which versions are supported.
    Every spec now declares frozen or provisional, and
    docs/operations/upgrade.md carries a section for every released
    version, including the 0.1.1 change that made a stricter exit code look like nothing at all.

  • SECURITY.md says how to report a vulnerability, what to expect, what is in scope,
    and which of our own properties a reporter can check. Private vulnerability reporting on GitHub
    is switched on.

  • test/governance.test.mjs holds both promises to the code and to each other: the identifiers in
    the policy are the ones the modules export, and the upgrade guide and the CHANGELOG must name the
    same versions.