Changelog
format_version-keyed history of the wire format served at /config.json. Every entry here documents a change to the URL shapes or field semantics in Wire Format and Entry Schema; it does not track this documentation site or /data/catalog/**, neither of which is wire contract.
format_version 1 — 2026-07-17
Initial locked wire format.
/config.json—{"format_version": 1}, nothing else./p/<namespace>/<package>.json— package root: human-governed fields (name,repository,owners,status,deprecated_message,created,upstream) plus bot-regenerateddesc(nullable) andtags(map from every observed tag to{content, observed, yanked?})./p/<namespace>/<package>/o/sha256/<hex>.json— the OCI image index the tag resolved to, stored verbatim as the registry served it;<hex>is the sha256 of those bytes, which is the registry's own manifest digest. Immutable.- Lock unit is the image-index digest — the per-platform manifest digests live inside the locked bytes, in
manifests[]. - No
aliasesfield — aliasing is emergent from equalcontentdigests. - Yank is a per-tag-row fact (
tags[tag].yanked), not a package-level status; index objects are never deleted, only pruned by render-time reachability when no tag references them.
Additive, same format_version:
/c/index.json— enumeration index: a sorted map from every published bare<namespace>/<package>name to the exact-bytes digest of its package root, for whole-catalog sync via conditional GET + digest diff. A fourth frozen URL shape; names and digests only, never metadata. See Wire Format./p/<namespace>/<package>.jsongains an optionalsuperseded_byfield: bare<namespace>/<package>naming a successor package, human-governed, omitted ornullwhen unset. Existing consumers already ignore unknown fields per the additive-evolution rule, so this costs nothing to add./p/<namespace>/<package>.jsongains an optionalsourcefield: thehttps://repository whose CI produced the builds, bot-read from the latest version'sorg.opencontainers.image.sourceannotation, omitted when that annotation is absent. Distinct fromupstream.repository_url(vendor attribution) — see Entry Schema. Also additive; every root published before it stays valid.
No prior format_version was ever served to a real client, so this entry carries no migration notes. Three deltas exist against the placeholder config.json/flat-pointer shape that predated it (config.json dropped a packages prefix and note field; /p/<ns>/<pkg>.json changed from a flat pointer to the root+CAS split; the o/ object changed from a bot-authored projection of an image index to the registry's verbatim image index, byte-for-byte) — all three cost nothing, since no ocx client had shipped against any of them yet. See adr_locked_observation_index_format.md D10 and adr_oci_index_only_dispatch.md for the full record.